From 3d936ffccf767d0a91cbc3b7b3c05306e957e561 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 26 Oct 2021 06:47:59 -0400
Subject: [PATCH 01/41] Removing TuSubtitulo per provider request. #1591
---
frontend/src/Settings/Providers/list.ts | 3 ++-
libs/subliminal_patch/providers/tusubtitulo.py | 6 +++++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/frontend/src/Settings/Providers/list.ts b/frontend/src/Settings/Providers/list.ts
index 3eec72d7d..df2f309a8 100644
--- a/frontend/src/Settings/Providers/list.ts
+++ b/frontend/src/Settings/Providers/list.ts
@@ -220,7 +220,8 @@ export const ProviderList: Readonly = [
key: "tusubtitulo",
name: "Tusubtitulo.com",
description:
- "LATAM Spanish / Spanish / English Subtitles Provider for TV Shows",
+ "Provider requested to be removed from Bazarr so it will always return no subtitles. Could potentially come back in the future with an upcoming premium account.",
+ // "LATAM Spanish / Spanish / English Subtitles Provider for TV Shows",
},
{
key: "titulky",
diff --git a/libs/subliminal_patch/providers/tusubtitulo.py b/libs/subliminal_patch/providers/tusubtitulo.py
index fdb3ae892..979c28b5f 100644
--- a/libs/subliminal_patch/providers/tusubtitulo.py
+++ b/libs/subliminal_patch/providers/tusubtitulo.py
@@ -255,7 +255,11 @@ class TuSubtituloProvider(Provider):
return []
def list_subtitles(self, video, languages):
- return self.query(video)
+ # return self.query(video)
+
+ # returning no subtitles automatically to prevent requests to the provider who explicitly requested to be
+ # removed in https://github.com/morpheus65535/bazarr/issues/1591
+ return []
@staticmethod
def _check_response(response):
From 801ff0d47895a3fb00a9aa190a2ca1eaac55100a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20Bart=C3=ADk?=
<63553146+sambartik@users.noreply.github.com>
Date: Wed, 27 Oct 2021 20:23:58 +0200
Subject: [PATCH 02/41] Refactored the Titulki provider
---
bazarr/config.py | 5 +-
bazarr/get_providers.py | 3 +
frontend/src/Settings/Providers/list.ts | 8 +
libs/subliminal_patch/providers/titulky.py | 794 ++++++++++++++-------
4 files changed, 544 insertions(+), 266 deletions(-)
diff --git a/bazarr/config.py b/bazarr/config.py
index 57e0d3ef0..af581c352 100644
--- a/bazarr/config.py
+++ b/bazarr/config.py
@@ -185,7 +185,10 @@ defaults = {
},
'titulky': {
'username': '',
- 'password': ''
+ 'password': '',
+ 'skip_wrong_fps': 'False',
+ 'approved_only': 'False',
+ 'multithreading': 'True'
},
'subsync': {
'use_subsync': 'False',
diff --git a/bazarr/get_providers.py b/bazarr/get_providers.py
index fa23b40cc..6445942c0 100644
--- a/bazarr/get_providers.py
+++ b/bazarr/get_providers.py
@@ -183,6 +183,9 @@ def get_providers_auth():
'titulky' : {
'username': settings.titulky.username,
'password': settings.titulky.password,
+ 'skip_wrong_fps': settings.titulky.getboolean('skip_wrong_fps'),
+ 'approved_only': settings.titulky.getboolean('approved_only'),
+ 'multithreading': settings.titulky.getboolean('multithreading'),
},
'titlovi' : {
'username': settings.titlovi.username,
diff --git a/frontend/src/Settings/Providers/list.ts b/frontend/src/Settings/Providers/list.ts
index df2f309a8..dc076eb1c 100644
--- a/frontend/src/Settings/Providers/list.ts
+++ b/frontend/src/Settings/Providers/list.ts
@@ -230,6 +230,14 @@ export const ProviderList: Readonly = [
defaultKey: {
username: "",
password: "",
+ skip_wrong_fps: false,
+ approved_only: false,
+ multithreading: true,
+ },
+ keyNameOverride: {
+ skip_wrong_fps: "Skip mismatching FPS",
+ approved_only: "Skip unapproved subtitles",
+ multithreading: "Enable multithreading",
},
},
{ key: "tvsubtitles", name: "TVSubtitles" },
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index 0639a042f..e20bf0adc 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -1,352 +1,616 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import
+
import io
import logging
+import math
import os
+import re
import zipfile
-import time
+from random import randint
+from threading import Thread
+import chardet
import rarfile
-from subzero.language import Language
from guessit import guessit
from requests import Session
-from six import text_type
-
+from requests.adapters import HTTPAdapter
from subliminal import __short_version__
-from subliminal.exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded
+from subliminal.exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded, Error, ProviderError
from subliminal.providers import ParserBeautifulSoup, Provider
-from subliminal.subtitle import SUBTITLE_EXTENSIONS, fix_line_ending, Subtitle
-from subliminal_patch.subtitle import guess_matches
+from subliminal.subtitle import SUBTITLE_EXTENSIONS, Subtitle, fix_line_ending
from subliminal.video import Episode, Movie
-from subliminal.utils import sanitize_release_group
-from subliminal.score import get_equivalent_release_groups
-from subliminal_patch.utils import sanitize
+from subliminal_patch.score import framerate_equal
+from subliminal_patch.subtitle import guess_matches, sanitize
+from subzero.language import Language
-logger = logging.getLogger(__name__)
+from .utils import FIRST_THOUSAND_OR_SO_USER_AGENTS as AGENT_LIST
+logger = logging.getLogger(__name__)
-# class TitulkySubtitle(Subtitle):
-# """Titulky Subtitle."""
-# provider_name = 'Titulky'
-#
-# def __init__(self, language, page_link, year, version, download_link):
-# super(TitulkySubtitle, self).__init__(language, page_link=page_link)
-# self.year = year
-# self.version = version
-# self.download_link = download_link
-# self.hearing_impaired = None
-# self.encoding = 'UTF-8'
-#
-# @property
-# def id(self):
-# return self.download_link
-#
-# def get_matches(self, video):
-# matches = set()
-#
-# # episode
-# if isinstance(video, Episode):
-# # other properties
-# matches |= guess_matches(video, guessit(self.version, {'type': 'episode'}), partial=True)
-# # movie
-# elif isinstance(video, Movie):
-# # other properties
-# matches |= guess_matches(video, guessit(self.version, {'type': 'movie'}), partial=True)
-#
-# return matches
class TitulkySubtitle(Subtitle):
+ """Titulky.com subtitle"""
provider_name = 'titulky'
- def __init__(self, language, page_link, season, episode, version, download_link, year, title, asked_for_release_group=None,
- asked_for_episode=None):
- super(TitulkySubtitle, self).__init__(language, page_link=page_link)
+ hash_verifiable = False
+ hearing_impaired_verifiable = False
+
+ def __init__(self, sub_id, language, title, year, release_info, fps, uploader, approved, page_link, download_link, season=None, episode=None, skip_wrong_fps=False):
+ super().__init__(language, page_link=page_link)
+
+ self.title = title
+ self.year = year
+ self.sub_id = sub_id
+ self.fps = fps
self.season = season
self.episode = episode
- self.version = version
- self.year = year
- self.download_link = download_link
- for t in title:
- self.title = t
- if year:
- self.year = int(year)
-
+ self.release_info = release_info
+ self.language = language
+ self.approved = approved
self.page_link = page_link
- self.asked_for_release_group = asked_for_release_group
- self.asked_for_episode = asked_for_episode
-
+ self.uploader = uploader
+ self.download_link = download_link
+ self.skip_wrong_fps = skip_wrong_fps
+ self.matches = None
+
@property
def id(self):
- return self.download_link
+ return self.sub_id
+
+ def get_fps(self):
+ return self.fps
+
def get_matches(self, video):
- """
- patch: set guessit to single_value
- :param video:
- :return:
- """
matches = set()
-
- # episode
- if isinstance(video, Episode):
- # series
- if video.series:
- matches.add('series')
- # year
- if video.original_series and self.year is None or video.year and video.year == self.year:
- matches.add('year')
- # season
- if video.season and self.season == video.season:
+ _type = 'movie' if isinstance(video, Movie) else 'episode'
+
+ if _type == 'episode':
+ ## EPISODE
+ if self.season and self.season == video.season:
matches.add('season')
- # episode
- if video.episode and self.episode == video.episode:
+ if self.episode and self.episode == video.episode:
+ matches.add('episode')
+
+ if self.season is None and self.episode is None:
matches.add('episode')
- # guess
- matches |= guess_matches(video, guessit(self.version, {'type': 'episode'}))
- pass
- # movie
- elif isinstance(video, Movie):
- # title
- if video.title and (sanitize(self.title) in (
- sanitize(name) for name in [video.title] + video.alternative_titles)):
- matches.add('title')
- # year
- if video.year and self.year == video.year:
- matches.add('year')
- # guess
- matches |= guess_matches(video, guessit(self.version, {'type': 'movie'}))
+
+ if sanitize(f"S{video.season:02d}E{video.episode:02d}") in sanitize(self.title):
+ matches.add('season')
+ matches.add('episode')
+
+ if video.series and sanitize(video.series) in sanitize(self.title):
+ matches.add('series')
+
+ elif _type == 'movie':
+ ## MOVIE
+ if video.title and sanitize(video.title) in sanitize(self.title):
+ matches.add('title')
+
+ if video.year and video.year == self.year:
+ matches.add('year')
- self.matches = matches
+ matches |= guess_matches(video, guessit(self.release_info, {"type": _type}))
+
+
+ if self.skip_wrong_fps and video.fps and self.fps and not framerate_equal(video.fps, self.fps):
+ logger.info(f"Titulky.com: Skipping subtitle {self}: wrong FPS")
+ matches.clear()
+
+ self.matches = matches
return matches
-
- # def get_matches(self, video):
- # matches = set()
- #
- # # episode
- # if isinstance(video, Episode):
- # # series
- # if video.series and (sanitize(self.series_name) in (
- # sanitize(name) for name in [video.series] + video.alternative_series)):
- # matches.add('series')
- # # movie
- # elif isinstance(video, Movie):
- # # title
- # if video.title and (sanitize(self.movie_name) in (
- # sanitize(name) for name in [video.title] + video.alternative_titles)):
- # matches.add('title')
- #
- # # # episode
- # # if isinstance(video, Episode):
- # # # other properties
- # # matches |= guess_matches(video, guessit(self.version, {'type': 'episode'}), partial=True)
- # # # movie
- # # elif isinstance(video, Movie):
- # # # other properties
- # # matches |= guess_matches(video, guessit(self.version, {'type': 'movie'}), partial=True)
- #
- # return matches
class TitulkyProvider(Provider):
- """Titulky Provider."""
- languages = {Language(l) for l in ['ces', 'slk']}
+ """Titulky.com provider"""
- server_url = 'https://oldpremium.titulky.com'
- sign_out_url = '?Logoff=true'
- search_url_series = '?Fulltext={}'
- search_url_movies = '?Searching=AdvancedResult&ARelease={}'
- dn_url = 'https://oldpremium.titulky.com'
- download_url = 'https://oldpremium.titulky.com/idown.php?titulky='
+ languages = {Language(l) for l in ['ces', 'slk']}
+ hash_verifiable = False
+ hearing_impaired_verifiable = False
+
- UserAgent = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)'
+ server_url = 'https://premium.titulky.com'
+ login_url = server_url
+ logout_url = f"{server_url}?action=logout"
+ download_url = f"{server_url}/download.php?id="
+
+ timeout = 30
+ max_threads = 5
subtitle_class = TitulkySubtitle
- def __init__(self, username=None, password=None):
- if any((username, password)) and not all((username, password)):
- raise ConfigurationError('Username and password must be specified')
+ def __init__(self, username=None, password=None, skip_wrong_fps=None, approved_only=None, multithreading=None):
+ if not all([username, password]):
+ raise ConfigurationError("Username and password must be specified!")
+
+ if type(skip_wrong_fps) is not bool:
+ raise ConfigurationError(f"Skip_wrong_fps {skip_wrong_fps} must be a boolean!")
+
+ if type(approved_only) is not bool:
+ raise ConfigurationError(f"Approved_only {approved_only} must be a boolean!")
+
+ if type(multithreading) is not bool:
+ raise ConfigurationError(f"Multithreading {multithreading} must be a boolean!")
+
self.username = username
self.password = password
- self.logged_in = False
+ self.skip_wrong_fps = skip_wrong_fps
+ self.approved_only = approved_only
+ self.multithreading = multithreading
+
self.session = None
def initialize(self):
self.session = Session()
- self.session.headers['User-Agent'] = 'Subliminal/{}'.format(__short_version__)
-
- # login
- if self.username and self.password:
- logger.info('Logging in')
- self.session.get(self.server_url)
- data = {'Login': self.username,
- 'Password': self.password}
- r = self.session.post(self.server_url, data, allow_redirects=False, timeout=10)
-
- if 'BadLogin' in r.text:
- raise AuthenticationError(self.username)
-
- logger.debug('Logged in')
- self.logged_in = True
+ # Set max pool size to the max number of threads we will use (i .e. the max number of search result rows)
+ # or set it to the default value if multithreading is disabled.
+ pool_maxsize = self.max_threads + 3 if self.max_threads > 10 else 10
+ self.session.mount('https://', HTTPAdapter(pool_maxsize=pool_maxsize))
+ self.session.mount('http://', HTTPAdapter(pool_maxsize=pool_maxsize))
+
+ # Set headers
+ self.session.headers['User-Agent'] = AGENT_LIST[randint(0, len(AGENT_LIST) - 1)]
+ self.session.headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
+ self.session.headers['Accept-Language'] = 'sk,cz,en;q=0.5'
+ self.session.headers['Accept-Encoding'] = 'gzip, deflate'
+ self.session.headers['DNT'] = '1'
+ self.session.headers['Connection'] = 'keep-alive'
+ self.session.headers['Upgrade-Insecure-Requests'] = '1'
+ self.session.headers['Cache-Control'] = 'max-age=0'
+
+ self.login()
def terminate(self):
- # logout
- if self.logged_in:
- logger.info('Logging out')
- r = self.session.get(self.server_url + self.sign_out_url, timeout=10)
- r.raise_for_status()
- logger.debug('Logged out')
- self.logged_in = False
-
+ self.logout()
self.session.close()
- def query(self, keyword, season=None, episode=None, year=None, video=None):
- params = keyword
- if season and episode:
- params += ' S{season:02d}E{episode:02d}'.format(season=season, episode=episode)
- elif year:
- params += '&ARok={:4d}'.format(year)
-
- logger.debug('Searching subtitles %r', params)
- subtitles = []
- if season and episode:
- search_link = self.server_url + text_type(self.search_url_series).format(params)
+ def login(self):
+ logger.info("Titulky.com: Logging in")
+
+ self.session.get(self.server_url)
+
+ data = {
+ 'LoginName': self.username,
+ 'LoginPassword': self.password
+ }
+ res = self.session.post(self.server_url, data, allow_redirects=False, timeout=self.timeout)
+
+ # If the response is a redirect and doesnt point to an error message page, then we are logged in
+ if res.status_code == 302 and 'msg_type=i' in res.headers['Location']:
+ return True
+ else:
+ raise AuthenticationError("Login failed")
+
+ def logout(self):
+ logger.info("Titulky.com: Logging out")
+
+ res = self.session.get(self.logout_url, allow_redirects=False, timeout=self.timeout)
+
+ # If the response is a redirect and doesnt point to an error message page, then we are logged out
+ if res.status_code == 302 and 'msg_type=i' in res.headers['Location']:
+ return True
+ else:
+ raise AuthenticationError("Logout failed.")
+
+ def fetch_page(self, url):
+ logger.debug(f"Titulky.com: Fetching url: {url}")
+ res = self.session.get(url, timeout=self.timeout)
+
+ if res.status_code != 200:
+ raise ProviderError(f"Fetch failed with status code {res.status_code}")
+ if not res.text:
+ raise ProviderError("No response returned from the provider")
+
+ return res.text
+
+ def build_search_url(self, params):
+ result = f"{self.server_url}/?"
+
+ params['action'] = 'search'
+ params['fsf'] = 1 # Requires subtitle names to match full search keyword
+
+ for key, value in params.items():
+ result += f'{key}={value}&'
+
+ # Remove last &
+ result = result[:-1]
+
+ # Remove spaces
+ result = result.replace(' ', '+')
+
+ return result
+
+ # Parse details of an individual subtitle: title, year, language, etc.
+ def parse_details(self, url):
+ html_src = self.fetch_page(url)
+ details_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
+
+ details_container = details_page_soup.find('div', class_='detail')
+ if not details_container:
+ logger.debug("Titulky.com: Could not find details div container. Skipping.")
+ return False
+
+ ### TITLE AND YEAR
+ h1_tag = details_container.find('h1', id='titulky')
+ if not h1_tag:
+ logger.debug("Titulky.com: Could not find h1 tag. Skipping.")
+ return False
+ # The h1 tag contains the title of the subtitle and year
+ h1_texts = [text.strip() for text in h1_tag.stripped_strings]
+
+ if len(h1_texts) < 1:
+ logger.debug("Titulky.com: The header tag did not include sufficient data. Skipping.")
+ return False
+ title = h1_texts[0]
+ year = int(h1_texts[1]) if len(h1_texts) > 1 else None
+
+ ### UPLOADER
+ uploader_tag = details_container.find('div', class_='ulozil')
+ if not uploader_tag:
+ logger.debug("Titulky.com: Could not find uploader tag. Skipping.")
+ return False
+ uploader_anchor_tag = uploader_tag.find('a')
+ if not uploader_anchor_tag:
+ logger.debug("Titulky.com: Could not find uploader anchor tag. Skipping.")
+ return False
+ uploader = uploader_anchor_tag.string.strip()
+
+ ### RELEASE
+ release_tag = details_container.find('div', class_='releas')
+ if not release_tag:
+ logger.debug("Titulky.com: Could not find releas tag. Skipping.")
+ return False
+ release = release_tag.get_text(strip=True)
+
+ ### LANGUAGE
+ language = None
+ czech_flag = details_container.select('img[src*=\'flag-CZ\']')
+ slovak_flag = details_container.select('img[src*=\'flag-SK\']')
+ if czech_flag and not slovak_flag:
+ language = Language('ces')
+ elif slovak_flag and not czech_flag:
+ language = Language('slk')
+
+ ### FPS
+ fps = None
+ fps_icon_tag_selection = details_container.select('img[src*=\'Movieroll\']')
+
+ if len(fps_icon_tag_selection) > 0 and hasattr(fps_icon_tag_selection[0], 'parent'):
+ fps_icon_tag = fps_icon_tag_selection[0]
+ parent_text = fps_icon_tag.parent.get_text(strip=True)
+ match = re.findall('(\d+,\d+) fps', parent_text)
+
+ # If the match is found, change the decimal separator to a dot and convert to float
+ fps = float(match[0].replace(',', '.')) if len(match) > 0 else None
+
+ # Clean up
+ details_page_soup.decompose()
+ details_page_soup = None
+
+ # Return the subtitle details
+ return {
+ 'title': title,
+ 'year': year,
+ 'uploader': uploader,
+ 'release': release,
+ 'language': language,
+ 'fps': fps
+ }
+
+ def process_row(self, row, keyword, thread_id=None, threads_data=None):
+ try:
+ # The first anchor tag is an image preview, the second is the title
+ anchor_tag = row.find_all('a')[1]
+ title = anchor_tag.string.strip()
+ # The details link is relative, so we need to remove the dot at the beginning
+ details_link = f"{self.server_url}{anchor_tag.get('href')[1:]}"
+ id_match = re.findall('id=(\d+)', details_link)
+ sub_id = id_match[0] if len(id_match) > 0 else None
+ download_link = f"{self.download_url}{sub_id}"
+
+ # Approved subtitles have a pbl1 class for their row, others have a pbl0 class
+ approved = True if 'pbl1' in row.get('class') else False
+
+ # Skip subtitles that do not contain keyword in their title
+ if keyword and sanitize(keyword) not in sanitize(title):
+ logger.debug(f"Titulky.com: Skipping subtitle '{title}' because it does not contain the keyword '{keyword}'")
+ if type(threads_data) is list and type(thread_id) is int:
+ threads_data[thread_id] = {
+ 'sub_info': None,
+ 'exception': None
+ }
+
+ return None
+
+ details = self.parse_details(details_link)
+ if not details:
+ # Details parsing was NOT successful, skipping
+ if type(threads_data) is list and type(thread_id) is int:
+ threads_data[thread_id] = {
+ 'sub_info': None,
+ 'exception': None
+ }
+
+ return None
+
+ # Return additional data besides the subtitle details
+ details['id'] = sub_id
+ details['approved'] = approved
+ details['details_link'] = details_link
+ details['download_link'] = download_link
+
+ if type(threads_data) is list and type(thread_id) is int:
+ threads_data[thread_id] = {
+ 'sub_info': details,
+ 'exception': None
+ }
+
+ return details
+ except:
+ e = Error("Whoops, something unexpected happend while fetching or parsing details page.")
+
+ if type(threads_data) is list and type(thread_id) is int:
+ threads_data[thread_id] = {
+ 'sub_info': None,
+ 'exception': e
+ }
+
+ raise e
+
+ # There are multiple ways to find subs from this provider:
+ # 1. SEARCH by sub title
+ # - parameter: .................. Fulltext=
+ # 2. SEARCH by imdb id
+ # - parameter: .................. IMDB=
+ # 3. SEARCH by season/episode
+ # - parameter: .................. Sezona=
+ # - parameter: .................. Epizoda=
+ # 4. SEARCH by year
+ # - parameter: .................. Rok=
+ # 5. SEARCH by video type
+ # - parameter: .................. Serial=<('S' for series | 'F' for movies | '' for all)>
+ # 6. SEARCH by language
+ # - parameter: .................. Jazyk=<('CZ' for czech | 'SK' for slovak | '' for all)>
+ # 7. SEARCH by status
+ # - parameter: .................. ASchvalene=<('1' for approved only | '-0' for subs awaiting approval | '' for all)>
+ # - redirects should NOT be allowed here
+ #
+ # 8. BROWSE subtitles by IMDB ID
+ # - Subtitles are here categorised by seasons and episodes
+ # - URL: https://premium.titulky.com/?action=serial&step=&id=
+ # - it seems that the url redirects to a page with their own internal ID, redirects should be allowed here
+ def query(self, language, type, keyword=None, year=None, season=None, episode=None, imdb_id=None):
+ ## Build the search URL
+ params = {}
+
+ # Keyword
+ if keyword:
+ params['Fulltext'] = keyword
+ # Video type
+ if type == 'episode':
+ params['Serial'] = 'S'
+ else:
+ params['Serial'] = 'F'
+ # Season / Episode
+ if season:
+ params['Sezona'] = season
+ if episode:
+ params['Epizoda'] = episode
+ # IMDB ID
+ if imdb_id:
+ params['IMDB'] = imdb_id[2:] # Remove the tt from the imdb id
+ # Year
+ if year:
+ params['Rok'] = year
+ # Language
+ if language == Language('ces'):
+ params['Jazyk'] = 'CZ'
+ elif language == Language('slk'):
+ params['Jazyk'] = 'SK'
+ elif language == None:
+ params['Jazyk'] = ''
+ else:
+ return []
+ # Status
+ if self.approved_only:
+ params['ASchvalene'] = '1'
else:
- search_link = self.server_url + text_type(self.search_url_movies).format(params)
+ params['ASchvalene'] = ''
+
+ search_url = self.build_search_url(params)
- r = self.session.get(search_link, timeout=30)
- r.raise_for_status()
+ ## Search results page parsing
+ html_src = self.fetch_page(search_url)
+ search_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
- if not r.content:
- logger.debug('No data returned from provider')
+ # If there is a message containing "Žádny odpovídající záznam", it means that there are no results
+ # If that's the case, return an empty list
+ error_message = search_page_soup.select('.panel-body > strong')
+ if len(error_message) > 0 and 'Žádný odpovídající záznam' in error_message[0].get_text(strip=True):
+ logger.info("Titulky.com: No results found")
return []
- # soup = ParserBeautifulSoup(r.content.decode('utf-8', 'ignore'), ['lxml', 'html.parser'])
-
- # for entity in soup.select('table .main_table > tbody > tr'):
- # for entity in soup.find_all("table", class_="main_table"):
- # moviename = entity.text
- # entity_url = self.server_url + entity['href']
- # logger.debug(entity_url)
- # r = self.session.get(entity_url, timeout=30)
- # r.raise_for_status()
- # logger.debug('looking into ' + entity_url)
-
- soup = ParserBeautifulSoup(r.content.decode('utf-8', 'ignore'), ['lxml', 'html.parser']).find("table",
- class_="main_table")
- # loop over subtitles cells
- if soup:
- subs = soup.find_all("tr", class_="row1")
- subs += soup.find_all("tr", class_="row2")
- for sub in subs:
- page_link = '%s%s' % (self.server_url, sub.a.get('href').encode('utf-8'))
- title = sub.find_all('td')[0:1]
- title = [x.text for x in title]
- version = sub.find(class_="fixedTip")
- if version is None:
- version = ""
- else:
- version = version['title']
- try:
- r = sub.find_all('td')[6:7]
- # r2 = td.find("td", "img")
- langs = [x.text.encode('utf-8') for x in r]
- pass
- except:
- langs = 'CZ'
- name = '%s (%s)' % (version, langs)
+ # Get the table containing the search results
+ table = search_page_soup.find('table', class_='table')
+ if not table:
+ logger.debug("Titulky.com: Could not find table")
+ raise Error("Could not find table. Did the HTML source change?")
+
+ # Get table body containing rows of subtitles
+ table_body = table.find('tbody')
+ if not table_body:
+ logger.debug("Titulky.com: Could not find table body")
+ raise Error("Could not find table body. Did the HTML source change?")
+
+ ## Loop over all subtitles on the first page and put them in a list
+ subtitles = []
+ rows = table_body.find_all('tr')
+
+ if not self.multithreading:
+ # Process the rows sequentially
+ logger.info("Titulky.com: processing results in sequence")
+ for i, row in enumerate(rows):
+ sub_info = self.process_row(row, keyword)
- if b'CZ' in langs:
- language = Language('ces')
- elif b'SK' in langs:
- language = Language('slk')
- # read the item
- # subtitle = self.subtitle_class(language, page_link, year, version, page_link.replace("detail", "dld"))
- download_link = sub.find('a', class_='titulkydownloadajax')
- download_link = self.download_url + download_link.get('href')
+ # If subtitle info was returned, then everything was okay
+ # and we can instationate it and add it to the list
+ if sub_info:
+ logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}")
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['title'], sub_info['year'], sub_info['release'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], season=season, episode=episode, skip_wrong_fps=self.skip_wrong_fps)
+ subtitles.append(subtitle_instance)
+ else:
+ # No subtitle info was returned, i. e. something unexpected
+ # happend during subtitle details page fetching and processing.
+ logger.debug(f"Titulky.com: No subtitle info retrieved, row: {i}")
+ else:
+ # Process the rows in paralell
+ logger.info(f"Titulky.com: processing results in parelell, {self.max_threads} rows at a time.")
+
+ threads = [None] * len(rows)
+ threads_data = [None] * len(rows)
+
+ # Process rows in parallel, self.max_threads at a time.
+ cycles = math.ceil(len(rows)/self.max_threads)
+ for i in range(cycles):
+ # Batch number i
+ starting_index = i * self.max_threads # Inclusive
+ ending_index = starting_index + self.max_threads # Non-inclusive
+
+ # Create threads for all rows in this batch
+ for j in range(starting_index, ending_index):
+ # Check if j-th row exists
+ if j < len(rows):
+ # Row number j
+ logger.debug(f"Titulky.com: Creating thread {j} (batch: {i})")
+ # Create a thread for row j and start it
+ threads[j] = Thread(target=self.process_row, args=[rows[j], keyword], kwargs={'thread_id': j, 'threads_data': threads_data})
+ threads[j].start()
+
+ # Wait for all created threads to finish before moving to another batch of rows
+ for j in range(starting_index, ending_index):
+ # Check if j-th row exists
+ if j < len(rows):
+ threads[j].join()
+
+ # Process the resulting data from all threads
+ for i in range(len(threads_data)):
+ thread_data = threads_data[i]
+
+ # If the thread returned didn't return anything, but expected a dict object
+ if not thread_data:
+ raise Error(f"No data returned from thread ID: {i}")
- subtitle = self.subtitle_class(language, page_link,
- season, episode, version, download_link, year, title,
- asked_for_release_group=video.release_group,
- asked_for_episode=episode)
+ # If an exception was raised in a thread, raise it again here
+ if "exception" in thread_data and thread_data["exception"]:
+ logger.debug(f"Titulky.com: An error occured in a thread ID: {i}")
+ raise thread_data['exception']
+
+ # If the thread returned a subtitle info, great, instantiate it and add it to the list
+ if 'sub_info' in thread_data and thread_data['sub_info']:
+ # Instantiate the subtitle object
+ logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}")
+ sub_info = thread_data['sub_info']
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['title'], sub_info['year'], sub_info['release'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], season=season, episode=episode, skip_wrong_fps=self.skip_wrong_fps)
+ subtitles.append(subtitle_instance)
+ else:
+ # The thread returned data, but it didn't contain a subtitle info, i. e. something unexpected
+ # happend during subtitle details page fetching and processing.
+ logger.debug(f"Titulky.com: No subtitle info retrieved, thread ID: {i}")
- logger.debug('Found subtitle %r', subtitle)
- subtitles.append(subtitle)
-
- soup.decompose()
- soup = None
+ # Clean up
+ search_page_soup.decompose()
+ search_page_soup = None
+
+ logger.debug(f"Titulky.com: Found subtitles: {subtitles}")
return subtitles
- def list_subtitles(self, video, languages):
- if isinstance(video, Episode):
- titles = [video.series] + video.alternative_series
- elif isinstance(video, Movie):
- titles = [video.title] + video.alternative_titles
- else:
- titles = []
-
+ def list_subtitles(self, video, languages):
subtitles = []
- # query for subtitles with the show_id
- for title in titles:
+
+ # Possible paths:
+ # (1) Search by IMDB ID [and season/episode for tv series]
+ # (2) Search by keyword: video (title|series) [and season/episode for tv series]
+ # (3) Search by keyword: video series + S00E00 (tv series only)
+
+ for language in languages:
if isinstance(video, Episode):
- subtitles += [s for s in self.query(title, season=video.season, episode=video.episode,
- year=video.year, video=video)
- if s.language in languages]
+ # (1)
+ logger.debug("Titulky.com: Finding subtitles by IMDB ID (1)")
+ if video.series_imdb_id:
+ partial_subs = self.query(language, 'episode', imdb_id=video.series_imdb_id, season=video.season, episode=video.episode)
+ if(len(partial_subs) > 0):
+ subtitles += partial_subs
+ continue
+
+ # (2)
+ logger.debug("Titulky.com: Finding subtitles by keyword (2)")
+ keyword = video.series
+ partial_subs = self.query(language, 'episode', keyword=keyword, season=video.season, episode=video.episode)
+ if(len(partial_subs) > 0):
+ subtitles += partial_subs
+ continue
+
+ # (3)
+ logger.debug("Titulky.com: Finding subtitles by keyword (3)")
+ keyword = f"{video.series} S{video.season:02d}E{video.episode:02d}"
+ partial_subs = self.query(language, 'episode', keyword=keyword)
+ subtitles += partial_subs
elif isinstance(video, Movie):
- subtitles += [s for s in self.query(title, year=video.year, video=video)
- if s.language in languages]
-
+ # (1)
+ logger.debug("Titulky.com: Finding subtitles by IMDB ID (1)")
+ if video.imdb_id:
+ partial_subs = self.query(language, 'movie', imdb_id=video.imdb_id)
+ if(len(partial_subs) > 0):
+ subtitles += partial_subs
+ continue
+
+ # (2)
+ logger.debug("Titulky.com: Finding subtitles by keyword (2)")
+ keyword = video.title
+ partial_subs = self.query(language, 'movie', keyword=keyword)
+ subtitles += partial_subs
+
return subtitles
+# The rest is mostly old code from original implementation. Might want to redo it.
def download_subtitle(self, subtitle):
- if isinstance(subtitle, TitulkySubtitle):
- # download the subtitle
- logger.info('Downloading subtitle %r', subtitle)
- r = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link},
- timeout=30)
- r.raise_for_status()
+ res = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link},
+ timeout=self.timeout)
+ res.raise_for_status()
- if not r.content:
- logger.debug('Unable to download subtitle. No data returned from provider')
- return
- elif 'Limit vyčerpán' in r.text:
- raise DownloadLimitExceeded
-
- soup = ParserBeautifulSoup(r.text, ['lxml', 'html.parser'])
- # links = soup.find("a", {"id": "downlink"}).find_all('a')
- link = soup.find(id="downlink")
- # TODO: add settings for choice
-
- url = self.dn_url + link.get('href')
- time.sleep(0.5)
- r = self.session.get(url, headers={'Referer': subtitle.download_link},
- timeout=30)
- r.raise_for_status()
-
-
- archive_stream = io.BytesIO(r.content)
+ archive_stream = io.BytesIO(res.content)
archive = None
if rarfile.is_rarfile(archive_stream):
- logger.debug('Identified rar archive')
+ logger.debug("Titulky.com: Identified rar archive")
archive = rarfile.RarFile(archive_stream)
subtitle_content = _get_subtitle_from_archive(archive)
elif zipfile.is_zipfile(archive_stream):
- logger.debug('Identified zip archive')
+ logger.debug("Titulky.com: Identified zip archive")
archive = zipfile.ZipFile(archive_stream)
subtitle_content = _get_subtitle_from_archive(archive)
else:
- subtitle_content = r.content
-
+ subtitle_content = res.content
+
if subtitle_content:
subtitle.content = fix_line_ending(subtitle_content)
+ return subtitle_content
else:
- logger.debug('Could not extract subtitle from %r', archive)
-
+ logger.debug(f"Titulky.com: Could not extract subtitle from {archive}")
def _get_subtitle_from_archive(archive):
+ if '_info.txt' in archive.namelist():
+ info_content_binary = archive.read('_info.txt')
+ info_content = info_content_binary.decode(chardet.detect(info_content_binary)['encoding'])
+ if "nestaženo - překročen limit" in info_content:
+ raise DownloadLimitExceeded("The download limit has been exceeded")
+
for name in archive.namelist():
# discard hidden files
if os.path.split(name)[-1].startswith('.'):
From 58de876f193e8358836b8fd12d25bc7e9d65005c Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Thu, 28 Oct 2021 06:50:50 -0400
Subject: [PATCH 03/41] Fixed notification removal from settings. #1594
---
frontend/src/Settings/Notifications/components.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/frontend/src/Settings/Notifications/components.tsx b/frontend/src/Settings/Notifications/components.tsx
index 16530069d..84add66ca 100644
--- a/frontend/src/Settings/Notifications/components.tsx
+++ b/frontend/src/Settings/Notifications/components.tsx
@@ -92,8 +92,7 @@ const NotificationModal: FunctionComponent = ({
variant="danger"
onClick={() => {
if (current) {
- current.enabled = false;
- update(current);
+ update({ ...current, enabled: false });
}
closeModal();
}}
From aaa8b48dad3a1d4de5a8f2f04fcc96cf1fb5fb3a Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Thu, 28 Oct 2021 22:15:35 -0400
Subject: [PATCH 04/41] Fixed Brazilian Portuguese audio language match with
Radarr.
---
bazarr/get_movies.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/bazarr/get_movies.py b/bazarr/get_movies.py
index 0ae5b17c2..3ff4bd951 100644
--- a/bazarr/get_movies.py
+++ b/bazarr/get_movies.py
@@ -16,6 +16,7 @@ from get_rootfolder import check_radarr_rootfolder
from get_subtitle import movies_download_subtitles
from database import get_exclusion_clause, TableMovies
from event_handler import event_stream, show_progress, hide_progress
+from get_languages import language_from_alpha2
headers = {"User-Agent": os.environ["SZ_USER_AGENT"]}
@@ -450,7 +451,10 @@ def movieParser(movie, action, tags_dict, movie_default_profile, audio_profiles)
for item in movie['movieFile']['languages']:
if isinstance(item, dict):
if 'name' in item:
- audio_language.append(item['name'])
+ language = item['name']
+ if item['name'] == 'Portuguese (Brazil)':
+ language = language_from_alpha2('pb')
+ audio_language.append(language)
tags = [d['label'] for d in tags_dict if d['id'] in movie['tags']]
From 0e50335e2d26597cac20ee5264a78ea9c53e7ce0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20Bart=C3=ADk?=
<63553146+sambartik@users.noreply.github.com>
Date: Fri, 29 Oct 2021 21:24:10 +0200
Subject: [PATCH 05/41] Improved results with Titulki provider
---
libs/subliminal_patch/providers/titulky.py | 192 +++++++++++++--------
1 file changed, 120 insertions(+), 72 deletions(-)
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index e20bf0adc..272aee8b6 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -36,10 +36,10 @@ class TitulkySubtitle(Subtitle):
hash_verifiable = False
hearing_impaired_verifiable = False
- def __init__(self, sub_id, language, title, year, release_info, fps, uploader, approved, page_link, download_link, season=None, episode=None, skip_wrong_fps=False):
+ def __init__(self, sub_id, language, names, season, episode, year, release_info, fps, uploader, approved, page_link, download_link, skip_wrong_fps=False):
super().__init__(language, page_link=page_link)
- self.title = title
+ self.names = names
self.year = year
self.sub_id = sub_id
self.fps = fps
@@ -73,21 +73,17 @@ class TitulkySubtitle(Subtitle):
if self.episode and self.episode == video.episode:
matches.add('episode')
- if self.season is None and self.episode is None:
- matches.add('episode')
-
- if sanitize(f"S{video.season:02d}E{video.episode:02d}") in sanitize(self.title):
- matches.add('season')
- matches.add('episode')
-
- if video.series and sanitize(video.series) in sanitize(self.title):
+ name_matches = [video.series and sanitize(name) in sanitize(video.series) for name in self.names]
+ if any(name_matches):
matches.add('series')
-
+
elif _type == 'movie':
## MOVIE
- if video.title and sanitize(video.title) in sanitize(self.title):
- matches.add('title')
+ name_matches = [video.title and sanitize(name) in sanitize(video.title) for name in self.names]
+ if any(name_matches):
+ matches.add('title')
+ ## MOVIE OR EPISODE
if video.year and video.year == self.year:
matches.add('year')
@@ -223,68 +219,90 @@ class TitulkyProvider(Provider):
return result
- # Parse details of an individual subtitle: title, year, language, etc.
+ # Parse details of an individual subtitle: release, language, uploader, fps and year
def parse_details(self, url):
html_src = self.fetch_page(url)
details_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
details_container = details_page_soup.find('div', class_='detail')
if not details_container:
+ # The subtitles were removed and got redirected to a different page. Better treat this silently.
logger.debug("Titulky.com: Could not find details div container. Skipping.")
return False
- ### TITLE AND YEAR
- h1_tag = details_container.find('h1', id='titulky')
- if not h1_tag:
- logger.debug("Titulky.com: Could not find h1 tag. Skipping.")
- return False
- # The h1 tag contains the title of the subtitle and year
- h1_texts = [text.strip() for text in h1_tag.stripped_strings]
-
- if len(h1_texts) < 1:
- logger.debug("Titulky.com: The header tag did not include sufficient data. Skipping.")
- return False
- title = h1_texts[0]
- year = int(h1_texts[1]) if len(h1_texts) > 1 else None
-
- ### UPLOADER
- uploader_tag = details_container.find('div', class_='ulozil')
- if not uploader_tag:
- logger.debug("Titulky.com: Could not find uploader tag. Skipping.")
- return False
- uploader_anchor_tag = uploader_tag.find('a')
- if not uploader_anchor_tag:
- logger.debug("Titulky.com: Could not find uploader anchor tag. Skipping.")
- return False
- uploader = uploader_anchor_tag.string.strip()
-
### RELEASE
+ release = None
release_tag = details_container.find('div', class_='releas')
+
if not release_tag:
- logger.debug("Titulky.com: Could not find releas tag. Skipping.")
- return False
+ raise Error("Could not find release tag. Did the HTML source change?")
+
release = release_tag.get_text(strip=True)
+ if not release:
+ logger.info("Titulky.com: No release information supplied on details page.")
+
### LANGUAGE
language = None
czech_flag = details_container.select('img[src*=\'flag-CZ\']')
slovak_flag = details_container.select('img[src*=\'flag-SK\']')
+
if czech_flag and not slovak_flag:
language = Language('ces')
elif slovak_flag and not czech_flag:
language = Language('slk')
+ if not language:
+ logger.debug("Titulky.com: No language information supplied on details page.")
+
+ ### UPLOADER
+ uploader = None
+ uploader_tag = details_container.find('div', class_='ulozil')
+
+ if not uploader_tag:
+ raise Error("Could not find uploader tag. Did the HTML source change?")
+
+ uploader_anchor_tag = uploader_tag.find('a')
+
+ if not uploader_anchor_tag:
+ raise Error("Could not find uploader anchor tag. Did the HTML source change?")
+
+ uploader = uploader_anchor_tag.string.strip() if uploader_anchor_tag else None
+
+ if not uploader:
+ logger.debug("Titulky.com: No uploader name supplied on details page.")
+
### FPS
fps = None
fps_icon_tag_selection = details_container.select('img[src*=\'Movieroll\']')
- if len(fps_icon_tag_selection) > 0 and hasattr(fps_icon_tag_selection[0], 'parent'):
- fps_icon_tag = fps_icon_tag_selection[0]
- parent_text = fps_icon_tag.parent.get_text(strip=True)
- match = re.findall('(\d+,\d+) fps', parent_text)
+ if not fps_icon_tag_selection and not hasattr(fps_icon_tag_selection[0], 'parent'):
+ raise Error("Could not find parent of the fps icon tag. Did the HTML source change?")
+
+ fps_icon_tag = fps_icon_tag_selection[0]
+ parent_text = fps_icon_tag.parent.get_text(strip=True)
+ match = re.findall('(\d+,\d+) fps', parent_text)
- # If the match is found, change the decimal separator to a dot and convert to float
- fps = float(match[0].replace(',', '.')) if len(match) > 0 else None
+ # If the match is found, change the decimal separator to a dot and convert to float
+ fps = float(match[0].replace(',', '.')) if len(match) > 0 else None
+
+ if not fps:
+ logger.debug("Titulky.com: No fps supplied on details page.")
+
+ ### YEAR
+ year = None
+ h1_tag = details_container.find('h1', id='titulky')
+
+ if not h1_tag:
+ raise Error("Could not find h1 tag. Did the HTML source change?")
+
+ # The h1 tag contains the name of the subtitle and a year
+ h1_texts = [text for text in h1_tag.stripped_strings]
+ year = int(h1_texts[1]) if len(h1_texts) > 1 else None
+
+ if not year:
+ logger.debug("Titulky.com: No year supplied on details page.")
+
# Clean up
details_page_soup.decompose()
@@ -292,19 +310,17 @@ class TitulkyProvider(Provider):
# Return the subtitle details
return {
- 'title': title,
- 'year': year,
- 'uploader': uploader,
'release': release,
'language': language,
- 'fps': fps
+ 'uploader': uploader,
+ 'fps': fps,
+ 'year': year
}
def process_row(self, row, keyword, thread_id=None, threads_data=None):
try:
- # The first anchor tag is an image preview, the second is the title
+ # The first anchor tag is an image preview, the second is the name
anchor_tag = row.find_all('a')[1]
- title = anchor_tag.string.strip()
# The details link is relative, so we need to remove the dot at the beginning
details_link = f"{self.server_url}{anchor_tag.get('href')[1:]}"
id_match = re.findall('id=(\d+)', details_link)
@@ -314,9 +330,19 @@ class TitulkyProvider(Provider):
# Approved subtitles have a pbl1 class for their row, others have a pbl0 class
approved = True if 'pbl1' in row.get('class') else False
- # Skip subtitles that do not contain keyword in their title
- if keyword and sanitize(keyword) not in sanitize(title):
- logger.debug(f"Titulky.com: Skipping subtitle '{title}' because it does not contain the keyword '{keyword}'")
+ # Name + alternative names
+ table_columns = row.findAll("td")
+ main_name = anchor_tag.get_text(strip=True)
+ alt_names = [alt_name.strip() for alt_name in table_columns[2].get_text(strip=True).split("/")]
+ names = [main_name] + alt_names
+
+
+ # Loop over all subtitle names and check if the keyword contains them
+ name_matches = [keyword and sanitize(keyword) not in sanitize(name) for name in names]
+
+ # Skip subtitles that do not contain the keyword in their name(s)
+ if keyword and all(name_matches) is False:
+ logger.debug(f"Titulky.com: Skipping subtitle with names: '{names}', because it does not not contain the keyword: '{keyword}'")
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
'sub_info': None,
@@ -336,22 +362,25 @@ class TitulkyProvider(Provider):
return None
- # Return additional data besides the subtitle details
- details['id'] = sub_id
- details['approved'] = approved
- details['details_link'] = details_link
- details['download_link'] = download_link
+ # Combine all subtitle data into one dict
+ result = {
+ 'names': names,
+ 'id': sub_id,
+ 'approved': approved,
+ 'details_link': details_link,
+ 'download_link': download_link
+ }
+
+ result.update(details)
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
- 'sub_info': details,
+ 'sub_info': result,
'exception': None
}
return details
- except:
- e = Error("Whoops, something unexpected happend while fetching or parsing details page.")
-
+ except Exception as e:
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
'sub_info': None,
@@ -362,7 +391,7 @@ class TitulkyProvider(Provider):
# There are multiple ways to find subs from this provider:
# 1. SEARCH by sub title
- # - parameter: .................. Fulltext=
+ # - parameter: .................. Fulltext=
# 2. SEARCH by imdb id
# - parameter: .................. IMDB=
# 3. SEARCH by season/episode
@@ -460,8 +489,18 @@ class TitulkyProvider(Provider):
# and we can instationate it and add it to the list
if sub_info:
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}")
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['title'], sub_info['year'], sub_info['release'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], season=season, episode=episode, skip_wrong_fps=self.skip_wrong_fps)
+
+ # Try to parse S00E00 string from the main subtitle name
+ sub_season = None
+ sub_episode = None
+ season_episode_string = re.findall('S(\d+)E(\d+)', sub_info['names'][0], re.IGNORECASE)
+ if season_episode_string:
+ sub_season = season_episode_string[0][0]
+ sub_episode = season_episode_string[0][1]
+
+
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], sub_season, sub_episode, sub_info['year'], sub_info['release'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
subtitles.append(subtitle_instance)
else:
# No subtitle info was returned, i. e. something unexpected
@@ -506,8 +545,8 @@ class TitulkyProvider(Provider):
raise Error(f"No data returned from thread ID: {i}")
# If an exception was raised in a thread, raise it again here
- if "exception" in thread_data and thread_data["exception"]:
- logger.debug(f"Titulky.com: An error occured in a thread ID: {i}")
+ if 'exception' in thread_data and thread_data['exception']:
+ logger.debug(f"Titulky.com: An error occured while processing a row in the thread ID {i}")
raise thread_data['exception']
# If the thread returned a subtitle info, great, instantiate it and add it to the list
@@ -515,8 +554,17 @@ class TitulkyProvider(Provider):
# Instantiate the subtitle object
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}")
sub_info = thread_data['sub_info']
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['title'], sub_info['year'], sub_info['release'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], season=season, episode=episode, skip_wrong_fps=self.skip_wrong_fps)
+
+ # Try to parse S00E00 string from the main subtitle name
+ sub_season = None
+ sub_episode = None
+ season_episode_string = re.findall('S(\d+)E(\d+)', sub_info['names'][0], re.IGNORECASE)
+ if season_episode_string:
+ sub_season = season_episode_string[0][0]
+ sub_episode = season_episode_string[0][1]
+
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], sub_season, sub_episode, sub_info['year'], sub_info['release'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
subtitles.append(subtitle_instance)
else:
# The thread returned data, but it didn't contain a subtitle info, i. e. something unexpected
From e6c1dba37bc9351c10612924d56177107d6a46a6 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Fri, 29 Oct 2021 22:42:58 -0400
Subject: [PATCH 06/41] Fixed Radarr API call to get version with the latest
nightly.
---
bazarr/utils.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/bazarr/utils.py b/bazarr/utils.py
index 3b739aca7..dfb1c7799 100644
--- a/bazarr/utils.py
+++ b/bazarr/utils.py
@@ -315,8 +315,10 @@ class GetRadarrInfo:
if 'version' in radarr_json:
radarr_version = radarr_json['version']
else:
- rv = url_radarr() + "/api/v3/system/status?apikey=" + settings.radarr.apikey
- radarr_version = requests.get(rv, timeout=60, verify=False, headers=headers).json()['version']
+ raise json.decoder.JSONDecodeError
+ except json.decoder.JSONDecodeError:
+ rv = url_radarr() + "/api/v3/system/status?apikey=" + settings.radarr.apikey
+ radarr_version = requests.get(rv, timeout=60, verify=False, headers=headers).json()['version']
except Exception as e:
logging.debug('BAZARR cannot get Radarr version')
radarr_version = 'unknown'
From 3bc700225fc69737b466ed560519696094aa987d Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Sat, 30 Oct 2021 08:11:35 -0400
Subject: [PATCH 07/41] Fixed movies missing subtitles computation when there's
a forced subtitles track/file.
---
bazarr/list_subtitles.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bazarr/list_subtitles.py b/bazarr/list_subtitles.py
index aa81b025e..7c162e1c0 100644
--- a/bazarr/list_subtitles.py
+++ b/bazarr/list_subtitles.py
@@ -413,7 +413,7 @@ def list_missing_subtitles_movies(no=None, send_event=True):
# remove missing that have forced or hi subtitles for this language in existing
for item in actual_subtitles_list:
- if item[1] == 'True' or item[2] == 'True':
+ if item[2] == 'True':
try:
missing_subtitles_list.remove([item[0], 'False', 'False'])
except ValueError:
From 1eada712d696d3f7bdc0dbfd9898faf3605517bf Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Sat, 30 Oct 2021 08:25:20 -0400
Subject: [PATCH 08/41] no log: Fixed logging levels
---
bazarr/logger.py | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/bazarr/logger.py b/bazarr/logger.py
index 1893bb534..7b1e09683 100644
--- a/bazarr/logger.py
+++ b/bazarr/logger.py
@@ -118,8 +118,7 @@ def configure_logging(debug=False):
logging.getLogger("SignalRCoreClient").setLevel(logging.CRITICAL)
logging.getLogger("websocket").setLevel(logging.CRITICAL)
- logging.getLogger("werkzeug").setLevel(logging.WARNING)
- logging.getLogger("engineio.server").setLevel(logging.WARNING)
+ logging.getLogger("waitress").setLevel(logging.ERROR)
logging.getLogger("knowit").setLevel(logging.CRITICAL)
logging.getLogger("enzyme").setLevel(logging.CRITICAL)
logging.getLogger("guessit").setLevel(logging.WARNING)
From 006e17bdc2541d9eb9022e99b4da96d5ece04f24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20Bart=C3=ADk?=
<63553146+sambartik@users.noreply.github.com>
Date: Sun, 31 Oct 2021 15:18:21 +0100
Subject: [PATCH 09/41] Fixed some issues with Titulki provider
---
libs/subliminal_patch/providers/titulky.py | 129 ++++++++++++---------
1 file changed, 77 insertions(+), 52 deletions(-)
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index 272aee8b6..8afd6725d 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -53,7 +53,18 @@ class TitulkySubtitle(Subtitle):
self.download_link = download_link
self.skip_wrong_fps = skip_wrong_fps
self.matches = None
-
+
+ # Try to parse S00E00 string from the main subtitle name
+ season_episode_string = re.findall('S(\d+)E(\d+)', self.names[0], re.IGNORECASE)
+
+ # If we did not search for subtitles with season and episode numbers in search query,
+ # try to parse it from the main subtitle name that most likely contains it
+ if season_episode_string:
+ if self.season is None:
+ self.season = int(season_episode_string[0][0])
+ if self.episode is None:
+ self.episode = int(season_episode_string[0][1])
+
@property
def id(self):
return self.sub_id
@@ -61,41 +72,54 @@ class TitulkySubtitle(Subtitle):
def get_fps(self):
return self.fps
-
+
def get_matches(self, video):
matches = set()
_type = 'movie' if isinstance(video, Movie) else 'episode'
if _type == 'episode':
## EPISODE
+
+ # match season/episode
if self.season and self.season == video.season:
matches.add('season')
if self.episode and self.episode == video.episode:
matches.add('episode')
- name_matches = [video.series and sanitize(name) in sanitize(video.series) for name in self.names]
- if any(name_matches):
+ # match series name
+ series_names = [video.series] + video.alternative_series
+ if _contains_element(_from=series_names, _in=self.names):
matches.add('series')
+ # match episode title
+ episode_titles = [video.title]
+ if _contains_element(_from=episode_titles, _in=self.names):
+ matches.add('title')
+
elif _type == 'movie':
## MOVIE
- name_matches = [video.title and sanitize(name) in sanitize(video.title) for name in self.names]
- if any(name_matches):
+
+ # match movie title
+ video_titles = [video.title] + video.alternative_titles
+ if _contains_element(_from=video_titles, _in=self.names):
matches.add('title')
## MOVIE OR EPISODE
+
+ # match year
if video.year and video.year == self.year:
matches.add('year')
-
+ # match other properties based on release info
matches |= guess_matches(video, guessit(self.release_info, {"type": _type}))
-
+ # If turned on in settings, then do not match if video FPS is not equal to subtitle FPS
if self.skip_wrong_fps and video.fps and self.fps and not framerate_equal(video.fps, self.fps):
logger.info(f"Titulky.com: Skipping subtitle {self}: wrong FPS")
matches.clear()
self.matches = matches
+
return matches
@@ -317,7 +341,7 @@ class TitulkyProvider(Provider):
'year': year
}
- def process_row(self, row, keyword, thread_id=None, threads_data=None):
+ def process_row(self, row, video_names, thread_id=None, threads_data=None):
try:
# The first anchor tag is an image preview, the second is the name
anchor_tag = row.find_all('a')[1]
@@ -330,19 +354,20 @@ class TitulkyProvider(Provider):
# Approved subtitles have a pbl1 class for their row, others have a pbl0 class
approved = True if 'pbl1' in row.get('class') else False
- # Name + alternative names
+ # Subtitle name + its alternative names
table_columns = row.findAll("td")
- main_name = anchor_tag.get_text(strip=True)
- alt_names = [alt_name.strip() for alt_name in table_columns[2].get_text(strip=True).split("/")]
- names = [main_name] + alt_names
-
-
- # Loop over all subtitle names and check if the keyword contains them
- name_matches = [keyword and sanitize(keyword) not in sanitize(name) for name in names]
-
- # Skip subtitles that do not contain the keyword in their name(s)
- if keyword and all(name_matches) is False:
- logger.debug(f"Titulky.com: Skipping subtitle with names: '{names}', because it does not not contain the keyword: '{keyword}'")
+ main_sub_name = anchor_tag.get_text(strip=True)
+ alt_sub_names = [alt_sub_name.strip() for alt_sub_name in table_columns[2].get_text(strip=True).split("/")]
+ sub_names = [main_sub_name] + alt_sub_names
+
+ # Does at least one subtitle name contain one of the video names?
+ # Skip subtitles that do not match
+ # Video names -> the main title and alternative titles of a movie or an episode and so on...
+ # Subtitle names -> the main name and alternative names of a subtitle displayed in search results.
+ # Could be handled in TitulkySubtitle class, however we want to keep the number of requests
+ # as low as possible and this prevents the from requesting the details page unnecessarily
+ if not _contains_element(_from=video_names, _in=sub_names):
+ logger.debug(f"Titulky.com: Skipping subtitle with names: {sub_names}, because there was no match with video names: {video_names}")
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
'sub_info': None,
@@ -364,7 +389,7 @@ class TitulkyProvider(Provider):
# Combine all subtitle data into one dict
result = {
- 'names': names,
+ 'names': sub_names,
'id': sub_id,
'approved': approved,
'details_link': details_link,
@@ -411,7 +436,7 @@ class TitulkyProvider(Provider):
# - Subtitles are here categorised by seasons and episodes
# - URL: https://premium.titulky.com/?action=serial&step=&id=
# - it seems that the url redirects to a page with their own internal ID, redirects should be allowed here
- def query(self, language, type, keyword=None, year=None, season=None, episode=None, imdb_id=None):
+ def query(self, language, video_names, type, keyword=None, year=None, season=None, episode=None, imdb_id=None):
## Build the search URL
params = {}
@@ -483,23 +508,14 @@ class TitulkyProvider(Provider):
# Process the rows sequentially
logger.info("Titulky.com: processing results in sequence")
for i, row in enumerate(rows):
- sub_info = self.process_row(row, keyword)
+ sub_info = self.process_row(row, video_names)
# If subtitle info was returned, then everything was okay
# and we can instationate it and add it to the list
if sub_info:
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}")
- # Try to parse S00E00 string from the main subtitle name
- sub_season = None
- sub_episode = None
- season_episode_string = re.findall('S(\d+)E(\d+)', sub_info['names'][0], re.IGNORECASE)
- if season_episode_string:
- sub_season = season_episode_string[0][0]
- sub_episode = season_episode_string[0][1]
-
-
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], sub_season, sub_episode, sub_info['year'], sub_info['release'], sub_info['fps'],
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['release'], sub_info['fps'],
sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
subtitles.append(subtitle_instance)
else:
@@ -527,7 +543,7 @@ class TitulkyProvider(Provider):
# Row number j
logger.debug(f"Titulky.com: Creating thread {j} (batch: {i})")
# Create a thread for row j and start it
- threads[j] = Thread(target=self.process_row, args=[rows[j], keyword], kwargs={'thread_id': j, 'threads_data': threads_data})
+ threads[j] = Thread(target=self.process_row, args=[rows[j], video_names], kwargs={'thread_id': j, 'threads_data': threads_data})
threads[j].start()
# Wait for all created threads to finish before moving to another batch of rows
@@ -555,15 +571,7 @@ class TitulkyProvider(Provider):
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}")
sub_info = thread_data['sub_info']
- # Try to parse S00E00 string from the main subtitle name
- sub_season = None
- sub_episode = None
- season_episode_string = re.findall('S(\d+)E(\d+)', sub_info['names'][0], re.IGNORECASE)
- if season_episode_string:
- sub_season = season_episode_string[0][0]
- sub_episode = season_episode_string[0][1]
-
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], sub_season, sub_episode, sub_info['year'], sub_info['release'], sub_info['fps'],
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['release'], sub_info['fps'],
sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
subtitles.append(subtitle_instance)
else:
@@ -589,32 +597,36 @@ class TitulkyProvider(Provider):
for language in languages:
if isinstance(video, Episode):
+ video_names = [video.series, video.title] + video.alternative_series
+
# (1)
- logger.debug("Titulky.com: Finding subtitles by IMDB ID (1)")
+ logger.debug("Titulky.com: Finding subtitles by IMDB ID, Season and Episode (1)")
if video.series_imdb_id:
- partial_subs = self.query(language, 'episode', imdb_id=video.series_imdb_id, season=video.season, episode=video.episode)
+ partial_subs = self.query(language, video_names, 'episode', imdb_id=video.series_imdb_id, season=video.season, episode=video.episode)
if(len(partial_subs) > 0):
subtitles += partial_subs
continue
# (2)
- logger.debug("Titulky.com: Finding subtitles by keyword (2)")
+ logger.debug("Titulky.com: Finding subtitles by keyword, Season and Episode (2)")
keyword = video.series
- partial_subs = self.query(language, 'episode', keyword=keyword, season=video.season, episode=video.episode)
+ partial_subs = self.query(language, video_names, 'episode', keyword=keyword, season=video.season, episode=video.episode)
if(len(partial_subs) > 0):
subtitles += partial_subs
continue
# (3)
- logger.debug("Titulky.com: Finding subtitles by keyword (3)")
+ logger.debug("Titulky.com: Finding subtitles by keyword only (3)")
keyword = f"{video.series} S{video.season:02d}E{video.episode:02d}"
- partial_subs = self.query(language, 'episode', keyword=keyword)
+ partial_subs = self.query(language, video_names, 'episode', keyword=keyword)
subtitles += partial_subs
elif isinstance(video, Movie):
+ video_names = [video.title] + video.alternative_titles
+
# (1)
logger.debug("Titulky.com: Finding subtitles by IMDB ID (1)")
if video.imdb_id:
- partial_subs = self.query(language, 'movie', imdb_id=video.imdb_id)
+ partial_subs = self.query(language, video_names, 'movie', imdb_id=video.imdb_id)
if(len(partial_subs) > 0):
subtitles += partial_subs
continue
@@ -622,7 +634,7 @@ class TitulkyProvider(Provider):
# (2)
logger.debug("Titulky.com: Finding subtitles by keyword (2)")
keyword = video.title
- partial_subs = self.query(language, 'movie', keyword=keyword)
+ partial_subs = self.query(language, video_names, 'movie', keyword=keyword)
subtitles += partial_subs
return subtitles
@@ -671,3 +683,16 @@ def _get_subtitle_from_archive(archive):
return archive.read(name)
return None
+
+# Check if any element from source array is **contained** in any element from target array
+# Returns on the first match
+def _contains_element(_from=None, _in=None):
+ source_array = _from
+ target_array = _in
+
+ for source in source_array:
+ for target in target_array:
+ if sanitize(source) in sanitize(target):
+ return True
+
+ return False
\ No newline at end of file
From 618bddebf97fd962a89a6c9d1f11c19733fbb4d7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20Bart=C3=ADk?=
<63553146+sambartik@users.noreply.github.com>
Date: Mon, 1 Nov 2021 04:35:29 +0100
Subject: [PATCH 10/41] added more improvement to Titulki provider
---
libs/subliminal_patch/providers/titulky.py | 150 ++++++++++++---------
1 file changed, 84 insertions(+), 66 deletions(-)
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index 8afd6725d..65953f6ce 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -4,7 +4,6 @@ from __future__ import absolute_import
import io
import logging
import math
-import os
import re
import zipfile
from random import randint
@@ -15,13 +14,19 @@ import rarfile
from guessit import guessit
from requests import Session
from requests.adapters import HTTPAdapter
-from subliminal import __short_version__
+from requests.exceptions import HTTPError
+
from subliminal.exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded, Error, ProviderError
-from subliminal.providers import ParserBeautifulSoup, Provider
-from subliminal.subtitle import SUBTITLE_EXTENSIONS, Subtitle, fix_line_ending
+from subliminal.providers import ParserBeautifulSoup
+from subliminal.subtitle import fix_line_ending
from subliminal.video import Episode, Movie
+
+from subliminal_patch.exceptions import ParseResponseError
+from subliminal_patch.providers import Provider
+from subliminal_patch.providers.mixins import ProviderSubtitleArchiveMixin
from subliminal_patch.score import framerate_equal
-from subliminal_patch.subtitle import guess_matches, sanitize
+from subliminal_patch.subtitle import Subtitle, guess_matches, sanitize
+
from subzero.language import Language
from .utils import FIRST_THOUSAND_OR_SO_USER_AGENTS as AGENT_LIST
@@ -36,26 +41,29 @@ class TitulkySubtitle(Subtitle):
hash_verifiable = False
hearing_impaired_verifiable = False
- def __init__(self, sub_id, language, names, season, episode, year, release_info, fps, uploader, approved, page_link, download_link, skip_wrong_fps=False):
+ def __init__(self, sub_id, imdb_id, language, names, season, episode, year, releases, fps, uploader, approved, page_link, download_link, skip_wrong_fps=False, asked_for_episode=None):
super().__init__(language, page_link=page_link)
self.names = names
self.year = year
self.sub_id = sub_id
+ self.imdb_id = imdb_id
self.fps = fps
self.season = season
self.episode = episode
- self.release_info = release_info
+ self.releases = releases
+ self.release_info = ', '.join(releases)
self.language = language
self.approved = approved
self.page_link = page_link
self.uploader = uploader
self.download_link = download_link
self.skip_wrong_fps = skip_wrong_fps
+ self.asked_for_episode = asked_for_episode
self.matches = None
-
+
# Try to parse S00E00 string from the main subtitle name
- season_episode_string = re.findall('S(\d+)E(\d+)', self.names[0], re.IGNORECASE)
+ season_episode_string = re.findall(r'S(\d+)E(\d+)', self.names[0], re.IGNORECASE)
# If we did not search for subtitles with season and episode numbers in search query,
# try to parse it from the main subtitle name that most likely contains it
@@ -79,7 +87,11 @@ class TitulkySubtitle(Subtitle):
if _type == 'episode':
## EPISODE
-
+
+ # match imdb_id of a series
+ if video.series_imdb_id and video.series_imdb_id == self.imdb_id:
+ matches.add('series_imdb_id')
+
# match season/episode
if self.season and self.season == video.season:
matches.add('season')
@@ -94,11 +106,15 @@ class TitulkySubtitle(Subtitle):
# match episode title
episode_titles = [video.title]
if _contains_element(_from=episode_titles, _in=self.names):
- matches.add('title')
+ matches.add('episode_title')
elif _type == 'movie':
## MOVIE
+ # match imdb_id of a movie
+ if video.imdb_id and video.imdb_id == self.imdb_id:
+ matches.add('imdb_id')
+
# match movie title
video_titles = [video.title] + video.alternative_titles
if _contains_element(_from=video_titles, _in=self.names):
@@ -110,8 +126,9 @@ class TitulkySubtitle(Subtitle):
if video.year and video.year == self.year:
matches.add('year')
- # match other properties based on release info
- matches |= guess_matches(video, guessit(self.release_info, {"type": _type}))
+ # match other properties based on release infos
+ for release in self.releases:
+ matches |= guess_matches(video, guessit(release, {"type": _type}))
# If turned on in settings, then do not match if video FPS is not equal to subtitle FPS
if self.skip_wrong_fps and video.fps and self.fps and not framerate_equal(video.fps, self.fps):
@@ -123,7 +140,7 @@ class TitulkySubtitle(Subtitle):
return matches
-class TitulkyProvider(Provider):
+class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
"""Titulky.com provider"""
languages = {Language(l) for l in ['ces', 'slk']}
@@ -220,7 +237,7 @@ class TitulkyProvider(Provider):
res = self.session.get(url, timeout=self.timeout)
if res.status_code != 200:
- raise ProviderError(f"Fetch failed with status code {res.status_code}")
+ raise HTTPError(f"Fetch failed with status code {res.status_code}")
if not res.text:
raise ProviderError("No response returned from the provider")
@@ -235,7 +252,7 @@ class TitulkyProvider(Provider):
for key, value in params.items():
result += f'{key}={value}&'
- # Remove last &
+ # Remove the last &
result = result[:-1]
# Remove spaces
@@ -243,23 +260,34 @@ class TitulkyProvider(Provider):
return result
- # Parse details of an individual subtitle: release, language, uploader, fps and year
+ # Parse details of an individual subtitle: imdb_id, release, language, uploader, fps and year
def parse_details(self, url):
html_src = self.fetch_page(url)
details_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
details_container = details_page_soup.find('div', class_='detail')
if not details_container:
- # The subtitles were removed and got redirected to a different page. Better treat this silently.
+ # The subtitles could be removed and got redirected to a different page. Better treat this silently.
logger.debug("Titulky.com: Could not find details div container. Skipping.")
return False
+ ### IMDB ID
+ imdb_id = None
+ imdb_tag = details_container.find('a', attrs={'target': 'imdb'})
+
+ if imdb_tag:
+ imdb_url = imdb_tag.get('href')
+ imdb_id = re.findall(r'tt(\d+)', imdb_url)[0]
+
+ if not imdb_id:
+ logger.debug("Titulky.com: No IMDB ID supplied on details page.")
+
### RELEASE
release = None
release_tag = details_container.find('div', class_='releas')
if not release_tag:
- raise Error("Could not find release tag. Did the HTML source change?")
+ raise ParseResponseError("Could not find release tag. Did the HTML source change?")
release = release_tag.get_text(strip=True)
@@ -284,12 +312,12 @@ class TitulkyProvider(Provider):
uploader_tag = details_container.find('div', class_='ulozil')
if not uploader_tag:
- raise Error("Could not find uploader tag. Did the HTML source change?")
+ raise ParseResponseError("Could not find uploader tag. Did the HTML source change?")
uploader_anchor_tag = uploader_tag.find('a')
if not uploader_anchor_tag:
- raise Error("Could not find uploader anchor tag. Did the HTML source change?")
+ raise ParseResponseError("Could not find uploader anchor tag. Did the HTML source change?")
uploader = uploader_anchor_tag.string.strip() if uploader_anchor_tag else None
@@ -301,11 +329,11 @@ class TitulkyProvider(Provider):
fps_icon_tag_selection = details_container.select('img[src*=\'Movieroll\']')
if not fps_icon_tag_selection and not hasattr(fps_icon_tag_selection[0], 'parent'):
- raise Error("Could not find parent of the fps icon tag. Did the HTML source change?")
+ raise ParseResponseError("Could not find parent of the fps icon tag. Did the HTML source change?")
fps_icon_tag = fps_icon_tag_selection[0]
parent_text = fps_icon_tag.parent.get_text(strip=True)
- match = re.findall('(\d+,\d+) fps', parent_text)
+ match = re.findall(r'(\d+,\d+) fps', parent_text)
# If the match is found, change the decimal separator to a dot and convert to float
fps = float(match[0].replace(',', '.')) if len(match) > 0 else None
@@ -318,7 +346,7 @@ class TitulkyProvider(Provider):
h1_tag = details_container.find('h1', id='titulky')
if not h1_tag:
- raise Error("Could not find h1 tag. Did the HTML source change?")
+ raise ParseResponseError("Could not find h1 tag. Did the HTML source change?")
# The h1 tag contains the name of the subtitle and a year
h1_texts = [text for text in h1_tag.stripped_strings]
@@ -334,11 +362,12 @@ class TitulkyProvider(Provider):
# Return the subtitle details
return {
- 'release': release,
+ 'releases': [release],
'language': language,
'uploader': uploader,
'fps': fps,
- 'year': year
+ 'year': year,
+ 'imdb_id': imdb_id
}
def process_row(self, row, video_names, thread_id=None, threads_data=None):
@@ -347,7 +376,7 @@ class TitulkyProvider(Provider):
anchor_tag = row.find_all('a')[1]
# The details link is relative, so we need to remove the dot at the beginning
details_link = f"{self.server_url}{anchor_tag.get('href')[1:]}"
- id_match = re.findall('id=(\d+)', details_link)
+ id_match = re.findall(r'id=(\d+)', details_link)
sub_id = id_match[0] if len(id_match) > 0 else None
download_link = f"{self.download_url}{sub_id}"
@@ -492,13 +521,13 @@ class TitulkyProvider(Provider):
table = search_page_soup.find('table', class_='table')
if not table:
logger.debug("Titulky.com: Could not find table")
- raise Error("Could not find table. Did the HTML source change?")
+ raise ParseResponseError("Could not find table. Did the HTML source change?")
# Get table body containing rows of subtitles
table_body = table.find('tbody')
if not table_body:
logger.debug("Titulky.com: Could not find table body")
- raise Error("Could not find table body. Did the HTML source change?")
+ raise ParseResponseError("Could not find table body. Did the HTML source change?")
## Loop over all subtitles on the first page and put them in a list
subtitles = []
@@ -514,9 +543,12 @@ class TitulkyProvider(Provider):
# and we can instationate it and add it to the list
if sub_info:
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}")
+
+ # If we found the subtitle by IMDB ID, no need to get it from details page
+ sub_imdb_id = imdb_id or sub_info['imdb_id']
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['release'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_imdb_id, sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['releases'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps, asked_for_episode=(type == 'episode'))
subtitles.append(subtitle_instance)
else:
# No subtitle info was returned, i. e. something unexpected
@@ -558,7 +590,7 @@ class TitulkyProvider(Provider):
# If the thread returned didn't return anything, but expected a dict object
if not thread_data:
- raise Error(f"No data returned from thread ID: {i}")
+ raise ProviderError(f"No data returned from thread ID: {i}")
# If an exception was raised in a thread, raise it again here
if 'exception' in thread_data and thread_data['exception']:
@@ -571,8 +603,11 @@ class TitulkyProvider(Provider):
logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}")
sub_info = thread_data['sub_info']
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['release'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps)
+ # If we found the subtitle by IMDB ID, no need to get it from details page
+ sub_imdb_id = imdb_id or sub_info['imdb_id']
+
+ subtitle_instance = self.subtitle_class(sub_info['id'], sub_imdb_id, sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['releases'], sub_info['fps'],
+ sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps, asked_for_episode=(type == 'episode'))
subtitles.append(subtitle_instance)
else:
# The thread returned data, but it didn't contain a subtitle info, i. e. something unexpected
@@ -639,51 +674,34 @@ class TitulkyProvider(Provider):
return subtitles
-# The rest is mostly old code from original implementation. Might want to redo it.
def download_subtitle(self, subtitle):
res = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link},
- timeout=self.timeout)
- res.raise_for_status()
+ timeout=self.timeout)
+
+ try:
+ res.raise_for_status()
+ except:
+ raise HTTPError(f"An error occured during the download request to {subtitle.download_link}")
archive_stream = io.BytesIO(res.content)
archive = None
if rarfile.is_rarfile(archive_stream):
logger.debug("Titulky.com: Identified rar archive")
archive = rarfile.RarFile(archive_stream)
- subtitle_content = _get_subtitle_from_archive(archive)
+ subtitle_content = self.get_subtitle_from_archive(subtitle, archive)
elif zipfile.is_zipfile(archive_stream):
logger.debug("Titulky.com: Identified zip archive")
archive = zipfile.ZipFile(archive_stream)
- subtitle_content = _get_subtitle_from_archive(archive)
- else:
- subtitle_content = res.content
-
- if subtitle_content:
- subtitle.content = fix_line_ending(subtitle_content)
- return subtitle_content
+ subtitle_content = self.get_subtitle_from_archive(subtitle, archive)
else:
- logger.debug(f"Titulky.com: Could not extract subtitle from {archive}")
-
-def _get_subtitle_from_archive(archive):
- if '_info.txt' in archive.namelist():
- info_content_binary = archive.read('_info.txt')
- info_content = info_content_binary.decode(chardet.detect(info_content_binary)['encoding'])
- if "nestaženo - překročen limit" in info_content:
- raise DownloadLimitExceeded("The download limit has been exceeded")
-
- for name in archive.namelist():
- # discard hidden files
- if os.path.split(name)[-1].startswith('.'):
- continue
+ subtitle_content = fix_line_ending(res.content)
- # discard non-subtitle files
- if not name.lower().endswith(SUBTITLE_EXTENSIONS):
- continue
+ if not subtitle_content:
+ logger.debug("Titulky.com: No subtitle content found. The downloading limit has been most likely exceeded.")
+ raise DownloadLimitExceeded("Subtitles download limit has been exceeded")
+
+ subtitle.content = subtitle_content
- return archive.read(name)
-
- return None
-
# Check if any element from source array is **contained** in any element from target array
# Returns on the first match
def _contains_element(_from=None, _in=None):
@@ -695,4 +713,4 @@ def _contains_element(_from=None, _in=None):
if sanitize(source) in sanitize(target):
return True
- return False
\ No newline at end of file
+ return False
From f53ef40d57d4cf23fcf4410028a77bea318b6415 Mon Sep 17 00:00:00 2001
From: redglory
Date: Mon, 1 Nov 2021 11:11:05 +0000
Subject: [PATCH 11/41] Improved LegendasDivx provider to get more accurate
results and prevent unnecessary throttling
---
libs/subliminal_patch/providers/legendasdivx.py | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/libs/subliminal_patch/providers/legendasdivx.py b/libs/subliminal_patch/providers/legendasdivx.py
index 8b535f59d..cf705a017 100644
--- a/libs/subliminal_patch/providers/legendasdivx.py
+++ b/libs/subliminal_patch/providers/legendasdivx.py
@@ -272,7 +272,7 @@ class LegendasdivxProvider(Provider):
querytext = video.imdb_id if video.imdb_id else video.title
if isinstance(video, Episode):
- querytext = '{} S{:02d}E{:02d}'.format(video.series, video.season, video.episode)
+ querytext = '%22{}%20S{:02d}E{:02d}%22'.format(video.series, video.season, video.episode)
querytext = quote(querytext.lower())
# language query filter
@@ -430,12 +430,13 @@ class LegendasdivxProvider(Provider):
_guess = guessit(name)
if isinstance(subtitle.video, Episode):
- logger.debug("Legendasdivx.pt :: guessing %s", name)
- logger.debug("Legendasdivx.pt :: subtitle S%sE%s video S%sE%s", _guess['season'], _guess['episode'], subtitle.video.season, subtitle.video.episode)
+ if all(key in _guess for key in ('season', 'episode')):
+ logger.debug("Legendasdivx.pt :: guessing %s", name)
+ logger.debug("Legendasdivx.pt :: subtitle S%sE%s video S%sE%s", _guess['season'], _guess['episode'], subtitle.video.season, subtitle.video.episode)
- if subtitle.video.episode != _guess['episode'] or subtitle.video.season != _guess['season']:
- logger.debug('Legendasdivx.pt :: subtitle does not match video, skipping')
- continue
+ if subtitle.video.episode != _guess['episode'] or subtitle.video.season != _guess['season']:
+ logger.debug('Legendasdivx.pt :: subtitle does not match video, skipping')
+ continue
matches = set()
matches |= guess_matches(subtitle.video, _guess)
From 0f31c9858b687fe9950ba5145ff3aa74076ef25f Mon Sep 17 00:00:00 2001
From: redglory
Date: Mon, 1 Nov 2021 12:22:15 +0000
Subject: [PATCH 12/41] no log: other improvement to LegendasDivx
---
libs/subliminal_patch/providers/legendasdivx.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libs/subliminal_patch/providers/legendasdivx.py b/libs/subliminal_patch/providers/legendasdivx.py
index cf705a017..5d1ad8825 100644
--- a/libs/subliminal_patch/providers/legendasdivx.py
+++ b/libs/subliminal_patch/providers/legendasdivx.py
@@ -437,7 +437,9 @@ class LegendasdivxProvider(Provider):
if subtitle.video.episode != _guess['episode'] or subtitle.video.season != _guess['season']:
logger.debug('Legendasdivx.pt :: subtitle does not match video, skipping')
continue
-
+ else:
+ logger.debug('Legendasdivx.pt :: no "season" and/or "episode" on "_guess" , skipping')
+ continue
matches = set()
matches |= guess_matches(subtitle.video, _guess)
logger.debug('Legendasdivx.pt :: sub matches: %s', matches)
From 55b7c9826b8b830bcbecc394f1301719c2939064 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 2 Nov 2021 18:32:15 -0400
Subject: [PATCH 13/41] Added uptime to System-->Status
---
bazarr/api.py | 2 ++
bazarr/init.py | 5 +++++
frontend/package-lock.json | 14 ++++++++++++++
frontend/package.json | 3 ++-
frontend/src/@types/system.d.ts | 1 +
frontend/src/System/Status/index.tsx | 25 ++++++++++++++++++++++++-
6 files changed, 48 insertions(+), 2 deletions(-)
diff --git a/bazarr/api.py b/bazarr/api.py
index 08d81cf51..97ea20c4a 100644
--- a/bazarr/api.py
+++ b/bazarr/api.py
@@ -23,6 +23,7 @@ from bs4 import BeautifulSoup as bso
from get_args import args
from config import settings, base_url, save_settings, get_settings
from logger import empty_log
+from init import startTime
from init import *
import logging
@@ -606,6 +607,7 @@ class SystemStatus(Resource):
system_status.update({'python_version': platform.python_version()})
system_status.update({'bazarr_directory': os.path.dirname(os.path.dirname(__file__))})
system_status.update({'bazarr_config_directory': args.config_dir})
+ system_status.update({'start_time': startTime})
return jsonify(data=system_status)
diff --git a/bazarr/init.py b/bazarr/init.py
index f90c9947e..78e86942c 100644
--- a/bazarr/init.py
+++ b/bazarr/init.py
@@ -14,6 +14,11 @@ from helper import path_mappings
from dogpile.cache.region import register_backend as register_cache_backend
import subliminal
import datetime
+import time
+
+# set start time global variable as epoch
+global startTime
+startTime = time.time()
# set subliminal_patch user agent
os.environ["SZ_USER_AGENT"] = "Bazarr/{}".format(os.environ["BAZARR_VERSION"])
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index a2c91355d..39975ce57 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -19,6 +19,7 @@
"axios": "^0.23",
"bootstrap": "^4",
"lodash": "^4",
+ "moment": "^2.29.1",
"rc-slider": "^9.7",
"react": "^17",
"react-bootstrap": "^1",
@@ -13780,6 +13781,14 @@
"mkdirp": "bin/cmd.js"
}
},
+ "node_modules/moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
@@ -32711,6 +32720,11 @@
"minimist": "^1.2.5"
}
},
+ "moment": {
+ "version": "2.29.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+ "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ },
"move-concurrently": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index a8310e898..860700269 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -38,7 +38,8 @@
"rooks": "^5.7.1",
"sass": "^1",
"socket.io-client": "^4",
- "typescript": "^4"
+ "typescript": "^4",
+ "moment": "^2.29.1"
},
"devDependencies": {
"@types/bootstrap": "^5",
diff --git a/frontend/src/@types/system.d.ts b/frontend/src/@types/system.d.ts
index 154bb5b98..737bd63d7 100644
--- a/frontend/src/@types/system.d.ts
+++ b/frontend/src/@types/system.d.ts
@@ -16,6 +16,7 @@ declare namespace System {
python_version: string;
radarr_version: string;
sonarr_version: string;
+ start_time: number;
}
interface Health {
diff --git a/frontend/src/System/Status/index.tsx b/frontend/src/System/Status/index.tsx
index 44573f6ef..c937995eb 100644
--- a/frontend/src/System/Status/index.tsx
+++ b/frontend/src/System/Status/index.tsx
@@ -6,7 +6,8 @@ import {
} from "@fortawesome/free-brands-svg-icons";
import { faPaperPlane } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import React, { FunctionComponent } from "react";
+import moment from "moment";
+import React, { FunctionComponent, useEffect, useState } from "react";
import { Col, Container, Row } from "react-bootstrap";
import { Helmet } from "react-helmet";
import { useSystemHealth, useSystemStatus } from "../../@redux/hooks";
@@ -69,6 +70,25 @@ const SystemStatusView: FunctionComponent = () => {
const health = useSystemHealth();
const status = useSystemStatus();
+ const [uptime, setState] = useState();
+
+ useEffect(() => {
+ const interval = setInterval(() => {
+ if (status) {
+ let duration = moment.duration(
+ moment().utc().unix() - status.start_time,
+ "seconds"
+ ),
+ days = duration.days(),
+ hours = duration.hours().toString().padStart(2, "0"),
+ minutes = duration.minutes().toString().padStart(2, "0"),
+ seconds = duration.seconds().toString().padStart(2, "0");
+ setState(days + "d " + hours + ":" + minutes + ":" + seconds);
+ }
+ }, 1000);
+ return () => clearInterval(interval);
+ }, [status]);
+
return (
@@ -106,6 +126,9 @@ const SystemStatusView: FunctionComponent = () => {
{status?.bazarr_config_directory}
+
+ {uptime}
+
From 876b33e27aeb2ac6da168741f7a2d7e85a5896ec Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Nov 2021 18:56:40 -0400
Subject: [PATCH 14/41] no log: Bump prettier from 2.3.2 to 2.4.1 in /frontend
(#1590)
Bumps [prettier](https://github.com/prettier/prettier) from 2.3.2 to 2.4.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.3.2...2.4.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 39975ce57..779bd2c76 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -16147,9 +16147,9 @@
}
},
"node_modules/prettier": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
- "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
+ "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
@@ -34610,9 +34610,9 @@
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
},
"prettier": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
- "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
+ "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==",
"dev": true
},
"prettier-plugin-organize-imports": {
From 9cf412fc695119a53a075d796e71117fe3fd6572 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 2 Nov 2021 22:16:40 -0400
Subject: [PATCH 15/41] no log: improvement to uptime interval
---
frontend/src/System/Status/index.tsx | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/frontend/src/System/Status/index.tsx b/frontend/src/System/Status/index.tsx
index c937995eb..1ac6507c3 100644
--- a/frontend/src/System/Status/index.tsx
+++ b/frontend/src/System/Status/index.tsx
@@ -7,9 +7,10 @@ import {
import { faPaperPlane } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import moment from "moment";
-import React, { FunctionComponent, useEffect, useState } from "react";
+import React, { FunctionComponent, useState } from "react";
import { Col, Container, Row } from "react-bootstrap";
import { Helmet } from "react-helmet";
+import { useIntervalWhen } from "rooks";
import { useSystemHealth, useSystemStatus } from "../../@redux/hooks";
import { AsyncOverlay } from "../../components";
import { GithubRepoRoot } from "../../constants";
@@ -71,9 +72,10 @@ const SystemStatusView: FunctionComponent = () => {
const status = useSystemStatus();
const [uptime, setState] = useState();
+ const [intervalWhenState] = useState(true);
- useEffect(() => {
- const interval = setInterval(() => {
+ useIntervalWhen(
+ () => {
if (status) {
let duration = moment.duration(
moment().utc().unix() - status.start_time,
@@ -85,9 +87,11 @@ const SystemStatusView: FunctionComponent = () => {
seconds = duration.seconds().toString().padStart(2, "0");
setState(days + "d " + hours + ":" + minutes + ":" + seconds);
}
- }, 1000);
- return () => clearInterval(interval);
- }, [status]);
+ },
+ 1000,
+ intervalWhenState,
+ true
+ );
return (
From 43be619ceac78901abdf729b49fa6232c693f956 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 2 Nov 2021 22:33:24 -0400
Subject: [PATCH 16/41] no log: Bump @types/react-select from 4.0.17 to 5.0.1
in /frontend (#1604)
* [bot]: Bump @types/react-select from 4.0.17 to 5.0.1 in /frontend
Bumps [@types/react-select](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-select) from 4.0.17 to 5.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-select)
---
updated-dependencies:
- dependency-name: "@types/react-select"
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
* no log: some fix after react-select upgrade
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: morpheus65535
---
frontend/package-lock.json | 901 +++++++++++++++++-
frontend/package.json | 9 +-
.../src/Settings/Providers/components.tsx | 7 +-
frontend/src/components/inputs/Selector.tsx | 20 +-
4 files changed, 877 insertions(+), 60 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 779bd2c76..7ebd6fbf2 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -20,6 +20,7 @@
"bootstrap": "^4",
"lodash": "^4",
"moment": "^2.29.1",
+ "package.json": "^2.0.1",
"rc-slider": "^9.7",
"react": "^17",
"react-bootstrap": "^1",
@@ -28,7 +29,7 @@
"react-redux": "^7.2",
"react-router-dom": "^5.3",
"react-scripts": "^4",
- "react-select": "^4",
+ "react-select": "^5.0.1",
"react-table": "^7",
"recharts": "^2.0.8",
"rooks": "^5.7.1",
@@ -45,7 +46,7 @@
"@types/react-dom": "^17",
"@types/react-helmet": "^6.1",
"@types/react-router-dom": "^5",
- "@types/react-select": "^4.0.3",
+ "@types/react-select": "^5.0.1",
"@types/react-table": "^7",
"http-proxy-middleware": "^2",
"husky": "^7",
@@ -3669,15 +3670,13 @@
}
},
"node_modules/@types/react-select": {
- "version": "4.0.17",
- "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-4.0.17.tgz",
- "integrity": "sha512-ZK5wcBhJaqC8ntQl0CJvK2KXNNsk1k5flM7jO+vNPPlceRzdJQazA6zTtQUyNr6exp5yrAiwiudtYxgGlgGHLg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-5.0.1.tgz",
+ "integrity": "sha512-h5Im0AP0dr4AVeHtrcvQrLV+gmPa7SA0AGdxl2jOhtwiE6KgXBFSogWw8az32/nusE6AQHlCOHQWjP1S/+oMWA==",
+ "deprecated": "This is a stub types definition. react-select provides its own type definitions, so you do not need this installed.",
"dev": true,
"dependencies": {
- "@emotion/serialize": "^1.0.0",
- "@types/react": "*",
- "@types/react-dom": "*",
- "@types/react-transition-group": "*"
+ "react-select": "*"
}
},
"node_modules/@types/react-table": {
@@ -4221,6 +4220,14 @@
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
"integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
},
+ "node_modules/abs": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/abs/-/abs-1.3.14.tgz",
+ "integrity": "sha512-PrS26IzwKLWwuURpiKl8wRmJ2KdR/azaVrLEBWG/TALwT20Y7qjtYp1qcMLHA4206hBHY5phv3w4pjf9NPv4Vw==",
+ "dependencies": {
+ "ul": "^5.0.0"
+ }
+ },
"node_modules/accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -5884,6 +5891,14 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/capture-stack-trace": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
+ "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/case-sensitive-paths-webpack-plugin": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
@@ -6565,6 +6580,17 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
+ "node_modules/create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "dependencies": {
+ "capture-stack-trace": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
@@ -7190,6 +7216,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -7323,6 +7357,14 @@
"which": "bin/which"
}
},
+ "node_modules/deffy": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/deffy/-/deffy-2.2.4.tgz",
+ "integrity": "sha512-pLc9lsbsWjr6RxmJ2OLyvm+9l4j1yK69h+TML/gUit/t3vTijpkNGh8LioaJYTGO7F25m6HZndADcUOo2PsiUg==",
+ "dependencies": {
+ "typpy": "^2.0.0"
+ }
+ },
"node_modules/define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -7697,6 +7739,14 @@
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
},
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
"node_modules/duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@@ -7878,6 +7928,14 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/err": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/err/-/err-1.1.1.tgz",
+ "integrity": "sha1-65KOLhGjFmSPeCgz0PlyWLpDwvg=",
+ "dependencies": {
+ "typpy": "^2.2.0"
+ }
+ },
"node_modules/errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -9020,6 +9078,15 @@
"safe-buffer": "^5.1.1"
}
},
+ "node_modules/exec-limiter": {
+ "version": "3.2.13",
+ "resolved": "https://registry.npmjs.org/exec-limiter/-/exec-limiter-3.2.13.tgz",
+ "integrity": "sha512-86Ri699bwiHZVBzTzNj8gspqAhCPchg70zPVWIh3qzUOA1pUMcb272Em3LPk8AE0mS95B9yMJhtqF8vFJAn0dA==",
+ "dependencies": {
+ "limit-it": "^3.0.0",
+ "typpy": "^2.1.0"
+ }
+ },
"node_modules/exec-sh": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz",
@@ -9873,6 +9940,14 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "node_modules/function.name": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/function.name/-/function.name-1.0.13.tgz",
+ "integrity": "sha512-mVrqdoy5npWZyoXl4DxCeuVF6delDcQjVS9aPdvLYlBxtMTZDR2B5GVEQEoM1jJyspCqg3C0v4ABkLE7tp9xFA==",
+ "dependencies": {
+ "noop6": "^1.0.1"
+ }
+ },
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -9942,6 +10017,47 @@
"node": ">=0.10.0"
}
},
+ "node_modules/git-package-json": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/git-package-json/-/git-package-json-1.4.10.tgz",
+ "integrity": "sha512-DRAcvbzd2SxGK7w8OgYfvKqhFliT5keX0lmSmVdgScgf1kkl5tbbo7Pam6uYoCa1liOiipKxQZG8quCtGWl/fA==",
+ "dependencies": {
+ "deffy": "^2.2.1",
+ "err": "^1.1.1",
+ "gry": "^5.0.0",
+ "normalize-package-data": "^2.3.5",
+ "oargv": "^3.4.1",
+ "one-by-one": "^3.1.0",
+ "r-json": "^1.2.1",
+ "r-package-json": "^1.0.0",
+ "tmp": "0.0.28"
+ }
+ },
+ "node_modules/git-source": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/git-source/-/git-source-1.1.10.tgz",
+ "integrity": "sha512-XZZ7ZgnLL35oLgM/xjnLYgtlKlxJG0FohC1kWDvGkU7s1VKGXK0pFF/g1itQEwQ3D+uTQzBnzPi8XbqOv7Wc1Q==",
+ "dependencies": {
+ "git-url-parse": "^5.0.1"
+ }
+ },
+ "node_modules/git-up": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-1.2.1.tgz",
+ "integrity": "sha1-JkSAoAax2EJhrB/gmjpRacV+oZ0=",
+ "dependencies": {
+ "is-ssh": "^1.0.0",
+ "parse-url": "^1.0.0"
+ }
+ },
+ "node_modules/git-url-parse": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-5.0.1.tgz",
+ "integrity": "sha1-/j15xnRq4FBIz6UIyB553du6OEM=",
+ "dependencies": {
+ "git-up": "^1.0.0"
+ }
+ },
"node_modules/glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
@@ -10034,6 +10150,51 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/got": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.6.0.tgz",
+ "integrity": "sha1-ux1+4WO3gIK7yOuDbz85UATqb78=",
+ "dependencies": {
+ "create-error-class": "^3.0.1",
+ "duplexer2": "^0.1.4",
+ "is-plain-obj": "^1.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "node-status-codes": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "parse-json": "^2.1.0",
+ "pinkie-promise": "^2.0.0",
+ "read-all-stream": "^3.0.0",
+ "readable-stream": "^2.0.5",
+ "timed-out": "^2.0.0",
+ "unzip-response": "^1.0.0",
+ "url-parse-lax": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/got/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/got/node_modules/parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "dependencies": {
+ "error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
@@ -10045,6 +10206,17 @@
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"optional": true
},
+ "node_modules/gry": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/gry/-/gry-5.0.8.tgz",
+ "integrity": "sha512-meq9ZjYVpLzZh3ojhTg7IMad9grGsx6rUUKHLqPnhLXzJkRQvEL2U3tQpS5/WentYTtHtxkT3Ew/mb10D6F6/g==",
+ "dependencies": {
+ "abs": "^1.2.1",
+ "exec-limiter": "^3.0.0",
+ "one-by-one": "^3.0.0",
+ "ul": "^5.0.0"
+ }
+ },
"node_modules/gzip-size": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
@@ -11262,6 +11434,14 @@
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
+ "node_modules/is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -11290,6 +11470,14 @@
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
},
+ "node_modules/is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-root": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
@@ -11298,6 +11486,14 @@
"node": ">=6"
}
},
+ "node_modules/is-ssh": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz",
+ "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==",
+ "dependencies": {
+ "protocols": "^1.1.0"
+ }
+ },
"node_modules/is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
@@ -11498,6 +11694,11 @@
"node": ">=8"
}
},
+ "node_modules/iterate-object": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/iterate-object/-/iterate-object-1.3.4.tgz",
+ "integrity": "sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw=="
+ },
"node_modules/jest": {
"version": "26.6.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz",
@@ -13212,6 +13413,14 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/limit-it": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/limit-it/-/limit-it-3.2.10.tgz",
+ "integrity": "sha512-T0NK99pHnkimldr1WUqvbGV1oWDku/xC9J/OqzJFsV1jeOS6Bwl8W7vkeQIBqwiON9dTALws+rX/XPMQqWerDQ==",
+ "dependencies": {
+ "typpy": "^2.0.0"
+ }
+ },
"node_modules/lines-and-columns": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
@@ -13373,6 +13582,14 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -14018,6 +14235,19 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg=="
},
+ "node_modules/node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/noop6": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/noop6/-/noop6-1.0.9.tgz",
+ "integrity": "sha512-DB3Hwyd89dPr5HqEPg3YHjzvwh/mCqizC1zZ8vyofqc+TQRyPDnT4wgXXbLGF4z9YAzwwTLi8pNLhGqcbSjgkA=="
+ },
"node_modules/normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -14099,6 +14329,23 @@
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
+ "node_modules/oargv": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/oargv/-/oargv-3.4.10.tgz",
+ "integrity": "sha512-SXaMANv9sr7S/dP0vj0+Ybipa47UE1ntTWQ2rpPRhC6Bsvfl+Jg03Xif7jfL0sWKOYWK8oPjcZ5eJ82t8AP/8g==",
+ "dependencies": {
+ "iterate-object": "^1.1.0",
+ "ul": "^5.0.0"
+ }
+ },
+ "node_modules/obj-def": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/obj-def/-/obj-def-1.0.9.tgz",
+ "integrity": "sha512-bQ4ya3VYD6FAA1+s6mEhaURRHSmw4+sKaXE6UyXZ1XDYc5D+c7look25dFdydmLd18epUegh398gdDkMUZI9xg==",
+ "dependencies": {
+ "deffy": "^2.2.2"
+ }
+ },
"node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -14349,6 +14596,15 @@
"wrappy": "1"
}
},
+ "node_modules/one-by-one": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/one-by-one/-/one-by-one-3.2.8.tgz",
+ "integrity": "sha512-HR/pSzZdm46Xqj58K+Bu64kMbSTw8/u77AwWvV+rprO/OsuR++pPlkUJn+SmwqBGRgHKwSKQ974V3uls7crIeQ==",
+ "dependencies": {
+ "obj-def": "^1.0.0",
+ "sliced": "^1.0.1"
+ }
+ },
"node_modules/onetime": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
@@ -14438,6 +14694,14 @@
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
},
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/p-each-series": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
@@ -14504,6 +14768,47 @@
"node": ">=6"
}
},
+ "node_modules/package-json": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
+ "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=",
+ "dependencies": {
+ "got": "^5.0.0",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/package-json-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/package-json-path/-/package-json-path-1.0.9.tgz",
+ "integrity": "sha512-uNu7f6Ef7tQHZRnkyVnCtzdSYVN9uBtge/sG7wzcUaawFWkPYUq67iXxRGrQSg/q0tzxIB8jSyIYUKjG2Jn//A==",
+ "dependencies": {
+ "abs": "^1.2.1"
+ }
+ },
+ "node_modules/package-json/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/package.json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/package.json/-/package.json-2.0.1.tgz",
+ "integrity": "sha1-+IYFnSpJ7QduZIg2ldc7K0bSHW0=",
+ "deprecated": "Use pkg.json instead.",
+ "dependencies": {
+ "git-package-json": "^1.4.0",
+ "git-source": "^1.1.0",
+ "package-json": "^2.3.1"
+ }
+ },
"node_modules/pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
@@ -14568,6 +14873,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/parse-url": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-1.3.11.tgz",
+ "integrity": "sha1-V8FUKKuKiSsfQ4aWRccR0OFEtVQ=",
+ "dependencies": {
+ "is-ssh": "^1.3.0",
+ "protocols": "^1.4.0"
+ }
+ },
"node_modules/parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
@@ -16363,6 +16677,11 @@
"react": ">=0.14.0"
}
},
+ "node_modules/protocols": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz",
+ "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg=="
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -16509,6 +16828,20 @@
}
]
},
+ "node_modules/r-json": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/r-json/-/r-json-1.2.10.tgz",
+ "integrity": "sha512-hu9vyLjSlHXT62NAS7DjI9WazDlvjN0lgp3n431dCVnirVcLkZIpzSwA3orhZEKzdDD2jqNYI+w0yG0aFf4kpA=="
+ },
+ "node_modules/r-package-json": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/r-package-json/-/r-package-json-1.0.9.tgz",
+ "integrity": "sha512-G4Vpf1KImWmmPFGdtWQTU0L9zk0SjqEC4qs/jE7AQ+Ylmr5kizMzGeC4wnHp5+ijPqNN+2ZPpvyjVNdN1CDVcg==",
+ "dependencies": {
+ "package-json-path": "^1.0.0",
+ "r-json": "^1.2.1"
+ }
+ },
"node_modules/raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -16564,6 +16897,20 @@
"node": ">= 0.8"
}
},
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
"node_modules/rc-align": {
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.9.tgz",
@@ -16659,6 +17006,14 @@
"react-dom": ">=16.9.0"
}
},
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/react": {
"version": "17.0.2",
"resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
@@ -17016,17 +17371,6 @@
"react": ">=16.3.0"
}
},
- "node_modules/react-input-autosize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz",
- "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==",
- "dependencies": {
- "prop-types": "^15.5.8"
- },
- "peerDependencies": {
- "react": "^16.3.0 || ^17.0.0"
- }
- },
"node_modules/react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -17283,16 +17627,16 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/react-select": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz",
- "integrity": "sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.2.0.tgz",
+ "integrity": "sha512-JLH2/ei/m1an0Vu4ERMKvGgDB6yHLsgxltho2QennOLTq4Fx35GwGwh+2MFnz5EWgslX6G9rjclUTZWAA2DuBg==",
"dependencies": {
"@babel/runtime": "^7.12.0",
"@emotion/cache": "^11.4.0",
"@emotion/react": "^11.1.1",
+ "@types/react-transition-group": "^4.4.0",
"memoize-one": "^5.0.0",
"prop-types": "^15.6.0",
- "react-input-autosize": "^3.0.0",
"react-transition-group": "^4.3.0"
},
"peerDependencies": {
@@ -17373,6 +17717,18 @@
"react-dom": ">=16.6.0"
}
},
+ "node_modules/read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "dependencies": {
+ "pinkie-promise": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -17679,6 +18035,26 @@
"node": ">=4"
}
},
+ "node_modules/registry-auth-token": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
+ "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
+ "dependencies": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "dependencies": {
+ "rc": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/regjsgen": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
@@ -18703,6 +19079,11 @@
"url": "https://github.com/chalk/slice-ansi?sponsor=1"
}
},
+ "node_modules/sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
"node_modules/snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -20115,6 +20496,14 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
+ "node_modules/timed-out": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
+ "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/timers-browserify": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
@@ -20141,6 +20530,17 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
+ "node_modules/tmp": {
+ "version": "0.0.28",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz",
+ "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=",
+ "dependencies": {
+ "os-tmpdir": "~1.0.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
@@ -20384,6 +20784,23 @@
"node": ">=4.2.0"
}
},
+ "node_modules/typpy": {
+ "version": "2.3.13",
+ "resolved": "https://registry.npmjs.org/typpy/-/typpy-2.3.13.tgz",
+ "integrity": "sha512-vOxIcQz9sxHi+rT09SJ5aDgVgrPppQjwnnayTrMye1ODaU8gIZTDM19t9TxmEElbMihx2Nq/0/b/MtyKfayRqA==",
+ "dependencies": {
+ "function.name": "^1.0.3"
+ }
+ },
+ "node_modules/ul": {
+ "version": "5.2.15",
+ "resolved": "https://registry.npmjs.org/ul/-/ul-5.2.15.tgz",
+ "integrity": "sha512-svLEUy8xSCip5IWnsRa0UOg+2zP0Wsj4qlbjTmX6GJSmvKMHADBuHOm1dpNkWqWPIGuVSqzUkV3Cris5JrlTRQ==",
+ "dependencies": {
+ "deffy": "^2.2.2",
+ "typpy": "^2.3.4"
+ }
+ },
"node_modules/unbox-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -20577,6 +20994,14 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
+ "node_modules/unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
@@ -20661,6 +21086,17 @@
"requires-port": "^1.0.0"
}
},
+ "node_modules/url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "dependencies": {
+ "prepend-http": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/url/node_modules/punycode": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
@@ -24967,15 +25403,12 @@
}
},
"@types/react-select": {
- "version": "4.0.17",
- "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-4.0.17.tgz",
- "integrity": "sha512-ZK5wcBhJaqC8ntQl0CJvK2KXNNsk1k5flM7jO+vNPPlceRzdJQazA6zTtQUyNr6exp5yrAiwiudtYxgGlgGHLg==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@types/react-select/-/react-select-5.0.1.tgz",
+ "integrity": "sha512-h5Im0AP0dr4AVeHtrcvQrLV+gmPa7SA0AGdxl2jOhtwiE6KgXBFSogWw8az32/nusE6AQHlCOHQWjP1S/+oMWA==",
"dev": true,
"requires": {
- "@emotion/serialize": "^1.0.0",
- "@types/react": "*",
- "@types/react-dom": "*",
- "@types/react-transition-group": "*"
+ "react-select": "*"
}
},
"@types/react-table": {
@@ -25412,6 +25845,14 @@
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
"integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
},
+ "abs": {
+ "version": "1.3.14",
+ "resolved": "https://registry.npmjs.org/abs/-/abs-1.3.14.tgz",
+ "integrity": "sha512-PrS26IzwKLWwuURpiKl8wRmJ2KdR/azaVrLEBWG/TALwT20Y7qjtYp1qcMLHA4206hBHY5phv3w4pjf9NPv4Vw==",
+ "requires": {
+ "ul": "^5.0.0"
+ }
+ },
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -26720,6 +27161,11 @@
"rsvp": "^4.8.4"
}
},
+ "capture-stack-trace": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz",
+ "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw=="
+ },
"case-sensitive-paths-webpack-plugin": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz",
@@ -27269,6 +27715,14 @@
}
}
},
+ "create-error-class": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
+ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
+ "requires": {
+ "capture-stack-trace": "^1.0.0"
+ }
+ },
"create-hash": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
@@ -27776,6 +28230,11 @@
"regexp.prototype.flags": "^1.2.0"
}
},
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
@@ -27875,6 +28334,14 @@
}
}
},
+ "deffy": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmjs.org/deffy/-/deffy-2.2.4.tgz",
+ "integrity": "sha512-pLc9lsbsWjr6RxmJ2OLyvm+9l4j1yK69h+TML/gUit/t3vTijpkNGh8LioaJYTGO7F25m6HZndADcUOo2PsiUg==",
+ "requires": {
+ "typpy": "^2.0.0"
+ }
+ },
"define-properties": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
@@ -28170,6 +28637,14 @@
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
"integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
},
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "requires": {
+ "readable-stream": "^2.0.2"
+ }
+ },
"duplexify": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
@@ -28318,6 +28793,14 @@
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
"integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
},
+ "err": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/err/-/err-1.1.1.tgz",
+ "integrity": "sha1-65KOLhGjFmSPeCgz0PlyWLpDwvg=",
+ "requires": {
+ "typpy": "^2.2.0"
+ }
+ },
"errno": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
@@ -29122,6 +29605,15 @@
"safe-buffer": "^5.1.1"
}
},
+ "exec-limiter": {
+ "version": "3.2.13",
+ "resolved": "https://registry.npmjs.org/exec-limiter/-/exec-limiter-3.2.13.tgz",
+ "integrity": "sha512-86Ri699bwiHZVBzTzNj8gspqAhCPchg70zPVWIh3qzUOA1pUMcb272Em3LPk8AE0mS95B9yMJhtqF8vFJAn0dA==",
+ "requires": {
+ "limit-it": "^3.0.0",
+ "typpy": "^2.1.0"
+ }
+ },
"exec-sh": {
"version": "0.3.6",
"resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz",
@@ -29790,6 +30282,14 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "function.name": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmjs.org/function.name/-/function.name-1.0.13.tgz",
+ "integrity": "sha512-mVrqdoy5npWZyoXl4DxCeuVF6delDcQjVS9aPdvLYlBxtMTZDR2B5GVEQEoM1jJyspCqg3C0v4ABkLE7tp9xFA==",
+ "requires": {
+ "noop6": "^1.0.1"
+ }
+ },
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
@@ -29838,6 +30338,47 @@
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
"integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
},
+ "git-package-json": {
+ "version": "1.4.10",
+ "resolved": "https://registry.npmjs.org/git-package-json/-/git-package-json-1.4.10.tgz",
+ "integrity": "sha512-DRAcvbzd2SxGK7w8OgYfvKqhFliT5keX0lmSmVdgScgf1kkl5tbbo7Pam6uYoCa1liOiipKxQZG8quCtGWl/fA==",
+ "requires": {
+ "deffy": "^2.2.1",
+ "err": "^1.1.1",
+ "gry": "^5.0.0",
+ "normalize-package-data": "^2.3.5",
+ "oargv": "^3.4.1",
+ "one-by-one": "^3.1.0",
+ "r-json": "^1.2.1",
+ "r-package-json": "^1.0.0",
+ "tmp": "0.0.28"
+ }
+ },
+ "git-source": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/git-source/-/git-source-1.1.10.tgz",
+ "integrity": "sha512-XZZ7ZgnLL35oLgM/xjnLYgtlKlxJG0FohC1kWDvGkU7s1VKGXK0pFF/g1itQEwQ3D+uTQzBnzPi8XbqOv7Wc1Q==",
+ "requires": {
+ "git-url-parse": "^5.0.1"
+ }
+ },
+ "git-up": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/git-up/-/git-up-1.2.1.tgz",
+ "integrity": "sha1-JkSAoAax2EJhrB/gmjpRacV+oZ0=",
+ "requires": {
+ "is-ssh": "^1.0.0",
+ "parse-url": "^1.0.0"
+ }
+ },
+ "git-url-parse": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-5.0.1.tgz",
+ "integrity": "sha1-/j15xnRq4FBIz6UIyB553du6OEM=",
+ "requires": {
+ "git-up": "^1.0.0"
+ }
+ },
"glob": {
"version": "7.1.7",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
@@ -29905,6 +30446,44 @@
"slash": "^3.0.0"
}
},
+ "got": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-5.6.0.tgz",
+ "integrity": "sha1-ux1+4WO3gIK7yOuDbz85UATqb78=",
+ "requires": {
+ "create-error-class": "^3.0.1",
+ "duplexer2": "^0.1.4",
+ "is-plain-obj": "^1.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "node-status-codes": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "parse-json": "^2.1.0",
+ "pinkie-promise": "^2.0.0",
+ "read-all-stream": "^3.0.0",
+ "readable-stream": "^2.0.5",
+ "timed-out": "^2.0.0",
+ "unzip-response": "^1.0.0",
+ "url-parse-lax": "^1.0.0"
+ },
+ "dependencies": {
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ },
+ "parse-json": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+ "requires": {
+ "error-ex": "^1.2.0"
+ }
+ }
+ }
+ },
"graceful-fs": {
"version": "4.2.8",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz",
@@ -29916,6 +30495,17 @@
"integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=",
"optional": true
},
+ "gry": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/gry/-/gry-5.0.8.tgz",
+ "integrity": "sha512-meq9ZjYVpLzZh3ojhTg7IMad9grGsx6rUUKHLqPnhLXzJkRQvEL2U3tQpS5/WentYTtHtxkT3Ew/mb10D6F6/g==",
+ "requires": {
+ "abs": "^1.2.1",
+ "exec-limiter": "^3.0.0",
+ "one-by-one": "^3.0.0",
+ "ul": "^5.0.0"
+ }
+ },
"gzip-size": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
@@ -30804,6 +31394,11 @@
"resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
+ "is-redirect": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ="
+ },
"is-regex": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
@@ -30823,11 +31418,24 @@
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
},
+ "is-retry-allowed": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
+ "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
+ },
"is-root": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz",
"integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="
},
+ "is-ssh": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.3.tgz",
+ "integrity": "sha512-NKzJmQzJfEEma3w5cJNcUMxoXfDjz0Zj0eyCalHn2E6VOwlzjZo0yuO2fcBSf8zhFuVCL/82/r5gRcoi6aEPVQ==",
+ "requires": {
+ "protocols": "^1.1.0"
+ }
+ },
"is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
@@ -30969,6 +31577,11 @@
"istanbul-lib-report": "^3.0.0"
}
},
+ "iterate-object": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/iterate-object/-/iterate-object-1.3.4.tgz",
+ "integrity": "sha512-4dG1D1x/7g8PwHS9aK6QV5V94+ZvyP4+d19qDv43EzImmrndysIl4prmJ1hWWIGCqrZHyaHBm6BSEWHOLnpoNw=="
+ },
"jest": {
"version": "26.6.0",
"resolved": "https://registry.npmjs.org/jest/-/jest-26.6.0.tgz",
@@ -32266,6 +32879,14 @@
"type-check": "~0.4.0"
}
},
+ "limit-it": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/limit-it/-/limit-it-3.2.10.tgz",
+ "integrity": "sha512-T0NK99pHnkimldr1WUqvbGV1oWDku/xC9J/OqzJFsV1jeOS6Bwl8W7vkeQIBqwiON9dTALws+rX/XPMQqWerDQ==",
+ "requires": {
+ "typpy": "^2.0.0"
+ }
+ },
"lines-and-columns": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
@@ -32401,6 +33022,11 @@
"tslib": "^2.0.3"
}
},
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
"lru-cache": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -32928,6 +33554,16 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
"integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg=="
},
+ "node-status-codes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz",
+ "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8="
+ },
+ "noop6": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/noop6/-/noop6-1.0.9.tgz",
+ "integrity": "sha512-DB3Hwyd89dPr5HqEPg3YHjzvwh/mCqizC1zZ8vyofqc+TQRyPDnT4wgXXbLGF4z9YAzwwTLi8pNLhGqcbSjgkA=="
+ },
"normalize-package-data": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@@ -32993,6 +33629,23 @@
"resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
"integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ=="
},
+ "oargv": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/oargv/-/oargv-3.4.10.tgz",
+ "integrity": "sha512-SXaMANv9sr7S/dP0vj0+Ybipa47UE1ntTWQ2rpPRhC6Bsvfl+Jg03Xif7jfL0sWKOYWK8oPjcZ5eJ82t8AP/8g==",
+ "requires": {
+ "iterate-object": "^1.1.0",
+ "ul": "^5.0.0"
+ }
+ },
+ "obj-def": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/obj-def/-/obj-def-1.0.9.tgz",
+ "integrity": "sha512-bQ4ya3VYD6FAA1+s6mEhaURRHSmw4+sKaXE6UyXZ1XDYc5D+c7look25dFdydmLd18epUegh398gdDkMUZI9xg==",
+ "requires": {
+ "deffy": "^2.2.2"
+ }
+ },
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
@@ -33172,6 +33825,15 @@
"wrappy": "1"
}
},
+ "one-by-one": {
+ "version": "3.2.8",
+ "resolved": "https://registry.npmjs.org/one-by-one/-/one-by-one-3.2.8.tgz",
+ "integrity": "sha512-HR/pSzZdm46Xqj58K+Bu64kMbSTw8/u77AwWvV+rprO/OsuR++pPlkUJn+SmwqBGRgHKwSKQ974V3uls7crIeQ==",
+ "requires": {
+ "obj-def": "^1.0.0",
+ "sliced": "^1.0.1"
+ }
+ },
"onetime": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
@@ -33239,6 +33901,11 @@
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
"integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc="
},
+ "os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+ },
"p-each-series": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz",
@@ -33278,6 +33945,42 @@
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
+ "package-json": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/package-json/-/package-json-2.4.0.tgz",
+ "integrity": "sha1-DRW9Z9HLvduyyiIv8u24a8sxqLs=",
+ "requires": {
+ "got": "^5.0.0",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
+ "package-json-path": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/package-json-path/-/package-json-path-1.0.9.tgz",
+ "integrity": "sha512-uNu7f6Ef7tQHZRnkyVnCtzdSYVN9uBtge/sG7wzcUaawFWkPYUq67iXxRGrQSg/q0tzxIB8jSyIYUKjG2Jn//A==",
+ "requires": {
+ "abs": "^1.2.1"
+ }
+ },
+ "package.json": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/package.json/-/package.json-2.0.1.tgz",
+ "integrity": "sha1-+IYFnSpJ7QduZIg2ldc7K0bSHW0=",
+ "requires": {
+ "git-package-json": "^1.4.0",
+ "git-source": "^1.1.0",
+ "package-json": "^2.3.1"
+ }
+ },
"pako": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
@@ -33333,6 +34036,15 @@
"lines-and-columns": "^1.1.6"
}
},
+ "parse-url": {
+ "version": "1.3.11",
+ "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-1.3.11.tgz",
+ "integrity": "sha1-V8FUKKuKiSsfQ4aWRccR0OFEtVQ=",
+ "requires": {
+ "is-ssh": "^1.3.0",
+ "protocols": "^1.4.0"
+ }
+ },
"parse5": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
@@ -34773,6 +35485,11 @@
"warning": "^4.0.0"
}
},
+ "protocols": {
+ "version": "1.4.8",
+ "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz",
+ "integrity": "sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg=="
+ },
"proxy-addr": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -34886,6 +35603,20 @@
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
},
+ "r-json": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/r-json/-/r-json-1.2.10.tgz",
+ "integrity": "sha512-hu9vyLjSlHXT62NAS7DjI9WazDlvjN0lgp3n431dCVnirVcLkZIpzSwA3orhZEKzdDD2jqNYI+w0yG0aFf4kpA=="
+ },
+ "r-package-json": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/r-package-json/-/r-package-json-1.0.9.tgz",
+ "integrity": "sha512-G4Vpf1KImWmmPFGdtWQTU0L9zk0SjqEC4qs/jE7AQ+Ylmr5kizMzGeC4wnHp5+ijPqNN+2ZPpvyjVNdN1CDVcg==",
+ "requires": {
+ "package-json-path": "^1.0.0",
+ "r-json": "^1.2.1"
+ }
+ },
"raf": {
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz",
@@ -34934,6 +35665,24 @@
}
}
},
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
+ }
+ }
+ },
"rc-align": {
"version": "4.0.9",
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-4.0.9.tgz",
@@ -35275,14 +36024,6 @@
"react-side-effect": "^2.1.0"
}
},
- "react-input-autosize": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-3.0.0.tgz",
- "integrity": "sha512-nL9uS7jEs/zu8sqwFE5MAPx6pPkNAriACQ2rGLlqmKr2sPGtN7TXTyDdQt4lbNXVx7Uzadb40x8qotIuru6Rhg==",
- "requires": {
- "prop-types": "^15.5.8"
- }
- },
"react-is": {
"version": "16.13.1",
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
@@ -35480,16 +36221,16 @@
}
},
"react-select": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-select/-/react-select-4.3.1.tgz",
- "integrity": "sha512-HBBd0dYwkF5aZk1zP81Wx5UsLIIT2lSvAY2JiJo199LjoLHoivjn9//KsmvQMEFGNhe58xyuOITjfxKCcGc62Q==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.2.0.tgz",
+ "integrity": "sha512-JLH2/ei/m1an0Vu4ERMKvGgDB6yHLsgxltho2QennOLTq4Fx35GwGwh+2MFnz5EWgslX6G9rjclUTZWAA2DuBg==",
"requires": {
"@babel/runtime": "^7.12.0",
"@emotion/cache": "^11.4.0",
"@emotion/react": "^11.1.1",
+ "@types/react-transition-group": "^4.4.0",
"memoize-one": "^5.0.0",
"prop-types": "^15.6.0",
- "react-input-autosize": "^3.0.0",
"react-transition-group": "^4.3.0"
}
},
@@ -35547,6 +36288,15 @@
"prop-types": "^15.6.2"
}
},
+ "read-all-stream": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/read-all-stream/-/read-all-stream-3.1.0.tgz",
+ "integrity": "sha1-NcPhd/IHjveJ7kv6+kNzB06u9Po=",
+ "requires": {
+ "pinkie-promise": "^2.0.0",
+ "readable-stream": "^2.0.0"
+ }
+ },
"read-pkg": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
@@ -35802,6 +36552,23 @@
"unicode-match-property-value-ecmascript": "^1.2.0"
}
},
+ "registry-auth-token": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz",
+ "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==",
+ "requires": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "registry-url": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "requires": {
+ "rc": "^1.0.1"
+ }
+ },
"regjsgen": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
@@ -36599,6 +37366,11 @@
"is-fullwidth-code-point": "^3.0.0"
}
},
+ "sliced": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
+ "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -37713,6 +38485,11 @@
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
+ "timed-out": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz",
+ "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo="
+ },
"timers-browserify": {
"version": "2.0.12",
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
@@ -37736,6 +38513,14 @@
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
+ "tmp": {
+ "version": "0.0.28",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.28.tgz",
+ "integrity": "sha1-Fyc1t/YU6nrzlmT6hM8N5OUV0SA=",
+ "requires": {
+ "os-tmpdir": "~1.0.1"
+ }
+ },
"tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
@@ -37921,6 +38706,23 @@
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.3.tgz",
"integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA=="
},
+ "typpy": {
+ "version": "2.3.13",
+ "resolved": "https://registry.npmjs.org/typpy/-/typpy-2.3.13.tgz",
+ "integrity": "sha512-vOxIcQz9sxHi+rT09SJ5aDgVgrPppQjwnnayTrMye1ODaU8gIZTDM19t9TxmEElbMihx2Nq/0/b/MtyKfayRqA==",
+ "requires": {
+ "function.name": "^1.0.3"
+ }
+ },
+ "ul": {
+ "version": "5.2.15",
+ "resolved": "https://registry.npmjs.org/ul/-/ul-5.2.15.tgz",
+ "integrity": "sha512-svLEUy8xSCip5IWnsRa0UOg+2zP0Wsj4qlbjTmX6GJSmvKMHADBuHOm1dpNkWqWPIGuVSqzUkV3Cris5JrlTRQ==",
+ "requires": {
+ "deffy": "^2.2.2",
+ "typpy": "^2.3.4"
+ }
+ },
"unbox-primitive": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
@@ -38075,6 +38877,11 @@
}
}
},
+ "unzip-response": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz",
+ "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4="
+ },
"upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
@@ -38145,6 +38952,14 @@
"requires-port": "^1.0.0"
}
},
+ "url-parse-lax": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "requires": {
+ "prepend-http": "^1.0.1"
+ }
+ },
"use": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 860700269..f2c89d0a6 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -24,6 +24,8 @@
"axios": "^0.23",
"bootstrap": "^4",
"lodash": "^4",
+ "moment": "^2.29.1",
+ "package.json": "^2.0.1",
"rc-slider": "^9.7",
"react": "^17",
"react-bootstrap": "^1",
@@ -32,14 +34,13 @@
"react-redux": "^7.2",
"react-router-dom": "^5.3",
"react-scripts": "^4",
- "react-select": "^4",
+ "react-select": "^5.0.1",
"react-table": "^7",
"recharts": "^2.0.8",
"rooks": "^5.7.1",
"sass": "^1",
"socket.io-client": "^4",
- "typescript": "^4",
- "moment": "^2.29.1"
+ "typescript": "^4"
},
"devDependencies": {
"@types/bootstrap": "^5",
@@ -50,7 +51,7 @@
"@types/react-dom": "^17",
"@types/react-helmet": "^6.1",
"@types/react-router-dom": "^5",
- "@types/react-select": "^4.0.3",
+ "@types/react-select": "^5.0.1",
"@types/react-table": "^7",
"http-proxy-middleware": "^2",
"husky": "^7",
diff --git a/frontend/src/Settings/Providers/components.tsx b/frontend/src/Settings/Providers/components.tsx
index 93000df8f..c30742504 100644
--- a/frontend/src/Settings/Providers/components.tsx
+++ b/frontend/src/Settings/Providers/components.tsx
@@ -7,7 +7,7 @@ import React, {
} from "react";
import { Button, Col, Container, Row } from "react-bootstrap";
import { components } from "react-select";
-import { SelectComponents } from "react-select/src/components";
+import { SelectComponents } from "react-select/dist/declarations/src/components";
import {
BaseModal,
Selector,
@@ -213,11 +213,12 @@ export const ProviderModal: FunctionComponent = () => {
}, [info]);
const selectorComponents = useMemo<
- Partial>
+ Partial>
>(
() => ({
Option: ({ data, ...other }) => {
- const { label, value } = data as SelectorOption;
+ const { label, value } =
+ data as unknown as SelectorOption;
return (
{label}
diff --git a/frontend/src/components/inputs/Selector.tsx b/frontend/src/components/inputs/Selector.tsx
index 7ac6099c1..f3df67459 100644
--- a/frontend/src/components/inputs/Selector.tsx
+++ b/frontend/src/components/inputs/Selector.tsx
@@ -1,7 +1,7 @@
import { isArray } from "lodash";
import React, { useCallback, useMemo } from "react";
-import ReactSelect from "react-select";
-import { SelectComponents } from "react-select/src/components";
+import Select from "react-select";
+import { SelectComponents } from "react-select/dist/declarations/src/components";
import "./selector.scss";
export interface SelectorProps {
@@ -17,7 +17,7 @@ export interface SelectorProps {
label?: (item: T) => string;
defaultValue?: SelectorValueType;
value?: SelectorValueType;
- components?: Partial>;
+ components?: Partial>;
}
export function Selector(
@@ -69,15 +69,15 @@ export function Selector(
[label, multiple, nameFromItems]
);
- const defaultWrapper = useMemo(() => wrapper(defaultValue), [
- defaultValue,
- wrapper,
- ]);
+ const defaultWrapper = useMemo(
+ () => wrapper(defaultValue),
+ [defaultValue, wrapper]
+ );
const valueWrapper = useMemo(() => wrapper(value), [wrapper, value]);
return (
- = 10}
@@ -92,7 +92,7 @@ export function Selector(
className={`custom-selector w-100 ${className ?? ""}`}
classNamePrefix="selector"
onFocus={onFocus}
- onChange={(v) => {
+ onChange={(v: SelectorOption[]) => {
if (onChange) {
let res: T | T[] | null = null;
if (isArray(v)) {
@@ -106,6 +106,6 @@ export function Selector(
onChange(res as any);
}
}}
- >
+ >
);
}
From faa368b6620be68bcf1a3a8872b9305e0e533117 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Wed, 3 Nov 2021 21:46:26 -0400
Subject: [PATCH 17/41] Fixed some issues in opensubtitles.com provider. #1602
---
.../providers/opensubtitlescom.py | 68 +++++++++++--------
1 file changed, 38 insertions(+), 30 deletions(-)
diff --git a/libs/subliminal_patch/providers/opensubtitlescom.py b/libs/subliminal_patch/providers/opensubtitlescom.py
index c97f765d1..f9ab84419 100644
--- a/libs/subliminal_patch/providers/opensubtitlescom.py
+++ b/libs/subliminal_patch/providers/opensubtitlescom.py
@@ -51,7 +51,7 @@ class OpenSubtitlesComSubtitle(Subtitle):
hash_verifiable = False
def __init__(self, language, forced, hearing_impaired, page_link, file_id, releases, uploader, title, year,
- hash_matched, hash=None, season=None, episode=None):
+ hash_matched, file_hash=None, season=None, episode=None):
language = Language.rebuild(language, hi=hearing_impaired, forced=forced)
self.title = title
@@ -68,7 +68,7 @@ class OpenSubtitlesComSubtitle(Subtitle):
self.download_link = None
self.uploader = uploader
self.matches = None
- self.hash = hash
+ self.hash = file_hash
self.encoding = 'utf-8'
self.hash_matched = hash_matched
@@ -123,8 +123,8 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
"""OpenSubtitlesCom Provider"""
server_url = 'https://api.opensubtitles.com/api/v1/'
- languages = {Language.fromopensubtitles(l) for l in language_converters['szopensubtitles'].codes}
- languages.update(set(Language.rebuild(l, forced=True) for l in languages))
+ languages = {Language.fromopensubtitles(lang) for lang in language_converters['szopensubtitles'].codes}
+ languages.update(set(Language.rebuild(lang, forced=True) for lang in languages))
def __init__(self, username=None, password=None, use_hash=True, api_key=None):
if not all((username, password)):
@@ -183,26 +183,16 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
@staticmethod
def sanitize_external_ids(external_id):
if isinstance(external_id, str):
- external_id = external_id.lower().lstrip('tt')
+ external_id = external_id.lower().lstrip('tt').lstrip('0')
sanitized_id = external_id[:-1].lstrip('0') + external_id[-1]
return int(sanitized_id)
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
def search_titles(self, title):
title_id = None
- imdb_id = None
- if isinstance(self.video, Episode) and self.video.series_imdb_id:
- imdb_id = self.sanitize_external_ids(self.video.series_imdb_id)
- elif isinstance(self.video, Movie) and self.video.imdb_id:
- imdb_id = self.sanitize_external_ids(self.video.imdb_id)
-
- if imdb_id:
- parameters = {'imdb_id': imdb_id}
- logging.debug('Searching using this IMDB id: {}'.format(imdb_id))
- else:
- parameters = {'query': title.lower()}
- logging.debug('Searching using this title: {}'.format(title))
+ parameters = {'query': title.lower()}
+ logging.debug('Searching using this title: {}'.format(title))
results = self.session.get(self.server_url + 'features', params=parameters, timeout=30)
@@ -230,10 +220,19 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
else:
# loop over results
for result in results_dict:
- if fix_tv_naming(title).lower() == result['attributes']['title'].lower() and \
- (not self.video.year or self.video.year == int(result['attributes']['year'])):
- title_id = result['id']
- break
+ if 'title' in result['attributes']:
+ if isinstance(self.video, Episode):
+ if fix_tv_naming(title).lower() == result['attributes']['title'].lower() and \
+ (not self.video.year or self.video.year == int(result['attributes']['year'])):
+ title_id = result['id']
+ break
+ else:
+ if fix_movie_naming(title).lower() == result['attributes']['title'].lower() and \
+ (not self.video.year or self.video.year == int(result['attributes']['year'])):
+ title_id = result['id']
+ break
+ else:
+ continue
if title_id:
logging.debug('Found this title ID: {}'.format(title_id))
@@ -245,19 +244,28 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
def query(self, languages, video):
self.video = video
if self.use_hash:
- hash = self.video.hashes.get('opensubtitlescom')
+ file_hash = self.video.hashes.get('opensubtitlescom')
logging.debug('Searching using this hash: {}'.format(hash))
else:
- hash = None
+ file_hash = None
if isinstance(self.video, Episode):
title = self.video.series
else:
title = self.video.title
- title_id = self.search_titles(title)
- if not title_id:
- return []
+ imdb_id = None
+ if isinstance(self.video, Episode) and self.video.series_imdb_id:
+ imdb_id = self.sanitize_external_ids(self.video.series_imdb_id)
+ elif isinstance(self.video, Movie) and self.video.imdb_id:
+ imdb_id = self.sanitize_external_ids(self.video.imdb_id)
+
+ title_id = None
+ if not imdb_id:
+ title_id = self.search_titles(title)
+ if not title_id:
+ return []
+
lang_strings = [str(lang.basename) for lang in languages]
only_foreign = all([lang.forced for lang in languages])
also_foreign = any([lang.forced for lang in languages])
@@ -277,17 +285,17 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
params=(('episode_number', self.video.episode),
('foreign_parts_only', forced),
('languages', langs.lower()),
- ('moviehash', hash),
- ('parent_feature_id', title_id),
+ ('moviehash', file_hash),
+ ('parent_feature_id', title_id) if title_id else ('imdb_id', imdb_id),
('season_number', self.video.season),
('query', os.path.basename(self.video.name))),
timeout=30)
else:
res = self.session.get(self.server_url + 'subtitles',
params=(('foreign_parts_only', forced),
- ('id', title_id),
+ ('id', title_id) if title_id else ('imdb_id', imdb_id),
('languages', langs.lower()),
- ('moviehash', hash),
+ ('moviehash', file_hash),
('query', os.path.basename(self.video.name))),
timeout=30)
From f8282efeb69ca07139f93bc09004bda16f3f0827 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 8 Nov 2021 22:21:37 -0500
Subject: [PATCH 18/41] no log: Bump @fontsource/roboto from 4.5.0 to 4.5.1 in
/frontend (#1608)
Bumps [@fontsource/roboto](https://github.com/fontsource/fontsource/tree/HEAD/packages/roboto) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/fontsource/fontsource/releases)
- [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md)
- [Commits](https://github.com/fontsource/fontsource/commits/@fontsource/rasa@4.5.1/packages/roboto)
---
updated-dependencies:
- dependency-name: "@fontsource/roboto"
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 14 +++++++-------
frontend/package.json | 2 +-
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 7ebd6fbf2..879175837 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -9,7 +9,7 @@
"version": "1.0.0",
"license": "GPL-3",
"dependencies": {
- "@fontsource/roboto": "^4.2.2",
+ "@fontsource/roboto": "^4.5.1",
"@fortawesome/fontawesome-svg-core": "^1.2",
"@fortawesome/free-brands-svg-icons": "^5.15",
"@fortawesome/free-regular-svg-icons": "^5.15",
@@ -2085,9 +2085,9 @@
}
},
"node_modules/@fontsource/roboto": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.0.tgz",
- "integrity": "sha512-ja4XYw/9kNRFM5Ndk9vwzHWsdBMXczyBazFkTXJQ74QQBnT0BbSsHn0pF60AU0Iznig1Wt9x3rADfG8LANvMpw=="
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.1.tgz",
+ "integrity": "sha512-3mhfL+eNPG/woMNqwD/OHaW5qMpeGEBsDwzmhFmjB1yUV+M+M9P0NhP/AyHvnGz3DrqkvZ7CPzNMa+UkVLeELg=="
},
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "0.2.36",
@@ -24205,9 +24205,9 @@
}
},
"@fontsource/roboto": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.0.tgz",
- "integrity": "sha512-ja4XYw/9kNRFM5Ndk9vwzHWsdBMXczyBazFkTXJQ74QQBnT0BbSsHn0pF60AU0Iznig1Wt9x3rADfG8LANvMpw=="
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.1.tgz",
+ "integrity": "sha512-3mhfL+eNPG/woMNqwD/OHaW5qMpeGEBsDwzmhFmjB1yUV+M+M9P0NhP/AyHvnGz3DrqkvZ7CPzNMa+UkVLeELg=="
},
"@fortawesome/fontawesome-common-types": {
"version": "0.2.36",
diff --git a/frontend/package.json b/frontend/package.json
index f2c89d0a6..0ebd83d4a 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -14,7 +14,7 @@
"private": true,
"homepage": "./",
"dependencies": {
- "@fontsource/roboto": "^4.2.2",
+ "@fontsource/roboto": "^4.5.1",
"@fortawesome/fontawesome-svg-core": "^1.2",
"@fortawesome/free-brands-svg-icons": "^5.15",
"@fortawesome/free-regular-svg-icons": "^5.15",
From b53f8ad80abff1410918bd3b86157d01b08fee6d Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 9 Nov 2021 22:55:47 -0500
Subject: [PATCH 19/41] Implemented some utility functions to subliminal_patch
providers to list supported languages and video types.
---
libs/subliminal_patch/core.py | 122 ++++++++++++++++++
libs/subliminal_patch/providers/assrt.py | 1 +
libs/subliminal_patch/providers/bsplayer.py | 1 +
libs/subliminal_patch/providers/greeksubs.py | 1 +
.../providers/greeksubtitles.py | 1 +
libs/subliminal_patch/providers/ktuvit.py | 1 +
.../providers/legendasdivx.py | 1 +
libs/subliminal_patch/providers/legendastv.py | 1 +
.../subliminal_patch/providers/napiprojekt.py | 2 +
libs/subliminal_patch/providers/napisy24.py | 2 +
libs/subliminal_patch/providers/nekur.py | 1 +
.../providers/opensubtitles.py | 2 +
.../providers/opensubtitlescom.py | 2 +
libs/subliminal_patch/providers/podnapisi.py | 5 +-
libs/subliminal_patch/providers/regielive.py | 1 +
libs/subliminal_patch/providers/shooter.py | 3 +-
.../providers/soustitreseu.py | 1 +
libs/subliminal_patch/providers/subdivx.py | 1 +
libs/subliminal_patch/providers/subscene.py | 3 +-
libs/subliminal_patch/providers/subscenter.py | 4 +-
libs/subliminal_patch/providers/subssabbz.py | 1 +
libs/subliminal_patch/providers/subsunacs.py | 1 +
.../providers/subtitrarinoi.py | 1 +
libs/subliminal_patch/providers/subtitriid.py | 1 +
libs/subliminal_patch/providers/titlovi.py | 1 +
libs/subliminal_patch/providers/titrari.py | 1 +
libs/subliminal_patch/providers/titulky.py | 3 +-
.../subliminal_patch/providers/tvsubtitles.py | 2 +
libs/subliminal_patch/providers/wizdom.py | 1 +
libs/subliminal_patch/providers/yavkanet.py | 1 +
libs/subliminal_patch/providers/zimuku.py | 1 +
31 files changed, 163 insertions(+), 7 deletions(-)
diff --git a/libs/subliminal_patch/core.py b/libs/subliminal_patch/core.py
index 4025bce90..b6629526a 100644
--- a/libs/subliminal_patch/core.py
+++ b/libs/subliminal_patch/core.py
@@ -21,6 +21,7 @@ from bs4 import UnicodeDammit
from babelfish import LanguageReverseError
from guessit.jsonutils import GuessitEncoder
from subliminal import ProviderError, refiner_manager
+from concurrent.futures import as_completed
from .extensions import provider_registry
from subliminal.exceptions import ServiceUnavailable, DownloadLimitExceeded
@@ -427,6 +428,58 @@ class SZProviderPool(ProviderPool):
return downloaded_subtitles
+ def list_supported_languages(self):
+ """List supported languages.
+
+ :return: languages supported by the providers.
+ :rtype: list of dicts
+
+ """
+ languages = []
+
+ for name in self.providers:
+ # list supported languages for a single provider
+ try:
+ provider_languages = self[name].languages
+ except AttributeError:
+ logger.exception(f"{name} provider doesn't have a languages attribute")
+ continue
+
+ if provider_languages is None:
+ logger.info(f"Skipping provider {name} because it doesn't support any languages.")
+ continue
+
+ # add the languages for this provider
+ languages.append({'provider': name, 'languages': provider_languages})
+
+ return languages
+
+ def list_supported_video_types(self):
+ """List supported video types.
+
+ :return: video types supported by the providers.
+ :rtype: tuple of video types
+
+ """
+ video_types = []
+
+ for name in self.providers:
+ # list supported video types for a single provider
+ try:
+ provider_video_type = self[name].video_types
+ except AttributeError:
+ logger.exception(f"{name} provider doesn't have a video_types method")
+ continue
+
+ if provider_video_type is None:
+ logger.info(f"Skipping provider {name} because it doesn't support any video type.")
+ continue
+
+ # add the video types for this provider
+ video_types.append({'provider': name, 'video_types': provider_video_type})
+
+ return video_types
+
class SZAsyncProviderPool(SZProviderPool):
"""Subclass of :class:`ProviderPool` with asynchronous support for :meth:`~ProviderPool.list_subtitles`.
@@ -474,6 +527,65 @@ class SZAsyncProviderPool(SZProviderPool):
return subtitles
+ def list_supported_languages(self):
+ """List supported languages asynchronously.
+
+ :return: languages supported by the providers.
+ :rtype: list of dicts
+
+ """
+ languages = []
+
+ def get_providers_languages(provider_name):
+ provider_languages = None
+ try:
+ provider_languages = {'provider': provider_name, 'languages': self[provider_name].languages}
+ except AttributeError:
+ logger.exception(f"{provider_name} provider doesn't have a languages attribute")
+
+ return provider_languages
+
+ with ThreadPoolExecutor(self.max_workers) as executor:
+ for future in as_completed([executor.submit(get_providers_languages, x) for x in self.providers]):
+ provider_languages = future.result()
+ if provider_languages is None:
+ continue
+
+ # add the languages for this provider
+ languages.append(provider_languages)
+
+ return languages
+
+ def list_supported_video_types(self):
+ """List supported video types asynchronously.
+
+ :return: video types supported by the providers.
+ :rtype: tuple of video types
+
+ """
+ video_types = []
+
+ def get_providers_video_types(provider_name):
+ provider_video_types = None
+ try:
+ provider_video_types = {'provider': provider_name,
+ 'video_types': self[provider_name].video_types}
+ except AttributeError:
+ logger.exception(f"{provider_name} provider doesn't have a video_types attribute")
+
+ return provider_video_types
+
+ with ThreadPoolExecutor(self.max_workers) as executor:
+ for future in as_completed([executor.submit(get_providers_video_types, x) for x in self.providers]):
+ provider_video_types = future.result()
+ if provider_video_types is None:
+ continue
+
+ # add the languages for this provider
+ video_types.append(provider_video_types)
+
+ return video_types
+
if is_windows_special_path:
SZAsyncProviderPool = SZProviderPool
@@ -758,6 +870,16 @@ def list_all_subtitles(videos, languages, **kwargs):
return listed_subtitles
+def list_supported_languages(pool_class, **kwargs):
+ with pool_class(**kwargs) as pool:
+ return pool.list_supported_languages()
+
+
+def list_supported_video_types(pool_class, **kwargs):
+ with pool_class(**kwargs) as pool:
+ return pool.list_supported_video_types()
+
+
def download_subtitles(subtitles, pool_class=ProviderPool, **kwargs):
"""Download :attr:`~subliminal.subtitle.Subtitle.content` of `subtitles`.
diff --git a/libs/subliminal_patch/providers/assrt.py b/libs/subliminal_patch/providers/assrt.py
index e8e6a499f..a1f7caba3 100644
--- a/libs/subliminal_patch/providers/assrt.py
+++ b/libs/subliminal_patch/providers/assrt.py
@@ -109,6 +109,7 @@ class AssrtSubtitle(Subtitle):
class AssrtProvider(Provider):
"""Assrt Provider."""
languages = {Language(*l) for l in supported_languages}
+ video_types = (Episode, Movie)
def __init__(self, token=None):
if not token:
diff --git a/libs/subliminal_patch/providers/bsplayer.py b/libs/subliminal_patch/providers/bsplayer.py
index f062e5cf8..9b44089fe 100644
--- a/libs/subliminal_patch/providers/bsplayer.py
+++ b/libs/subliminal_patch/providers/bsplayer.py
@@ -72,6 +72,7 @@ class BSPlayerProvider(Provider):
'ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor', 'nld', 'pol', 'por',
'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho'
]}
+ video_types = (Episode, Movie)
SEARCH_THROTTLE = 8
hash_verifiable = True
# fmt: on
diff --git a/libs/subliminal_patch/providers/greeksubs.py b/libs/subliminal_patch/providers/greeksubs.py
index bec0749c6..9b0e8074a 100644
--- a/libs/subliminal_patch/providers/greeksubs.py
+++ b/libs/subliminal_patch/providers/greeksubs.py
@@ -54,6 +54,7 @@ class GreekSubsSubtitle(Subtitle):
class GreekSubsProvider(Provider):
"""GreekSubs Provider."""
languages = {Language('ell')}
+ video_types = (Episode, Movie)
server_url = 'https://greeksubs.net/'
subtitle_class = GreekSubsSubtitle
diff --git a/libs/subliminal_patch/providers/greeksubtitles.py b/libs/subliminal_patch/providers/greeksubtitles.py
index fbda6ab12..7ee26efce 100644
--- a/libs/subliminal_patch/providers/greeksubtitles.py
+++ b/libs/subliminal_patch/providers/greeksubtitles.py
@@ -52,6 +52,7 @@ class GreekSubtitlesSubtitle(Subtitle):
class GreekSubtitlesProvider(Provider):
"""GreekSubtitles Provider."""
languages = {Language(l) for l in ['ell', 'eng']}
+ video_types = (Episode, Movie)
server_url = 'http://gr.greek-subtitles.com/'
search_url = 'search.php?name={}'
download_url = 'http://www.greeksubtitles.info/getp.php?id={:d}'
diff --git a/libs/subliminal_patch/providers/ktuvit.py b/libs/subliminal_patch/providers/ktuvit.py
index bdf37bfc4..56c713c63 100644
--- a/libs/subliminal_patch/providers/ktuvit.py
+++ b/libs/subliminal_patch/providers/ktuvit.py
@@ -110,6 +110,7 @@ class KtuvitProvider(Provider):
"""Ktuvit Provider."""
languages = {Language(l) for l in ["heb"]}
+ video_types = (Episode, Movie)
server_url = "https://www.ktuvit.me/"
sign_in_url = "Services/MembershipService.svc/Login"
search_url = "Services/ContentProvider.svc/SearchPage_search"
diff --git a/libs/subliminal_patch/providers/legendasdivx.py b/libs/subliminal_patch/providers/legendasdivx.py
index 5d1ad8825..d72b762b4 100644
--- a/libs/subliminal_patch/providers/legendasdivx.py
+++ b/libs/subliminal_patch/providers/legendasdivx.py
@@ -121,6 +121,7 @@ class LegendasdivxSubtitle(Subtitle):
class LegendasdivxProvider(Provider):
"""Legendasdivx Provider."""
languages = {Language('por', 'BR')} | {Language('por')}
+ video_types = (Episode, Movie)
SEARCH_THROTTLE = 8
site = 'https://www.legendasdivx.pt'
headers = {
diff --git a/libs/subliminal_patch/providers/legendastv.py b/libs/subliminal_patch/providers/legendastv.py
index 43db667a7..638f332fb 100644
--- a/libs/subliminal_patch/providers/legendastv.py
+++ b/libs/subliminal_patch/providers/legendastv.py
@@ -68,6 +68,7 @@ class LegendasTVSubtitle(_LegendasTVSubtitle):
class LegendasTVProvider(_LegendasTVProvider):
languages = {Language(*l) for l in language_converters['legendastv'].to_legendastv.keys()}
+ video_types = (Episode, Movie)
subtitle_class = LegendasTVSubtitle
def __init__(self, username=None, password=None, featured_only=False):
diff --git a/libs/subliminal_patch/providers/napiprojekt.py b/libs/subliminal_patch/providers/napiprojekt.py
index 119892b0a..647e8f196 100644
--- a/libs/subliminal_patch/providers/napiprojekt.py
+++ b/libs/subliminal_patch/providers/napiprojekt.py
@@ -5,6 +5,7 @@ import logging
from subliminal.providers.napiprojekt import NapiProjektProvider as _NapiProjektProvider, \
NapiProjektSubtitle as _NapiProjektSubtitle, get_subhash
from subzero.language import Language
+from subliminal.video import Episode, Movie
logger = logging.getLogger(__name__)
@@ -21,6 +22,7 @@ class NapiProjektSubtitle(_NapiProjektSubtitle):
class NapiProjektProvider(_NapiProjektProvider):
languages = {Language.fromalpha2(l) for l in ['pl']}
+ video_types = (Episode, Movie)
subtitle_class = NapiProjektSubtitle
def query(self, language, hash):
diff --git a/libs/subliminal_patch/providers/napisy24.py b/libs/subliminal_patch/providers/napisy24.py
index acbc2bba9..337c1fb87 100644
--- a/libs/subliminal_patch/providers/napisy24.py
+++ b/libs/subliminal_patch/providers/napisy24.py
@@ -12,6 +12,7 @@ from subliminal import __short_version__
from subliminal.exceptions import AuthenticationError, ConfigurationError
from subliminal.subtitle import fix_line_ending
from subzero.language import Language
+from subliminal.video import Episode, Movie
logger = logging.getLogger(__name__)
@@ -47,6 +48,7 @@ class Napisy24Subtitle(Subtitle):
class Napisy24Provider(Provider):
'''Napisy24 Provider.'''
languages = {Language(l) for l in ['pol']}
+ video_types = (Episode, Movie)
required_hash = 'napisy24'
api_url = 'http://napisy24.pl/run/CheckSubAgent.php'
diff --git a/libs/subliminal_patch/providers/nekur.py b/libs/subliminal_patch/providers/nekur.py
index 112911266..096c34abd 100644
--- a/libs/subliminal_patch/providers/nekur.py
+++ b/libs/subliminal_patch/providers/nekur.py
@@ -104,6 +104,7 @@ class NekurProvider(Provider, ProviderSubtitleArchiveMixin):
"""Nekur Provider."""
subtitle_class = NekurSubtitle
languages = {Language('lva', 'LV')} | {Language.fromalpha2(l) for l in ['lv']}
+ video_types = (Movie,)
server_url = 'http://subtitri.nekur.net/'
search_url = server_url + 'modules/Subtitles.php'
diff --git a/libs/subliminal_patch/providers/opensubtitles.py b/libs/subliminal_patch/providers/opensubtitles.py
index 0152b37d6..cfa144670 100644
--- a/libs/subliminal_patch/providers/opensubtitles.py
+++ b/libs/subliminal_patch/providers/opensubtitles.py
@@ -140,6 +140,8 @@ class OpenSubtitlesProvider(ProviderRetryMixin, _OpenSubtitlesProvider):
languages.update(set(Language.rebuild(l, forced=True) for l in languages))
languages.update(set(Language.rebuild(l, hi=True) for l in languages))
+ video_types = (Episode, Movie)
+
def __init__(self, username=None, password=None, use_tag_search=False, only_foreign=False, also_foreign=False,
skip_wrong_fps=True, is_vip=False, use_ssl=True, timeout=15):
if any((username, password)) and not all((username, password)):
diff --git a/libs/subliminal_patch/providers/opensubtitlescom.py b/libs/subliminal_patch/providers/opensubtitlescom.py
index f9ab84419..f5ee0f8e9 100644
--- a/libs/subliminal_patch/providers/opensubtitlescom.py
+++ b/libs/subliminal_patch/providers/opensubtitlescom.py
@@ -126,6 +126,8 @@ class OpenSubtitlesComProvider(ProviderRetryMixin, Provider):
languages = {Language.fromopensubtitles(lang) for lang in language_converters['szopensubtitles'].codes}
languages.update(set(Language.rebuild(lang, forced=True) for lang in languages))
+ video_types = (Episode, Movie)
+
def __init__(self, username=None, password=None, use_hash=True, api_key=None):
if not all((username, password)):
raise ConfigurationError('Username and password must be specified')
diff --git a/libs/subliminal_patch/providers/podnapisi.py b/libs/subliminal_patch/providers/podnapisi.py
index 9952240df..5aafaa8fe 100644
--- a/libs/subliminal_patch/providers/podnapisi.py
+++ b/libs/subliminal_patch/providers/podnapisi.py
@@ -27,8 +27,7 @@ except ImportError:
except ImportError:
import xml.etree.ElementTree as etree
from babelfish import language_converters
-from subliminal import Episode
-from subliminal import Movie
+from subliminal.video import Episode, Movie
from subliminal.providers.podnapisi import PodnapisiProvider as _PodnapisiProvider, \
PodnapisiSubtitle as _PodnapisiSubtitle
from subliminal_patch.utils import sanitize, fix_inconsistent_naming as _fix_inconsistent_naming
@@ -130,6 +129,8 @@ class PodnapisiProvider(_PodnapisiProvider, ProviderSubtitleArchiveMixin):
languages.update(set(Language.rebuild(l, forced=True) for l in languages))
languages.update(set(Language.rebuild(l, hi=True) for l in languages))
+ video_types = (Episode, Movie)
+
server_url = 'https://podnapisi.net/subtitles/'
only_foreign = False
also_foreign = False
diff --git a/libs/subliminal_patch/providers/regielive.py b/libs/subliminal_patch/providers/regielive.py
index 16bbdf2b0..91853f790 100644
--- a/libs/subliminal_patch/providers/regielive.py
+++ b/libs/subliminal_patch/providers/regielive.py
@@ -65,6 +65,7 @@ class RegieLiveProvider(Provider):
"""RegieLive Provider."""
languages = {Language(l) for l in ['ron']}
language = list(languages)[0]
+ video_types = (Episode, Movie)
SEARCH_THROTTLE = 8
def __init__(self):
diff --git a/libs/subliminal_patch/providers/shooter.py b/libs/subliminal_patch/providers/shooter.py
index 8b81856df..a20d9bfb4 100644
--- a/libs/subliminal_patch/providers/shooter.py
+++ b/libs/subliminal_patch/providers/shooter.py
@@ -2,6 +2,7 @@
from __future__ import absolute_import
from subliminal.providers.shooter import ShooterProvider as _ShooterProvider, ShooterSubtitle as _ShooterSubtitle
+from subliminal.video import Episode, Movie
class ShooterSubtitle(_ShooterSubtitle):
@@ -13,4 +14,4 @@ class ShooterSubtitle(_ShooterSubtitle):
class ShooterProvider(_ShooterProvider):
subtitle_class = ShooterSubtitle
-
+ video_types = (Episode, Movie)
diff --git a/libs/subliminal_patch/providers/soustitreseu.py b/libs/subliminal_patch/providers/soustitreseu.py
index a26600ba3..4c7ca7d8e 100644
--- a/libs/subliminal_patch/providers/soustitreseu.py
+++ b/libs/subliminal_patch/providers/soustitreseu.py
@@ -102,6 +102,7 @@ class SoustitreseuProvider(Provider, ProviderSubtitleArchiveMixin):
"""Sous-Titres.eu Provider."""
subtitle_class = SoustitreseuSubtitle
languages = {Language(l) for l in ['fra', 'eng']}
+ video_types = (Episode, Movie)
server_url = 'https://www.sous-titres.eu/'
search_url = server_url + 'search.html'
diff --git a/libs/subliminal_patch/providers/subdivx.py b/libs/subliminal_patch/providers/subdivx.py
index 6bdff363b..181b44118 100644
--- a/libs/subliminal_patch/providers/subdivx.py
+++ b/libs/subliminal_patch/providers/subdivx.py
@@ -83,6 +83,7 @@ class SubdivxSubtitlesProvider(Provider):
provider_name = "subdivx"
hash_verifiable = False
languages = {Language("spa", "MX")} | {Language.fromalpha2("es")}
+ video_types = (Episode, Movie)
subtitle_class = SubdivxSubtitle
server_url = "https://www.subdivx.com/"
diff --git a/libs/subliminal_patch/providers/subscene.py b/libs/subliminal_patch/providers/subscene.py
index ad3e3b748..42f0221b0 100644
--- a/libs/subliminal_patch/providers/subscene.py
+++ b/libs/subliminal_patch/providers/subscene.py
@@ -21,6 +21,7 @@ from babelfish import language_converters
from guessit import guessit
from dogpile.cache.api import NO_VALUE
from subliminal import Episode, ProviderError
+from subliminal.video import Episode, Movie
from subliminal.exceptions import ConfigurationError, ServiceUnavailable
from subliminal.utils import sanitize_release_group
from subliminal.cache import region
@@ -124,7 +125,7 @@ class SubsceneProvider(Provider, ProviderSubtitleArchiveMixin):
languages = supported_languages
languages.update(set(Language.rebuild(l, forced=True) for l in languages))
languages.update(set(Language.rebuild(l, hi=True) for l in languages))
-
+ video_types = (Episode, Movie)
session = None
skip_wrong_fps = False
hearing_impaired_verifiable = True
diff --git a/libs/subliminal_patch/providers/subscenter.py b/libs/subliminal_patch/providers/subscenter.py
index 92ccdeda7..5dd591296 100644
--- a/libs/subliminal_patch/providers/subscenter.py
+++ b/libs/subliminal_patch/providers/subscenter.py
@@ -3,7 +3,7 @@
from __future__ import absolute_import
from guessit import guessit
-from subliminal.video import Episode
+from subliminal.video import Episode, Movie
from subliminal.providers.subscenter import SubsCenterProvider as _SubsCenterProvider, \
SubsCenterSubtitle as _SubsCenterSubtitle
from subzero.language import Language
@@ -37,7 +37,7 @@ class SubsCenterSubtitle(_SubsCenterSubtitle):
class SubsCenterProvider(_SubsCenterProvider):
languages = {Language.fromalpha2(l) for l in ['he']}
+ video_types = (Episode, Movie)
subtitle_class = SubsCenterSubtitle
hearing_impaired_verifiable = True
server_url = 'http://www.subscenter.info/he/'
-
diff --git a/libs/subliminal_patch/providers/subssabbz.py b/libs/subliminal_patch/providers/subssabbz.py
index 9a0e246b5..18c9ffbef 100644
--- a/libs/subliminal_patch/providers/subssabbz.py
+++ b/libs/subliminal_patch/providers/subssabbz.py
@@ -122,6 +122,7 @@ class SubsSabBzProvider(Provider):
languages = {Language(l) for l in [
'bul', 'eng'
]}
+ video_types = (Episode, Movie)
def initialize(self):
self.session = Session()
diff --git a/libs/subliminal_patch/providers/subsunacs.py b/libs/subliminal_patch/providers/subsunacs.py
index 4cb771605..df969bcc8 100644
--- a/libs/subliminal_patch/providers/subsunacs.py
+++ b/libs/subliminal_patch/providers/subsunacs.py
@@ -120,6 +120,7 @@ class SubsUnacsProvider(Provider):
languages = {Language(l) for l in [
'bul', 'eng'
]}
+ video_types = (Episode, Movie)
def initialize(self):
self.session = Session()
diff --git a/libs/subliminal_patch/providers/subtitrarinoi.py b/libs/subliminal_patch/providers/subtitrarinoi.py
index e396d03bb..39ed5703f 100644
--- a/libs/subliminal_patch/providers/subtitrarinoi.py
+++ b/libs/subliminal_patch/providers/subtitrarinoi.py
@@ -124,6 +124,7 @@ class SubtitrarinoiProvider(Provider, ProviderSubtitleArchiveMixin):
subtitle_class = SubtitrarinoiSubtitle
languages = {Language(lang) for lang in ['ron']}
languages.update(set(Language.rebuild(lang, forced=True) for lang in languages))
+ video_types = (Episode, Movie)
server_url = 'https://www.subtitrari-noi.ro/'
api_url = server_url + 'paginare_filme.php'
diff --git a/libs/subliminal_patch/providers/subtitriid.py b/libs/subliminal_patch/providers/subtitriid.py
index 516cf02df..99062496f 100644
--- a/libs/subliminal_patch/providers/subtitriid.py
+++ b/libs/subliminal_patch/providers/subtitriid.py
@@ -94,6 +94,7 @@ class SubtitriIdProvider(Provider, ProviderSubtitleArchiveMixin):
"""subtitri.id.lv Provider."""
subtitle_class = SubtitriIdSubtitle
languages = {Language('lva', 'LV')} | {Language.fromalpha2(l) for l in ['lv']}
+ video_types = (Movie,)
server_url = 'http://subtitri.id.lv'
search_url = server_url + '/search/'
diff --git a/libs/subliminal_patch/providers/titlovi.py b/libs/subliminal_patch/providers/titlovi.py
index 0a0ebd927..5b9a39986 100644
--- a/libs/subliminal_patch/providers/titlovi.py
+++ b/libs/subliminal_patch/providers/titlovi.py
@@ -135,6 +135,7 @@ class TitloviSubtitle(Subtitle):
class TitloviProvider(Provider, ProviderSubtitleArchiveMixin):
subtitle_class = TitloviSubtitle
languages = {Language.fromtitlovi(l) for l in language_converters['titlovi'].codes} | {Language.fromietf('sr-Latn')}
+ video_types = (Episode, Movie)
api_url = 'https://kodi.titlovi.com/api/subtitles'
api_gettoken_url = api_url + '/gettoken'
api_search_url = api_url + '/search'
diff --git a/libs/subliminal_patch/providers/titrari.py b/libs/subliminal_patch/providers/titrari.py
index d2f8a9af9..534870e73 100644
--- a/libs/subliminal_patch/providers/titrari.py
+++ b/libs/subliminal_patch/providers/titrari.py
@@ -125,6 +125,7 @@ class TitrariProvider(Provider, ProviderSubtitleArchiveMixin):
subtitle_class = TitrariSubtitle
languages = {Language(lang) for lang in ['ron', 'eng']}
languages.update(set(Language.rebuild(lang, forced=True) for lang in languages))
+ video_types = (Episode, Movie)
api_url = 'https://www.titrari.ro/'
query_advanced_search = 'cautarepreaavansata'
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index 65953f6ce..1fd897464 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -144,6 +144,7 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
"""Titulky.com provider"""
languages = {Language(l) for l in ['ces', 'slk']}
+ video_types = (Episode, Movie)
hash_verifiable = False
hearing_impaired_verifiable = False
@@ -203,7 +204,7 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
def terminate(self):
self.logout()
self.session.close()
-
+
def login(self):
logger.info("Titulky.com: Logging in")
diff --git a/libs/subliminal_patch/providers/tvsubtitles.py b/libs/subliminal_patch/providers/tvsubtitles.py
index 9e0ec4216..cb7c43fda 100644
--- a/libs/subliminal_patch/providers/tvsubtitles.py
+++ b/libs/subliminal_patch/providers/tvsubtitles.py
@@ -10,6 +10,7 @@ from subliminal.cache import SHOW_EXPIRATION_TIME, region, EPISODE_EXPIRATION_TI
from subliminal.providers.tvsubtitles import TVsubtitlesProvider as _TVsubtitlesProvider, \
TVsubtitlesSubtitle as _TVsubtitlesSubtitle, link_re, episode_id_re
from subliminal.utils import sanitize
+from subliminal.video import Episode
logger = logging.getLogger(__name__)
@@ -26,6 +27,7 @@ class TVsubtitlesProvider(_TVsubtitlesProvider):
'ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor', 'nld', 'pol', 'por',
'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho'
]}
+ video_types = (Episode,)
subtitle_class = TVsubtitlesSubtitle
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
diff --git a/libs/subliminal_patch/providers/wizdom.py b/libs/subliminal_patch/providers/wizdom.py
index a68102203..f6ef2498e 100644
--- a/libs/subliminal_patch/providers/wizdom.py
+++ b/libs/subliminal_patch/providers/wizdom.py
@@ -79,6 +79,7 @@ class WizdomSubtitle(Subtitle):
class WizdomProvider(Provider):
"""Wizdom Provider."""
languages = {Language(l) for l in ['heb']}
+ video_types = (Episode, Movie)
server_url = 'wizdom.xyz'
_tmdb_api_key = 'a51ee051bcd762543373903de296e0a3'
diff --git a/libs/subliminal_patch/providers/yavkanet.py b/libs/subliminal_patch/providers/yavkanet.py
index e8b67e827..7c6c3c37d 100644
--- a/libs/subliminal_patch/providers/yavkanet.py
+++ b/libs/subliminal_patch/providers/yavkanet.py
@@ -102,6 +102,7 @@ class YavkaNetProvider(Provider):
languages = {Language(l) for l in [
'bul', 'eng', 'rus', 'spa', 'ita'
]}
+ video_types = (Episode, Movie)
def initialize(self):
self.session = Session()
diff --git a/libs/subliminal_patch/providers/zimuku.py b/libs/subliminal_patch/providers/zimuku.py
index a405bf086..ec3fa0864 100644
--- a/libs/subliminal_patch/providers/zimuku.py
+++ b/libs/subliminal_patch/providers/zimuku.py
@@ -84,6 +84,7 @@ class ZimukuProvider(Provider):
"""Zimuku Provider."""
languages = {Language(*l) for l in supported_languages}
+ video_types = (Episode, Movie)
logger.info(str(supported_languages))
server_url = "http://zimuku.org"
From 6f17100ca4b0ea8be445dad81de775cb56840c28 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 9 Nov 2021 23:21:55 -0500
Subject: [PATCH 20/41] Fixed issue with non-existent episode or movie when
indexing embedded subtitles. #1606
---
bazarr/list_subtitles.py | 124 +++++++++++++++++++++------------------
1 file changed, 68 insertions(+), 56 deletions(-)
diff --git a/bazarr/list_subtitles.py b/bazarr/list_subtitles.py
index 7c162e1c0..1f4dcc029 100644
--- a/bazarr/list_subtitles.py
+++ b/bazarr/list_subtitles.py
@@ -18,6 +18,7 @@ from helper import path_mappings, get_subtitle_destination_folder
from embedded_subs_reader import embedded_subs_reader
from event_handler import event_stream, show_progress, hide_progress
from charamel import Detector
+from peewee import DoesNotExist
gc.enable()
@@ -36,33 +37,39 @@ def store_subtitles(original_path, reversed_path, use_cache=True):
.where(TableEpisodes.path == original_path)\
.dicts()\
.get()
- subtitle_languages = embedded_subs_reader(reversed_path,
- file_size=item['file_size'],
- episode_file_id=item['episode_file_id'],
- use_cache=use_cache)
- for subtitle_language, subtitle_forced, subtitle_hi, subtitle_codec in subtitle_languages:
- try:
- if (settings.general.getboolean("ignore_pgs_subs") and subtitle_codec.lower() == "pgs") or \
- (settings.general.getboolean("ignore_vobsub_subs") and subtitle_codec.lower() ==
- "vobsub") or \
- (settings.general.getboolean("ignore_ass_subs") and subtitle_codec.lower() ==
- "ass"):
- logging.debug("BAZARR skipping %s sub for language: %s" % (subtitle_codec, alpha2_from_alpha3(subtitle_language)))
- continue
-
- if alpha2_from_alpha3(subtitle_language) is not None:
- lang = str(alpha2_from_alpha3(subtitle_language))
- if subtitle_forced:
- lang = lang + ":forced"
- if subtitle_hi:
- lang = lang + ":hi"
- logging.debug("BAZARR embedded subtitles detected: " + lang)
- actual_subtitles.append([lang, None])
- except Exception as error:
- logging.debug("BAZARR unable to index this unrecognized language: %s (%s)", subtitle_language, error)
- except Exception as e:
- logging.exception(
- "BAZARR error when trying to analyze this %s file: %s" % (os.path.splitext(reversed_path)[1], reversed_path))
+ except DoesNotExist:
+ logging.exception(f"BAZARR error when trying to select this episode from database: {reversed_path}")
+ else:
+ try:
+ subtitle_languages = embedded_subs_reader(reversed_path,
+ file_size=item['file_size'],
+ episode_file_id=item['episode_file_id'],
+ use_cache=use_cache)
+ for subtitle_language, subtitle_forced, subtitle_hi, subtitle_codec in subtitle_languages:
+ try:
+ if (settings.general.getboolean("ignore_pgs_subs") and subtitle_codec.lower() == "pgs") or \
+ (settings.general.getboolean("ignore_vobsub_subs") and subtitle_codec.lower() ==
+ "vobsub") or \
+ (settings.general.getboolean("ignore_ass_subs") and subtitle_codec.lower() ==
+ "ass"):
+ logging.debug("BAZARR skipping %s sub for language: %s" % (subtitle_codec, alpha2_from_alpha3(subtitle_language)))
+ continue
+
+ if alpha2_from_alpha3(subtitle_language) is not None:
+ lang = str(alpha2_from_alpha3(subtitle_language))
+ if subtitle_forced:
+ lang = lang + ":forced"
+ if subtitle_hi:
+ lang = lang + ":hi"
+ logging.debug("BAZARR embedded subtitles detected: " + lang)
+ actual_subtitles.append([lang, None])
+ except Exception as error:
+ logging.debug("BAZARR unable to index this unrecognized language: %s (%s)", subtitle_language, error)
+ except Exception as e:
+ logging.exception(
+ "BAZARR error when trying to analyze this %s file: %s" % (os.path.splitext(reversed_path)[1],
+ reversed_path))
+ pass
try:
dest_folder = get_subtitle_destination_folder()
core.CUSTOM_PATHS = [dest_folder] if dest_folder else []
@@ -130,35 +137,40 @@ def store_subtitles_movie(original_path, reversed_path, use_cache=True):
.where(TableMovies.path == original_path)\
.dicts()\
.get()
- subtitle_languages = embedded_subs_reader(reversed_path,
- file_size=item['file_size'],
- movie_file_id=item['movie_file_id'],
- use_cache=use_cache)
- for subtitle_language, subtitle_forced, subtitle_hi, subtitle_codec in subtitle_languages:
- try:
- if (settings.general.getboolean("ignore_pgs_subs") and subtitle_codec.lower() == "pgs") or \
- (settings.general.getboolean("ignore_vobsub_subs") and subtitle_codec.lower() ==
- "vobsub") or \
- (settings.general.getboolean("ignore_ass_subs") and subtitle_codec.lower() ==
- "ass"):
- logging.debug("BAZARR skipping %s sub for language: %s" % (subtitle_codec, alpha2_from_alpha3(subtitle_language)))
- continue
-
- if alpha2_from_alpha3(subtitle_language) is not None:
- lang = str(alpha2_from_alpha3(subtitle_language))
- if subtitle_forced:
- lang = lang + ':forced'
- if subtitle_hi:
- lang = lang + ':hi'
- logging.debug("BAZARR embedded subtitles detected: " + lang)
- actual_subtitles.append([lang, None])
- except:
- logging.debug("BAZARR unable to index this unrecognized language: " + subtitle_language)
- pass
- except Exception:
- logging.exception(
- "BAZARR error when trying to analyze this %s file: %s" % (os.path.splitext(reversed_path)[1], reversed_path))
- pass
+ except DoesNotExist:
+ logging.exception(f"BAZARR error when trying to select this movie from database: {reversed_path}")
+ else:
+ try:
+ subtitle_languages = embedded_subs_reader(reversed_path,
+ file_size=item['file_size'],
+ movie_file_id=item['movie_file_id'],
+ use_cache=use_cache)
+ for subtitle_language, subtitle_forced, subtitle_hi, subtitle_codec in subtitle_languages:
+ try:
+ if (settings.general.getboolean("ignore_pgs_subs") and subtitle_codec.lower() == "pgs") or \
+ (settings.general.getboolean("ignore_vobsub_subs") and subtitle_codec.lower() ==
+ "vobsub") or \
+ (settings.general.getboolean("ignore_ass_subs") and subtitle_codec.lower() ==
+ "ass"):
+ logging.debug("BAZARR skipping %s sub for language: %s" % (subtitle_codec, alpha2_from_alpha3(subtitle_language)))
+ continue
+
+ if alpha2_from_alpha3(subtitle_language) is not None:
+ lang = str(alpha2_from_alpha3(subtitle_language))
+ if subtitle_forced:
+ lang = lang + ':forced'
+ if subtitle_hi:
+ lang = lang + ':hi'
+ logging.debug("BAZARR embedded subtitles detected: " + lang)
+ actual_subtitles.append([lang, None])
+ except:
+ logging.debug("BAZARR unable to index this unrecognized language: " + subtitle_language)
+ pass
+ except Exception:
+ logging.exception(
+ "BAZARR error when trying to analyze this %s file: %s" % (os.path.splitext(reversed_path)[1],
+ reversed_path))
+ pass
try:
dest_folder = get_subtitle_destination_folder() or ''
From cbd6c050c9e6604a8215e8e581f25a5350581730 Mon Sep 17 00:00:00 2001
From: LASER-Yi
Date: Sat, 13 Nov 2021 11:38:37 +0800
Subject: [PATCH 21/41] Fix for #1592
---
frontend/src/Settings/Providers/components.tsx | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/frontend/src/Settings/Providers/components.tsx b/frontend/src/Settings/Providers/components.tsx
index c30742504..9e005d123 100644
--- a/frontend/src/Settings/Providers/components.tsx
+++ b/frontend/src/Settings/Providers/components.tsx
@@ -2,6 +2,7 @@ import { capitalize, isArray, isBoolean } from "lodash";
import React, {
FunctionComponent,
useCallback,
+ useEffect,
useMemo,
useState,
} from "react";
@@ -81,6 +82,10 @@ export const ProviderModal: FunctionComponent = () => {
const [staged, setChange] = useState({});
+ useEffect(() => {
+ setInfo(payload);
+ }, [payload]);
+
const [info, setInfo] = useState>(payload);
useOnModalShow((p) => setInfo(p), ModalKey);
From d8fffe8e5206e640689a87ba6fc28b7cadface58 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Samuel=20Bart=C3=ADk?=
<63553146+sambartik@users.noreply.github.com>
Date: Sun, 14 Nov 2021 21:30:54 +0100
Subject: [PATCH 22/41] Improved Titulky provider
---
bazarr/get_providers.py | 7 +-
libs/subliminal_patch/providers/titulky.py | 589 +++++++++++++--------
2 files changed, 384 insertions(+), 212 deletions(-)
diff --git a/bazarr/get_providers.py b/bazarr/get_providers.py
index 6445942c0..ab3974c4b 100644
--- a/bazarr/get_providers.py
+++ b/bazarr/get_providers.py
@@ -1,6 +1,7 @@
# coding=utf-8
import os
import datetime
+import pytz
import logging
import subliminal_patch
import pretty
@@ -29,6 +30,9 @@ def time_until_end_of_day(dt=None):
tomorrow = dt + datetime.timedelta(days=1)
return datetime.datetime.combine(tomorrow, datetime.time.min) - dt
+# Titulky resets its download limits at the start of a new day from its perspective - the Europe/Prague timezone
+titulky_server_local_time = datetime.datetime.now(tz=pytz.timezone('Europe/Prague')).replace(tzinfo=None) # Needs to convert to offset-naive dt
+titulky_limit_reset_datetime = time_until_end_of_day(dt=titulky_server_local_time)
hours_until_end_of_day = time_until_end_of_day().seconds // 3600 + 1
@@ -65,8 +69,7 @@ PROVIDER_THROTTLE_MAP = {
IPAddressBlocked : (datetime.timedelta(hours=1), "1 hours"),
},
"titulky" : {
- DownloadLimitExceeded: (
- datetime.timedelta(hours=hours_until_end_of_day), "{} hours".format(str(hours_until_end_of_day)))
+ DownloadLimitExceeded: (titulky_limit_reset_datetime, f"{titulky_limit_reset_datetime.seconds // 3600 + 1} hours")
},
"legendasdivx" : {
TooManyRequests : (datetime.timedelta(hours=3), "3 hours"),
diff --git a/libs/subliminal_patch/providers/titulky.py b/libs/subliminal_patch/providers/titulky.py
index 1fd897464..7e7b63d09 100644
--- a/libs/subliminal_patch/providers/titulky.py
+++ b/libs/subliminal_patch/providers/titulky.py
@@ -1,6 +1,4 @@
# -*- coding: utf-8 -*-
-from __future__ import absolute_import
-
import io
import logging
import math
@@ -9,7 +7,6 @@ import zipfile
from random import randint
from threading import Thread
-import chardet
import rarfile
from guessit import guessit
from requests import Session
@@ -37,11 +34,26 @@ logger = logging.getLogger(__name__)
class TitulkySubtitle(Subtitle):
"""Titulky.com subtitle"""
provider_name = 'titulky'
-
+
hash_verifiable = False
hearing_impaired_verifiable = False
- def __init__(self, sub_id, imdb_id, language, names, season, episode, year, releases, fps, uploader, approved, page_link, download_link, skip_wrong_fps=False, asked_for_episode=None):
+ def __init__(self,
+ sub_id,
+ imdb_id,
+ language,
+ names,
+ season,
+ episode,
+ year,
+ releases,
+ fps,
+ uploader,
+ approved,
+ page_link,
+ download_link,
+ skip_wrong_fps=False,
+ asked_for_episode=None):
super().__init__(language, page_link=page_link)
self.names = names
@@ -63,65 +75,82 @@ class TitulkySubtitle(Subtitle):
self.matches = None
# Try to parse S00E00 string from the main subtitle name
- season_episode_string = re.findall(r'S(\d+)E(\d+)', self.names[0], re.IGNORECASE)
-
- # If we did not search for subtitles with season and episode numbers in search query,
+ season_episode_string = re.findall(r'S(\d+)E(\d+)', self.names[0],
+ re.IGNORECASE)
+
+ # If we did not search for subtitles with season and episode numbers in search query,
# try to parse it from the main subtitle name that most likely contains it
if season_episode_string:
if self.season is None:
self.season = int(season_episode_string[0][0])
if self.episode is None:
self.episode = int(season_episode_string[0][1])
-
+
@property
def id(self):
return self.sub_id
-
+
def get_fps(self):
return self.fps
-
-
+
def get_matches(self, video):
matches = set()
_type = 'movie' if isinstance(video, Movie) else 'episode'
-
+
+ sub_names = self._remove_season_episode_string(self.names)
+
if _type == 'episode':
## EPISODE
# match imdb_id of a series
if video.series_imdb_id and video.series_imdb_id == self.imdb_id:
matches.add('series_imdb_id')
-
+
# match season/episode
if self.season and self.season == video.season:
matches.add('season')
if self.episode and self.episode == video.episode:
matches.add('episode')
-
+
# match series name
series_names = [video.series] + video.alternative_series
- if _contains_element(_from=series_names, _in=self.names):
+ logger.debug(
+ f"Titulky.com: Finding exact match between subtitle names {sub_names} and series names {series_names}"
+ )
+ if _contains_element(_from=series_names,
+ _in=sub_names,
+ exactly=True):
matches.add('series')
# match episode title
episode_titles = [video.title]
- if _contains_element(_from=episode_titles, _in=self.names):
+ logger.debug(
+ f"Titulky.com: Finding exact match between subtitle names {sub_names} and episode titles {episode_titles}"
+ )
+ if _contains_element(_from=episode_titles,
+ _in=sub_names,
+ exactly=True):
matches.add('episode_title')
-
+
elif _type == 'movie':
## MOVIE
-
+
# match imdb_id of a movie
if video.imdb_id and video.imdb_id == self.imdb_id:
matches.add('imdb_id')
-
+
# match movie title
video_titles = [video.title] + video.alternative_titles
- if _contains_element(_from=video_titles, _in=self.names):
+ logger.debug(
+ f"Titulky.com: Finding exact match between subtitle names {sub_names} and video titles {video_titles}"
+ )
+ if _contains_element(_from=video_titles,
+ _in=sub_names,
+ exactly=True):
matches.add('title')
-
+
## MOVIE OR EPISODE
-
+
# match year
if video.year and video.year == self.year:
matches.add('year')
@@ -129,26 +158,38 @@ class TitulkySubtitle(Subtitle):
# match other properties based on release infos
for release in self.releases:
matches |= guess_matches(video, guessit(release, {"type": _type}))
-
+
# If turned on in settings, then do not match if video FPS is not equal to subtitle FPS
- if self.skip_wrong_fps and video.fps and self.fps and not framerate_equal(video.fps, self.fps):
+ if self.skip_wrong_fps and video.fps and self.fps and not framerate_equal(
+ video.fps, self.fps):
logger.info(f"Titulky.com: Skipping subtitle {self}: wrong FPS")
matches.clear()
-
+
self.matches = matches
-
+
return matches
+ # Remove the S00E00 from elements of names array
+ def _remove_season_episode_string(self, names):
+ result = names.copy()
+
+ for i, name in enumerate(result):
+ cleaned_name = re.sub(r'S\d+E\d+', '', name, flags=re.IGNORECASE)
+ cleaned_name = cleaned_name.strip()
+
+ result[i] = cleaned_name
+
+ return result
+
class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
"""Titulky.com provider"""
-
+
languages = {Language(l) for l in ['ces', 'slk']}
video_types = (Episode, Movie)
hash_verifiable = False
hearing_impaired_verifiable = False
-
server_url = 'https://premium.titulky.com'
login_url = server_url
logout_url = f"{server_url}?action=logout"
@@ -156,31 +197,38 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
timeout = 30
max_threads = 5
-
+
subtitle_class = TitulkySubtitle
-
- def __init__(self, username=None, password=None, skip_wrong_fps=None, approved_only=None, multithreading=None):
+
+ def __init__(self,
+ username=None,
+ password=None,
+ skip_wrong_fps=None,
+ approved_only=None,
+ multithreading=None):
if not all([username, password]):
raise ConfigurationError("Username and password must be specified!")
-
+
if type(skip_wrong_fps) is not bool:
- raise ConfigurationError(f"Skip_wrong_fps {skip_wrong_fps} must be a boolean!")
-
+ raise ConfigurationError(
+ f"Skip_wrong_fps {skip_wrong_fps} must be a boolean!")
+
if type(approved_only) is not bool:
- raise ConfigurationError(f"Approved_only {approved_only} must be a boolean!")
-
+ raise ConfigurationError(
+ f"Approved_only {approved_only} must be a boolean!")
+
if type(multithreading) is not bool:
- raise ConfigurationError(f"Multithreading {multithreading} must be a boolean!")
-
-
+ raise ConfigurationError(
+ f"Multithreading {multithreading} must be a boolean!")
+
self.username = username
self.password = password
self.skip_wrong_fps = skip_wrong_fps
self.approved_only = approved_only
self.multithreading = multithreading
-
+
self.session = None
-
+
def initialize(self):
self.session = Session()
# Set max pool size to the max number of threads we will use (i .e. the max number of search result rows)
@@ -188,9 +236,11 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
pool_maxsize = self.max_threads + 3 if self.max_threads > 10 else 10
self.session.mount('https://', HTTPAdapter(pool_maxsize=pool_maxsize))
self.session.mount('http://', HTTPAdapter(pool_maxsize=pool_maxsize))
-
+
# Set headers
- self.session.headers['User-Agent'] = AGENT_LIST[randint(0, len(AGENT_LIST) - 1)]
+ self.session.headers['User-Agent'] = AGENT_LIST[randint(
+ 0,
+ len(AGENT_LIST) - 1)]
self.session.headers['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
self.session.headers['Accept-Language'] = 'sk,cz,en;q=0.5'
self.session.headers['Accept-Encoding'] = 'gzip, deflate'
@@ -198,180 +248,202 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
self.session.headers['Connection'] = 'keep-alive'
self.session.headers['Upgrade-Insecure-Requests'] = '1'
self.session.headers['Cache-Control'] = 'max-age=0'
-
+
self.login()
-
+
def terminate(self):
self.logout()
self.session.close()
def login(self):
logger.info("Titulky.com: Logging in")
-
+
self.session.get(self.server_url)
-
- data = {
- 'LoginName': self.username,
- 'LoginPassword': self.password
- }
- res = self.session.post(self.server_url, data, allow_redirects=False, timeout=self.timeout)
-
+
+ data = {'LoginName': self.username, 'LoginPassword': self.password}
+ res = self.session.post(self.server_url,
+ data,
+ allow_redirects=False,
+ timeout=self.timeout)
+
# If the response is a redirect and doesnt point to an error message page, then we are logged in
if res.status_code == 302 and 'msg_type=i' in res.headers['Location']:
return True
else:
raise AuthenticationError("Login failed")
-
+
def logout(self):
logger.info("Titulky.com: Logging out")
-
- res = self.session.get(self.logout_url, allow_redirects=False, timeout=self.timeout)
-
+
+ res = self.session.get(self.logout_url,
+ allow_redirects=False,
+ timeout=self.timeout)
+
# If the response is a redirect and doesnt point to an error message page, then we are logged out
if res.status_code == 302 and 'msg_type=i' in res.headers['Location']:
return True
else:
raise AuthenticationError("Logout failed.")
- def fetch_page(self, url):
+ def fetch_page(self, url, ref=None):
logger.debug(f"Titulky.com: Fetching url: {url}")
- res = self.session.get(url, timeout=self.timeout)
-
+
+ res = self.session.get(
+ url,
+ timeout=self.timeout,
+ headers={'Referer': ref if ref else self.server_url})
+
if res.status_code != 200:
raise HTTPError(f"Fetch failed with status code {res.status_code}")
if not res.text:
raise ProviderError("No response returned from the provider")
-
+
return res.text
def build_search_url(self, params):
result = f"{self.server_url}/?"
-
+
params['action'] = 'search'
- params['fsf'] = 1 # Requires subtitle names to match full search keyword
-
+ # Requires subtitle names to match full search keyword
+ params['fsf'] = 1
+
for key, value in params.items():
result += f'{key}={value}&'
-
+
# Remove the last &
result = result[:-1]
-
+
# Remove spaces
result = result.replace(' ', '+')
-
+
return result
-
+
# Parse details of an individual subtitle: imdb_id, release, language, uploader, fps and year
- def parse_details(self, url):
- html_src = self.fetch_page(url)
- details_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
-
+ def parse_details(self, details_url, search_url):
+ html_src = self.fetch_page(details_url, ref=search_url)
+ details_page_soup = ParserBeautifulSoup(html_src,
+ ['lxml', 'html.parser'])
+
details_container = details_page_soup.find('div', class_='detail')
if not details_container:
# The subtitles could be removed and got redirected to a different page. Better treat this silently.
- logger.debug("Titulky.com: Could not find details div container. Skipping.")
+ logger.info("Titulky.com: Could not find details div container. Skipping.")
return False
-
+
### IMDB ID
imdb_id = None
imdb_tag = details_container.find('a', attrs={'target': 'imdb'})
-
+
if imdb_tag:
imdb_url = imdb_tag.get('href')
imdb_id = re.findall(r'tt(\d+)', imdb_url)[0]
-
+
if not imdb_id:
logger.debug("Titulky.com: No IMDB ID supplied on details page.")
-
+
### RELEASE
release = None
release_tag = details_container.find('div', class_='releas')
-
+
if not release_tag:
- raise ParseResponseError("Could not find release tag. Did the HTML source change?")
-
+ raise ParseResponseError(
+ "Could not find release tag. Did the HTML source change?")
+
release = release_tag.get_text(strip=True)
-
+
if not release:
- logger.info("Titulky.com: No release information supplied on details page.")
+ logger.debug("Titulky.com: No release information supplied on details page.")
### LANGUAGE
language = None
czech_flag = details_container.select('img[src*=\'flag-CZ\']')
slovak_flag = details_container.select('img[src*=\'flag-SK\']')
-
+
if czech_flag and not slovak_flag:
language = Language('ces')
- elif slovak_flag and not czech_flag:
+ elif slovak_flag and not czech_flag:
language = Language('slk')
-
+
if not language:
logger.debug("Titulky.com: No language information supplied on details page.")
### UPLOADER
uploader = None
uploader_tag = details_container.find('div', class_='ulozil')
-
+
if not uploader_tag:
- raise ParseResponseError("Could not find uploader tag. Did the HTML source change?")
-
+ raise ParseResponseError(
+ "Could not find uploader tag. Did the HTML source change?")
+
uploader_anchor_tag = uploader_tag.find('a')
-
+
if not uploader_anchor_tag:
- raise ParseResponseError("Could not find uploader anchor tag. Did the HTML source change?")
-
- uploader = uploader_anchor_tag.string.strip() if uploader_anchor_tag else None
-
+ raise ParseResponseError(
+ "Could not find uploader anchor tag. Did the HTML source change?"
+ )
+
+ uploader = uploader_anchor_tag.string.strip(
+ ) if uploader_anchor_tag else None
+
if not uploader:
logger.debug("Titulky.com: No uploader name supplied on details page.")
### FPS
fps = None
- fps_icon_tag_selection = details_container.select('img[src*=\'Movieroll\']')
-
- if not fps_icon_tag_selection and not hasattr(fps_icon_tag_selection[0], 'parent'):
- raise ParseResponseError("Could not find parent of the fps icon tag. Did the HTML source change?")
-
+ fps_icon_tag_selection = details_container.select(
+ 'img[src*=\'Movieroll\']')
+
+ if not fps_icon_tag_selection and not hasattr(fps_icon_tag_selection[0],
+ 'parent'):
+ raise ParseResponseError(
+ "Could not find parent of the fps icon tag. Did the HTML source change?"
+ )
+
fps_icon_tag = fps_icon_tag_selection[0]
parent_text = fps_icon_tag.parent.get_text(strip=True)
match = re.findall(r'(\d+,\d+) fps', parent_text)
-
- # If the match is found, change the decimal separator to a dot and convert to float
+
+ # If the match is found, change the decimal separator to a dot and convert to float
fps = float(match[0].replace(',', '.')) if len(match) > 0 else None
if not fps:
logger.debug("Titulky.com: No fps supplied on details page.")
-
+
### YEAR
year = None
h1_tag = details_container.find('h1', id='titulky')
-
+
if not h1_tag:
- raise ParseResponseError("Could not find h1 tag. Did the HTML source change?")
-
+ raise ParseResponseError(
+ "Could not find h1 tag. Did the HTML source change?")
+
# The h1 tag contains the name of the subtitle and a year
h1_texts = [text for text in h1_tag.stripped_strings]
year = int(h1_texts[1]) if len(h1_texts) > 1 else None
-
+
if not year:
logger.debug("Titulky.com: No year supplied on details page.")
-
-
+
# Clean up
details_page_soup.decompose()
details_page_soup = None
-
+
# Return the subtitle details
return {
- 'releases': [release],
- 'language': language,
- 'uploader': uploader,
+ 'releases': [release],
+ 'language': language,
+ 'uploader': uploader,
'fps': fps,
'year': year,
'imdb_id': imdb_id
}
-
- def process_row(self, row, video_names, thread_id=None, threads_data=None):
+
+ def process_row(self,
+ row,
+ video_names,
+ search_url,
+ thread_id=None,
+ threads_data=None):
try:
# The first anchor tag is an image preview, the second is the name
anchor_tag = row.find_all('a')[1]
@@ -383,11 +455,15 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
# Approved subtitles have a pbl1 class for their row, others have a pbl0 class
approved = True if 'pbl1' in row.get('class') else False
-
+
# Subtitle name + its alternative names
- table_columns = row.findAll("td")
+ table_columns = row.findAll('td')
main_sub_name = anchor_tag.get_text(strip=True)
- alt_sub_names = [alt_sub_name.strip() for alt_sub_name in table_columns[2].get_text(strip=True).split("/")]
+
+ alt_sub_names = [
+ alt_sub_name.strip()
+ for alt_sub_name in table_columns[2].string.split('/')
+ ] if table_columns[2].string else []
sub_names = [main_sub_name] + alt_sub_names
# Does at least one subtitle name contain one of the video names?
@@ -397,16 +473,18 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
# Could be handled in TitulkySubtitle class, however we want to keep the number of requests
# as low as possible and this prevents the from requesting the details page unnecessarily
if not _contains_element(_from=video_names, _in=sub_names):
- logger.debug(f"Titulky.com: Skipping subtitle with names: {sub_names}, because there was no match with video names: {video_names}")
+ logger.info(
+ f"Titulky.com: Skipping subtitle with names: {sub_names}, because there was no match with video names: {video_names}"
+ )
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
'sub_info': None,
'exception': None
}
-
+
return None
-
- details = self.parse_details(details_link)
+
+ details = self.parse_details(details_link, search_url)
if not details:
# Details parsing was NOT successful, skipping
if type(threads_data) is list and type(thread_id) is int:
@@ -414,9 +492,9 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
'sub_info': None,
'exception': None
}
-
+
return None
-
+
# Combine all subtitle data into one dict
result = {
'names': sub_names,
@@ -425,28 +503,25 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
'details_link': details_link,
'download_link': download_link
}
-
+
result.update(details)
-
+
if type(threads_data) is list and type(thread_id) is int:
threads_data[thread_id] = {
'sub_info': result,
'exception': None
}
-
+
return details
except Exception as e:
if type(threads_data) is list and type(thread_id) is int:
- threads_data[thread_id] = {
- 'sub_info': None,
- 'exception': e
- }
-
+ threads_data[thread_id] = {'sub_info': None, 'exception': e}
+
raise e
-
+
# There are multiple ways to find subs from this provider:
# 1. SEARCH by sub title
- # - parameter: .................. Fulltext=
+ # - parameter: .................. Fulltext=
# 2. SEARCH by imdb id
# - parameter: .................. IMDB=
# 3. SEARCH by season/episode
@@ -466,10 +541,18 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
# - Subtitles are here categorised by seasons and episodes
# - URL: https://premium.titulky.com/?action=serial&step=&id=
# - it seems that the url redirects to a page with their own internal ID, redirects should be allowed here
- def query(self, language, video_names, type, keyword=None, year=None, season=None, episode=None, imdb_id=None):
+ def query(self,
+ language,
+ video_names,
+ type,
+ keyword=None,
+ year=None,
+ season=None,
+ episode=None,
+ imdb_id=None):
## Build the search URL
params = {}
-
+
# Keyword
if keyword:
params['Fulltext'] = keyword
@@ -485,7 +568,7 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
params['Epizoda'] = episode
# IMDB ID
if imdb_id:
- params['IMDB'] = imdb_id[2:] # Remove the tt from the imdb id
+ params['IMDB'] = imdb_id[2:] # Remove the tt from the imdb id
# Year
if year:
params['Rok'] = year
@@ -500,56 +583,78 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
return []
# Status
if self.approved_only:
+ logger.debug(f"Titulky.com: Searching only for approved subtitles")
params['ASchvalene'] = '1'
else:
params['ASchvalene'] = ''
-
-
+
search_url = self.build_search_url(params)
-
+
## Search results page parsing
html_src = self.fetch_page(search_url)
- search_page_soup = ParserBeautifulSoup(html_src, ['lxml', 'html.parser'])
-
+ search_page_soup = ParserBeautifulSoup(html_src,
+ ['lxml', 'html.parser'])
+
# If there is a message containing "Žádny odpovídající záznam", it means that there are no results
# If that's the case, return an empty list
error_message = search_page_soup.select('.panel-body > strong')
- if len(error_message) > 0 and 'Žádný odpovídající záznam' in error_message[0].get_text(strip=True):
+ if len(
+ error_message
+ ) > 0 and 'Žádný odpovídající záznam' in error_message[0].get_text(
+ strip=True):
logger.info("Titulky.com: No results found")
return []
-
+
# Get the table containing the search results
table = search_page_soup.find('table', class_='table')
if not table:
logger.debug("Titulky.com: Could not find table")
- raise ParseResponseError("Could not find table. Did the HTML source change?")
-
+ raise ParseResponseError(
+ "Could not find table. Did the HTML source change?")
+
# Get table body containing rows of subtitles
table_body = table.find('tbody')
if not table_body:
logger.debug("Titulky.com: Could not find table body")
- raise ParseResponseError("Could not find table body. Did the HTML source change?")
-
+ raise ParseResponseError(
+ "Could not find table body. Did the HTML source change?")
+
## Loop over all subtitles on the first page and put them in a list
subtitles = []
rows = table_body.find_all('tr')
-
+
if not self.multithreading:
# Process the rows sequentially
logger.info("Titulky.com: processing results in sequence")
for i, row in enumerate(rows):
- sub_info = self.process_row(row, video_names)
-
- # If subtitle info was returned, then everything was okay
+ sub_info = self.process_row(row, video_names, search_url)
+
+ # If subtitle info was returned, then everything was okay
# and we can instationate it and add it to the list
if sub_info:
- logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}")
-
+ logger.debug(
+ f"Titulky.com: Sucessfully retrieved subtitle info, row: {i}"
+ )
+
# If we found the subtitle by IMDB ID, no need to get it from details page
sub_imdb_id = imdb_id or sub_info['imdb_id']
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_imdb_id, sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['releases'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps, asked_for_episode=(type == 'episode'))
+ subtitle_instance = self.subtitle_class(
+ sub_info['id'],
+ sub_imdb_id,
+ sub_info['language'],
+ sub_info['names'],
+ season,
+ episode,
+ sub_info['year'],
+ sub_info['releases'],
+ sub_info['fps'],
+ sub_info['uploader'],
+ sub_info['approved'],
+ sub_info['details_link'],
+ sub_info['download_link'],
+ skip_wrong_fps=self.skip_wrong_fps,
+ asked_for_episode=(type == 'episode'))
subtitles.append(subtitle_instance)
else:
# No subtitle info was returned, i. e. something unexpected
@@ -557,26 +662,35 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
logger.debug(f"Titulky.com: No subtitle info retrieved, row: {i}")
else:
# Process the rows in paralell
- logger.info(f"Titulky.com: processing results in parelell, {self.max_threads} rows at a time.")
+ logger.info(
+ f"Titulky.com: processing results in parelell, {self.max_threads} rows at a time."
+ )
threads = [None] * len(rows)
threads_data = [None] * len(rows)
# Process rows in parallel, self.max_threads at a time.
- cycles = math.ceil(len(rows)/self.max_threads)
+ cycles = math.ceil(len(rows) / self.max_threads)
for i in range(cycles):
# Batch number i
- starting_index = i * self.max_threads # Inclusive
- ending_index = starting_index + self.max_threads # Non-inclusive
+ starting_index = i * self.max_threads # Inclusive
+ ending_index = starting_index + self.max_threads # Non-inclusive
# Create threads for all rows in this batch
for j in range(starting_index, ending_index):
# Check if j-th row exists
if j < len(rows):
# Row number j
- logger.debug(f"Titulky.com: Creating thread {j} (batch: {i})")
+ logger.debug(
+ f"Titulky.com: Creating thread {j} (batch: {i})")
# Create a thread for row j and start it
- threads[j] = Thread(target=self.process_row, args=[rows[j], video_names], kwargs={'thread_id': j, 'threads_data': threads_data})
+ threads[j] = Thread(
+ target=self.process_row,
+ args=[rows[j], video_names, search_url],
+ kwargs={
+ 'thread_id': j,
+ 'threads_data': threads_data
+ })
threads[j].start()
# Wait for all created threads to finish before moving to another batch of rows
@@ -592,98 +706,145 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
# If the thread returned didn't return anything, but expected a dict object
if not thread_data:
raise ProviderError(f"No data returned from thread ID: {i}")
-
+
# If an exception was raised in a thread, raise it again here
if 'exception' in thread_data and thread_data['exception']:
- logger.debug(f"Titulky.com: An error occured while processing a row in the thread ID {i}")
+ logger.debug(
+ f"Titulky.com: An error occured while processing a row in the thread ID {i}"
+ )
raise thread_data['exception']
# If the thread returned a subtitle info, great, instantiate it and add it to the list
if 'sub_info' in thread_data and thread_data['sub_info']:
# Instantiate the subtitle object
- logger.debug(f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}")
+ logger.debug(
+ f"Titulky.com: Sucessfully retrieved subtitle info, thread ID: {i}"
+ )
sub_info = thread_data['sub_info']
# If we found the subtitle by IMDB ID, no need to get it from details page
sub_imdb_id = imdb_id or sub_info['imdb_id']
- subtitle_instance = self.subtitle_class(sub_info['id'], sub_imdb_id, sub_info['language'], sub_info['names'], season, episode, sub_info['year'], sub_info['releases'], sub_info['fps'],
- sub_info['uploader'], sub_info['approved'], sub_info['details_link'], sub_info['download_link'], skip_wrong_fps=self.skip_wrong_fps, asked_for_episode=(type == 'episode'))
+ subtitle_instance = self.subtitle_class(
+ sub_info['id'],
+ sub_imdb_id,
+ sub_info['language'],
+ sub_info['names'],
+ season,
+ episode,
+ sub_info['year'],
+ sub_info['releases'],
+ sub_info['fps'],
+ sub_info['uploader'],
+ sub_info['approved'],
+ sub_info['details_link'],
+ sub_info['download_link'],
+ skip_wrong_fps=self.skip_wrong_fps,
+ asked_for_episode=(type == 'episode'))
subtitles.append(subtitle_instance)
else:
# The thread returned data, but it didn't contain a subtitle info, i. e. something unexpected
# happend during subtitle details page fetching and processing.
- logger.debug(f"Titulky.com: No subtitle info retrieved, thread ID: {i}")
-
+ logger.debug(
+ f"Titulky.com: No subtitle info retrieved, thread ID: {i}"
+ )
+
# Clean up
search_page_soup.decompose()
search_page_soup = None
-
+
logger.debug(f"Titulky.com: Found subtitles: {subtitles}")
-
+
return subtitles
-
- def list_subtitles(self, video, languages):
+
+ def list_subtitles(self, video, languages):
subtitles = []
-
+
# Possible paths:
# (1) Search by IMDB ID [and season/episode for tv series]
# (2) Search by keyword: video (title|series) [and season/episode for tv series]
# (3) Search by keyword: video series + S00E00 (tv series only)
-
+
for language in languages:
if isinstance(video, Episode):
- video_names = [video.series, video.title] + video.alternative_series
-
+ video_names = [video.series, video.title
+ ] + video.alternative_series
+
# (1)
- logger.debug("Titulky.com: Finding subtitles by IMDB ID, Season and Episode (1)")
+ logger.info(
+ "Titulky.com: Finding subtitles by IMDB ID, Season and Episode (1)"
+ )
if video.series_imdb_id:
- partial_subs = self.query(language, video_names, 'episode', imdb_id=video.series_imdb_id, season=video.season, episode=video.episode)
- if(len(partial_subs) > 0):
+ partial_subs = self.query(language,
+ video_names,
+ 'episode',
+ imdb_id=video.series_imdb_id,
+ season=video.season,
+ episode=video.episode)
+ if (len(partial_subs) > 0):
subtitles += partial_subs
continue
-
+
# (2)
- logger.debug("Titulky.com: Finding subtitles by keyword, Season and Episode (2)")
+ logger.info(
+ "Titulky.com: Finding subtitles by keyword, Season and Episode (2)"
+ )
keyword = video.series
- partial_subs = self.query(language, video_names, 'episode', keyword=keyword, season=video.season, episode=video.episode)
- if(len(partial_subs) > 0):
+ partial_subs = self.query(language,
+ video_names,
+ 'episode',
+ keyword=keyword,
+ season=video.season,
+ episode=video.episode)
+ if (len(partial_subs) > 0):
subtitles += partial_subs
continue
-
+
# (3)
- logger.debug("Titulky.com: Finding subtitles by keyword only (3)")
+ logger.info("Titulky.com: Finding subtitles by keyword only (3)")
keyword = f"{video.series} S{video.season:02d}E{video.episode:02d}"
- partial_subs = self.query(language, video_names, 'episode', keyword=keyword)
+ partial_subs = self.query(language,
+ video_names,
+ 'episode',
+ keyword=keyword)
subtitles += partial_subs
elif isinstance(video, Movie):
video_names = [video.title] + video.alternative_titles
-
+
# (1)
- logger.debug("Titulky.com: Finding subtitles by IMDB ID (1)")
+ logger.info("Titulky.com: Finding subtitles by IMDB ID (1)")
if video.imdb_id:
- partial_subs = self.query(language, video_names, 'movie', imdb_id=video.imdb_id)
- if(len(partial_subs) > 0):
+ partial_subs = self.query(language,
+ video_names,
+ 'movie',
+ imdb_id=video.imdb_id)
+ if (len(partial_subs) > 0):
subtitles += partial_subs
continue
-
+
# (2)
- logger.debug("Titulky.com: Finding subtitles by keyword (2)")
+ logger.info("Titulky.com: Finding subtitles by keyword (2)")
keyword = video.title
- partial_subs = self.query(language, video_names, 'movie', keyword=keyword)
+ partial_subs = self.query(language,
+ video_names,
+ 'movie',
+ keyword=keyword)
subtitles += partial_subs
-
+
return subtitles
-
+
def download_subtitle(self, subtitle):
- res = self.session.get(subtitle.download_link, headers={'Referer': subtitle.page_link},
+ res = self.session.get(subtitle.download_link,
+ headers={'Referer': subtitle.page_link},
timeout=self.timeout)
-
+
try:
res.raise_for_status()
except:
- raise HTTPError(f"An error occured during the download request to {subtitle.download_link}")
-
+ raise HTTPError(
+ f"An error occured during the download request to {subtitle.download_link}"
+ )
+
archive_stream = io.BytesIO(res.content)
archive = None
if rarfile.is_rarfile(archive_stream):
@@ -696,22 +857,30 @@ class TitulkyProvider(Provider, ProviderSubtitleArchiveMixin):
subtitle_content = self.get_subtitle_from_archive(subtitle, archive)
else:
subtitle_content = fix_line_ending(res.content)
-
+
if not subtitle_content:
- logger.debug("Titulky.com: No subtitle content found. The downloading limit has been most likely exceeded.")
- raise DownloadLimitExceeded("Subtitles download limit has been exceeded")
-
+ logger.debug(
+ "Titulky.com: No subtitle content found. The downloading limit has been most likely exceeded."
+ )
+ raise DownloadLimitExceeded(
+ "Subtitles download limit has been exceeded")
+
subtitle.content = subtitle_content
-
-# Check if any element from source array is **contained** in any element from target array
+
+
+# Check if any element from source array is contained partially or exactly in any element from target array
# Returns on the first match
-def _contains_element(_from=None, _in=None):
+def _contains_element(_from=None, _in=None, exactly=False):
source_array = _from
target_array = _in
-
+
for source in source_array:
for target in target_array:
- if sanitize(source) in sanitize(target):
- return True
-
+ if exactly:
+ if sanitize(source) == sanitize(target):
+ return True
+ else:
+ if sanitize(source) in sanitize(target):
+ return True
+
return False
From c2e44b981e0e9250a016b853ee329d60b948fa7b Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Sun, 28 Nov 2021 17:45:54 -0500
Subject: [PATCH 23/41] Fixed automatic subtitles synchronization that
shouldn't be triggered on forced subtitles.
---
bazarr/get_subtitle.py | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/bazarr/get_subtitle.py b/bazarr/get_subtitle.py
index 9bf0875f9..265aa24b3 100644
--- a/bazarr/get_subtitle.py
+++ b/bazarr/get_subtitle.py
@@ -229,6 +229,7 @@ def download_subtitle(path, language, audio_language, hi, forced, providers, pro
series_id = episode_metadata['sonarrSeriesId']
episode_id = episode_metadata['sonarrEpisodeId']
sync_subtitles(video_path=path, srt_path=downloaded_path,
+ forced=subtitle.language.forced,
srt_lang=downloaded_language_code2, media_type=media_type,
percent_score=percent_score,
sonarr_series_id=episode_metadata['sonarrSeriesId'],
@@ -241,6 +242,7 @@ def download_subtitle(path, language, audio_language, hi, forced, providers, pro
series_id = ""
episode_id = movie_metadata['radarrId']
sync_subtitles(video_path=path, srt_path=downloaded_path,
+ forced=subtitle.language.forced,
srt_lang=downloaded_language_code2, media_type=media_type,
percent_score=percent_score,
radarr_id=movie_metadata['radarrId'])
@@ -552,6 +554,7 @@ def manual_download_subtitle(path, language, audio_language, hi, forced, subtitl
series_id = episode_metadata['sonarrSeriesId']
episode_id = episode_metadata['sonarrEpisodeId']
sync_subtitles(video_path=path, srt_path=downloaded_path,
+ forced=subtitle.language.forced,
srt_lang=downloaded_language_code2, media_type=media_type,
percent_score=score,
sonarr_series_id=episode_metadata['sonarrSeriesId'],
@@ -564,6 +567,7 @@ def manual_download_subtitle(path, language, audio_language, hi, forced, subtitl
series_id = ""
episode_id = movie_metadata['radarrId']
sync_subtitles(video_path=path, srt_path=downloaded_path,
+ forced=subtitle.language.forced,
srt_lang=downloaded_language_code2, media_type=media_type,
percent_score=score, radarr_id=movie_metadata['radarrId'])
@@ -696,7 +700,7 @@ def manual_upload_subtitle(path, language, forced, hi, title, scene_name, media_
series_id = episode_metadata['sonarrSeriesId']
episode_id = episode_metadata['sonarrEpisodeId']
sync_subtitles(video_path=path, srt_path=subtitle_path, srt_lang=uploaded_language_code2, media_type=media_type,
- percent_score=100, sonarr_series_id=episode_metadata['sonarrSeriesId'],
+ percent_score=100, sonarr_series_id=episode_metadata['sonarrSeriesId'], forced=forced,
sonarr_episode_id=episode_metadata['sonarrEpisodeId'])
else:
movie_metadata = TableMovies.select(TableMovies.radarrId)\
@@ -706,7 +710,7 @@ def manual_upload_subtitle(path, language, forced, hi, title, scene_name, media_
series_id = ""
episode_id = movie_metadata['radarrId']
sync_subtitles(video_path=path, srt_path=subtitle_path, srt_lang=uploaded_language_code2, media_type=media_type,
- percent_score=100, radarr_id=movie_metadata['radarrId'])
+ percent_score=100, radarr_id=movie_metadata['radarrId'], forced=forced)
if use_postprocessing :
command = pp_replace(postprocessing_cmd, path, subtitle_path, uploaded_language,
@@ -1660,9 +1664,15 @@ def postprocessing(command, path):
logging.info('BAZARR Post-processing result for file ' + path + ' : ' + out)
-def sync_subtitles(video_path, srt_path, srt_lang, media_type, percent_score, sonarr_series_id=None,
+def sync_subtitles(video_path, srt_path, srt_lang, forced, media_type, percent_score, sonarr_series_id=None,
sonarr_episode_id=None, radarr_id=None):
- if settings.subsync.getboolean('use_subsync'):
+ if forced:
+ logging.debug('BAZARR cannot sync forced subtitles. Skipping sync routine.')
+ elif not settings.subsync.getboolean('use_subsync'):
+ logging.debug('BAZARR automatic syncing is disabled in settings. Skipping sync routine.')
+ else:
+ logging.debug(f'BAZARR automatic syncing is enabled in settings. We\'ll try to sync this '
+ f'subtitles: {srt_path}.')
if media_type == 'series':
use_subsync_threshold = settings.subsync.getboolean('use_subsync_threshold')
subsync_threshold = settings.subsync.subsync_threshold
From 6a88596aabd49d3ba2557d3757a41268026ee603 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Mon, 29 Nov 2021 13:09:33 -0500
Subject: [PATCH 24/41] Fixed config directory being deleted during upgrade
leftover removal routine.
---
bazarr/check_update.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bazarr/check_update.py b/bazarr/check_update.py
index 96c88e92d..3b73962a6 100644
--- a/bazarr/check_update.py
+++ b/bazarr/check_update.py
@@ -193,7 +193,7 @@ def update_cleaner(zipfile, bazarr_dir, config_dir):
'^venv' + separator,
'^WinPython' + separator,
separator + '__pycache__' + separator + '$']
- if os.path.abspath(bazarr_dir) in os.path.abspath(config_dir):
+ if os.path.abspath(bazarr_dir).lower() in os.path.abspath(config_dir).lower():
dir_to_ignore.append('^' + os.path.relpath(config_dir, bazarr_dir) + os.path.sep)
dir_to_ignore_regex = re.compile('(?:% s)' % '|'.join(dir_to_ignore))
logging.debug('BAZARR upgrade leftover cleaner will ignore directories matching this regex: '
From f0828959f3e2561bc3252cb79b2570c6d3122b03 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Mon, 29 Nov 2021 14:28:30 -0500
Subject: [PATCH 25/41] Updated deep-translator module and made some fix to
support translation to Chinese. There's still a bug in this module that
prevent it but one it's fixed, it should be fine.
---
bazarr/utils.py | 13 +-
frontend/src/components/modals/toolOptions.ts | 4 +-
libs/deep_translator/__init__.py | 30 ++--
libs/deep_translator/cli.py | 52 ------
libs/deep_translator/configs.py | 11 --
libs/deep_translator/constants.py | 75 ++++++++-
libs/deep_translator/deepl.py | 88 ++++++----
libs/deep_translator/detection.py | 7 +-
libs/deep_translator/exceptions.py | 35 +++-
libs/deep_translator/google_trans.py | 56 ++++---
libs/deep_translator/linguee.py | 25 +--
libs/deep_translator/main.py | 124 ++++++++++++++
libs/deep_translator/microsoft.py | 146 +++++++++++++++++
libs/deep_translator/mymemory.py | 28 ++--
libs/deep_translator/papago.py | 154 ++++++++++++++++++
libs/deep_translator/parent.py | 17 +-
libs/deep_translator/pons.py | 26 +--
libs/deep_translator/qcri.py | 36 ++--
libs/deep_translator/tests/__init__.py | 1 -
.../tests/test_google_trans.py | 57 -------
libs/deep_translator/tests/test_linguee.py | 49 ------
libs/deep_translator/tests/test_mymemory.py | 48 ------
libs/deep_translator/tests/test_pons.py | 48 ------
libs/deep_translator/utils.py | 3 -
libs/deep_translator/yandex.py | 35 ++--
libs/version.txt | 1 +
26 files changed, 747 insertions(+), 422 deletions(-)
delete mode 100644 libs/deep_translator/cli.py
delete mode 100644 libs/deep_translator/configs.py
create mode 100644 libs/deep_translator/main.py
create mode 100644 libs/deep_translator/microsoft.py
create mode 100644 libs/deep_translator/papago.py
delete mode 100644 libs/deep_translator/tests/__init__.py
delete mode 100644 libs/deep_translator/tests/test_google_trans.py
delete mode 100644 libs/deep_translator/tests/test_linguee.py
delete mode 100644 libs/deep_translator/tests/test_mymemory.py
delete mode 100644 libs/deep_translator/tests/test_pons.py
delete mode 100644 libs/deep_translator/utils.py
diff --git a/bazarr/utils.py b/bazarr/utils.py
index dfb1c7799..e6bc72bb6 100644
--- a/bazarr/utils.py
+++ b/bazarr/utils.py
@@ -434,10 +434,14 @@ def subtitles_apply_mods(language, subtitle_path, mods):
def translate_subtitles_file(video_path, source_srt_file, to_lang, forced, hi):
language_code_convert_dict = {
'he': 'iw',
+ 'zt': 'zh-cn',
+ 'zh': 'zh-tw',
}
to_lang = alpha3_from_alpha2(to_lang)
- lang_obj = Language(to_lang)
+ lang_obj = CustomLanguage.from_value(to_lang, "alpha3")
+ if not lang_obj:
+ lang_obj = Language(to_lang)
if forced:
lang_obj = Language.rebuild(lang_obj, forced=True)
if hi:
@@ -447,7 +451,8 @@ def translate_subtitles_file(video_path, source_srt_file, to_lang, forced, hi):
max_characters = 5000
- dest_srt_file = get_subtitle_path(video_path, language=lang_obj, extension='.srt', forced_tag=forced, hi_tag=hi)
+ dest_srt_file = get_subtitle_path(video_path, language=lang_obj if isinstance(lang_obj, Language) else lang_obj.subzero_language(),
+ extension='.srt', forced_tag=forced, hi_tag=hi)
subs = pysubs2.load(source_srt_file, encoding='utf-8')
lines_list = [x.plaintext for x in subs]
@@ -471,8 +476,8 @@ def translate_subtitles_file(video_path, source_srt_file, to_lang, forced, hi):
for block_str in lines_block_list:
try:
translated_partial_srt_text = GoogleTranslator(source='auto',
- target=language_code_convert_dict.get(lang_obj.basename,
- lang_obj.basename)
+ target=language_code_convert_dict.get(lang_obj.alpha2,
+ lang_obj.alpha2)
).translate(text=block_str)
except:
return False
diff --git a/frontend/src/components/modals/toolOptions.ts b/frontend/src/components/modals/toolOptions.ts
index 27bfcbb07..5639cd4d0 100644
--- a/frontend/src/components/modals/toolOptions.ts
+++ b/frontend/src/components/modals/toolOptions.ts
@@ -13,8 +13,8 @@ export const availableTranslation = {
ca: "catalan",
ceb: "cebuano",
ny: "chichewa",
- "zh-cn": "chinese (simplified)",
- "zh-tw": "chinese (traditional)",
+ zh: "chinese (simplified)",
+ zt: "chinese (traditional)",
co: "corsican",
hr: "croatian",
cs: "czech",
diff --git a/libs/deep_translator/__init__.py b/libs/deep_translator/__init__.py
index 36321add6..789ed970a 100644
--- a/libs/deep_translator/__init__.py
+++ b/libs/deep_translator/__init__.py
@@ -1,5 +1,6 @@
-"""Top-level package for deep_translator."""
+"""Top-level package for Deep Translator"""
+# TODO: Discussion: Do these need to be in __init__.py? Are they intended to be exportable?
from .google_trans import GoogleTranslator
from .pons import PonsTranslator
from .linguee import LingueeTranslator
@@ -8,18 +9,23 @@ from .yandex import YandexTranslator
from .qcri import QCRI
from .deepl import DeepL
from .detection import single_detection, batch_detection
+from .microsoft import MicrosoftTranslator
+from .papago import PapagoTranslator
-
+# TODO: Discussion: These should be declared in setup.cfg, setting them here is redundant
__author__ = """Nidhal Baccouri"""
__email__ = 'nidhalbacc@gmail.com'
-__version__ = '1.3.2'
+__version__ = '1.5.0'
-__all__ = [GoogleTranslator,
- PonsTranslator,
- LingueeTranslator,
- MyMemoryTranslator,
- YandexTranslator,
- QCRI,
- DeepL,
- single_detection,
- batch_detection]
+__all__ = [
+ "GoogleTranslator",
+ "PonsTranslator",
+ "LingueeTranslator",
+ "MyMemoryTranslator",
+ "YandexTranslator",
+ "MicrosoftTranslator",
+ "QCRI",
+ "DeepL",
+ "single_detection",
+ "batch_detection"
+ ]
diff --git a/libs/deep_translator/cli.py b/libs/deep_translator/cli.py
deleted file mode 100644
index d690708fd..000000000
--- a/libs/deep_translator/cli.py
+++ /dev/null
@@ -1,52 +0,0 @@
-"""Console script for deep_translator."""
-
-import argparse
-import sys
-from .google_trans import GoogleTranslator
-from .mymemory import MyMemoryTranslator
-from .pons import PonsTranslator
-from .linguee import LingueeTranslator
-
-
-def translate(args):
- """
- function used to provide translations from the parsed terminal arguments
- @param args: parsed terminal arguments
- @return: None
- """
- translator = None
- if args.translator == 'google':
- translator = GoogleTranslator(source=args.source, target=args.target)
- elif args.translator == 'pons':
- translator = PonsTranslator(source=args.source, target=args.target)
- elif args.translator == 'linguee':
- translator = LingueeTranslator(source=args.source, target=args.target)
- elif args.translator == 'mymemory':
- translator = MyMemoryTranslator(source=args.source, target=args.target)
- else:
- print("given translator is not supported. Please use a supported translator from the deep_translator tool")
-
- res = translator.translate(args.text)
- print(" | Translation from {} to {} |".format(args.source, args.target))
- print("Translated text: \n {}".format(res))
-
-
-def main():
- """
- function responsible for parsing terminal arguments and provide them for further use in the translation process
-
- """
- parser = argparse.ArgumentParser()
- parser.add_argument('--translator', '-trans',
- default='google', type=str, help="name of the translator you want to use")
- parser.add_argument('--source', '-src', type=str, help="source language to translate from", required=True)
- parser.add_argument('--target', '-tg', type=str, help="target language to translate to", required=True)
- parser.add_argument('--text', '-txt', type=str, help="text you want to translate", required=True)
-
- args = parser.parse_args()
- translate(args)
- # sys.exit()
-
-
-if __name__ == "__main__":
- main()
diff --git a/libs/deep_translator/configs.py b/libs/deep_translator/configs.py
deleted file mode 100644
index 9df609808..000000000
--- a/libs/deep_translator/configs.py
+++ /dev/null
@@ -1,11 +0,0 @@
-"""
-configuration object that holds data about the language detection api
-"""
-
-config = {
- "url": 'https://ws.detectlanguage.com/0.2/detect',
- "headers": {
- 'User-Agent': 'Detect Language API Python Client 1.4.0',
- 'Authorization': 'Bearer {}',
- }
-}
diff --git a/libs/deep_translator/constants.py b/libs/deep_translator/constants.py
index 5f773997b..8fe51b1e4 100644
--- a/libs/deep_translator/constants.py
+++ b/libs/deep_translator/constants.py
@@ -1,4 +1,4 @@
-
+import requests
BASE_URLS = {
"GOOGLE_TRANSLATE": "https://translate.google.com/m",
@@ -7,7 +7,11 @@ BASE_URLS = {
"LINGUEE": "https://www.linguee.com/",
"MYMEMORY": "http://api.mymemory.translated.net/get",
"QCRI": "https://mt.qcri.org/api/v1/{endpoint}?",
- "DEEPL": "https://api.deepl.com/{version}/"
+ "DEEPL": "https://api.deepl.com/{version}/",
+ "DEEPL_FREE": "https://api-free.deepl.com/v2/",
+ "MICROSOFT_TRANSLATE": "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0",
+ "PAPAGO": "https://papago.naver.com/",
+ "PAPAGO_API": "https://openapi.naver.com/v1/papago/n2mt"
}
GOOGLE_CODES_TO_LANGUAGES = {
@@ -25,6 +29,7 @@ GOOGLE_CODES_TO_LANGUAGES = {
'ca': 'catalan',
'ceb': 'cebuano',
'ny': 'chichewa',
+ 'zh': 'chinese',
'zh-cn': 'chinese (simplified)',
'zh-tw': 'chinese (traditional)',
'co': 'corsican',
@@ -158,7 +163,7 @@ LINGUEE_LANGUAGES_TO_CODES = {
"hungarian": "hu",
"romanian": "ro",
"russian": "ru",
- #"serbian": "sr",
+ # "serbian": "sr",
"dutch": "nl",
"slovakian": "sk",
"greek": "el",
@@ -169,7 +174,7 @@ LINGUEE_LANGUAGES_TO_CODES = {
"finnish": "fi",
"chinese": "zh",
"french": "fr",
- #"croatian": "hr",
+ # "croatian": "hr",
"czech": "cs",
"laotian": "lo",
"swedish": "sv",
@@ -181,3 +186,65 @@ LINGUEE_LANGUAGES_TO_CODES = {
LINGUEE_CODE_TO_LANGUAGE = {v: k for k, v in LINGUEE_LANGUAGES_TO_CODES.items()}
# "72e9e2cc7c992db4dcbdd6fb9f91a0d1"
+
+# obtaining the current list of supported Microsoft languages for translation
+
+microsoft_languages_api_url = "https://api.cognitive.microsofttranslator.com/languages?api-version=3.0&scope=translation"
+microsoft_languages_response = requests.get(microsoft_languages_api_url)
+translation_dict = microsoft_languages_response.json()['translation']
+
+MICROSOFT_CODES_TO_LANGUAGES = {translation_dict[k]['name'].lower(): k for k in translation_dict.keys()}
+
+DEEPL_LANGUAGE_TO_CODE = {
+ "bulgarian": "bg",
+ "czech": "cs",
+ "danish": "da",
+ "german": "de",
+ "greek": "el",
+ "english": "en",
+ "spanish": "es",
+ "estonian": "et",
+ "finnish": "fi",
+ "french": "fr",
+ "hungarian": "hu",
+ "italian": "it",
+ "japanese": "ja",
+ "lithuanian": "lt",
+ "latvian": "lv",
+ "dutch": "nl",
+ "polish": "pl",
+ "portuguese": "pt",
+ "romanian": "ro",
+ "russian": "ru",
+ "slovak": "sk",
+ "slovenian": "sl",
+ "swedish": "sv",
+ "chinese": "zh"
+}
+
+DEEPL_CODE_TO_LANGUAGE = {v: k for k, v in DEEPL_LANGUAGE_TO_CODE.items()}
+
+PAPAGO_CODE_TO_LANGUAGE = {
+ 'ko': 'Korean',
+ 'en': 'English',
+ 'ja': 'Japanese',
+ 'zh-CN': 'Chinese',
+ 'zh-TW': 'Chinese traditional',
+ 'es': 'Spanish',
+ 'fr': 'French',
+ 'vi': 'Vietnamese',
+ 'th': 'Thai',
+ 'id': 'Indonesia'
+}
+
+PAPAGO_LANGUAGE_TO_CODE = {v: k for v, k in PAPAGO_CODE_TO_LANGUAGE.items()}
+
+QCRI_CODE_TO_LANGUAGE = {
+ 'ar': 'Arabic',
+ 'en': 'English',
+ 'es': 'Spanish'
+}
+
+QCRI_LANGUAGE_TO_CODE = {
+ v: k for k, v in QCRI_CODE_TO_LANGUAGE.items()
+}
\ No newline at end of file
diff --git a/libs/deep_translator/deepl.py b/libs/deep_translator/deepl.py
index b08a20d49..1a9f774d5 100644
--- a/libs/deep_translator/deepl.py
+++ b/libs/deep_translator/deepl.py
@@ -1,59 +1,89 @@
-
import requests
-from requests.utils import requote_uri
-from deep_translator.constants import BASE_URLS
-from deep_translator.exceptions import (RequestError,
- ServerException, TranslationNotFound, TooManyRequests)
+from .constants import BASE_URLS, DEEPL_LANGUAGE_TO_CODE
+from .exceptions import (ServerException,
+ TranslationNotFound,
+ LanguageNotSupportedException,
+ AuthorizationException)
class DeepL(object):
"""
class that wraps functions, which use the DeepL translator under the hood to translate word(s)
"""
+ _languages = DEEPL_LANGUAGE_TO_CODE
- def __init__(self, api_key=None):
+ def __init__(self, api_key=None, source="en", target="en", use_free_api=True, **kwargs):
"""
- @param api_key: your DeepL api key. Get one here: https://www.deepl.com/docs-api/accessing-the-api/
+ @param api_key: your DeepL api key.
+ Get one here: https://www.deepl.com/docs-api/accessing-the-api/
+ @param source: source language
+ @param target: target language
"""
-
if not api_key:
raise ServerException(401)
self.version = 'v2'
self.api_key = api_key
- self.__base_url = BASE_URLS.get("DEEPL").format(version=self.version)
+ self.source = self._map_language_to_code(source)
+ self.target = self._map_language_to_code(target)
+ if use_free_api:
+ self.__base_url = BASE_URLS.get("DEEPL_FREE").format(version=self.version)
+ else:
+ self.__base_url = BASE_URLS.get("DEEPL").format(version=self.version)
- def translate(self, source, target, text):
+ def translate(self, text, **kwargs):
+ """
+ @param text: text to translate
+ @return: translated text
+ """
+ # Create the request parameters.
+ translate_endpoint = 'translate'
params = {
"auth_key": self.api_key,
- "target_lang": target,
- "source_lang": source,
+ "source_lang": self.source,
+ "target_lang": self.target,
"text": text
}
+ # Do the request and check the connection.
try:
- response = requests.get(self.__base_url, params=params)
+ response = requests.get(self.__base_url + translate_endpoint, params=params)
except ConnectionError:
raise ServerException(503)
+ # If the answer is not success, raise server exception.
+ if response.status_code == 403:
+ raise AuthorizationException(self.api_key)
+ elif response.status_code != 200:
+ raise ServerException(response.status_code)
+ # Get the response and check is not empty.
+ res = response.json()
+ if not res:
+ raise TranslationNotFound(text)
+ # Process and return the response.
+ return res['translations'][0]['text']
- else:
- if response.status_code != 200:
- ServerException(response.status_code)
- else:
- res = response.json()
- if not res:
- raise TranslationNotFound(text)
- return res
-
- def translate_batch(self, source, target, batch):
+ def translate_batch(self, batch, **kwargs):
"""
- translate a batch of texts
- @param source: source language
- @param target: target language
@param batch: list of texts to translate
@return: list of translations
"""
- return [self.translate(source, target, text) for text in batch]
+ return [self.translate(text, **kwargs) for text in batch]
+
+ @staticmethod
+ def get_supported_languages(as_dict=False, **kwargs):
+ return [*DeepL._languages.keys()] if not as_dict else DeepL._languages
+
+ def _is_language_supported(self, lang, **kwargs):
+ # The language is supported when is in the dicionary.
+ return lang == 'auto' or lang in self._languages.keys() or lang in self._languages.values()
+
+ def _map_language_to_code(self, lang, **kwargs):
+ if lang in self._languages.keys():
+ return self._languages[lang]
+ elif lang in self._languages.values():
+ return lang
+ raise LanguageNotSupportedException(lang)
if __name__ == '__main__':
- d = DeepL(api_key="key")
- print(d)
+ d = DeepL(target="de")
+ t = d.translate("I have no idea")
+ print("text: ", t)
diff --git a/libs/deep_translator/detection.py b/libs/deep_translator/detection.py
index 6cf8f950d..c8581b5cc 100644
--- a/libs/deep_translator/detection.py
+++ b/libs/deep_translator/detection.py
@@ -2,11 +2,12 @@
language detection API
"""
import requests
-from deep_translator.configs import config
from requests.exceptions import HTTPError
+# Module global config
+config = {"url": 'https://ws.detectlanguage.com/0.2/detect',"headers": {'User-Agent': 'Detect Language API Python Client 1.4.0','Authorization': 'Bearer {}',}}
-def get_request_body(text, api_key, *args):
+def get_request_body(text, api_key, *args, **kwargs):
"""
send a request and return the response body parsed as dictionary
@@ -58,7 +59,7 @@ def single_detection(text, api_key=None, detailed=False, *args, **kwargs):
return lang
-def batch_detection(text_list, api_key, detailed=False, *args):
+def batch_detection(text_list, api_key, detailed=False, *args, **kwargs):
"""
function responsible for detecting the language from a text
diff --git a/libs/deep_translator/exceptions.py b/libs/deep_translator/exceptions.py
index 7d0ea875b..67b7958e8 100644
--- a/libs/deep_translator/exceptions.py
+++ b/libs/deep_translator/exceptions.py
@@ -36,6 +36,18 @@ class NotValidPayload(BaseError):
super(NotValidPayload, self).__init__(val, message)
+class InvalidSourceOrTargetLanguage(BaseError):
+ """
+ exception thrown if the user enters an invalid payload
+ """
+
+ def __init__(self,
+ val,
+ message="source and target language can't be the same"):
+ super(InvalidSourceOrTargetLanguage, self).__init__(val, message)
+
+
+
class TranslationNotFound(BaseError):
"""
exception thrown if no translation was found for the text provided by the user
@@ -70,7 +82,7 @@ class NotValidLength(BaseError):
class RequestError(Exception):
"""
- exception thrown if an error occured during the request call, e.g a connection problem.
+ exception thrown if an error occurred during the request call, e.g a connection problem.
"""
def __init__(self, message="Request exception can happen due to an api connection error. "
@@ -81,9 +93,22 @@ class RequestError(Exception):
return self.message
+class MicrosoftAPIerror(Exception):
+ """
+ exception thrown if Microsoft API returns one of its errors
+ """
+
+ def __init__(self, api_message):
+ self.api_message = str(api_message)
+ self.message="Microsoft API returned the following error"
+
+ def __str__(self):
+ return "{}: {}".format(self.message, self.api_message)
+
+
class TooManyRequests(Exception):
"""
- exception thrown if an error occured during the request call, e.g a connection problem.
+ exception thrown if an error occurred during the request call, e.g a connection problem.
"""
def __init__(self, message="Server Error: You made too many requests to the server. According to google, you are allowed to make 5 requests per second and up to 200k requests per day. You can wait and try again later or you can try the translate_batch function"):
@@ -111,3 +136,9 @@ class ServerException(Exception):
def __init__(self, status_code, *args):
message = self.errors.get(status_code, "API server error")
super(ServerException, self).__init__(message, *args)
+
+
+class AuthorizationException(Exception):
+ def __init__(self, api_key, *args):
+ msg = 'Unauthorized access with the api key ' + api_key
+ super().__init__(msg, *args)
diff --git a/libs/deep_translator/google_trans.py b/libs/deep_translator/google_trans.py
index 2c1efa06a..e27926be2 100644
--- a/libs/deep_translator/google_trans.py
+++ b/libs/deep_translator/google_trans.py
@@ -2,9 +2,9 @@
google translator API
"""
-from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
-from deep_translator.exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
-from deep_translator.parent import BaseTranslator
+from .constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
+from .exceptions import TooManyRequests, LanguageNotSupportedException, TranslationNotFound, NotValidPayload, RequestError
+from .parent import BaseTranslator
from bs4 import BeautifulSoup
import requests
from time import sleep
@@ -19,12 +19,13 @@ class GoogleTranslator(BaseTranslator):
_languages = GOOGLE_LANGUAGES_TO_CODES
supported_languages = list(_languages.keys())
- def __init__(self, source="auto", target="en"):
+ def __init__(self, source="auto", target="en", proxies=None, **kwargs):
"""
@param source: source language to translate from
@param target: target language to translate to
"""
self.__base_url = BASE_URLS.get("GOOGLE_TRANSLATE")
+ self.proxies = proxies
if self.is_language_supported(source, target):
self._source, self._target = self._map_language_to_code(source.lower(), target.lower())
@@ -36,12 +37,13 @@ class GoogleTranslator(BaseTranslator):
element_query={"class": "t0"},
payload_key='q', # key of text in the url
tl=self._target,
- sl=self._source)
+ sl=self._source,
+ **kwargs)
self._alt_element_query = {"class": "result-container"}
@staticmethod
- def get_supported_languages(as_dict=False):
+ def get_supported_languages(as_dict=False, **kwargs):
"""
return the supported languages by the google translator
@param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
@@ -89,24 +91,34 @@ class GoogleTranslator(BaseTranslator):
self._url_params[self.payload_key] = text
response = requests.get(self.__base_url,
- params=self._url_params, headers ={'User-agent': 'your bot 0.1'})
-
+ params=self._url_params,
+ proxies=self.proxies)
if response.status_code == 429:
raise TooManyRequests()
if response.status_code != 200:
- # print("status code", response.status_code)
raise RequestError()
soup = BeautifulSoup(response.text, 'html.parser')
+
element = soup.find(self._element_tag, self._element_query)
if not element:
element = soup.find(self._element_tag, self._alt_element_query)
if not element:
raise TranslationNotFound(text)
+ if element.get_text(strip=True) == text.strip():
+ to_translate_alpha = ''.join(ch for ch in text.strip() if ch.isalnum())
+ translated_alpha = ''.join(ch for ch in element.get_text(strip=True) if ch.isalnum())
+ if to_translate_alpha and translated_alpha and to_translate_alpha == translated_alpha:
+ self._url_params["tl"] = self._target
+ if "hl" not in self._url_params:
+ return text.strip()
+ del self._url_params["hl"]
+ return self.translate(text)
- return element.get_text(strip=True)
+ else:
+ return element.get_text(strip=True)
def translate_file(self, path, **kwargs):
"""
@@ -118,9 +130,8 @@ class GoogleTranslator(BaseTranslator):
"""
try:
with open(path) as f:
- text = f.read()
-
- return self.translate(text=text)
+ text = f.read().strip()
+ return self.translate(text)
except Exception as e:
raise e
@@ -149,7 +160,7 @@ class GoogleTranslator(BaseTranslator):
except Exception as e:
raise e
- def translate_batch(self, batch=None):
+ def translate_batch(self, batch=None, **kwargs):
"""
translate a list of texts
@param batch: list of texts you want to translate
@@ -158,16 +169,21 @@ class GoogleTranslator(BaseTranslator):
if not batch:
raise Exception("Enter your text list that you want to translate")
+ print("Please wait.. This may take a couple of seconds because deep_translator sleeps "
+ "for two seconds after each request in order to not spam the google server.")
arr = []
- for text in batch:
- translated = self.translate(text)
+ for i, text in enumerate(batch):
+
+ translated = self.translate(text, **kwargs)
arr.append(translated)
+ print("sentence number ", i+1, " has been translated successfully")
sleep(2)
return arr
-# if __name__ == '__main__':
-# for _ in range(10):
-# txt = GoogleTranslator(source="en", target="ar").translate("Hello how are you")
-# print("text: ", txt)
+
+if __name__ == '__main__':
+ translator = GoogleTranslator(source='ru', target='uk')
+ t = translator.translate("Я разработчик") # => "I am a developer"
+ print(t)
diff --git a/libs/deep_translator/linguee.py b/libs/deep_translator/linguee.py
index ee2013693..921eee32c 100644
--- a/libs/deep_translator/linguee.py
+++ b/libs/deep_translator/linguee.py
@@ -2,14 +2,14 @@
linguee translator API
"""
-from deep_translator.constants import BASE_URLS, LINGUEE_LANGUAGES_TO_CODES, LINGUEE_CODE_TO_LANGUAGE
-from deep_translator.exceptions import (LanguageNotSupportedException,
- TranslationNotFound,
- NotValidPayload,
- ElementNotFoundInGetRequest,
- RequestError,
- TooManyRequests)
-from deep_translator.parent import BaseTranslator
+from .constants import BASE_URLS, LINGUEE_LANGUAGES_TO_CODES, LINGUEE_CODE_TO_LANGUAGE
+from .exceptions import (LanguageNotSupportedException,
+ TranslationNotFound,
+ NotValidPayload,
+ ElementNotFoundInGetRequest,
+ RequestError,
+ TooManyRequests)
+from .parent import BaseTranslator
from bs4 import BeautifulSoup
import requests
from requests.utils import requote_uri
@@ -22,12 +22,13 @@ class LingueeTranslator(BaseTranslator):
_languages = LINGUEE_LANGUAGES_TO_CODES
supported_languages = list(_languages.keys())
- def __init__(self, source, target="en"):
+ def __init__(self, source, target="en", proxies=None, **kwargs):
"""
@param source: source language to translate from
@param target: target language to translate to
"""
self.__base_url = BASE_URLS.get("LINGUEE")
+ self.proxies = proxies
if self.is_language_supported(source, target):
self._source, self._target = self._map_language_to_code(source.lower(), target.lower())
@@ -41,7 +42,7 @@ class LingueeTranslator(BaseTranslator):
)
@staticmethod
- def get_supported_languages(as_dict=False):
+ def get_supported_languages(as_dict=False, **kwargs):
"""
return the supported languages by the linguee translator
@param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
@@ -88,7 +89,7 @@ class LingueeTranslator(BaseTranslator):
# %s-%s/translation/%s.html
url = "{}{}-{}/translation/{}.html".format(self.__base_url, self._source, self._target, word)
url = requote_uri(url)
- response = requests.get(url)
+ response = requests.get(url, proxies=self.proxies)
if response.status_code == 429:
raise TooManyRequests()
@@ -125,6 +126,6 @@ class LingueeTranslator(BaseTranslator):
translated_words = []
for word in words:
- translated_words.append(self.translate(payload=word))
+ translated_words.append(self.translate(word=word, **kwargs))
return translated_words
diff --git a/libs/deep_translator/main.py b/libs/deep_translator/main.py
new file mode 100644
index 000000000..0b4af671a
--- /dev/null
+++ b/libs/deep_translator/main.py
@@ -0,0 +1,124 @@
+"""Console script for deep_translator."""
+
+import click
+from .google_trans import GoogleTranslator
+from .mymemory import MyMemoryTranslator
+from .deepl import DeepL
+from .qcri import QCRI
+from .linguee import LingueeTranslator
+from .pons import PonsTranslator
+from .yandex import YandexTranslator
+from .microsoft import MicrosoftTranslator
+from .papago import PapagoTranslator
+
+CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
+@click.group()
+def cli():
+ pass
+
+@cli.command(context_settings=CONTEXT_SETTINGS, no_args_is_help=True)
+@click.argument('translator', required=True, default='google', type=str)
+@click.option("--source", "-src", required=True, type=str, help="source language to translate from")
+@click.option("--target", "-tgt", required=True, type=str, help="target language to translate to")
+@click.option("--text", "-txt", type=str,required = True,prompt="Enter the text you want to translate",help="text you want to translate")
+@click.option("--api-key",type=str,help="required for DeepL, QCRI, Yandex, Microsoft and Papago translators")
+def translate(translator, source, target, text, api_key):
+ """
+ Use TRANSLATOR to translate source material into another language.
+ \f
+ Directory function to send arguments to the correct translator.
+ @param translator: translator name parsed from terminal arguments
+ @return: None
+ """
+ api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
+ if translator in api_key_required and not api_key:
+ click.echo(
+ "This translator requires an api key provided through --api-key")
+ else:
+ pass
+
+ if translator == "google":
+ translator = GoogleTranslator(source=source, target=target)
+ elif translator == "mymemory":
+ translator = MyMemoryTranslator(source=source, target=target)
+ elif translator == "deepl":
+ translator = DeepL(source=source, target=target, api_key=api_key)
+ elif translator == "qcri":
+ translator = QCRI(source=source, target=target, api_key=api_key)
+ elif translator == "linguee":
+ translator = LingueeTranslator(source=source, target=target)
+ elif translator == "pons":
+ translator = PonsTranslator(source=source, target=target)
+ elif translator == "yandex":
+ translator = YandexTranslator(
+ source=source,
+ target=target,
+ api_key=api_key)
+ elif translator == "microsoft":
+ translator = MicrosoftTranslator(
+ source=source,
+ target=target,
+ api_key=api_key)
+ elif translator == "papago":
+ translator = PapagoTranslator(
+ source=source,
+ target=target,
+ api_key=api_key)
+ else:
+ raise AttributeError("The given translator is not supported.")
+
+ res = translator.translate(text)
+ click.echo(f" | Translation from {source} to {target} |")
+ click.echo(f"Translated text: \n {res}")
+ return 0
+
+@cli.command(context_settings=CONTEXT_SETTINGS, no_args_is_help=True)
+@click.argument('translator')
+@click.argument('api_key', required=False)
+def languages(translator, api_key):
+ """
+ Retrieve the list of available languages from the given translator.
+ @param translator: Translator given by the user.
+ @param api_key: Optional API key given by the user. Required for some translators.
+ @return: None
+ """
+ translator = translator.lower()
+ api_key_required = ["deepl", "qcri", "yandex", "microsoft", "papago"]
+ if translator in api_key_required and not api_key:
+ click.echo("This translator requires an api key provided through --api-key")
+ else:
+ pass
+
+ if translator == "google":
+ translator = GoogleTranslator
+ elif translator == "mymemory":
+ translator = MyMemoryTranslator
+ elif translator == "qcri":
+ translator = QCRI(api_key=api_key)
+ elif translator == "linguee":
+ translator = LingueeTranslator
+ elif translator == "pons":
+ translator = PonsTranslator
+ elif translator == "yandex":
+ translator = YandexTranslator(api_key=api_key)
+ elif translator == "microsoft":
+ translator = MicrosoftTranslator(api_key=api_key)
+ elif translator == "papago":
+ translator = PapagoTranslator(api_key=api_key)
+ else:
+ raise AttributeError("The given translator is not supported.")
+
+ supported_languages = translator.get_supported_languages(as_dict=True)
+ click.echo(f"Languages supported by '{translator}' are :")
+ for k, v in supported_languages.items():
+ click.echo(f"|- {k}: {v}")
+ return 0
+
+@cli.command()
+def list():
+ """Lists available translators."""
+ click.echo("Available translators include: Google, MyMemory, QCRI, Linguee, Pons, Yandex, Microsoft (Bing), and Papago.")
+ return 0
+
+if __name__ == "__main__":
+ cli()
diff --git a/libs/deep_translator/microsoft.py b/libs/deep_translator/microsoft.py
new file mode 100644
index 000000000..415d8222b
--- /dev/null
+++ b/libs/deep_translator/microsoft.py
@@ -0,0 +1,146 @@
+# -*- coding: utf-8 -*-
+
+import requests
+import logging
+import sys
+
+from .constants import BASE_URLS, MICROSOFT_CODES_TO_LANGUAGES
+from .exceptions import LanguageNotSupportedException, ServerException, MicrosoftAPIerror
+
+
+class MicrosoftTranslator:
+ """
+ the class that wraps functions, which use the Microsoft translator under the hood to translate word(s)
+ """
+
+ _languages = MICROSOFT_CODES_TO_LANGUAGES
+ supported_languages = list(_languages.values())
+
+ def __init__(self, api_key=None, region=None, source=None, target=None, proxies=None, **kwargs):
+ """
+ @params api_key and target are the required params
+ @param api_key: your Microsoft API key
+ @param region: your Microsoft Location
+ """
+ if not api_key:
+ raise ServerException(401)
+ else:
+ self.api_key = api_key
+
+ self.proxies = proxies
+ self.headers = {
+ "Ocp-Apim-Subscription-Key": self.api_key,
+ "Content-type": "application/json",
+ }
+ # region is not required but very common and goes to headers if passed
+ if region:
+ self.region = region
+ self.headers["Ocp-Apim-Subscription-Region"] = self.region
+
+ if not target:
+ raise ServerException(401)
+ else:
+ if type(target) is str:
+ self.target = target.lower()
+ else:
+ self.target = [i.lower() for i in target]
+ if self.is_language_supported(self.target):
+ self.target = self._map_language_to_code(self.target)
+
+ self.url_params = {'to': self.target, **kwargs}
+
+ if source:
+ self.source = source.lower()
+ if self.is_language_supported(self.source):
+ self.source = self._map_language_to_code(self.source)
+ self.url_params['from'] = self.source
+
+ self.__base_url = BASE_URLS.get("MICROSOFT_TRANSLATE")
+
+ @staticmethod
+ def get_supported_languages(as_dict=False, **kwargs):
+ """
+ return the languages supported by the microsoft translator
+ @param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
+ @return: list or dict
+ """
+ return MicrosoftTranslator.supported_languages if not as_dict else MicrosoftTranslator._languages
+
+ def _map_language_to_code(self, language, **kwargs):
+ """
+ map the language to its corresponding code (abbreviation) if the language was passed by its full name by the user
+ @param language: a string (if 1 lang) or a list (if multiple langs)
+ @return: mapped value of the language or raise an exception if the language is not supported
+ """
+ if type(language) is str:
+ language = [language]
+ for lang in language:
+ if lang in self._languages.values():
+ yield lang
+ elif lang in self._languages.keys():
+ yield self._languages[lang]
+ else:
+ raise LanguageNotSupportedException(lang)
+
+ def is_language_supported(self, language, **kwargs):
+ """
+ check if the language is supported by the translator
+ @param language: a string (if 1 lang) or a list (if multiple langs)
+ @return: bool or raise an Exception
+ """
+ if type(language) is str:
+ language = [language]
+ for lang in language:
+ if lang not in self._languages.keys():
+ if lang not in self._languages.values():
+ raise LanguageNotSupportedException(lang)
+ return True
+
+ def translate(self, text, **kwargs):
+ """
+ function that uses microsoft translate to translate a text
+ @param text: desired text to translate
+ @return: str: translated text
+ """
+ # a body must be a list of dicts to process multiple texts;
+ # I have not added multiple text processing here since it is covered by the translate_batch method
+ valid_microsoft_json = [{'text': text}]
+ try:
+ requested = requests.post(self.__base_url,
+ params=self.url_params,
+ headers=self.headers,
+ json=valid_microsoft_json,
+ proxies=self.proxies)
+ except requests.exceptions.RequestException:
+ exc_type, value, traceback = sys.exc_info()
+ logging.warning(f"Returned error: {exc_type.__name__}")
+
+ # Where Microsoft API responds with an api error, it returns a dict in response.json()
+ if type(requested.json()) is dict:
+ error_message = requested.json()['error']
+ raise MicrosoftAPIerror(error_message)
+ # Where it responds with a translation, its response.json() is a list e.g. [{'translations': [{'text': 'Hello world!', 'to': 'en'}]}]
+ elif type(requested.json()) is list:
+ all_translations = [i['text'] for i in requested.json()[0]['translations']]
+ return "\n".join(all_translations)
+
+ def translate_file(self, path, **kwargs):
+ """
+ translate from a file
+ @param path: path to file
+ @return: translated text
+ """
+ try:
+ with open(path) as f:
+ text = f.read().strip()
+ return self.translate(text)
+ except Exception as e:
+ raise e
+
+ def translate_batch(self, batch, **kwargs):
+ """
+ translate a batch of texts
+ @param batch: list of texts to translate
+ @return: list of translations
+ """
+ return [self.translate(text, **kwargs) for text in batch]
diff --git a/libs/deep_translator/mymemory.py b/libs/deep_translator/mymemory.py
index 6b9fc1ca7..0c3ab1ca7 100644
--- a/libs/deep_translator/mymemory.py
+++ b/libs/deep_translator/mymemory.py
@@ -4,13 +4,13 @@ mymemory translator API
import logging
import warnings
-from deep_translator.constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
-from deep_translator.exceptions import (NotValidPayload,
- TranslationNotFound,
- LanguageNotSupportedException,
- RequestError,
- TooManyRequests)
-from deep_translator.parent import BaseTranslator
+from .constants import BASE_URLS, GOOGLE_LANGUAGES_TO_CODES
+from .exceptions import (NotValidPayload,
+ TranslationNotFound,
+ LanguageNotSupportedException,
+ RequestError,
+ TooManyRequests)
+from .parent import BaseTranslator
import requests
from time import sleep
@@ -22,12 +22,13 @@ class MyMemoryTranslator(BaseTranslator):
_languages = GOOGLE_LANGUAGES_TO_CODES
supported_languages = list(_languages.keys())
- def __init__(self, source="auto", target="en", **kwargs):
+ def __init__(self, source="auto", target="en", proxies=None, **kwargs):
"""
@param source: source language to translate from
@param target: target language to translate to
"""
self.__base_url = BASE_URLS.get("MYMEMORY")
+ self.proxies = proxies
if self.is_language_supported(source, target):
self._source, self._target = self._map_language_to_code(source.lower(), target.lower())
self._source = self._source if self._source != 'auto' else 'Lao'
@@ -40,7 +41,7 @@ class MyMemoryTranslator(BaseTranslator):
langpair='{}|{}'.format(self._source, self._target))
@staticmethod
- def get_supported_languages(as_dict=False):
+ def get_supported_languages(as_dict=False, **kwargs):
"""
return the supported languages by the mymemory translator
@param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
@@ -93,7 +94,8 @@ class MyMemoryTranslator(BaseTranslator):
response = requests.get(self.__base_url,
params=self._url_params,
- headers=self.headers)
+ headers=self.headers,
+ proxies=self.proxies)
if response.status_code == 429:
raise TooManyRequests()
@@ -150,13 +152,13 @@ class MyMemoryTranslator(BaseTranslator):
"""
try:
with open(path) as f:
- text = f.read()
+ text = f.read().strip()
return self.translate(text=text)
except Exception as e:
raise e
- def translate_batch(self, batch=None):
+ def translate_batch(self, batch=None, **kwargs):
"""
translate a list of texts
@param batch: list of texts you want to translate
@@ -167,7 +169,7 @@ class MyMemoryTranslator(BaseTranslator):
arr = []
for text in batch:
- translated = self.translate(text)
+ translated = self.translate(text, **kwargs)
arr.append(translated)
sleep(2)
diff --git a/libs/deep_translator/papago.py b/libs/deep_translator/papago.py
new file mode 100644
index 000000000..6bf900890
--- /dev/null
+++ b/libs/deep_translator/papago.py
@@ -0,0 +1,154 @@
+"""
+google translator API
+"""
+import json
+from .constants import BASE_URLS, PAPAGO_LANGUAGE_TO_CODE
+from .exceptions import LanguageNotSupportedException, TranslationNotFound, NotValidPayload
+import requests
+import warnings
+import logging
+
+
+class PapagoTranslator(object):
+ """
+ class that wraps functions, which use google translate under the hood to translate text(s)
+ """
+ _languages = PAPAGO_LANGUAGE_TO_CODE
+ supported_languages = list(_languages.keys())
+
+ def __init__(self, client_id=None, secret_key=None, source="auto", target="en", **kwargs):
+ """
+ @param source: source language to translate from
+ @param target: target language to translate to
+ """
+ if not client_id or not secret_key:
+ raise Exception("Please pass your client id and secret key! visit the papago website for more infos")
+
+ self.__base_url = BASE_URLS.get("PAPAGO_API")
+ self.client_id = client_id
+ self.secret_key = secret_key
+ if self.is_language_supported(source, target):
+ self._source, self._target = self._map_language_to_code(source.lower(), target.lower())
+
+ @staticmethod
+ def get_supported_languages(as_dict=False, **kwargs):
+ """
+ return the supported languages by the google translator
+ @param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
+ @return: list or dict
+ """
+ return PapagoTranslator.supported_languages if not as_dict else PapagoTranslator._languages
+
+ def _map_language_to_code(self, *languages):
+ """
+ map language to its corresponding code (abbreviation) if the language was passed by its full name by the user
+ @param languages: list of languages
+ @return: mapped value of the language or raise an exception if the language is not supported
+ """
+ for language in languages:
+ if language in self._languages.values() or language == 'auto':
+ yield language
+ elif language in self._languages.keys():
+ yield self._languages[language]
+ else:
+ raise LanguageNotSupportedException(language)
+
+ def is_language_supported(self, *languages):
+ """
+ check if the language is supported by the translator
+ @param languages: list of languages
+ @return: bool or raise an Exception
+ """
+ for lang in languages:
+ if lang != 'auto' and lang not in self._languages.keys():
+ if lang != 'auto' and lang not in self._languages.values():
+ raise LanguageNotSupportedException(lang)
+ return True
+
+ def translate(self, text, **kwargs):
+ """
+ function that uses google translate to translate a text
+ @param text: desired text to translate
+ @return: str: translated text
+ """
+
+ payload = {
+ "source": self._source,
+ "target": self._target,
+ "text": text
+ }
+ headers = {
+ 'X-Naver-Client-Id': self.client_id,
+ 'X-Naver-Client-Secret': self.secret_key,
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
+ }
+ response = requests.post(self.__base_url, headers=headers, data=payload)
+ if response.status_code != 200:
+ raise Exception(f'Translation error! -> status code: {response.status_code}')
+ res_body = json.loads(response.text)
+ if "message" not in res_body:
+ raise TranslationNotFound(text)
+
+ msg = res_body.get("message")
+ result = msg.get("result", None)
+ if not result:
+ raise TranslationNotFound(text)
+ translated_text = result.get("translatedText")
+ return translated_text
+
+ def translate_file(self, path, **kwargs):
+ """
+ translate directly from file
+ @param path: path to the target file
+ @type path: str
+ @param kwargs: additional args
+ @return: str
+ """
+ try:
+ with open(path) as f:
+ text = f.read().strip()
+ return self.translate(text)
+ except Exception as e:
+ raise e
+
+ def translate_sentences(self, sentences=None, **kwargs):
+ """
+ translate many sentences together. This makes sense if you have sentences with different languages
+ and you want to translate all to unified language. This is handy because it detects
+ automatically the language of each sentence and then translate it.
+
+ @param sentences: list of sentences to translate
+ @return: list of all translated sentences
+ """
+ warnings.warn("deprecated. Use the translate_batch function instead", DeprecationWarning, stacklevel=2)
+ logging.warning("deprecated. Use the translate_batch function instead")
+ if not sentences:
+ raise NotValidPayload(sentences)
+
+ translated_sentences = []
+ try:
+ for sentence in sentences:
+ translated = self.translate(text=sentence)
+ translated_sentences.append(translated)
+
+ return translated_sentences
+
+ except Exception as e:
+ raise e
+
+ def translate_batch(self, batch=None, **kwargs):
+ """
+ translate a list of texts
+ @param batch: list of texts you want to translate
+ @return: list of translations
+ """
+ if not batch:
+ raise Exception("Enter your text list that you want to translate")
+ arr = []
+ for i, text in enumerate(batch):
+
+ translated = self.translate(text, **kwargs)
+ arr.append(translated)
+ return arr
+
+
diff --git a/libs/deep_translator/parent.py b/libs/deep_translator/parent.py
index 674d93e48..35cc94975 100644
--- a/libs/deep_translator/parent.py
+++ b/libs/deep_translator/parent.py
@@ -1,9 +1,8 @@
"""parent translator class"""
-from deep_translator.exceptions import NotValidPayload, NotValidLength
+from .exceptions import NotValidPayload, NotValidLength, InvalidSourceOrTargetLanguage
from abc import ABC, abstractmethod
-
-
+import string
class BaseTranslator(ABC):
"""
Abstract class that serve as a parent translator for other different translators
@@ -20,6 +19,9 @@ class BaseTranslator(ABC):
@param source: source language to translate from
@param target: target language to translate to
"""
+ if source == target:
+ raise InvalidSourceOrTargetLanguage(source)
+
self.__base_url = base_url
self._source = source
self._target = target
@@ -40,8 +42,13 @@ class BaseTranslator(ABC):
@return: bool
"""
- if not payload or not isinstance(payload, str):
+ if not payload or not isinstance(payload, str) or not payload.strip() or payload.isdigit():
raise NotValidPayload(payload)
+
+ # check if payload contains only symbols
+ if all(i in string.punctuation for i in payload):
+ raise NotValidPayload(payload)
+
if not BaseTranslator.__check_length(payload, min_chars, max_chars):
raise NotValidLength(payload, min_chars, max_chars)
return True
@@ -55,7 +62,7 @@ class BaseTranslator(ABC):
@param max_chars: maximum characters allowed
@return: bool
"""
- return True if min_chars < len(payload) < max_chars else False
+ return True if min_chars <= len(payload) < max_chars else False
@abstractmethod
def translate(self, text, **kwargs):
diff --git a/libs/deep_translator/pons.py b/libs/deep_translator/pons.py
index e4383eb5b..50d17f324 100644
--- a/libs/deep_translator/pons.py
+++ b/libs/deep_translator/pons.py
@@ -3,14 +3,14 @@ pons translator API
"""
from bs4 import BeautifulSoup
import requests
-from deep_translator.constants import BASE_URLS, PONS_LANGUAGES_TO_CODES, PONS_CODES_TO_LANGUAGES
-from deep_translator.exceptions import (LanguageNotSupportedException,
- TranslationNotFound,
- NotValidPayload,
- ElementNotFoundInGetRequest,
- RequestError,
- TooManyRequests)
-from deep_translator.parent import BaseTranslator
+from .constants import BASE_URLS, PONS_LANGUAGES_TO_CODES, PONS_CODES_TO_LANGUAGES
+from .exceptions import (LanguageNotSupportedException,
+ TranslationNotFound,
+ NotValidPayload,
+ ElementNotFoundInGetRequest,
+ RequestError,
+ TooManyRequests)
+from .parent import BaseTranslator
from requests.utils import requote_uri
@@ -21,13 +21,13 @@ class PonsTranslator(BaseTranslator):
_languages = PONS_LANGUAGES_TO_CODES
supported_languages = list(_languages.keys())
- def __init__(self, source, target="english"):
+ def __init__(self, source, target="en", proxies=None, **kwargs):
"""
@param source: source language to translate from
@param target: target language to translate to
"""
self.__base_url = BASE_URLS.get("PONS")
-
+ self.proxies = proxies
if self.is_language_supported(source, target):
self._source, self._target = self._map_language_to_code(source, target)
@@ -40,7 +40,7 @@ class PonsTranslator(BaseTranslator):
)
@staticmethod
- def get_supported_languages(as_dict=False):
+ def get_supported_languages(as_dict=False, **kwargs):
"""
return the supported languages by the linguee translator
@param as_dict: if True, the languages will be returned as a dictionary mapping languages to their abbreviations
@@ -86,7 +86,7 @@ class PonsTranslator(BaseTranslator):
if self._validate_payload(word, max_chars=50):
url = "{}{}-{}/{}".format(self.__base_url, self._source, self._target, word)
url = requote_uri(url)
- response = requests.get(url)
+ response = requests.get(url, proxies=self.proxies)
if response.status_code == 429:
raise TooManyRequests()
@@ -131,6 +131,6 @@ class PonsTranslator(BaseTranslator):
translated_words = []
for word in words:
- translated_words.append(self.translate(payload=word))
+ translated_words.append(self.translate(word=word, **kwargs))
return translated_words
diff --git a/libs/deep_translator/qcri.py b/libs/deep_translator/qcri.py
index 318dee46e..0435c8bc9 100644
--- a/libs/deep_translator/qcri.py
+++ b/libs/deep_translator/qcri.py
@@ -1,17 +1,14 @@
import requests
-from requests.utils import requote_uri
-from deep_translator.constants import BASE_URLS
-from deep_translator.exceptions import (RequestError,
- ServerException, TranslationNotFound, TooManyRequests)
-
+from .constants import BASE_URLS, QCRI_LANGUAGE_TO_CODE
+from .exceptions import (ServerException, TranslationNotFound)
class QCRI(object):
"""
class that wraps functions, which use the QRCI translator under the hood to translate word(s)
"""
- def __init__(self, api_key=None):
+ def __init__(self, api_key=None, source="en", target="en", **kwargs):
"""
@param api_key: your qrci api key. Get one for free here https://mt.qcri.org/api/v1/ref
"""
@@ -19,7 +16,8 @@ class QCRI(object):
if not api_key:
raise ServerException(401)
self.__base_url = BASE_URLS.get("QCRI")
-
+ self.source = source
+ self.target = target
self.api_key = api_key
self.api_endpoints = {
"get_languages": "getLanguagePairs",
@@ -40,10 +38,13 @@ class QCRI(object):
except Exception as e:
raise e
- def get_supported_languages(self):
-
- pairs = self._get("get_languages")
- return pairs
+ @staticmethod
+ def get_supported_languages(as_dict=False, **kwargs):
+ # Have no use for this as the format is not what we need
+ # Save this for whenever
+ # pairs = self._get("get_languages")
+ # Using a this one instead
+ return [*QCRI_LANGUAGE_TO_CODE.keys()] if not as_dict else QCRI_LANGUAGE_TO_CODE
@property
def languages(self):
@@ -57,10 +58,10 @@ class QCRI(object):
def domains(self):
return self.get_domains()
- def translate(self, source, target, domain, text):
+ def translate(self, text, domain, **kwargs):
params = {
"key": self.api_key,
- "langpair": "{}-{}".format(source, target),
+ "langpair": "{}-{}".format(self.source, self.target),
"domain": domain,
"text": text
}
@@ -74,18 +75,17 @@ class QCRI(object):
ServerException(response.status_code)
else:
res = response.json()
- translation = res["translatedText"]
+ translation = res.get("translatedText")
if not translation:
raise TranslationNotFound(text)
return translation
- def translate_batch(self, source, target, domain, batch):
+ def translate_batch(self, batch, domain, **kwargs):
"""
translate a batch of texts
- @param source: source language
- @param target: target language
+ @domain: domain
@param batch: list of texts to translate
@return: list of translations
"""
- return [self.translate(source, target, domain, text) for text in batch]
+ return [self.translate(domain, text, **kwargs) for text in batch]
diff --git a/libs/deep_translator/tests/__init__.py b/libs/deep_translator/tests/__init__.py
deleted file mode 100644
index 7bc0eaa21..000000000
--- a/libs/deep_translator/tests/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-"""Unit test package for deep_translator."""
diff --git a/libs/deep_translator/tests/test_google_trans.py b/libs/deep_translator/tests/test_google_trans.py
deleted file mode 100644
index 51f51a8fc..000000000
--- a/libs/deep_translator/tests/test_google_trans.py
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-
-"""Tests for `deep_translator` package."""
-
-import pytest
-from deep_translator import exceptions, GoogleTranslator
-
-
-@pytest.fixture
-def google_translator():
- """Sample pytest fixture.
-
- See more at: http://doc.pytest.org/en/latest/fixture.html
- """
- return GoogleTranslator(target='en')
-
-
-def test_content(google_translator):
- """Sample pytest test function with the pytest fixture as an argument."""
- # from bs4 import BeautifulSoup
- # assert 'GitHub' in BeautifulSoup(response.content).title.string
- assert google_translator.translate(text='좋은') == "good"
-
-
-def test_inputs():
- with pytest.raises(exceptions.LanguageNotSupportedException):
- GoogleTranslator(source="", target="")
-
- with pytest.raises(exceptions.LanguageNotSupportedException):
- GoogleTranslator(source="auto", target="nothing")
-
- # test abbreviations and languages
- g1 = GoogleTranslator("en", "fr")
- g2 = GoogleTranslator("english", "french")
- assert g1._source == g2._source
- assert g1._target == g2._target
-
-
-def test_payload(google_translator):
-
- with pytest.raises(exceptions.NotValidPayload):
- google_translator.translate(text="")
-
- with pytest.raises(exceptions.NotValidPayload):
- google_translator.translate(text=123)
-
- with pytest.raises(exceptions.NotValidPayload):
- google_translator.translate(text={})
-
- with pytest.raises(exceptions.NotValidPayload):
- google_translator.translate(text=[])
-
- with pytest.raises(exceptions.NotValidLength):
- google_translator.translate("a"*5001)
-
- #for _ in range(1):
- #assert google_translator.translate(text='좋은') == "good"
diff --git a/libs/deep_translator/tests/test_linguee.py b/libs/deep_translator/tests/test_linguee.py
deleted file mode 100644
index 57ff9cecb..000000000
--- a/libs/deep_translator/tests/test_linguee.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-
-"""Tests for `deep_translator` package."""
-
-import pytest
-from deep_translator import exceptions, LingueeTranslator
-
-
-@pytest.fixture
-def linguee():
- return LingueeTranslator(source="english", target='french')
-
-
-def test_content(linguee):
- """Sample pytest test function with the pytest fixture as an argument."""
- # from bs4 import BeautifulSoup
- # assert 'GitHub' in BeautifulSoup(response.content).title.string
- assert linguee.translate(word='good') is not None
-
-
-def test_inputs():
- with pytest.raises(exceptions.LanguageNotSupportedException):
- LingueeTranslator(source="", target="")
-
- with pytest.raises(exceptions.LanguageNotSupportedException):
- LingueeTranslator(source="auto", target="nothing")
-
- l1 = LingueeTranslator("en", "fr")
- l2 = LingueeTranslator("english", "french")
- assert l1._source == l2._source
- assert l1._target == l2._target
-
-
-def test_payload(linguee):
-
- with pytest.raises(exceptions.NotValidPayload):
- linguee.translate("")
-
- with pytest.raises(exceptions.NotValidPayload):
- linguee.translate(123)
-
- with pytest.raises(exceptions.NotValidPayload):
- linguee.translate({})
-
- with pytest.raises(exceptions.NotValidPayload):
- linguee.translate([])
-
- with pytest.raises(exceptions.NotValidLength):
- linguee.translate("a"*51)
diff --git a/libs/deep_translator/tests/test_mymemory.py b/libs/deep_translator/tests/test_mymemory.py
deleted file mode 100644
index c6ca6ee1f..000000000
--- a/libs/deep_translator/tests/test_mymemory.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-
-"""Tests for `deep_translator` package."""
-
-import pytest
-from deep_translator import exceptions, MyMemoryTranslator
-
-
-@pytest.fixture
-def mymemory():
- return MyMemoryTranslator(source="en", target='fr')
-
-
-def test_content(mymemory):
- """Sample pytest test function with the pytest fixture as an argument."""
- # from bs4 import BeautifulSoup
- # assert 'GitHub' in BeautifulSoup(response.content).title.string
- assert mymemory.translate(text='good') is not None
-
-
-def test_inputs():
- with pytest.raises(exceptions.LanguageNotSupportedException):
- MyMemoryTranslator(source="", target="")
-
- with pytest.raises(exceptions.LanguageNotSupportedException):
- MyMemoryTranslator(source="auto", target="nothing")
- m1 = MyMemoryTranslator("en", "fr")
- m2 = MyMemoryTranslator("english", "french")
- assert m1._source == m2._source
- assert m1._target == m2._target
-
-
-def test_payload(mymemory):
-
- with pytest.raises(exceptions.NotValidPayload):
- mymemory.translate(text="")
-
- with pytest.raises(exceptions.NotValidPayload):
- mymemory.translate(text=123)
-
- with pytest.raises(exceptions.NotValidPayload):
- mymemory.translate(text={})
-
- with pytest.raises(exceptions.NotValidPayload):
- mymemory.translate(text=[])
-
- with pytest.raises(exceptions.NotValidLength):
- mymemory.translate(text="a"*501)
diff --git a/libs/deep_translator/tests/test_pons.py b/libs/deep_translator/tests/test_pons.py
deleted file mode 100644
index 1ad561125..000000000
--- a/libs/deep_translator/tests/test_pons.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-
-"""Tests for `deep_translator` package."""
-
-import pytest
-from deep_translator import exceptions, PonsTranslator
-
-
-@pytest.fixture
-def pons():
- return PonsTranslator(source="english", target='french')
-
-
-def test_content(pons):
- """Sample pytest test function with the pytest fixture as an argument."""
- # from bs4 import BeautifulSoup
- # assert 'GitHub' in BeautifulSoup(response.content).title.string
- assert pons.translate(word='good') is not None
-
-
-def test_inputs():
- with pytest.raises(exceptions.LanguageNotSupportedException):
- PonsTranslator(source="", target="")
-
- with pytest.raises(exceptions.LanguageNotSupportedException):
- PonsTranslator(source="auto", target="nothing")
- l1 = PonsTranslator("en", "fr")
- l2 = PonsTranslator("english", "french")
- assert l1._source == l2._source
- assert l1._target == l2._target
-
-
-def test_payload(pons):
-
- with pytest.raises(exceptions.NotValidPayload):
- pons.translate("")
-
- with pytest.raises(exceptions.NotValidPayload):
- pons.translate(123)
-
- with pytest.raises(exceptions.NotValidPayload):
- pons.translate({})
-
- with pytest.raises(exceptions.NotValidPayload):
- pons.translate([])
-
- with pytest.raises(exceptions.NotValidLength):
- pons.translate("a" * 51)
diff --git a/libs/deep_translator/utils.py b/libs/deep_translator/utils.py
deleted file mode 100644
index 930372b7a..000000000
--- a/libs/deep_translator/utils.py
+++ /dev/null
@@ -1,3 +0,0 @@
-"""
-utilities
-"""
diff --git a/libs/deep_translator/yandex.py b/libs/deep_translator/yandex.py
index 87e47a83e..35b525aad 100644
--- a/libs/deep_translator/yandex.py
+++ b/libs/deep_translator/yandex.py
@@ -2,10 +2,8 @@
Yandex translator API
"""
import requests
-from requests import exceptions
-from deep_translator.constants import BASE_URLS
-from deep_translator.exceptions import (RequestError,
- ServerException, TranslationNotFound, TooManyRequests)
+from .constants import BASE_URLS
+from .exceptions import (RequestError, ServerException, TranslationNotFound, TooManyRequests)
class YandexTranslator(object):
@@ -13,13 +11,15 @@ class YandexTranslator(object):
class that wraps functions, which use the yandex translator under the hood to translate word(s)
"""
- def __init__(self, api_key=None):
+ def __init__(self, api_key=None, source="en", target="de", **kwargs):
"""
@param api_key: your yandex api key
"""
if not api_key:
raise ServerException(401)
self.__base_url = BASE_URLS.get("YANDEX")
+ self.source = source
+ self.target = target
self.api_key = api_key
self.api_version = "v1.5"
@@ -29,7 +29,14 @@ class YandexTranslator(object):
"translate": "translate",
}
- def get_supported_languages(self):
+ @staticmethod
+ def get_supported_languages(as_dict=False, **kwargs):
+ """ this method is just for consistency."""
+ return """ this method is just for consistency. You need to create an instance of yandex and access
+ supported languages using the languages property or call _get_supported_languages
+ """
+
+ def _get_supported_languages(self):
return set(x.split("-")[0] for x in self.dirs)
@property
@@ -79,11 +86,11 @@ class YandexTranslator(object):
raise ServerException(501)
return language
- def translate(self, source, target, text, proxies=None):
+ def translate(self, text, proxies=None, **kwargs):
params = {
"text": text,
"format": "plain",
- "lang": target if source == "auto" else "{}-{}".format(source, target),
+ "lang": self.target if self.source == "auto" else "{}-{}".format(self.source, self.target),
"key": self.api_key
}
try:
@@ -105,11 +112,9 @@ class YandexTranslator(object):
return response['text']
- def translate_file(self, source, target, path):
+ def translate_file(self, path, **kwargs):
"""
translate from a file
- @param source: source language
- @param target: target language
@param path: path to file
@return: translated text
"""
@@ -117,16 +122,14 @@ class YandexTranslator(object):
with open(path) as f:
text = f.read()
- return self.translate(source, target, text)
+ return self.translate(text)
except Exception as e:
raise e
- def translate_batch(self, source, target, batch):
+ def translate_batch(self, batch, **kwargs):
"""
translate a batch of texts
- @param source: source language
- @param target: target language
@param batch: list of texts to translate
@return: list of translations
"""
- return [self.translate(source, target, text) for text in batch]
+ return [self.translate(text, **kwargs) for text in batch]
diff --git a/libs/version.txt b/libs/version.txt
index 07101175f..cbedbb311 100644
--- a/libs/version.txt
+++ b/libs/version.txt
@@ -8,6 +8,7 @@ bottle-fdsend=0.1.1
bottle=0.12.13
chardet=3.0.4
cloudscraper=1.2.58
+deep-translator=1.5.4
dogpile.cache=0.6.5
engineio=4.0.2dev
enzyme=0.4.1
From 592dc799e967cb68e60ce51ca9295591fc895c01 Mon Sep 17 00:00:00 2001
From: Bruno Maia
Date: Tue, 30 Nov 2021 01:15:14 +0000
Subject: [PATCH 26/41] Improved sanitize function to replace apostrophe and
backticks
---
libs/subliminal_patch/utils.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/subliminal_patch/utils.py b/libs/subliminal_patch/utils.py
index fb6bba5da..912ebf6fa 100644
--- a/libs/subliminal_patch/utils.py
+++ b/libs/subliminal_patch/utils.py
@@ -25,7 +25,7 @@ def sanitize(string, ignore_characters=None, default_characters={'-', ':', '(',
string = re.sub(r'[%s]' % re.escape(''.join(characters)), ' ', string)
# remove some characters
- characters = {'\''} - ignore_characters
+ characters = {'\'', '´', '`', '’'} - ignore_characters
if characters:
string = re.sub(r'[%s]' % re.escape(''.join(characters)), '', string)
From c60c7513a5a776b2a15ac3a7b463d0ef9875cf04 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Mon, 29 Nov 2021 23:07:14 -0500
Subject: [PATCH 27/41] Upgraded engine.io module to improve socket.io
connection stability. Should help to prevent #1613.
---
bazarr/app.py | 3 +-
libs/engineio/__init__.py | 2 +-
libs/engineio/async_drivers/asgi.py | 37 +++++++-----
libs/engineio/async_drivers/gevent_uwsgi.py | 22 ++++---
libs/engineio/async_drivers/threading.py | 37 +++++++++++-
libs/engineio/asyncio_client.py | 44 ++++++++------
libs/engineio/asyncio_server.py | 19 ++++--
libs/engineio/asyncio_socket.py | 12 +++-
libs/engineio/client.py | 44 +++++++-------
libs/engineio/json.py | 16 ++++++
libs/engineio/middleware.py | 24 ++++----
libs/engineio/packet.py | 4 +-
libs/engineio/server.py | 64 +++++++++++++++------
libs/engineio/socket.py | 12 +++-
libs/engineio/static_files.py | 13 +++--
libs/version.txt | 2 +-
16 files changed, 235 insertions(+), 120 deletions(-)
create mode 100644 libs/engineio/json.py
diff --git a/bazarr/app.py b/bazarr/app.py
index a67810c57..48560e443 100644
--- a/bazarr/app.py
+++ b/bazarr/app.py
@@ -28,7 +28,8 @@ def create_app():
else:
app.config["DEBUG"] = False
- socketio.init_app(app, path=base_url.rstrip('/')+'/api/socket.io', cors_allowed_origins='*', async_mode='threading')
+ socketio.init_app(app, path=base_url.rstrip('/')+'/api/socket.io', cors_allowed_origins='*',
+ async_mode='threading', allow_upgrades=False, transports='polling')
return app
diff --git a/libs/engineio/__init__.py b/libs/engineio/__init__.py
index b897468d2..b87baf0c0 100644
--- a/libs/engineio/__init__.py
+++ b/libs/engineio/__init__.py
@@ -17,7 +17,7 @@ else: # pragma: no cover
get_tornado_handler = None
ASGIApp = None
-__version__ = '4.0.2dev'
+__version__ = '4.2.1dev'
__all__ = ['__version__', 'Server', 'WSGIApp', 'Middleware', 'Client']
if AsyncServer is not None: # pragma: no cover
diff --git a/libs/engineio/async_drivers/asgi.py b/libs/engineio/async_drivers/asgi.py
index eb3139b5e..092f4c244 100644
--- a/libs/engineio/async_drivers/asgi.py
+++ b/libs/engineio/async_drivers/asgi.py
@@ -43,19 +43,23 @@ class ASGIApp:
on_startup=None, on_shutdown=None):
self.engineio_server = engineio_server
self.other_asgi_app = other_asgi_app
- self.engineio_path = engineio_path.strip('/')
+ self.engineio_path = engineio_path
+ if not self.engineio_path.startswith('/'):
+ self.engineio_path = '/' + self.engineio_path
+ if not self.engineio_path.endswith('/'):
+ self.engineio_path += '/'
self.static_files = static_files or {}
self.on_startup = on_startup
self.on_shutdown = on_shutdown
async def __call__(self, scope, receive, send):
if scope['type'] in ['http', 'websocket'] and \
- scope['path'].startswith('/{0}/'.format(self.engineio_path)):
+ scope['path'].startswith(self.engineio_path):
await self.engineio_server.handle_request(scope, receive, send)
else:
static_file = get_static_file(scope['path'], self.static_files) \
if scope['type'] == 'http' and self.static_files else None
- if static_file:
+ if static_file and os.path.exists(static_file['filename']):
await self.serve_static_file(static_file, receive, send)
elif self.other_asgi_app is not None:
await self.other_asgi_app(scope, receive, send)
@@ -68,17 +72,14 @@ class ASGIApp:
send): # pragma: no cover
event = await receive()
if event['type'] == 'http.request':
- if os.path.exists(static_file['filename']):
- with open(static_file['filename'], 'rb') as f:
- payload = f.read()
- await send({'type': 'http.response.start',
- 'status': 200,
- 'headers': [(b'Content-Type', static_file[
- 'content_type'].encode('utf-8'))]})
- await send({'type': 'http.response.body',
- 'body': payload})
- else:
- await self.not_found(receive, send)
+ with open(static_file['filename'], 'rb') as f:
+ payload = f.read()
+ await send({'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [(b'Content-Type', static_file[
+ 'content_type'].encode('utf-8'))]})
+ await send({'type': 'http.response.body',
+ 'body': payload})
async def lifespan(self, receive, send):
while True:
@@ -195,7 +196,13 @@ async def make_response(status, headers, payload, environ):
await environ['asgi.send']({'type': 'websocket.accept',
'headers': headers})
else:
- await environ['asgi.send']({'type': 'websocket.close'})
+ if payload:
+ reason = payload.decode('utf-8') \
+ if isinstance(payload, bytes) else str(payload)
+ await environ['asgi.send']({'type': 'websocket.close',
+ 'reason': reason})
+ else:
+ await environ['asgi.send']({'type': 'websocket.close'})
return
await environ['asgi.send']({'type': 'http.response.start',
diff --git a/libs/engineio/async_drivers/gevent_uwsgi.py b/libs/engineio/async_drivers/gevent_uwsgi.py
index bdee812de..43cf69868 100644
--- a/libs/engineio/async_drivers/gevent_uwsgi.py
+++ b/libs/engineio/async_drivers/gevent_uwsgi.py
@@ -1,8 +1,7 @@
-from __future__ import absolute_import
-
import gevent
from gevent import queue
from gevent.event import Event
+from gevent import selectors
import uwsgi
_websocket_available = hasattr(uwsgi, 'websocket_handshake')
@@ -40,21 +39,20 @@ class uWSGIWebSocket(object): # pragma: no cover
self._req_ctx = uwsgi.request_context()
else:
# use event and queue for sending messages
- from gevent.event import Event
- from gevent.queue import Queue
- from gevent.select import select
self._event = Event()
- self._send_queue = Queue()
+ self._send_queue = queue.Queue()
# spawn a select greenlet
def select_greenlet_runner(fd, event):
"""Sets event when data becomes available to read on fd."""
- while True:
- event.set()
- try:
- select([fd], [], [])[0]
- except ValueError:
- break
+ sel = selectors.DefaultSelector()
+ sel.register(fd, selectors.EVENT_READ)
+ try:
+ while True:
+ sel.select()
+ event.set()
+ except gevent.GreenletExit:
+ sel.unregister(fd)
self._select_greenlet = gevent.spawn(
select_greenlet_runner,
self._sock,
diff --git a/libs/engineio/async_drivers/threading.py b/libs/engineio/async_drivers/threading.py
index 9b5375668..2eebdf477 100644
--- a/libs/engineio/async_drivers/threading.py
+++ b/libs/engineio/async_drivers/threading.py
@@ -1,17 +1,48 @@
from __future__ import absolute_import
+import queue
import threading
import time
try:
- import queue
+ from simple_websocket import Server, ConnectionClosed
+ _websocket_available = True
except ImportError: # pragma: no cover
- import Queue as queue
+ _websocket_available = False
+
+
+class WebSocketWSGI(object): # pragma: no cover
+ """
+ This wrapper class provides a threading WebSocket interface that is
+ compatible with eventlet's implementation.
+ """
+ def __init__(self, app):
+ self.app = app
+
+ def __call__(self, environ, start_response):
+ self.ws = Server(environ)
+ return self.app(self)
+
+ def close(self):
+ return self.ws.close()
+
+ def send(self, message):
+ try:
+ return self.ws.send(message)
+ except ConnectionClosed:
+ raise IOError()
+
+ def wait(self):
+ try:
+ return self.ws.receive()
+ except ConnectionClosed:
+ raise IOError()
+
_async = {
'thread': threading.Thread,
'queue': queue.Queue,
'queue_empty': queue.Empty,
'event': threading.Event,
- 'websocket': None,
+ 'websocket': WebSocketWSGI if _websocket_available else None,
'sleep': time.sleep,
}
diff --git a/libs/engineio/asyncio_client.py b/libs/engineio/asyncio_client.py
index 4a11eb3b2..d702be1ff 100644
--- a/libs/engineio/asyncio_client.py
+++ b/libs/engineio/asyncio_client.py
@@ -57,6 +57,11 @@ class AsyncClient(client.Client):
skip SSL certificate verification, allowing
connections to servers with self signed certificates.
The default is ``True``.
+ :param handle_sigint: Set to ``True`` to automatically handle disconnection
+ when the process is interrupted, or to ``False`` to
+ leave interrupt handling to the calling application.
+ Interrupt handling can only be enabled when the
+ client instance is created in the main thread.
"""
def is_asyncio_based(self):
return True
@@ -85,9 +90,8 @@ class AsyncClient(client.Client):
await eio.connect('http://localhost:5000')
"""
global async_signal_handler_set
- if not async_signal_handler_set and \
+ if self.handle_sigint and not async_signal_handler_set and \
threading.current_thread() == threading.main_thread():
-
try:
asyncio.get_event_loop().add_signal_handler(
signal.SIGINT, async_signal_handler)
@@ -166,11 +170,7 @@ class AsyncClient(client.Client):
:param args: arguments to pass to the function.
:param kwargs: keyword arguments to pass to the function.
- This function returns an object compatible with the `Thread` class in
- the Python standard library. The `start()` method on this object is
- already called by this function.
-
- Note: this method is a coroutine.
+ The return value is a ``asyncio.Task`` object.
"""
return asyncio.ensure_future(target(*args, **kwargs))
@@ -191,10 +191,17 @@ class AsyncClient(client.Client):
"""Create an event object."""
return asyncio.Event()
- def _reset(self):
- if self.http: # pragma: no cover
- asyncio.ensure_future(self.http.close())
- super()._reset()
+ def __del__(self): # pragma: no cover
+ # try to close the aiohttp session if it is still open
+ if self.http and not self.http.closed:
+ try:
+ loop = asyncio.get_event_loop()
+ if loop.is_running():
+ loop.ensure_future(self.http.close())
+ else:
+ loop.run_until_complete(self.http.close())
+ except:
+ pass
async def _connect_polling(self, url, headers, engineio_path):
"""Establish a long-polling connection to the Engine.IO server."""
@@ -207,10 +214,10 @@ class AsyncClient(client.Client):
r = await self._send_request(
'GET', self.base_url + self._get_url_timestamp(), headers=headers,
timeout=self.request_timeout)
- if r is None:
+ if r is None or isinstance(r, str):
self._reset()
raise exceptions.ConnectionError(
- 'Connection refused by the server')
+ r or 'Connection refused by the server')
if r.status < 200 or r.status >= 300:
self._reset()
try:
@@ -416,6 +423,7 @@ class AsyncClient(client.Client):
except (aiohttp.ClientError, asyncio.TimeoutError) as exc:
self.logger.info('HTTP %s request to %s failed with error %s.',
method, url, exc)
+ return str(exc)
async def _trigger_event(self, event, *args, **kwargs):
"""Invoke an event handler."""
@@ -462,9 +470,9 @@ class AsyncClient(client.Client):
r = await self._send_request(
'GET', self.base_url + self._get_url_timestamp(),
timeout=max(self.ping_interval, self.ping_timeout) + 5)
- if r is None:
+ if r is None or isinstance(r, str):
self.logger.warning(
- 'Connection refused by the server, aborting')
+ r or 'Connection refused by the server, aborting')
await self.queue.put(None)
break
if r.status < 200 or r.status >= 300:
@@ -578,13 +586,13 @@ class AsyncClient(client.Client):
p = payload.Payload(packets=packets)
r = await self._send_request(
'POST', self.base_url, body=p.encode(),
- headers={'Content-Type': 'application/octet-stream'},
+ headers={'Content-Type': 'text/plain'},
timeout=self.request_timeout)
for pkt in packets:
self.queue.task_done()
- if r is None:
+ if r is None or isinstance(r, str):
self.logger.warning(
- 'Connection refused by the server, aborting')
+ r or 'Connection refused by the server, aborting')
break
if r.status < 200 or r.status >= 300:
self.logger.warning('Unexpected status code %s in server '
diff --git a/libs/engineio/asyncio_server.py b/libs/engineio/asyncio_server.py
index 6639f26bf..706b1d6f2 100644
--- a/libs/engineio/asyncio_server.py
+++ b/libs/engineio/asyncio_server.py
@@ -29,7 +29,7 @@ class AsyncServer(server.Server):
is a grace period added by the server.
:param ping_timeout: The time in seconds that the client waits for the
server to respond before disconnecting. The default
- is 5 seconds.
+ is 20 seconds.
:param max_http_buffer_size: The maximum size of a message when using the
polling transport. The default is 1,000,000
bytes.
@@ -63,6 +63,9 @@ class AsyncServer(server.Server):
:param async_handlers: If set to ``True``, run message event handlers in
non-blocking threads. To run handlers synchronously,
set to ``False``. The default is ``True``.
+ :param transports: The list of allowed transports. Valid transports
+ are ``'polling'`` and ``'websocket'``. Defaults to
+ ``['polling', 'websocket']``.
:param kwargs: Reserved for future extensions, any additional parameters
given as keyword arguments will be silently ignored.
"""
@@ -213,6 +216,13 @@ class AsyncServer(server.Server):
jsonp = False
jsonp_index = None
+ # make sure the client uses an allowed transport
+ transport = query.get('transport', ['polling'])[0]
+ if transport not in self.transports:
+ self._log_error_once('Invalid transport', 'bad-transport')
+ return await self._make_response(
+ self._bad_request('Invalid transport'), environ)
+
# make sure the client speaks a compatible Engine.IO version
sid = query['sid'][0] if 'sid' in query else None
if sid is None and query.get('EIO') != ['4']:
@@ -239,7 +249,6 @@ class AsyncServer(server.Server):
r = self._bad_request('Invalid JSONP index number')
elif method == 'GET':
if sid is None:
- transport = query.get('transport', ['polling'])[0]
# transport must be one of 'polling' or 'websocket'.
# if 'websocket', the HTTP_UPGRADE header must match.
upgrade_header = environ.get('HTTP_UPGRADE').lower() \
@@ -249,9 +258,9 @@ class AsyncServer(server.Server):
r = await self._handle_connect(environ, transport,
jsonp_index)
else:
- self._log_error_once('Invalid transport ' + transport,
- 'bad-transport')
- r = self._bad_request('Invalid transport ' + transport)
+ self._log_error_once('Invalid websocket upgrade',
+ 'bad-upgrade')
+ r = self._bad_request('Invalid websocket upgrade')
else:
if sid not in self.sockets:
self._log_error_once('Invalid session ' + sid, 'bad-sid')
diff --git a/libs/engineio/asyncio_socket.py b/libs/engineio/asyncio_socket.py
index 508ee3ca2..17265c201 100644
--- a/libs/engineio/asyncio_socket.py
+++ b/libs/engineio/asyncio_socket.py
@@ -143,12 +143,18 @@ class AsyncSocket(socket.Socket):
async def _websocket_handler(self, ws):
"""Engine.IO handler for websocket transport."""
+ async def websocket_wait():
+ data = await ws.wait()
+ if data and len(data) > self.server.max_http_buffer_size:
+ raise ValueError('packet is too large')
+ return data
+
if self.connected:
# the socket was already connected, so this is an upgrade
self.upgrading = True # hold packet sends during the upgrade
try:
- pkt = await ws.wait()
+ pkt = await websocket_wait()
except IOError: # pragma: no cover
return
decoded_pkt = packet.Packet(encoded_packet=pkt)
@@ -162,7 +168,7 @@ class AsyncSocket(socket.Socket):
await self.queue.put(packet.Packet(packet.NOOP)) # end poll
try:
- pkt = await ws.wait()
+ pkt = await websocket_wait()
except IOError: # pragma: no cover
self.upgrading = False
return
@@ -204,7 +210,7 @@ class AsyncSocket(socket.Socket):
while True:
p = None
- wait_task = asyncio.ensure_future(ws.wait())
+ wait_task = asyncio.ensure_future(websocket_wait())
try:
p = await asyncio.wait_for(
wait_task,
diff --git a/libs/engineio/client.py b/libs/engineio/client.py
index d307a5d62..4738671e8 100644
--- a/libs/engineio/client.py
+++ b/libs/engineio/client.py
@@ -1,10 +1,7 @@
from base64 import b64encode
-from json import JSONDecodeError
+from engineio.json import JSONDecodeError
import logging
-try:
- import queue
-except ImportError: # pragma: no cover
- import Queue as queue
+import queue
import signal
import ssl
import threading
@@ -69,17 +66,18 @@ class Client(object):
skip SSL certificate verification, allowing
connections to servers with self signed certificates.
The default is ``True``.
+ :param handle_sigint: Set to ``True`` to automatically handle disconnection
+ when the process is interrupted, or to ``False`` to
+ leave interrupt handling to the calling application.
+ Interrupt handling can only be enabled when the
+ client instance is created in the main thread.
"""
event_names = ['connect', 'disconnect', 'message']
- def __init__(self,
- logger=False,
- json=None,
- request_timeout=5,
- http_session=None,
- ssl_verify=True):
+ def __init__(self, logger=False, json=None, request_timeout=5,
+ http_session=None, ssl_verify=True, handle_sigint=True):
global original_signal_handler
- if original_signal_handler is None and \
+ if handle_sigint and original_signal_handler is None and \
threading.current_thread() == threading.main_thread():
original_signal_handler = signal.signal(signal.SIGINT,
signal_handler)
@@ -92,6 +90,7 @@ class Client(object):
self.ping_interval = None
self.ping_timeout = None
self.http = http_session
+ self.handle_sigint = handle_sigint
self.ws = None
self.read_loop_task = None
self.write_loop_task = None
@@ -244,9 +243,9 @@ class Client(object):
:param args: arguments to pass to the function.
:param kwargs: keyword arguments to pass to the function.
- This function returns an object compatible with the `Thread` class in
- the Python standard library. The `start()` method on this object is
- already called by this function.
+ This function returns an object that represents the background task,
+ on which the ``join()`` method can be invoked to wait for the task to
+ complete.
"""
th = threading.Thread(target=target, args=args, kwargs=kwargs)
th.start()
@@ -282,10 +281,10 @@ class Client(object):
r = self._send_request(
'GET', self.base_url + self._get_url_timestamp(), headers=headers,
timeout=self.request_timeout)
- if r is None:
+ if r is None or isinstance(r, str):
self._reset()
raise exceptions.ConnectionError(
- 'Connection refused by the server')
+ r or 'Connection refused by the server')
if r.status_code < 200 or r.status_code >= 300:
self._reset()
try:
@@ -528,6 +527,7 @@ class Client(object):
except requests.exceptions.RequestException as exc:
self.logger.info('HTTP %s request to %s failed with error %s.',
method, url, exc)
+ return str(exc)
def _trigger_event(self, event, *args, **kwargs):
"""Invoke an event handler."""
@@ -574,9 +574,9 @@ class Client(object):
r = self._send_request(
'GET', self.base_url + self._get_url_timestamp(),
timeout=max(self.ping_interval, self.ping_timeout) + 5)
- if r is None:
+ if r is None or isinstance(r, str):
self.logger.warning(
- 'Connection refused by the server, aborting')
+ r or 'Connection refused by the server, aborting')
self.queue.put(None)
break
if r.status_code < 200 or r.status_code >= 300:
@@ -682,13 +682,13 @@ class Client(object):
p = payload.Payload(packets=packets)
r = self._send_request(
'POST', self.base_url, body=p.encode(),
- headers={'Content-Type': 'application/octet-stream'},
+ headers={'Content-Type': 'text/plain'},
timeout=self.request_timeout)
for pkt in packets:
self.queue.task_done()
- if r is None:
+ if r is None or isinstance(r, str):
self.logger.warning(
- 'Connection refused by the server, aborting')
+ r or 'Connection refused by the server, aborting')
break
if r.status_code < 200 or r.status_code >= 300:
self.logger.warning('Unexpected status code %s in server '
diff --git a/libs/engineio/json.py b/libs/engineio/json.py
new file mode 100644
index 000000000..b61255683
--- /dev/null
+++ b/libs/engineio/json.py
@@ -0,0 +1,16 @@
+"""JSON-compatible module with sane defaults."""
+
+from json import * # noqa: F401, F403
+from json import loads as original_loads
+
+
+def _safe_int(s):
+ if len(s) > 100:
+ raise ValueError('Integer is too large')
+ return int(s)
+
+
+def loads(*args, **kwargs):
+ if 'parse_int' not in kwargs: # pragma: no cover
+ kwargs['parse_int'] = _safe_int
+ return original_loads(*args, **kwargs)
diff --git a/libs/engineio/middleware.py b/libs/engineio/middleware.py
index d0bdcc747..5d6ffddf6 100644
--- a/libs/engineio/middleware.py
+++ b/libs/engineio/middleware.py
@@ -35,7 +35,11 @@ class WSGIApp(object):
engineio_path='engine.io'):
self.engineio_app = engineio_app
self.wsgi_app = wsgi_app
- self.engineio_path = engineio_path.strip('/')
+ self.engineio_path = engineio_path
+ if not self.engineio_path.startswith('/'):
+ self.engineio_path = '/' + self.engineio_path
+ if not self.engineio_path.endswith('/'):
+ self.engineio_path += '/'
self.static_files = static_files or {}
def __call__(self, environ, start_response):
@@ -55,21 +59,17 @@ class WSGIApp(object):
environ['eventlet.input'] = Input(environ['gunicorn.socket'])
path = environ['PATH_INFO']
- if path is not None and \
- path.startswith('/{0}/'.format(self.engineio_path)):
+ if path is not None and path.startswith(self.engineio_path):
return self.engineio_app.handle_request(environ, start_response)
else:
static_file = get_static_file(path, self.static_files) \
if self.static_files else None
- if static_file:
- if os.path.exists(static_file['filename']):
- start_response(
- '200 OK',
- [('Content-Type', static_file['content_type'])])
- with open(static_file['filename'], 'rb') as f:
- return [f.read()]
- else:
- return self.not_found(start_response)
+ if static_file and os.path.exists(static_file['filename']):
+ start_response(
+ '200 OK',
+ [('Content-Type', static_file['content_type'])])
+ with open(static_file['filename'], 'rb') as f:
+ return [f.read()]
elif self.wsgi_app is not None:
return self.wsgi_app(environ, start_response)
return self.not_found(start_response)
diff --git a/libs/engineio/packet.py b/libs/engineio/packet.py
index 9dbd6c684..dda88acab 100644
--- a/libs/engineio/packet.py
+++ b/libs/engineio/packet.py
@@ -1,5 +1,5 @@
import base64
-import json as _json
+from engineio import json as _json
(OPEN, CLOSE, PING, PONG, MESSAGE, UPGRADE, NOOP) = (0, 1, 2, 3, 4, 5, 6)
packet_names = ['OPEN', 'CLOSE', 'PING', 'PONG', 'MESSAGE', 'UPGRADE', 'NOOP']
@@ -23,7 +23,7 @@ class Packet(object):
self.binary = False
if self.binary and self.packet_type != MESSAGE:
raise ValueError('Binary packets can only be of type MESSAGE')
- if encoded_packet:
+ if encoded_packet is not None:
self.decode(encoded_packet)
def encode(self, b64=False):
diff --git a/libs/engineio/server.py b/libs/engineio/server.py
index 7498f3f6b..04bfffbb3 100644
--- a/libs/engineio/server.py
+++ b/libs/engineio/server.py
@@ -36,7 +36,7 @@ class Server(object):
is a grace period added by the server.
:param ping_timeout: The time in seconds that the client waits for the
server to respond before disconnecting. The default
- is 5 seconds.
+ is 20 seconds.
:param max_http_buffer_size: The maximum size of a message when using the
polling transport. The default is 1,000,000
bytes.
@@ -78,20 +78,25 @@ class Server(object):
inactive clients are closed. Set to ``False`` to
disable the monitoring task (not recommended). The
default is ``True``.
+ :param transports: The list of allowed transports. Valid transports
+ are ``'polling'`` and ``'websocket'``. Defaults to
+ ``['polling', 'websocket']``.
:param kwargs: Reserved for future extensions, any additional parameters
given as keyword arguments will be silently ignored.
"""
compression_methods = ['gzip', 'deflate']
event_names = ['connect', 'disconnect', 'message']
+ valid_transports = ['polling', 'websocket']
_default_monitor_clients = True
sequence_number = 0
- def __init__(self, async_mode=None, ping_interval=25, ping_timeout=5,
+ def __init__(self, async_mode=None, ping_interval=25, ping_timeout=20,
max_http_buffer_size=1000000, allow_upgrades=True,
http_compression=True, compression_threshold=1024,
cookie=None, cors_allowed_origins=None,
cors_credentials=True, logger=False, json=None,
- async_handlers=True, monitor_clients=None, **kwargs):
+ async_handlers=True, monitor_clients=None, transports=None,
+ **kwargs):
self.ping_timeout = ping_timeout
if isinstance(ping_interval, tuple):
self.ping_interval = ping_interval[0]
@@ -152,6 +157,14 @@ class Server(object):
self._async['asyncio']: # pragma: no cover
raise ValueError('The selected async_mode requires asyncio and '
'must use the AsyncServer class')
+ if transports is not None:
+ if isinstance(transports, str):
+ transports = [transports]
+ transports = [transport for transport in transports
+ if transport in self.valid_transports]
+ if not transports:
+ raise ValueError('No valid transports provided')
+ self.transports = transports or self.valid_transports
self.logger.info('Server initialized for %s.', self.async_mode)
def is_asyncio_based(self):
@@ -333,8 +346,7 @@ class Server(object):
allowed_origins:
self._log_error_once(
origin + ' is not an accepted origin.', 'bad-origin')
- r = self._bad_request(
- origin + ' is not an accepted origin.')
+ r = self._bad_request('Not an accepted origin.')
start_response(r['status'], r['headers'])
return [r['response']]
@@ -343,6 +355,14 @@ class Server(object):
jsonp = False
jsonp_index = None
+ # make sure the client uses an allowed transport
+ transport = query.get('transport', ['polling'])[0]
+ if transport not in self.transports:
+ self._log_error_once('Invalid transport', 'bad-transport')
+ r = self._bad_request('Invalid transport')
+ start_response(r['status'], r['headers'])
+ return [r['response']]
+
# make sure the client speaks a compatible Engine.IO version
sid = query['sid'][0] if 'sid' in query else None
if sid is None and query.get('EIO') != ['4']:
@@ -369,7 +389,6 @@ class Server(object):
r = self._bad_request('Invalid JSONP index number')
elif method == 'GET':
if sid is None:
- transport = query.get('transport', ['polling'])[0]
# transport must be one of 'polling' or 'websocket'.
# if 'websocket', the HTTP_UPGRADE header must match.
upgrade_header = environ.get('HTTP_UPGRADE').lower() \
@@ -379,13 +398,13 @@ class Server(object):
r = self._handle_connect(environ, start_response,
transport, jsonp_index)
else:
- self._log_error_once('Invalid transport ' + transport,
- 'bad-transport')
- r = self._bad_request('Invalid transport ' + transport)
+ self._log_error_once('Invalid websocket upgrade',
+ 'bad-upgrade')
+ r = self._bad_request('Invalid websocket upgrade')
else:
if sid not in self.sockets:
self._log_error_once('Invalid session ' + sid, 'bad-sid')
- r = self._bad_request('Invalid session ' + sid)
+ r = self._bad_request('Invalid session')
else:
socket = self._get_socket(sid)
try:
@@ -405,7 +424,7 @@ class Server(object):
if sid is None or sid not in self.sockets:
self._log_error_once(
'Invalid session ' + (sid or 'None'), 'bad-sid')
- r = self._bad_request('Invalid session ' + (sid or 'None'))
+ r = self._bad_request('Invalid session')
else:
socket = self._get_socket(sid)
try:
@@ -453,9 +472,9 @@ class Server(object):
:param args: arguments to pass to the function.
:param kwargs: keyword arguments to pass to the function.
- This function returns an object compatible with the `Thread` class in
- the Python standard library. The `start()` method on this object is
- already called by this function.
+ This function returns an object that represents the background task,
+ on which the ``join()`` methond can be invoked to wait for the task to
+ complete.
"""
th = self._async['thread'](target=target, args=args, kwargs=kwargs)
th.start()
@@ -581,7 +600,14 @@ class Server(object):
def _upgrades(self, sid, transport):
"""Return the list of possible upgrades for a client connection."""
if not self.allow_upgrades or self._get_socket(sid).upgraded or \
- self._async['websocket'] is None or transport == 'websocket':
+ transport == 'websocket':
+ return []
+ if self._async['websocket'] is None: # pragma: no cover
+ self._log_error_once(
+ 'The WebSocket transport is not available, you must install a '
+ 'WebSocket server that is compatible with your async mode to '
+ 'enable it. See the documentation for details.',
+ 'no-websocket')
return []
return ['websocket']
@@ -656,13 +682,15 @@ class Server(object):
if 'wsgi.url_scheme' in environ and 'HTTP_HOST' in environ:
default_origins.append('{scheme}://{host}'.format(
scheme=environ['wsgi.url_scheme'], host=environ['HTTP_HOST']))
- if 'HTTP_X_FORWARDED_HOST' in environ:
+ if 'HTTP_X_FORWARDED_PROTO' in environ or \
+ 'HTTP_X_FORWARDED_HOST' in environ:
scheme = environ.get(
'HTTP_X_FORWARDED_PROTO',
environ['wsgi.url_scheme']).split(',')[0].strip()
default_origins.append('{scheme}://{host}'.format(
- scheme=scheme, host=environ['HTTP_X_FORWARDED_HOST'].split(
- ',')[0].strip()))
+ scheme=scheme, host=environ.get(
+ 'HTTP_X_FORWARDED_HOST', environ['HTTP_HOST']).split(
+ ',')[0].strip()))
if self.cors_allowed_origins is None:
allowed_origins = default_origins
elif self.cors_allowed_origins == '*':
diff --git a/libs/engineio/socket.py b/libs/engineio/socket.py
index 1434b191d..be0c83f6b 100644
--- a/libs/engineio/socket.py
+++ b/libs/engineio/socket.py
@@ -159,6 +159,12 @@ class Socket(object):
def _websocket_handler(self, ws):
"""Engine.IO handler for websocket transport."""
+ def websocket_wait():
+ data = ws.wait()
+ if data and len(data) > self.server.max_http_buffer_size:
+ raise ValueError('packet is too large')
+ return data
+
# try to set a socket timeout matching the configured ping interval
# and timeout
for attr in ['_sock', 'socket']: # pragma: no cover
@@ -170,7 +176,7 @@ class Socket(object):
# the socket was already connected, so this is an upgrade
self.upgrading = True # hold packet sends during the upgrade
- pkt = ws.wait()
+ pkt = websocket_wait()
decoded_pkt = packet.Packet(encoded_packet=pkt)
if decoded_pkt.packet_type != packet.PING or \
decoded_pkt.data != 'probe':
@@ -181,7 +187,7 @@ class Socket(object):
ws.send(packet.Packet(packet.PONG, data='probe').encode())
self.queue.put(packet.Packet(packet.NOOP)) # end poll
- pkt = ws.wait()
+ pkt = websocket_wait()
decoded_pkt = packet.Packet(encoded_packet=pkt)
if decoded_pkt.packet_type != packet.UPGRADE:
self.upgraded = False
@@ -221,7 +227,7 @@ class Socket(object):
while True:
p = None
try:
- p = ws.wait()
+ p = websocket_wait()
except Exception as e:
# if the socket is already closed, we can assume this is a
# downstream error of that
diff --git a/libs/engineio/static_files.py b/libs/engineio/static_files.py
index 3058f6ea4..77c891571 100644
--- a/libs/engineio/static_files.py
+++ b/libs/engineio/static_files.py
@@ -21,23 +21,28 @@ def get_static_file(path, static_files):
"content_type". If the requested URL does not match any static file, the
return value is None.
"""
+ extra_path = ''
if path in static_files:
f = static_files[path]
else:
f = None
- rest = ''
while path != '':
path, last = path.rsplit('/', 1)
- rest = '/' + last + rest
+ extra_path = '/' + last + extra_path
if path in static_files:
- f = static_files[path] + rest
+ f = static_files[path]
break
elif path + '/' in static_files:
- f = static_files[path + '/'] + rest[1:]
+ f = static_files[path + '/']
break
if f:
if isinstance(f, str):
f = {'filename': f}
+ else:
+ f = f.copy() # in case it is mutated below
+ if f['filename'].endswith('/') and extra_path.startswith('/'):
+ extra_path = extra_path[1:]
+ f['filename'] += extra_path
if f['filename'].endswith('/'):
if '' in static_files:
if isinstance(static_files[''], str):
diff --git a/libs/version.txt b/libs/version.txt
index cbedbb311..38a82cd7a 100644
--- a/libs/version.txt
+++ b/libs/version.txt
@@ -10,7 +10,7 @@ chardet=3.0.4
cloudscraper=1.2.58
deep-translator=1.5.4
dogpile.cache=0.6.5
-engineio=4.0.2dev
+engineio=4.3.0
enzyme=0.4.1
ffsubsync=0.4.11
Flask=1.1.1
From 4b8f0dbe814a69237a9afa596106949045777f13 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 30 Nov 2021 12:02:19 -0500
Subject: [PATCH 28/41] Fixed addic7ed provider that wasn't able to find all
shows. #1619
---
libs/subliminal_patch/providers/addic7ed.py | 27 +++++++++------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/libs/subliminal_patch/providers/addic7ed.py b/libs/subliminal_patch/providers/addic7ed.py
index 71f840d9d..01e312b31 100644
--- a/libs/subliminal_patch/providers/addic7ed.py
+++ b/libs/subliminal_patch/providers/addic7ed.py
@@ -285,29 +285,26 @@ class Addic7edProvider(_Addic7edProvider):
logger.info('Getting show ids')
region.set(self.last_show_ids_fetch_key, datetime.datetime.now())
- r = self.session.get(self.server_url, timeout=60)
+ r = self.session.get(self.server_url + 'shows.php', timeout=60)
r.raise_for_status()
soup = ParserBeautifulSoup(r.content.decode('utf-8', 'ignore'), ['lxml', 'html.parser'])
# populate the show ids
show_ids = {}
- shows = soup.find(id='qsShow')
+ shows = soup.select('td > h3 > a[href^="/show/"]')
for show in shows:
- if hasattr(show, 'attrs'):
- try:
- show_id = int(show.attrs['value'])
- except ValueError:
- continue
-
- if show_id != 0:
- show_clean = sanitize(show.text, default_characters=self.sanitize_characters)
+ show_clean = sanitize(show.text, default_characters=self.sanitize_characters)
+ try:
+ show_id = int(show['href'][6:])
+ except ValueError:
+ continue
- show_ids[show_clean] = show_id
- match = series_year_re.match(show_clean)
- if match and match.group(2) and match.group(1) not in show_ids:
- # year found, also add it without year
- show_ids[match.group(1)] = show_id
+ show_ids[show_clean] = show_id
+ match = series_year_re.match(show_clean)
+ if match and match.group(2) and match.group(1) not in show_ids:
+ # year found, also add it without year
+ show_ids[match.group(1)] = show_id
soup.decompose()
soup = None
From e1386aedc0c9e9bb2400af8f97027b4291fbd959 Mon Sep 17 00:00:00 2001
From: Vitiko
Date: Tue, 30 Nov 2021 15:00:03 -0400
Subject: [PATCH 29/41] Avoid breaking function with optional keyword parameter
---
libs/subliminal_patch/score.py | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/libs/subliminal_patch/score.py b/libs/subliminal_patch/score.py
index 2d381f412..3e6d1edcb 100644
--- a/libs/subliminal_patch/score.py
+++ b/libs/subliminal_patch/score.py
@@ -30,8 +30,8 @@ def framerate_equal(source, check):
def compute_score(matches, subtitle, video, hearing_impaired=None, score_obj=None):
"""Compute the score of the `subtitle` against the `video` with `hearing_impaired` preference.
-
- patch:
+
+ patch:
- remove upper bounds of score
- re-add matches argument and remove get_matches from here
@@ -49,8 +49,11 @@ def compute_score(matches, subtitle, video, hearing_impaired=None, score_obj=Non
"""
logger.info('%r: Computing score for video %r with %r', subtitle, video, dict(hearing_impaired=hearing_impaired))
- scores = score_obj.scores or get_scores(video)
- score_obj.check_custom_profiles(subtitle, matches)
+ if score_obj is not None:
+ scores = score_obj.scores
+ score_obj.check_custom_profiles(subtitle, matches)
+ else:
+ scores = get_scores(video)
is_episode = isinstance(video, Episode)
is_movie = isinstance(video, Movie)
From d2bbc479bcf7044d5f6a1c435adac161a29112fb Mon Sep 17 00:00:00 2001
From: Vitiko
Date: Tue, 30 Nov 2021 17:40:51 -0400
Subject: [PATCH 30/41] Argenteam provider: fix decoding error
---
libs/subliminal_patch/providers/argenteam.py | 214 +++++++++----------
libs/subliminal_patch/subtitle.py | 2 +-
2 files changed, 107 insertions(+), 109 deletions(-)
diff --git a/libs/subliminal_patch/providers/argenteam.py b/libs/subliminal_patch/providers/argenteam.py
index 66e2d30d3..53f06859f 100644
--- a/libs/subliminal_patch/providers/argenteam.py
+++ b/libs/subliminal_patch/providers/argenteam.py
@@ -7,8 +7,7 @@ import io
import time
import urllib.parse
-from json.decoder import JSONDecodeError
-
+from simplejson.errors import JSONDecodeError
from zipfile import ZipFile
from guessit import guessit
from requests import Session
@@ -19,8 +18,8 @@ from subliminal_patch.subtitle import Subtitle, guess_matches
from subliminal_patch.providers.mixins import ProviderSubtitleArchiveMixin
from subzero.language import Language
-BASE_URL = "https://argenteam.net/"
-API_URL = BASE_URL + "api/v1/"
+BASE_URL = "https://argenteam.net"
+API_URL = f"{BASE_URL}/api/v1"
logger = logging.getLogger(__name__)
@@ -69,10 +68,9 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
multi_result_throttle = 2 # seconds
def __init__(self):
- self.session = None
+ self.session = Session()
def initialize(self):
- self.session = Session()
self.session.headers.update(
{"User-Agent": os.environ.get("SZ_USER_AGENT", "Sub-Zero/2")}
)
@@ -80,7 +78,105 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
def terminate(self):
self.session.close()
- def search_ids(self, title, **kwargs):
+ def query(self, title, video, titles=None):
+ is_episode = isinstance(video, Episode)
+ season = episode = None
+ url = f"{API_URL}/movie"
+ if is_episode:
+ season = video.season
+ episode = video.episode
+ url = f"{API_URL}/episode"
+ argenteam_ids = self._search_ids(
+ title, season=season, episode=episode, titles=titles
+ )
+
+ else:
+ argenteam_ids = self._search_ids(
+ title, year=video.year, imdb_id=video.imdb_id, titles=titles
+ )
+
+ if not argenteam_ids:
+ return []
+
+ language = self.language_list[0]
+ subtitles = []
+ has_multiple_ids = len(argenteam_ids) > 1
+ for aid in argenteam_ids:
+ response = self.session.get(url, params={"id": aid}, timeout=10)
+ response.raise_for_status()
+
+ try:
+ content = response.json()
+ except JSONDecodeError:
+ continue
+
+ if not content or not content.get("releases"):
+ continue
+
+ imdb_id = year = None
+ returned_title = title
+ if not is_episode and "info" in content:
+ imdb_id = content["info"].get("imdb")
+ year = content["info"].get("year")
+ returned_title = content["info"].get("title", title)
+
+ for r in content["releases"]:
+ for s in r["subtitles"]:
+ movie_kind = "episode" if is_episode else "movie"
+ page_link = f"{BASE_URL}/{movie_kind}/{aid}"
+ release_info = self._combine_release_info(r)
+ download_link = s["uri"].replace("http://", "https://")
+
+ matches_ = self._get_query_matches(
+ video,
+ movie_kind=movie_kind,
+ season=season,
+ episode=episode,
+ title=returned_title,
+ year=year,
+ imdb_id=imdb_id,
+ tvdb_id=content.get("tvdb"),
+ )
+ subtitles.append(
+ ArgenteamSubtitle(
+ language,
+ page_link,
+ download_link,
+ release_info,
+ matches_,
+ )
+ )
+
+ if has_multiple_ids:
+ time.sleep(self.multi_result_throttle)
+
+ return subtitles
+
+ def list_subtitles(self, video, languages):
+ if isinstance(video, Episode):
+ titles = [video.series] + video.alternative_series[:2]
+ else:
+ titles = [video.title] + video.alternative_titles[:2]
+
+ for title in titles:
+ subs = self.query(title, video, titles=titles)
+ if subs:
+ return subs
+ time.sleep(self.multi_result_throttle)
+
+ return []
+
+ def download_subtitle(self, subtitle):
+ # download as a zip
+ logger.info("Downloading subtitle %r", subtitle)
+ r = self.session.get(subtitle.download_link, timeout=10)
+ r.raise_for_status()
+
+ # open the zip
+ with ZipFile(io.BytesIO(r.content)) as zf:
+ subtitle.content = self.get_subtitle_from_archive(subtitle, zf)
+
+ def _search_ids(self, title, **kwargs):
query = title
titles = kwargs.get("titles") or []
@@ -91,7 +187,7 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
logger.debug(f"Searching ID (episode: {is_episode}) for {query}")
- r = self.session.get(API_URL + "search", params={"q": query}, timeout=10)
+ r = self.session.get(f"{API_URL}/search", params={"q": query}, timeout=10)
r.raise_for_status()
try:
@@ -131,7 +227,7 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
return match_ids
- def get_query_matches(self, video, **kwargs):
+ def _get_query_matches(self, video, **kwargs):
matches = set()
if isinstance(video, Episode) and kwargs.get("movie_kind") == "episode":
if video.series and (
@@ -171,107 +267,9 @@ class ArgenteamProvider(Provider, ProviderSubtitleArchiveMixin):
return matches
- def combine_release_info(self, release_dict):
+ def _combine_release_info(self, release_dict):
keys = ("source", "codec", "tags", "team")
combine = [release_dict.get(key) for key in keys if release_dict.get(key)]
if combine:
return ".".join(combine)
return "Unknown"
-
- def query(self, title, video, titles=None):
- is_episode = isinstance(video, Episode)
- season = episode = None
- url = API_URL + "movie"
- if is_episode:
- season = video.season
- episode = video.episode
- url = API_URL + "episode"
- argenteam_ids = self.search_ids(
- title, season=season, episode=episode, titles=titles
- )
-
- else:
- argenteam_ids = self.search_ids(
- title, year=video.year, imdb_id=video.imdb_id, titles=titles
- )
-
- if not argenteam_ids:
- return []
-
- language = self.language_list[0]
- subtitles = []
- has_multiple_ids = len(argenteam_ids) > 1
- for aid in argenteam_ids:
- response = self.session.get(url, params={"id": aid}, timeout=10)
- response.raise_for_status()
-
- try:
- content = response.json()
- except JSONDecodeError:
- continue
-
- if not content or not content.get("releases"):
- continue
-
- imdb_id = year = None
- returned_title = title
- if not is_episode and "info" in content:
- imdb_id = content["info"].get("imdb")
- year = content["info"].get("year")
- returned_title = content["info"].get("title", title)
-
- for r in content["releases"]:
- for s in r["subtitles"]:
- movie_kind = "episode" if is_episode else "movie"
- page_link = f"{BASE_URL}{movie_kind}/{aid}"
- release_info = self.combine_release_info(r)
- download_link = s["uri"].replace("http://", "https://")
-
- matches_ = self.get_query_matches(
- video,
- movie_kind=movie_kind,
- season=season,
- episode=episode,
- title=returned_title,
- year=year,
- imdb_id=imdb_id,
- tvdb_id=content.get("tvdb"),
- )
- subtitles.append(
- ArgenteamSubtitle(
- language,
- page_link,
- download_link,
- release_info,
- matches_,
- )
- )
-
- if has_multiple_ids:
- time.sleep(self.multi_result_throttle)
-
- return subtitles
-
- def list_subtitles(self, video, languages):
- if isinstance(video, Episode):
- titles = [video.series] + video.alternative_series[:2]
- else:
- titles = [video.title] + video.alternative_titles[:2]
-
- for title in titles:
- subs = self.query(title, video, titles=titles)
- if subs:
- return subs
- time.sleep(self.multi_result_throttle)
-
- return []
-
- def download_subtitle(self, subtitle):
- # download as a zip
- logger.info("Downloading subtitle %r", subtitle)
- r = self.session.get(subtitle.download_link, timeout=10)
- r.raise_for_status()
-
- # open the zip
- with ZipFile(io.BytesIO(r.content)) as zf:
- subtitle.content = self.get_subtitle_from_archive(subtitle, zf)
diff --git a/libs/subliminal_patch/subtitle.py b/libs/subliminal_patch/subtitle.py
index 78c291670..ee2dc15ce 100644
--- a/libs/subliminal_patch/subtitle.py
+++ b/libs/subliminal_patch/subtitle.py
@@ -44,7 +44,7 @@ ftfy_defaults = {
class Subtitle(Subtitle_):
storage_path = None
release_info = None
- matches = None
+ matches = {}
hash_verifiable = False
hearing_impaired_verifiable = False
mods = None
From 5fc93bcb1da809c129afb6a1f7e16b0a4c9f4d2f Mon Sep 17 00:00:00 2001
From: Vitiko
Date: Tue, 30 Nov 2021 17:49:28 -0400
Subject: [PATCH 31/41] Update tests
Assrt provider tests were removed as they are not compatible with
the latest "subliminal_patch" updates.
For convenience, I've added a test submodule called "subliminal_patch"
where we can test providers separately.
---
dev-requirements.txt | 1 +
.../assrt/test_download_episode_subtitle.yaml | 605 ---
.../assrt/test_download_subtitle.yaml | 3932 ----------------
.../assrt/test_download_subtitle_zh.yaml | 3933 -----------------
tests/cassettes/assrt/test_query_episode.yaml | 83 -
.../assrt/test_query_list_subtitles.yaml | 98 -
.../cassettes/assrt/test_query_movie_zh.yaml | 97 -
.../assrt/test_query_movie_zh_Hans.yaml | 97 -
.../assrt/test_query_movie_zh_Hant.yaml | 97 -
tests/conftest.py | 116 +-
tests/libs.py | 11 -
.../test_download_subtitle.yaml | 546 +++
.../test_list_subtitles_episode.yaml | 129 +
.../test_list_subtitles_movie.yaml | 366 ++
tests/subliminal_patch/conftest.py | 116 +
tests/subliminal_patch/test_argenteam.py | 91 +
tests/test_assrt.py | 172 -
17 files changed, 1251 insertions(+), 9239 deletions(-)
delete mode 100644 tests/cassettes/assrt/test_download_episode_subtitle.yaml
delete mode 100644 tests/cassettes/assrt/test_download_subtitle.yaml
delete mode 100644 tests/cassettes/assrt/test_download_subtitle_zh.yaml
delete mode 100644 tests/cassettes/assrt/test_query_episode.yaml
delete mode 100644 tests/cassettes/assrt/test_query_list_subtitles.yaml
delete mode 100644 tests/cassettes/assrt/test_query_movie_zh.yaml
delete mode 100644 tests/cassettes/assrt/test_query_movie_zh_Hans.yaml
delete mode 100644 tests/cassettes/assrt/test_query_movie_zh_Hant.yaml
delete mode 100644 tests/libs.py
create mode 100644 tests/subliminal_patch/cassettes/test_argenteam/test_download_subtitle.yaml
create mode 100644 tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_episode.yaml
create mode 100644 tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_movie.yaml
create mode 100644 tests/subliminal_patch/conftest.py
create mode 100644 tests/subliminal_patch/test_argenteam.py
delete mode 100644 tests/test_assrt.py
diff --git a/dev-requirements.txt b/dev-requirements.txt
index e812f80b9..9ba4733a1 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -4,3 +4,4 @@ pytest
pytest-pep8
pytest-flakes
pytest-cov
+pytest-vcr
diff --git a/tests/cassettes/assrt/test_download_episode_subtitle.yaml b/tests/cassettes/assrt/test_download_episode_subtitle.yaml
deleted file mode 100644
index aa08778b9..000000000
--- a/tests/cassettes/assrt/test_download_episode_subtitle.yaml
+++ /dev/null
@@ -1,605 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27The+Big+Bang+Theory+S07E05%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"The Big Bang Theory S07E05\",\"\
- result\":\"succeed\",\"subs\":[{\"subtype\":\"Subrip(srt)\",\"id\":618200,\"\
- lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"langchs\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2018-01-26 19:23:52\",\"native_name\":\"\u5929\u624D\u7406\
- \u8BBA\u4F20\u7B2C7\u5B63\u516824\u96C6The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\"\
- ,\"videoname\":\"The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\",\"release_site\"\
- :\"\u4F0A\u7538\u56ED\",\"revision\":0},{\"upload_time\":\"2014-12-06 04:13:43\"\
- ,\"subtype\":\"Subrip(srt)\",\"id\":316965,\"native_name\":\"\u751F\u6D3B\u5927\
- \u7206\u70B8 \u7B2C\u4E03\u5B63 \u7B2C 5 \u96C6\",\"videoname\":\"The Big\
- \ Bang Theory S07E05 720p HDTV X264-DIMENSION\",\"revision\":0,\"vote_score\"\
- :0},{\"upload_time\":\"2014-12-06 04:13:43\",\"subtype\":\"Subrip(srt)\",\"\
- id\":316966,\"native_name\":\"\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\u5B63\
- \ \u7B2C 5 \u96C6\",\"videoname\":\"The Big Bang Theory S07E05 720p HDTV X264-DIMENSION\"\
- ,\"revision\":0,\"vote_score\":0},{\"upload_time\":\"2014-11-02 10:41:05\"\
- ,\"subtype\":\"SSA\",\"revision\":0,\"id\":264973,\"lang\":{\"desc\":\"\u53CC\
- \u8BED\",\"langlist\":{\"langdou\":true}},\"videoname\":\"The.Big.Bang.Theory.S07E05.720p.BluRay.x264-DEMAND\"\
- ,\"native_name\":\"The Big Bang Theory S07\\/\u751F\u6D3B\u5927\u7206\u70B8\
- \ \u7B2C\u4E03\u5B63\\/The Big Bang Theory Season 07\",\"vote_score\":80},{\"\
- upload_time\":\"2014-08-30 05:11:21\",\"subtype\":\"Subrip(srt)\",\"revision\"\
- :0,\"id\":261680,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"langchs\":true}},\"\
- videoname\":\"The.Big.Bang.Theory.S07.720p.BluRay.x264-DEMAND\",\"native_name\"\
- :\"\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\u5B63\\/\u5929\u624D\u7406\u8BBA\
- \u4F20\",\"vote_score\":0},{\"upload_time\":\"2013-10-19 03:34:04\",\"subtype\"\
- :\"Subrip(srt)\",\"revision\":0,\"id\":244659,\"lang\":{\"desc\":\"\u82F1\
- \ \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\":true,\"langcht\"\
- :true}},\"videoname\":\"The Big Bang Theory S07E05 the.big.bang.theory.705.hdtv-lol\"\
- ,\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\\/\u751F\u6D3B\u5927\u7206\
- \u70B8 \u7B2C\u4E03\u5B63\u7B2C\u4E94\u96C6\",\"vote_score\":0},{\"upload_time\"\
- :\"2013-10-18 23:33:24\",\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\"\
- :244640,\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\"\
- :{\"langcht\":true,\"langeng\":true,\"langdou\":true,\"langchs\":true}},\"\
- videoname\":\"\u751F\u6D3B\u5927\u7206\u70B8\\/The Big Bang Theory S07E05\\\
- /\u7B2C\u4E03\u5B63\u7B2C5\u96C6\\/\u5723\u57CE\u5BB6\u56ED\u53CC\u8BED\u5B57\
- \u5E55 the.big.bang.theory.705.hdtv-lol\",\"native_name\":\"\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-18 22:15:16\",\"subtype\":\"SSA\",\"revision\"\
- :0,\"id\":244632,\"lang\":{\"desc\":\"\u82F1 \u7B80\",\"langlist\":{\"langchs\"\
- :true,\"langeng\":true}},\"videoname\":\"The.Big.Bang.Theory.S07E05.720p.HDTV.X264-DIMENSION\"\
- ,\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\\/The Big Bang Theory S07E05\u751F\
- \u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\u5B63\u7B2C\u4E94\u96C6\u3010\u8C22\u8033\
- \u6735\u5B57\u5E55\u7EC4\u3011\",\"vote_score\":0},{\"upload_time\":\"2013-10-18\
- \ 21:31:21\",\"subtype\":\"\u5176\u4ED6\",\"revision\":0,\"id\":244630,\"\
- lang\":{\"desc\":\"\",\"langlist\":{}},\"videoname\":\"\u751F\u6D3B\u5927\u7206\
- \u70B8 \u7B2C7\u96C6\u7B2C5\u96C6 720P\",\"native_name\":\"\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-18 20:46:57\",\"subtype\":\"\u5176\u4ED6\"\
- ,\"revision\":0,\"id\":244624,\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41\"\
- ,\"langlist\":{\"langeng\":true,\"langchs\":true,\"langcht\":true}},\"videoname\"\
- :\"\u751F\u6D3B\u5927\u7206\u70B8\u7B2C\u4E03\u5B63\u7B2C5\u96C6\",\"native_name\"\
- :\"The Big Bang Theory S07E05\",\"vote_score\":0},{\"subtype\":\"Subrip(srt)\"\
- ,\"id\":585062,\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"\
- langlist\":{\"langcht\":true,\"langeng\":true,\"langdou\":true,\"langchs\"\
- :true}},\"vote_score\":0,\"upload_time\":\"2013-10-17 17:31:00\",\"native_name\"\
- :\"\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C7\u96C6\u7B2C5\u96C6\",\"videoname\"\
- :\"The Big Bang Theory S07E05\",\"release_site\":\"\u4EBA\u4EBA\u5F71\u89C6\
- YYeTs\",\"revision\":0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:41 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/detail?token=SECRET&id=%5B%27618200%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"result\":\"succeed\",\"subs\":[{\"id\":618200,\"\
- filelist\":[{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\/-\\\
- /1\\/The.Big.Bang.Theory.S07E01.The.Hofstadter.Insufficiency.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=dc994ecdf3a6a02a2651950fb52956d5&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E01.The.Hofstadter.Insufficiency.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"20KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/2\\/The.Big.Bang.Theory.S07E02.The.Deception.Verification.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=3d7591f8ce42e96aae82d6565f45847f&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E02.The.Deception.Verification.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"25KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/3\\/The.Big.Bang.Theory.S07E03.The.Scavenger.Vortex.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=b243d9b5ea70772b40af9e1399c3dce2&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E03.The.Scavenger.Vortex.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"25KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/4\\/The.Big.Bang.Theory.S07E04.The.Raiders.Minimization.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=0b6f5092475eeb0e24442658271cc8a7&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E04.The.Raiders.Minimization.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"24KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/5\\/The.Big.Bang.Theory.S07E05.The.Workplace.Proximity.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=f2aed4f15f4806f96780aafe2b2aed71&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E05.The.Workplace.Proximity.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"19KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/6\\/The.Big.Bang.Theory.S07E06.The.Romance.Resonance.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=8f6888f21277235187af784756188bd7&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E06.The.Romance.Resonance.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"24KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/7\\/The.Big.Bang.Theory.S07E07.The.Proton.Displacement.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=90d234aed204bdef9a3e2d699e1a3f11&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E07.The.Proton.Displacement.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"20KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/8\\/The.Big.Bang.Theory.S07E08.The.Itchy.Brain.Simulation.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=e65fd7846fcdf3fb1c12c4d81bae4600&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E08.The.Itchy.Brain.Simulation.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"20KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/9\\/The.Big.Bang.Theory.S07E09.The.Thanksgiving.Decoupling.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=56aa3deed2441fc3ba57501e44240739&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E09.The.Thanksgiving.Decoupling.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"21KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/10\\/The.Big.Bang.Theory.S07E10.The.Discovery.Dissipation.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=02740b8e5500328af67531babfba02ff&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E10.The.Discovery.Dissipation.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"24KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/11\\/The.Big.Bang.Theory.S07E11.The.Cooper.Extraction.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=4402626f09db033a2f1fd7cd9ac374d4&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E11.The.Cooper.Extraction.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"21KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/12\\/The.Big.Bang.Theory.S07E12.The.Hesitation.Ramification.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=24ebaf0165ab4b525419afb41aded7b6&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E12.The.Hesitation.Ramification.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"20KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/13\\/The.Big.Bang.Theory.S07E13.The.Occupation.Recalibration.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=44a96783c63e37c23504e203f3a963ee&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E13.The.Occupation.Recalibration.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"23KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/14\\/The.Big.Bang.Theory.S07E14.The.Convention.Conundrum.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=a581f9a7a58cd18fda8d29cbad3000b3&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E14.The.Convention.Conundrum.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"23KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/15\\/The.Big.Bang.Theory.S07E15.The.Locomotive.Manipulation.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=217c6ae8f48eba667d258b6448fe1022&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E15.The.Locomotive.Manipulation.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"22KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/16\\/The.Big.Bang.Theory.S07E16.The.Table.Polarization.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=ef0f11100e90ed343fe510418effaaf9&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E16.The.Table.Polarization.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"22KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/17\\/The.Big.Bang.Theory.S07E17.The.Friendship.Turbulence.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=63a6b5c214c15b380674315bc9a7a1ad&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E17.The.Friendship.Turbulence.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"21KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/18\\/The.Big.Bang.Theory.S07E18.The.Mommy.Observation.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.srt?_=1575098081&-=21b5bfa881f07f4a9dcb04189b7f2666&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E18.The.Mommy.Observation.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.srt\"\
- ,\"s\":\"22KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/19\\/The.Big.Bang.Theory.S07E19.The.Indecision.Amalgamation.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.srt?_=1575098081&-=0d3cf082feb58e0c92ffe27bdc396fca&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E19.The.Indecision.Amalgamation.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.srt\"\
- ,\"s\":\"21KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/20\\/The.Big.Bang.Theory.S07E20.The.Relationship.Diremption.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=79e8f4c5123eac1a33860e333a4056e8&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E20.The.Relationship.Diremption.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"22KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/21\\/The.Big.Bang.Theory.S07E21.The.Anything.Can.Happen.Recurrence.720p.WEB-DL.DD5.1.H.264.srt?_=1575098081&-=c8cf7d8354f11fe4ed919ed2428b9cb3&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E21.The.Anything.Can.Happen.Recurrence.720p.WEB-DL.DD5.1.H.264.srt\"\
- ,\"s\":\"19KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/22\\/The.Big.Bang.Theory.S07E22.The.Protron.Transmogrification.720p.WEB-DL.DD5.1.H.264.gb.srt?_=1575098081&-=874f8e01f5c910b365e1fa2dcb2633d3&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E22.The.Protron.Transmogrification.720p.WEB-DL.DD5.1.H.264.gb.srt\"\
- ,\"s\":\"22KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/23\\/The.Big.Bang.Theory.S07E23.The.Gorilla.Dissolution.720p.WEB-DL.DD5.1.H.264.gb.srt?_=1575098081&-=58925fc05efb7b49bf8caa65ec7e79a2&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E23.The.Gorilla.Dissolution.720p.WEB-DL.DD5.1.H.264.gb.srt\"\
- ,\"s\":\"23KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618200\\\
- /-\\/24\\/The.Big.Bang.Theory.S07E24.The.Status.Quo.Combustion.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.gb.srt?_=1575098081&-=796e260c7590e4a5eb6e2a866de47111&api=1\"\
- ,\"f\":\"The.Big.Bang.Theory.S07E24.The.Status.Quo.Combustion.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN.gb.srt\"\
- ,\"s\":\"26KB\"}],\"url\":\"http:\\/\\/file0.assrt.net\\/download\\/618200\\\
- /The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264.zip?_=1575098081&-=b56a01003b604bdd203ef305f3b49287&api=1\"\
- ,\"release_site\":\"\u4F0A\u7538\u56ED\",\"revision\":0,\"filename\":\"The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264.zip\"\
- ,\"subtype\":\"Subrip(srt)\",\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"\
- langchs\":true}},\"videoname\":\"The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\"\
- ,\"vote_score\":0,\"upload_time\":\"2018-01-26 19:23:52\",\"title\":\"\u5929\
- \u624D\u7406\u8BBA\u4F20\u7B2C7\u5B63\u516824\u96C6The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\"\
- ,\"view_count\":1020,\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\u7B2C\
- 7\u5B63\u516824\u96C6The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\",\"\
- producer\":{\"source\":\"\u539F\u521B\u7FFB\u8BD1\",\"verifier\":\"\",\"producer\"\
- :\"\",\"uploader\":\"\"},\"size\":247871,\"down_count\":309}],\"action\":\"\
- detail\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:41 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: http://file0.assrt.net/onthefly/618200/-/1/The.Big.Bang.Theory.S07E01.The.Hofstadter.Insufficiency.720p.WEB-DL.DD5.1.H.264.srt?api=%5B%271%27%5D&-=%5B%27dc994ecdf3a6a02a2651950fb52956d5%27%5D&_=%5B%271575098081%27%5D
- response:
- body:
- string: !!binary |
- MQ0KMDA6MDA6MTAsMDAwIC0tPiAwMDowMDoxMiw2MDANClNoZWxkb24gz9bU2rK7ysfBxMzstcS6
- w8qxuvIhDQoNCjINCjAwOjAwOjEyLDYwMCAtLT4gMDA6MDA6MTQsMDcwDQrE48/ruMnC8D8NCg0K
- Mw0KMDA6MDA6MTQsMDcwIC0tPiAwMDowMDoyMCwwNzANCsTjusPRvSCxp8e4ILWr1eLKwrrc1tjS
- qg0KDQo0DQowMDowMDoyMCwwNzAgLS0+IDAwOjAwOjIxLDcxMA0KybbKwj8NCg0KNQ0KMDA6MDA6
- MjEsNzEwIC0tPiAwMDowMDoyNiwxODANCiK72LW9zrTAtCK12rb+sr+1xLX6xqwNCtewtb212sj9
- sr+1xLrQ19PA78HLDQoNCjYNCjAwOjAwOjI2LDE4MCAtLT4gMDA6MDA6MzEsODIwDQq2+CK72LW9
- zrTAtCK12sj9sr+1xLX6xqwNCsXcvfjBy7Xatv6yv7XEutDX08DvDQoNCjcNCjAwOjAwOjMyLDI2
- MCAtLT4gMDA6MDA6MzMsNzkwDQrL+dLUxNg/DQoNCjgNCjAwOjAwOjMzLDgwMCAtLT4gMDA6MDA6
- MzgsOTMwDQrL+dLUINXiysfE47jJtcQNCru5ysfLtbzSwO/T0LHwyMu9+MC0wcs/DQoNCjkNCjAw
- OjAwOjM5LDkwMCAtLT4gMDA6MDA6NDIsMDIwDQpTaGVsZG9uIM7StcO9+LLVwcsNCg0KMTANCjAw
- OjAwOjQyLDAyMCAtLT4gMDA6MDA6NDQsODUwDQrN4sPmt+fAy9S9wLTUvbTzwcsNCg0KMTENCjAw
- OjAwOjQ2LDAyMCAtLT4gMDA6MDA6NDgsOTQwDQrE49Tau9ix3M7KzOINCs7Svs3WqrXAysfE47jJ
- tcQNCg0KMTINCjAwOjAwOjUyLDUzMCAtLT4gMDA6MDA6NTMsODgwDQrKssO0yfnS9D8NCg0KMTMN
- CjAwOjAwOjUzLDg4MCAtLT4gMDA6MDA6NTUsNDAwDQrKssO0yrLDtMn50vQ/DQoNCjE0DQowMDow
- MDo1NSw0MDAgLS0+IDAwOjAwOjU2LDgyMA0K0MW6xcrHsrvMq7rDDQoNCjE1DQowMDowMDo1Niw4
- MjAgLS0+IDAwOjAwOjU5LDk1MA0KtavM/cbwwLTP8crHDQrT0MjLsNG6o7nWuPi3xbP2wLTByw0K
- DQoxNg0KMDA6MDA6NTYsODIwIC0tPiAwMDowMDo1OSw5NTENCntcYTd9KLP219Qi1u7J8dau1b0i
- KQ0KDQoxNw0KMDA6MDE6MDAsNzQwIC0tPiAwMDowMTowNCw5NjANCrrDwcsgztK50rXnu7DByw0K
- DQoxOA0KMDA6MDE6MDQsOTYwIC0tPiAwMDowMTowNiw2NjANCsTj1qq1wMTHtqvO97j5sb6yuy4u
- Lg0KDQoxOQ0KMDA6MDE6MDksNDEwIC0tPiAwMDowMToxMiwyMjANCrK7IQ0KDQoyMA0KMDA6MDE6
- MTIsMjIwIC0tPiAwMDowMToxNiw3NTANClBlbm55IFBlbm55IFBlbm55IQ0KDQoyMQ0KMDA6MDE6
- MTYsNzUwIC0tPiAwMDowMToxOSwxNzANCtT1w7TByz8NCg0KMjINCjAwOjAxOjE5LDE3MCAtLT4g
- MDA6MDE6MjQsNzEwDQq27i4uLsTHuPYuLi7O0rWj0MQNCsTju+HS8s6qz+vE7kxlb25hcmQNCg0K
- MjMNCjAwOjAxOjI1LDc2MCAtLT4gMDA6MDE6MjgsNDgwDQq2+Nf22KzDzg0KDQoyNA0KMDA6MDE6
- MjgsNDgwIC0tPiAwMDowMTozMyw5OTANCrHIyOfKx8Tjyc+0ssewv7S1xA0KItbuyfHWrtW9IsDv
- tcTH6b3aDQoNCjI1DQowMDowMTozNCw3NDAgLS0+IDAwOjAxOjM3LDY2MA0Kx9ewrrXEIMTj1/bY
- rMPOwcs/DQoNCjI2DQowMDowMTozOCw1MzAgLS0+IDAwOjAxOjQwLDExMA0Ky7XKtbuwIMO7tO0N
- Cg0KMjcNCjAwOjAxOjQxLDA2MCAtLT4gMDA6MDE6NDUsNDEwDQoiu9i1vc60wLQitdq2/rK/tcS1
- +sasDQqxu7fFvfi12sj9sr+1xLrQ19PA78HLDQoNCjI4DQowMDowMTo0NSw0MjAgLS0+IDAwOjAx
- OjQ3LDUzMA0KysdMZW9uYXJkuMm1xA0KDQoyOQ0KMDA6MDE6NDcsNTQwIC0tPiAwMDowMTo0OCw1
- MDANCs3tsLINCg0KMzANCjAwOjAxOjQ4LDUwMCAtLT4gMDA6MDE6NDksOTkwDQqx8CC1yLXIDQoN
- CjMxDQowMDowMTo0OSw5OTAgLS0+IDAwOjAxOjU1LDYxMA0K0rLQ7c7S06a4w8uvxOPV4rb5DQrV
- 4tH5xOO+zbK7u+HMq8/rxO5MZW9uYXJkwcsNCg0KMzINCjAwOjAxOjU1LDYxMCAtLT4gMDA6MDE6
- NTgsODQwDQrE49aqtcDE49Ta1eK3vcPmzabQocWuyfq1xA0KDQozMw0KMDA6MDI6MDMsMzAwIC0t
- PiAwMDowMjowNSw4MDANCtXi0fnIt8q1xNzIw87SusPK3NCpDQoNCjM0DQowMDowMjowNSw4MDAg
- LS0+IDAwOjAyOjA3LDY5MA0KLSDQu9C7DQotILK7v83G+A0KDQozNQ0KMDA6MDI6MTEsNjYwIC0t
- PiAwMDowMjoxMyw4MTANCs3tsLINCg0KMzYNCjAwOjAyOjE1LDQ0MCAtLT4gMDA6MDI6MjEsMDMw
- DQo8Zm9udCBjb2xvcj0iI2ZmZmYwMCI+LT3SwbXp1LDDwL7nICBodHRwOi8vYmJzLnNmaWxlMjAx
- Mi5jb209LQ0KLT3SwbXp1LDX1sS71b4gIGh0dHA6Ly95dGV0Lm9yZy89LQ0KyNnT/rP2xrcNCrG+
- 19bEu732uanRp8+wvbvB96Os0c+9+9PD09rJzNK1zb6+tjwvZm9udD4NCg0KMzcNCjAwOjAyOjIx
- LDEzMCAtLT4gMDA6MDI6MzEsNjYwDQo8Zm9udCBjb2xvcj0iI2ZmZmYwMCI+LT1ZVEVULdLBtenU
- sNfWxLvX6T0tDQq3rdLrOiBELlm7xtChzcMgSG9sbGllIKH01tKpptiRqaafrSBlbGVxdWVudA0K
- 0KO21DogsKK5qw0KyrG85NbhOiCw7rXC1u0gPC9mb250Pg0KDQozOA0KMDA6MDI6MzMsMTYwIC0t
- PiAwMDowMjozNSw1NTANCjxmb250IGNvbG9yPSIjZmZmZjAwIj7M7LLFwO3C27SrILXaxt+8viC1
- 2tK7vK8NCjcyMFAgaVR1bmVzIC0g19TAtPfcYWs8L2ZvbnQ+DQoNCjM5DQowMDowMjo0MSwyODAg
- LS0+IDAwOjAyOjQ0LDU4MA0KztK+9bXDxOPM/bW91eK49rvhuN/Qy7XEDQq98dTn1NrNo7O1s6EN
- Cg0KNDANCjAwOjAyOjQ0LDU4MCAtLT4gMDA6MDI6NDksNjAwDQrO0r+018W12MnPtcTTzdfVDQrQ
- zte0vs3P8c7StcTHsMWu09FMdWN5DQoNCjQxDQowMDowMjo0OSw2MDAgLS0+IDAwOjAyOjUxLDY5
- MA0KtvjO0s3qyKvDu9PQsa/Jy9O/yc/QxM23tcS40L71DQoNCjQyDQowMDowMjo1MSw2OTAgLS0+
- IDAwOjAyOjUzLDM0MA0KztLOqsTjuNC1vb2+sMENCg0KNDMNCjAwOjAyOjUzLDM0MCAtLT4gMDA6
- MDI6NTcsMTMwDQq1sci7wLIg0vLOqsv9vs3Su8PAyMvF39fTDQoNCjQ0DQowMDowMjo1NywxMzAg
- LS0+IDAwOjAzOjAwLDQ2MA0KzOzExSEgxOPKx7j2zOzOxNGnvNINCg0KNDUNCjAwOjAzOjAwLDQ3
- MCAtLT4gMDA6MDM6MDQsNjcwDQrSstDtxOO74dPQ0KmzvsrAtcTHo7DtDQq1q8Tj06a4w7DR0MTL
- vLfFtb3M7Mzl0dC+v8nPyKUNCg0KNDYNCjAwOjAzOjA0LDY3MCAtLT4gMDA6MDM6MDksMjkwDQrJ
- 8bChIL7NwayxsM6itcTKur/HwMkNCra8u+HA+9PDzOzM5bnmwsnAtNbGtqjQ0L34wrfP3w0KDQo0
- Nw0KMDA6MDM6MDksMjkwIC0tPiAwMDowMzoxMCw0NjANCtXmtcQ/DQoNCjQ4DQowMDowMzoxMCw0
- NjAgLS0+IDAwOjAzOjEzLDI2MA0KztLL+dHUvLTKx9XmwO0NCg0KNDkNCjAwOjAzOjEzLDI2MCAt
- LT4gMDA6MDM6MTcsNjEwDQq1sci7wLIgyrq/x8DJ0rLPsru2s9S34LHjDQrXodTat+Cx48DvDQoN
- CjUwDQowMDowMzoxNyw2MjAgLS0+IDAwOjAzOjE5LDkzMA0KsNG34LHjufazydChx/LH8g0KDQo1
- MQ0KMDA6MDM6MTksOTMwIC0tPiAwMDowMzoyNSw2MjANCsv50tTV4sG91tbJ+rvut73KvQ0KxOPX
- 1Ly60aHSu9bWsMkNCg0KNTINCjAwOjAzOjI2LDQ0MCAtLT4gMDA6MDM6MjgsMTIwDQqw3c3QIMTj
- z9bU2sTcuPrFrsn6vbvMuMHLDQoNCjUzDQowMDowMzoyOCwxMzAgLS0+IDAwOjAzOjMwLDI4MA0K
- srvE0dTZ1dK49tDCxa7T0bXEDQoNCjU0DQowMDowMzozMCwyODAgLS0+IDAwOjAzOjM0LDE4MA0K
- ztLP1tTav7TJtra8s6TBy9XFTHVjecGzDQrV4tH5ztLU9cO01dLQwsWu09GwoT8NCg0KNTUNCjAw
- OjAzOjM0LDE4MCAtLT4gMDA6MDM6MzksMjkwDQrE0bXAxOPDu9Ta1eLFzLymyOLFycnPDQq/tLW9
- y/21xM6i0KbC8D8NCg0KNTYNCjAwOjAzOjM5LDI5MCAtLT4gMDA6MDM6NDEsMTQwDQrE48TcsrvE
- 3M/7zaO147ChIQ0KDQo1Nw0KMDA6MDM6NDUsNDYwIC0tPiAwMDowMzo0Niw3MTANCs/W1NogzP3O
- 0su1DQoNCjU4DQowMDowMzo0Niw3MTAgLS0+IDAwOjAzOjQ5LDA1MA0KvfHN7dPQuPbQwr36sqnK
- v7rzu7bTrcXJttQNCg0KNTkNCjAwOjAzOjQ5LDA1MCAtLT4gMDA6MDM6NTMsOTAwDQrIpbLOvNMg
- yLu689XSuPbIy8Dg1/bFrtPRDQoNCjYwDQowMDowMzo1Myw5MDAgLS0+IDAwOjAzOjU3LDI0MA0K
- xOPAz8bFyse49sjLwODBy7K7xvCwoT8NCg0KNjENCjAwOjAzOjU5LDY0MCAtLT4gMDA6MDQ6MDMs
- MzEwDQrM/dfFIEJlcm5pZbj6QW15DQrIpbLOvNPJ8b6tv8bRp7vh0unByw0KDQo2Mg0KMDA6MDQ6
- MDMsMzEwIC0tPiAwMDowNDowNCw2OTANCs7SuPrE49K7xvDIpcXJttQNCg0KNjMNCjAwOjA0OjA0
- LDcwMCAtLT4gMDA6MDQ6MDUsODUwDQotIMTj1LjS4sXjztI/DQotILWxyLsNCg0KNjQNCjAwOjA0
- OjA1LDg1MCAtLT4gMDA6MDQ6MDcsMDgwDQrE48rHztLF89PRDQoNCjY1DQowMDowNDowNywwODAg
- LS0+IDAwOjA0OjA4LDQ1MA0KztLPo837xOO/qtDEDQoNCjY2DQowMDowNDowOCw0NTAgLS0+IDAw
- OjA0OjEwLDMzMA0K0LvQuyDEx8O0IFNoZWxkb24NCg0KNjcNCjAwOjA0OjEwLDM0MCAtLT4gMDA6
- MDQ6MTEsODcwDQq8yMi7QW150rLIpb+qu+HByw0KxOPUuNLi0rvG8MC0wvA/DQoNCjY4DQowMDow
- NDoxMSw4NzAgLS0+IDAwOjA0OjE3LDg3MA0KztLSss+jzfvE47+q0MQNCrWr1eKyu9fj0tS02cq5
- ztLOqrTL1/bIzrrOysINCg0KNjkNCjAwOjA0OjIwLDU4MCAtLT4gMDA6MDQ6MjYsMTMwDQpIb3dp
- ZSCx8NXi0fkg1eLDtMjiwum1xLuwDQrO0r2ysruz9r/aIEFtedTaxdSx38TYDQoNCjcwDQowMDow
- NDoyNiwxMzAgLS0+IDAwOjA0OjMxLDUyMA0KU2hlbGRvbiCx8NXi0fkgztLU2cu11+6689K7sekN
- Cs7Ssru74bDRtLLKrbT4u9jIpbXEDQoNCjcxDQowMDowNDozMSw1MjAgLS0+IDAwOjA0OjMyLDY3
- MA0K1eLCw7ndutyw9A0KDQo3Mg0KMDA6MDQ6MzIsNjcwIC0tPiAwMDowNDozNCwzOTANCtPQ076z
- 2CDT0L2hye23vw0KDQo3Mw0KMDA6MDQ6MzQsMzkwIC0tPiAwMDowNDozNiwwMTANCr7GsMnSsrrc
- sru07Q0KDQo3NA0KMDA6MDQ6MzYsMDEwIC0tPiAwMDowNDozOSw5MDANCtLyzqrO0r+0wcu0ssbM
- DQrEx8nPw+bDu9PQtLLKrQ0KDQo3NQ0KMDA6MDQ6MzksOTAwIC0tPiAwMDowNDo0MSwyMDANCs7S
- 0rKwrsTjDQoNCjc2DQowMDowNDo0MSwyMDAgLS0+IDAwOjA0OjQ1LDQ4MA0KyOe5+8Tjy6/Xxcew
- IMO709DM/bW9ztK1xMn50vQNCsTHztK74dPrxOPU2sPOwO/P4LvhtcQNCg0KNzcNCjAwOjA0OjQ1
- LDQ5MCAtLT4gMDA6MDQ6NDYsNzQwDQrN7bCyDQoNCjc4DQowMDowNDo0Niw3NDAgLS0+IDAwOjA0
- OjUwLDA0MA0KsrsgztKyu7vhv7zCx8uv1NrCw9DQtPzA77XEDQoNCjc5DQowMDowNDo1MywzOTAg
- LS0+IDAwOjA0OjU3LDE2MA0KUGVubnkgxOPT0MO709DP67n9DQrQx7zKvaK207bTs6TKx8jnus4u
- Li4NCg0KODANCjAwOjA0OjU3LDE3MCAtLT4gMDA6MDQ6NTksMzUwDQrDu9PQDQoNCjgxDQowMDow
- NTowMSwxNzAgLS0+IDAwOjA1OjAzLDM5MA0KxMfP1tTaztK8pMbwxOO1xNDLyKTByw0KDQo4Mg0K
- MDA6MDU6MDMsMzkwIC0tPiAwMDowNTowNiwzNDANCru2063AtLW9M0S5+rzKz/PG5bXEyfHG5srA
- vecNCg0KODMNCjAwOjA1OjA2LDM0MCAtLT4gMDA6MDU6MDksNDgwDQrE47jJwvCyu7jJtOC147PQ
- yM/Byw0KxOPP683m1eLTzs+31rvKx9LyzqouLi4NCg0KODQNCjAwOjA1OjA5LDQ4MCAtLT4gMDA6
- MDU6MTIsMDEwDQrE49fcuPpMZW9uYXJk0rvG8M3mDQq2+MTjz9bU2rrcz+vL+z8NCg0KODUNCjAw
- OjA1OjEyLDAxMCAtLT4gMDA6MDU6MTUsNTYwDQrE48yruN+5wMv71NrO0sn6w/zW0LXE1tjSqtDU
- wcsNCg0KODYNCjAwOjA1OjE2LDgyMCAtLT4gMDA6MDU6MjEsMjIwDQrO0rvhz+vE7sv7ysfI57rO
- DQrU2s7StcS7qrfysf3Jz9PDufu9tLut0KbBs7XEwvA/DQoNCjg3DQowMDowNToyMSwyMjAgLS0+
- IDAwOjA1OjIyLDgxMA0KssWyu7vhxNgNCg0KODgNCjAwOjA1OjIyLDgxMCAtLT4gMDA6MDU6Mjgs
- MDMwDQrO0rvhz+vE7sv7ysfI57rO0N66ww0KztKxu7+o16G1xLzQv8vArcG0tcTC8D8NCg0KODkN
- CjAwOjA1OjI4LDAzMCAtLT4gMDA6MDU6MzAsMTEwDQrO0r/JsrvV4sO0vvW1ww0KDQo5MA0KMDA6
- MDU6MzAsMTEwIC0tPiAwMDowNTozNSw5OTANCs7Su+HP68TuztLDx8rHyOe6zg0K08PEpsu5tefC
- 69TaztTK0se9yc/Hw7P2Is3tsLIitcTC8D8NCg0KOTENCjAwOjA1OjQwLDg0MCAtLT4gMDA6MDU6
- NDIsMjYwDQrO0rauwcsgztK2rsHLDQoNCjkyDQowMDowNTo0MiwyNjAgLS0+IDAwOjA1OjQ0LDEz
- MA0KxOO+zcrHuPbDu7jQx+m1xLv6xvfIyw0KDQo5Mw0KMDA6MDU6NDQsMTMwIC0tPiAwMDowNTo0
- Niw1MzANCs7SvqHBpsHLDQoNCjk0DQowMDowNTo0Niw1MzAgLS0+IDAwOjA1OjQ5LDE3MA0Kv+y/
- qsq81eLJtdPOz7ewyQ0KDQo5NQ0KMDA6MDU6NDksMTcwIC0tPiAwMDowNTo1MCw0MDANCsyrusPB
- yyDO0s/IwLQNCg0KOTYNCjAwOjA1OjUwLDQwMCAtLT4gMDA6MDU6NTIsNTUwDQq21MHLIMTju+HQ
- 3sCtwbTC8D8NCg0KOTcNCjAwOjA1OjUyLDU1MCAtLT4gMDA6MDU6NTMsMjQwDQrU9cO0Pw0KDQo5
- OA0KMDA6MDU6NTMsMjcwIC0tPiAwMDowNTo1Nyw2MTANCs7SsdjQ68il0rvMy8+0yta85A0K1eLA
- rcG0v8nE0cCtwcsNCg0KOTkNCjAwOjA2OjAwLDIzMCAtLT4gMDA6MDY6MDQsNjMwDQrE47bUy67E
- uMnxvq3N+MLntcTR0L6/zabT0MiktcQNCg0KMTAwDQowMDowNjowNCw2MzAgLS0+IDAwOjA2OjA1
- LDgyMA0Kw7u07Q0KDQoxMDENCjAwOjA2OjA1LDgyMCAtLT4gMDA6MDY6MDgsNjIwDQrE47/J0tTI
- pdGn0KPN+NW+z8LU2M7StcTC287EDQoNCjEwMg0KMDA6MDY6MDgsNjIwIC0tPiAwMDowNjoxMyw2
- NjANCrrDtcQgxOPSsr/J0tTIpc/C1NgNCs7SudjT2re2sKzC17f4yeS0+NHQvr+1xMLbzsQNCg0K
- MTAzDQowMDowNjoxMyw2NjAgLS0+IDAwOjA2OjE1LDQxMA0KusO1xA0KDQoxMDQNCjAwOjA2OjE2
- LDQxMCAtLT4gMDA6MDY6MTgsNTgwDQq6w7DJDQoNCjEwNQ0KMDA6MDY6MzIsNzQwIC0tPiAwMDow
- NjozNCwzMTANCtT1w7TR+T8NCg0KMTA2DQowMDowNjozNCwzMTAgLS0+IDAwOjA2OjQwLDQ4MA0K
- yOe5+8Tjz7K7tt7P3s7H0s20v+C12LjJwcQNCsTHvs3L47Osy7PA+w0KDQoxMDcNCjAwOjA2OjQx
- LDMwMCAtLT4gMDA6MDY6NDIsNzUwDQq/7L+0DQoNCjEwOA0KMDA6MDY6NDIsNzUwIC0tPiAwMDow
- Njo0NCw4MjANCsjLysKyv7XERGF2aXPQob3jDQoNCjEwOQ0KMDA6MDY6NDQsODIwIC0tPiAwMDow
- Njo0Nyw0NzANCsv9usPP8dTavOC2vdDUyafIxQ0KDQoxMTANCjAwOjA2OjQ3LDQ4MCAtLT4gMDA6
- MDY6NDgsNzIwDQrMq7rDwcsNCg0KMTExDQowMDowNjo0OCw3MzAgLS0+IDAwOjA2OjUxLDY0MA0K
- ztLU4tP20NTJp8jFtcS7+rvhw7vByw0KDQoxMTINCjAwOjA2OjUxLDY1MCAtLT4gMDA6MDY6NTYs
- NDIwDQrM/cu1y/3Az7mrxdfG+sv9DQrV0sHLuPbE6sfhxq/BwbXEtPPRp8n6DQoNCjExMw0KMDA6
- MDY6NTYsNDIwIC0tPiAwMDowNjo1OSwyMDANCtfcscjV0rj209bAz9PWs/O1xNKqusOwyQ0KDQox
- MTQNCjAwOjA3OjAzLDk0MCAtLT4gMDA6MDc6MDYsNDMwDQpXb2xvd2l0es/IyfogS29vdGhyYXBw
- YWxpsqnKvw0KDQoxMTUNCjAwOjA3OjA2LDQzMCAtLT4gMDA6MDc6MDcsODQwDQpEYXZpc8Wuyr8g
- xOO6ww0KDQoxMTYNCjAwOjA3OjA3LDg1MCAtLT4gMDA6MDc6MTQsMjAwDQrO0tfuvfy/tMHLxqrT
- 0LnYxvO27LK71tK1xM7E1cINCg0KMTE3DQowMDowNzoxNCwyMDAgLS0+IDAwOjA3OjE2LDgwMA0K
- usO1xA0KDQoxMTgNCjAwOjA3OjE2LDgwMCAtLT4gMDA6MDc6MjEsMzQwDQrI57n7xOPS8s6q1cm3
- 8rXExdfG+rb4xNG5/Q0KxOPWu9KqvMfXoS4uLg0KDQoxMTkNCjAwOjA3OjIxLDM0MCAtLT4gMDA6
- MDc6MjQsMzgwDQrG87bs0rK74bP2uewgsru5/cv7w8e63L/JsK7E2A0KDQoxMjANCjAwOjA3OjM3
- LDI0MCAtLT4gMDA6MDc6MzksOTYwDQqxyMTjsrvE3Lj6xa7Iy72yu7C1xMqxuvK6w7bgwcsNCg0K
- MTIxDQowMDowNzo0MiwxMzAgLS0+IDAwOjA3OjQ4LDQ3MA0KztK7ude8sbjIpcz9uvO/27T4u9jG
- pLLjy/DJyw0K0v3G8NfUtKvM5bzH0uS1xNHdvbINCg0KMTIyDQowMDowNzo0OCw0NzAgLS0+IDAw
- OjA3OjUwLDQyMA0KxNTL8MnLyse63M780v3Iy7XEDQoNCjEyMw0KMDA6MDc6NTAsNDIwIC0tPiAw
- MDowNzo1Myw1MTANCsjnufvKx8Tj19S8usvwycsNCsTHvs2yu8780v3Iy8HLDQoNCjEyNA0KMDA6
- MDc6NTMsNTEwIC0tPiAwMDowNzo1NiwwNDANCr60v8bRp7XEvfiyvQ0KDQoxMjUNCjAwOjA3OjU2
- LDA0MCAtLT4gMDA6MDc6NTksMTQwDQq+tMq5v8bRp734sr21xLyysqG6zcvAzfYNCg0KMTI2DQow
- MDowODowMSwyNjAgLS0+IDAwOjA4OjA0LDQzMA0K09DS4su8tcTKxw0KztLDx7u5tNPDu7rNUGVu
- bnnM1sLbuf3V4tCpDQoNCjEyNw0KMDA6MDg6MDQsNDQwIC0tPiAwMDowODowNiwxOTANCtK7sOO2
- vMrHwcTXxcHE18W+zcHEtb3E0MjLwcsNCg0KMTI4DQowMDowODowNiwxOTAgLS0+IDAwOjA4OjEw
- LDM5MA0Ksru5/crKtbG808jr0afK9bbUu7DNprrDtcQNCg0KMTI5DQowMDowODoxMCwzOTAgLS0+
- IDAwOjA4OjEzLDAxMA0KsMnMqMG9zrvE0Mq/x+u1xA0KDQoxMzANCjAwOjA4OjEzLDAxMCAtLT4g
- MDA6MDg6MTQsNjEwDQrM7MTEINPQxNDIy8frztLDx7/NIQ0KDQoxMzENCjAwOjA4OjE0LDYxMCAt
- LT4gMDA6MDg6MTcsMjgwDQrT0MTQyMvH67/NIQ0KDQoxMzINCjAwOjA4OjE3LDI4MCAtLT4gMDA6
- MDg6MTksMTUwDQrQu9C7INC70LsgzKu40NC7wcsNCg0KMTMzDQowMDowODoyMCw1MzAgLS0+IDAw
- OjA4OjIyLDI1MA0KLSC1rbaoteMNCi0g1PXDtLWttqi1w8bwwLQhDQoNCjEzNA0KMDA6MDg6MjIs
- MjUwIC0tPiAwMDowODoyNSwzNDANCtPQxNDIy73TvfzO0sPHILu5srvKx9LyzqpQZW5ueQ0KDQox
- MzUNCjAwOjA4OjI2LDMyMCAtLT4gMDA6MDg6MjgsMDkwDQrKx7ChDQoNCjEzNg0KMDA6MDg6Mjgs
- MDkwIC0tPiAwMDowODoyOSw1NDANCtC70LvAsg0KDQoxMzcNCjAwOjA4OjM0LDEzMCAtLT4gMDA6
- MDg6MzYsMzMwDQrg3iEgs/TG5dK7sr0NCg0KMTM4DQowMDowODozNiwzMzAgLS0+IDAwOjA4OjM4
- LDUwMA0KsKE/IM6qyrLDtD8NCg0KMTM5DQowMDowODozOCw1MDAgLS0+IDAwOjA4OjQxLDcyMA0K
- ztK1xLvKuvPP1tTaxNy008/Cw+YNCrPUtfTE47XEs7XByw0KDQoxNDANCjAwOjA4OjQxLDcyMCAt
- LT4gMDA6MDg6NDMsODEwDQrS4su8ysfO0srkwcs/DQoNCjE0MQ0KMDA6MDg6NDMsODEwIC0tPiAw
- MDowODo0NSw0NDANCr3hyvjByyENCg0KMTQyDQowMDowODo0NSw0NDAgLS0+IDAwOjA4OjQ4LDg0
- MA0KyOe5+87S19/V4tK7sr0uLi4NCg0KMTQzDQowMDowODo0OCw4NTAgLS0+IDAwOjA4OjUyLDM2
- MA0KxMe+zbK7u+HV4sO0usPN5sHLDQrL+dLUztKyu7vh19+1xA0KDQoxNDQNCjAwOjA4OjUzLDE3
- MCAtLT4gMDA6MDg6NTYsMDQwDQrQ3c+i0rvPwrDJDQoNCjE0NQ0KMDA6MDg6NTYsMDQwIC0tPiAw
- MDowODo1OCw5NTANCs7Sw8fDu77GwcsNCg0KMTQ2DQowMDowODo1OCw5NjAgLS0+IDAwOjA5OjAw
- LDU5MA0KztLT1rK7ysfSqsilusi+xg0KDQoxNDcNCjAwOjA5OjA3LDA4MCAtLT4gMDA6MDk6MDgs
- ODMwDQq6w8/r1qq1wExlb25hcmTU2rjJwvANCg0KMTQ4DQowMDowOTowOCw4MzAgLS0+IDAwOjA5
- OjExLDEzMA0KusPP68v7DQoNCjE0OQ0KMDA6MDk6MTEsMTQwIC0tPiAwMDowOToxNCwxNzANCs7S
- w8e08rXnu7C4+Mv7sMkNCg0KMTUwDQowMDowOToxNCwxNzAgLS0+IDAwOjA5OjE2LDM3MA0KztIg
- ztLKx8u1IMTjtPK157uwuPjL+7DJDQoNCjE1MQ0KMDA6MDk6MTYsMzcwIC0tPiAwMDowOToxOSw4
- MTANCs7S1q7HsMu1uf0NCsXz09Gyu9TasqKyu8TcyrnO0snL0MQNCg0KMTUyDQowMDowOToxOSw4
- MTAgLS0+IDAwOjA5OjI1LDQwMA0K0qG59snZxOpQYXVsIFNpbW9u1PjLtQ0KIs7S1rvKx7/pyq/N
- tyDSu8astbottbottbrT7CINCg0KMTUzDQowMDowOToyNiw1NzAgLS0+IDAwOjA5OjI4LDM3MA0K
- ztLAtLTyDQoNCjE1NA0KMDA6MDk6MjgsMzcwIC0tPiAwMDowOTozMCwyNDANCrrDsKEhIL+qw+LM
- 4SENCg0KMTU1DQowMDowOTozOCw2NjAgLS0+IDAwOjA5OjQxLDYxMA0Ksru6w9Liy7wgztK1xL/j
- 19PV8LavwLINCg0KMTU2DQowMDowOTo0NCwwMDAgLS0+IDAwOjA5OjQ2LDQ5MA0KsbG6oyDT0Mnx
- wu0iyqoiwvA/DQoNCjE1Nw0KMDA6MDk6NDgsNTcwIC0tPiAwMDowOTo0OSw1NDANCkxlb25hcmQ/
- DQoNCjE1OA0KMDA6MDk6NDksNTQwIC0tPiAwMDowOTo1MCw2NzANClBlbm55Pw0KDQoxNTkNCjAw
- OjA5OjUwLDY4MCAtLT4gMDA6MDk6NTEsNzkwDQq62SDKx1Blbm55DQoNCjE2MA0KMDA6MDk6NTEs
- NzkwIC0tPiAwMDowOTo1Miw5OTANCrTzvNLSu8bwwLS4+lBlbm55tPLV0Lr0DQoNCjE2MQ0KMDA6
- MDk6NTIsOTkwIC0tPiAwMDowOTo1NCw2ODANCuDLIFBlbm55IQ0KDQoxNjINCjAwOjA5OjU0LDY4
- MCAtLT4gMDA6MDk6NTgsNDAwDQrN2yC/tMC0xOPN5rXDzaa/qtDEtcTC7w0KDQoxNjMNCjAwOjA5
- OjU4LDQwMCAtLT4gMDA6MTA6MDEsMjgwDQrIy8n61+6/qtDEtcTKsbniIQ0KDQoxNjQNCjAwOjEw
- OjAyLDg5MCAtLT4gMDA6MTA6MDYsMDQwDQrEx8DvsrvKx7LF1OfJzzU6MzDC8D8NCg0KMTY1DQow
- MDoxMDowNiwwNDAgLS0+IDAwOjEwOjA3LDE3MA0KysfC8D8NCg0KMTY2DQowMDoxMDowNywxNzAg
- LS0+IDAwOjEwOjA5LDg5MA0KutkgtPO77yDP1tTaysfU58nPNTozMCENCg0KMTY3DQowMDoxMDox
- Myw0NTAgLS0+IDAwOjEwOjE2LDg1MA0KusOwySDO0sPHtPK157uwysfS8s6qz+vE48HLDQoNCjE2
- OA0KMDA6MTA6MTYsODUwIC0tPiAwMDoxMDoxOCwwNzANCrH5yb0hDQoNCjE2OQ0KMDA6MTA6MTgs
- MDcwIC0tPiAwMDoxMDoxOSwxNTANCrXIu+G2+Q0KDQoxNzANCjAwOjEwOjE5LDE1MCAtLT4gMDA6
- MTA6MjAsNzkwDQrE49PQzqPP1cHLwvA/DQoNCjE3MQ0KMDA6MTA6MjAsNzkwIC0tPiAwMDoxMDoy
- MiwzMjANCrK7yscg1eLKx7j2s6nS+9POz7cNCg0KMTcyDQowMDoxMDoyMiwzMjAgLS0+IDAwOjEw
- OjI0LDM2MA0K1rvSqsz9tb0isfnJvSLBvbj219YNCr7NvtmxrbOp0vshDQoNCjE3Mw0KMDA6MTA6
- MjQsMzYwIC0tPiAwMDoxMDoyNiw0MTANCrH5yb0hILH5yb0hDQoNCjE3NA0KMDA6MTA6MjYsNDEw
- IC0tPiAwMDoxMDoyOCw4MzANCrH5yb0hILH5yb0hILH5yb0hILH5yb0hDQoNCjE3NQ0KMDA6MTA6
- MjksNTUwIC0tPiAwMDoxMDozMCw4MzANCkxlb25hcmQgTGVvbmFyZD8NCg0KMTc2DQowMDoxMDoz
- Myw5NzAgLS0+IDAwOjEwOjM2LDY3MA0KztLDx765yLu74c/rxMe49rvstbANCg0KMTc3DQowMDox
- MDozNiw2NzAgLS0+IDAwOjEwOjM5LDQ5MA0KysfE48/rDQoNCjE3OA0KMDA6MTA6NDMsODUwIC0t
- PiAwMDoxMDo0NSw3MzANCtT1w7TR+cHLPw0KDQoxNzkNCjAwOjEwOjQ1LDczMCAtLT4gMDA6MTA6
- NDksMDcwDQrDu8rCIM7S09bQu7n9y/vDxw0KuObL38v7w8cgztLDx8P7u6jT0Nb3wcsNCg0KMTgw
- DQowMDoxMDo0OSwwNzAgLS0+IDAwOjEwOjUzLDE2MA0K1eLDtMu1IM7SsrvTw7PUv/e+zb/J0tS6
- yL7GwLINCg0KMTgxDQowMDoxMDo1MywxNjAgLS0+IDAwOjEwOjU0LDI3MA0Kyse1xCDMq7/hwcsN
- Cg0KMTgyDQowMDoxMDo1NCwyODAgLS0+IDAwOjEwOjU4LDQ5MA0K0qrKx8Tjz+u6zcv7w8fG5NbQ
- 0ru49sy4zLgNCsO7yMu74bnWxOO1xA0KDQoxODMNCjAwOjEwOjU4LDUwMCAtLT4gMDA6MTE6MDEs
- MjgwDQrOqsm2w7vIy7vhudbO0g0KDQoxODQNCjAwOjExOjAyLDEyMCAtLT4gMDA6MTE6MDUsNTcw
- DQrO0tTauvrR1MLS0+/E2A0KDQoxODUNCjAwOjExOjA1LDU3MCAtLT4gMDA6MTE6MDksODQwDQrM
- /cbwwLTE49Liy7zKxw0KztLE3NXStb2xyFNoZWxkb264/LrDtcQNCg0KMTg2DQowMDoxMTowOSw4
- NDAgLS0+IDAwOjExOjEyLDIxMA0K1eK+xr/J1ebB0rChDQoNCjE4Nw0KMDA6MTE6MTMsNjMwIC0t
- PiAwMDoxMToxNyw4NjANCszsxMUgztK98c3tv8+2qNKqzcLLwMHLDQoNCjE4OA0KMDA6MTE6MTks
- MTgwIC0tPiAwMDoxMToyMiw2NDANCrjmy9/O0iDE48u1xMe7sMqyw7TS4su8DQoNCjE4OQ0KMDA6
- MTE6MjQsODEwIC0tPiAwMDoxMToyOSwwNjANCsTjw7u94bvpIMTjxNDF89PR09bKxy4uLg0KDQox
- OTANCjAwOjExOjI5LDA2MCAtLT4gMDA6MTE6MzEsMDMwDQpTaGVsZG9uxMfA4NDNtcQNCg0KMTkx
- DQowMDoxMTozMSwwMzAgLS0+IDAwOjExOjM0LDA2MA0KxOPVybfyu7nKx0hvd2FyZMTH0M21xMTY
- DQoNCjE5Mg0KMDA6MTE6MzQsMDcwIC0tPiAwMDoxMTozNiw1MzANCsTjz+ux7bTvyrLDtA0KDQox
- OTMNCjAwOjExOjM3LDYyMCAtLT4gMDA6MTE6MzksNDUwDQqxp8e4IM7Syba2vLK7z+ux7bTvDQoN
- CjE5NA0KMDA6MTE6MzksNDUwIC0tPiAwMDoxMTo0MCw5NDANCsu11eLKwsyrzt7BxMHLDQoNCjE5
- NQ0KMDA6MTE6NDAsOTQwIC0tPiAwMDoxMTo0MywzMjANCtTbxNzN/MHL1eKy5yC8zND44MvG8MC0
- sMkNCg0KMTk2DQowMDoxMTo0MywzMjAgLS0+IDAwOjExOjQ2LDYzMA0Kv8nS1LXEILWrsrvQ0rXE
- yscNCs7StPPE1L/Jw7vT0MvwycsNCg0KMTk3DQowMDoxMTo0Niw2MzAgLS0+IDAwOjExOjUwLDc1
- MA0KztK7ubzHtcPE48u1ztK80rGmsbS1xLu1u7DE2A0KDQoxOTgNCjAwOjExOjUwLDc1MCAtLT4g
- MDA6MTE6NTEsOTEwDQq6w8CyIM7StcDHuA0KDQoxOTkNCjAwOjExOjUxLDkyMCAtLT4gMDA6MTE6
- NTMsODgwDQrE3M38vMe41bLFtcTKwsLwDQoNCjIwMA0KMDA6MTE6NTQsODQwIC0tPiAwMDoxMTo1
- NywwOTANCi0gtbHIuw0KLSDQu8CyDQoNCjIwMQ0KMDA6MTE6NTgsODkwIC0tPiAwMDoxMjowMSw3
- OTANCsTj1cm38rXEudbS7LrNtKnXxcyru6y7/MHLDQoNCjIwMg0KMDA6MTI6MDQsMjMwIC0tPiAw
- MDoxMjowNSwyODANCtXmsru40s/g0MUNCg0KMjAzDQowMDoxMjowNSwyODAgLS0+IDAwOjEyOjA4
- LDI4MA0K1eK2zsqxvOQgztK+zdK71rHX+NfFz+vE7sTHvNK77w0KDQoyMDQNCjAwOjEyOjA4LDI4
- MCAtLT4gMDA6MTI6MDksOTMwDQrWqrXA1+7U47XEysfKssO0wvANCg0KMjA1DQowMDoxMjowOSw5
- MzAgLS0+IDAwOjEyOjEzLDU3MA0KxOPP1tTa1eLDtMnL0MQgu7nDu7eovei+xs/7s+4/DQoNCjIw
- Ng0KMDA6MTI6MTgsNDkwIC0tPiAwMDoxMjoyMCw0OTANCrK7yscNCg0KMjA3DQowMDoxMjoyMCw1
- MDAgLS0+IDAwOjEyOjIyLDU4MA0Kw7u07Q0KDQoyMDgNCjAwOjEyOjI0LDQ4MCAtLT4gMDA6MTI6
- MjYsNDgwDQrWqrXAu7nT0Mqyw7TSsrrc1OPC8A0KDQoyMDkNCjAwOjEyOjI2LDQ4MCAtLT4gMDA6
- MTI6MjgsMDMwDQrL+7j5sb6+zbK7z+vO0g0KDQoyMTANCjAwOjEyOjI4LDA0MCAtLT4gMDA6MTI6
- MzAsOTQwDQrIw87SwLSwss6/z8LE47DJDQoNCjIxMQ0KMDA6MTI6MzAsOTQwIC0tPiAwMDoxMjoz
- NCwxMTANCsbwwuvE49Xi0fnX9s2mvaG/tbXEDQoNCjIxMg0KMDA6MTI6MzYsMTEwIC0tPiAwMDox
- MjozOCw3MzANCtXmtc65/iDN6srCwcsg1eLSssvjsLLOvw0KDQoyMTMNCjAwOjEyOjM4LDczMCAt
- LT4gMDA6MTI6NDUsNzkwDQrSu7DZxOq68yDE48Gptryyu9TawcsNCsTHvs3Du7nYz7XByw0KDQoy
- MTQNCjAwOjEyOjQ1LDc5MCAtLT4gMDA6MTI6NDcsOTQwDQq448qyw7SwoQ0KDQoyMTUNCjAwOjEy
- OjQ3LDk0MCAtLT4gMDA6MTI6NTAsNzIwDQrE49OmuMPLtSAiy/u1sci7z+vE4yINCg0KMjE2DQow
- MDoxMjo1MCw3MzAgLS0+IDAwOjEyOjUzLDY4MA0Ky/vWrsv50tTN5sTHw7S36A0KysfP6838tfTL
- +7XEsa/Jyw0KDQoyMTcNCjAwOjEyOjUzLDY4MCAtLT4gMDA6MTI6NTYsMzMwDQrO0r/JsrvEx8O0
- yM/Oqg0KDQoyMTgNCjAwOjEyOjU4LDg1MCAtLT4gMDA6MTM6MDAsMjMwDQrMq7vEw/3Byw0KDQoy
- MTkNCjAwOjEzOjAwLDI0MCAtLT4gMDA6MTM6MDIsNzQwDQq+zdLyzqrL+83mtcO63ODLIM7Svs3S
- qsTRuf3C8A0KDQoyMjANCjAwOjEzOjAyLDc0MCAtLT4gMDA6MTM6MDYsOTYwDQrV4rj2wu8uLi7S
- stDtxOPU2s/rDQoNCjIyMQ0KMDA6MTM6MDYsOTYwIC0tPiAwMDoxMzoxMSwyOTANCsv7us3ExLj2
- xO/Dx77GuvPC0tDUxNgNCg0KMjIyDQowMDoxMzoxMyw2ODAgLS0+IDAwOjEzOjE3LDMyMA0KysfC
- 8CDO0su1ttTBy8LwDQoNCjIyMw0KMDA6MTM6MTgsODQwIC0tPiAwMDoxMzoxOSw5MjANCsyrsPTA
- sg0KDQoyMjQNCjAwOjEzOjE5LDkyMCAtLT4gMDA6MTM6MjIsMjEwDQrE47K708PK1NfFsLLOv87S
- wcsNCg0KMjI1DQowMDoxMzoyMiwyMTAgLS0+IDAwOjEzOjI3LDQ2MA0KsrvQ0CBMZW9uYXJk19/W
- rsewDQrL+8jDztKxo9akIM7Su+HV1bnLusPE47XEDQoNCjIyNg0KMDA6MTM6MjcsNDYwIC0tPiAw
- MDoxMzoyOSw4NTANCi0g1ea1xMLwDQotIMrHtcQNCg0KMjI3DQowMDoxMzoyOSw4NTAgLS0+IDAw
- OjEzOjMyLDYzMA0KzKvM+dDEwcsNCg0KMjI4DQowMDoxMzozMiw2MzAgLS0+IDAwOjEzOjM3LDE3
- MA0Ku7nT0CDI57n7ztLX9rXDs/bJqw0Ky/vLtbvhuPjO0rT4u9jAtNK7tqXLrsrWw7ENCg0KMjI5
- DQowMDoxMzozOSwwNzAgLS0+IDAwOjEzOjQwLDk5MA0Kz9bU2s7SuPzP68Tuy/vByw0KDQoyMzAN
- CjAwOjEzOjQwLDk5MCAtLT4gMDA6MTM6NDUsNTgwDQrI57n7udzTw7XEu7AgztLIt9DFDQoNCjIz
- MQ0KMDA6MTM6NDUsNTgwIC0tPiAwMDoxMzo1MSwwMzANCkxlb25hcmTUtsDrxOO7s7Gnus3T8bS9
- DQq1xMO/0ru/zLa8sbjK3LzlsL4NCg0KMjMyDQowMDoxMzo1Miw1MDAgLS0+IDAwOjEzOjUzLDQ3
- MA0K0LvQuw0KDQoyMzMNCjAwOjEzOjUzLDQ3MCAtLT4gMDA6MTM6NTUsMzQwDQrE47u5tbHV5sCy
- DQoNCjIzNA0KMDA6MTM6NTcsOTQwIC0tPiAwMDoxNDowMCwzODANCrTyyMXByyBEYXZpc7fyyMsN
- Cg0KMjM1DQowMDoxNDowMCwzODAgLS0+IDAwOjE0OjAxLDY4MA0K1PXDtMHLDQoNCjIzNg0KMDA6
- MTQ6MDEsNjgwIC0tPiAwMDoxNDowNCw3MTANCrGnx7jO0sTHw7TCs8OnDQoNCjIzNw0KMDA6MTQ6
- MDQsNzIwIC0tPiAwMDoxNDoxMSw5NDANCru5zqrO28PvxvO27LXAx7gNCtLyzqo5OSW1xMbztuy2
- vLu5zabT0NLiy7y1xA0KDQoyMzgNCjAwOjE0OjExLDk0MCAtLT4gMDA6MTQ6MTMsOTcwDQrL48HL
- sMkNCg0KMjM5DQowMDoxNDoxNSwzNjAgLS0+IDAwOjE0OjE4LDQ5MA0K1qq1wMLwINTbwanT0NDt
- tuDP4MvG1q60pg0KDQoyNDANCjAwOjE0OjE4LDUwMCAtLT4gMDA6MTQ6MjEsNjEwDQotIMrHwvAN
- Ci0gtbHIuyDO0tKyLi4uDQoNCjI0MQ0KMDA6MTQ6MjEsNjIwIC0tPiAwMDoxNDoyNCwyMzANCrGl
- ytzQxMvp1q7NtA0KDQoyNDINCjAwOjE0OjI0LDI0MCAtLT4gMDA6MTQ6MjYsMDQwDQq6w7DJIMz9
- ztLPuM+4tcDAtA0KDQoyNDMNCjAwOjE0OjI4LDY2MCAtLT4gMDA6MTQ6MzMsMTMwDQq4+MTjsa3I
- yNL7ILCyzr/PwsTjDQoNCjI0NA0KMDA6MTQ6MzMsMTMwIC0tPiAwMDoxNDozNSwwMzANCtPDtcTS
- u7TO0NSxrdfTDQoNCjI0NQ0KMDA6MTQ6MzUsMDMwIC0tPiAwMDoxNDozNiw4ODANCsvmsePIzsTj
- tKbWww0KDQoyNDYNCjAwOjE0OjM4LDYyMCAtLT4gMDA6MTQ6NDEsNTAwDQqx8MLvILu51OfE2A0K
- DQoyNDcNCjAwOjE0OjQxLDUwMCAtLT4gMDA6MTQ6NDIsODkwDQrV0rXjysLX9rDJDQoNCjI0OA0K
- MDA6MTQ6NDIsODkwIC0tPiAwMDoxNDo0OCw0NzANCs7S0rvWsdTaubnLvDREufq8ys/zxuUNCg0K
- MjQ5DQowMDoxNDo0OCw0ODAgLS0+IDAwOjE0OjUwLDE5MA0K0qqyu77NueLBxMzssMkNCg0KMjUw
- DQowMDoxNDo1MCwxOTAgLS0+IDAwOjE0OjUxLDI0MA0KusOwyQ0KDQoyNTENCjAwOjE0OjUxLDI1
- MCAtLT4gMDA6MTQ6NTMsNTEwDQotINTaNES5+rzKz/PG5dbQDQotIM2jDQoNCjI1Mg0KMDA6MTQ6
- NTQsNjgwIC0tPiAwMDoxNDo1NywyMjANCsC0wcTBxMn6u+6wyQ0KDQoyNTMNCjAwOjE0OjU3LDIy
- MCAtLT4gMDA6MTQ6NTksMTAwDQq45svfztLQqcTjsrvOqsjL1qq1xMrCDQoNCjI1NA0KMDA6MTU6
- MDIsMTcwIC0tPiAwMDoxNTowNSw5ODANCs7S09C+xcz1v+PX0w0KDQoyNTUNCjAwOjE1OjA3LDgx
- MCAtLT4gMDA6MTU6MTIsMjEwDQq/qs23sru07SDO0s/rzP3Qqbj8y73Iy7XEysINCg0KMjU2DQow
- MDoxNToxMiwyMjAgLS0+IDAwOjE1OjE0LDU4MA0KztK2rsHLDQoNCjI1Nw0KMDA6MTU6MTQsNTkw
- IC0tPiAwMDoxNToxOCw5OTANCs7S09C+xcz1xNq/4w0KDQoyNTgNCjAwOjE1OjIxLDI5MCAtLT4g
- MDA6MTU6MjMsMDYwDQrSqrK7ztLPyMC0sMkNCg0KMjU5DQowMDoxNToyMywwNjAgLS0+IDAwOjE1
- OjI2LDIxMA0KtavO0rK7z+vWqrXAxOPT0Ly4zPXE2r/jDQoNCjI2MA0KMDA6MTU6MjYsMjEwIC0t
- PiAwMDoxNTozMCwwNTANCrK7uf24+b7dxOPO1MrStdiw5cC0v7QNCsTj06a4w9PQ0rvHp8z1sMkN
- Cg0KMjYxDQowMDoxNTozMCwwNTAgLS0+IDAwOjE1OjM0LDU1MA0KzP3XxSC45svfxOPQqc7SsrvO
- qsjL1qq1xMrCDQoNCjI2Mg0KMDA6MTU6MzQsNTYwIC0tPiAwMDoxNTozNiwzOTANCs7SuNWw4bW9
- wuXJvO22yrENCg0KMjYzDQowMDoxNTozNiwzOTAgLS0+IDAwOjE1OjQwLDQ0MA0KztLC49DYs/bR
- 3cHL0ruyv7nY09oNCrTz0MnQycmxyta1xLXNs8mxvr/WssDGrA0KDQoyNjQNCjAwOjE1OjQwLDQ1
- MCAtLT4gMDA6MTU6NDEsODQ2DQrWrrrzIM7SuNC1vbrc0N/Aog0KDQoyNjUNCjAwOjE1OjQyLDAx
- MCAtLT4gMDA6MTU6NDYsMTgwDQq40NC7yc+12yDEx8as19PDu7eisrwNCg0KMjY2DQowMDoxNTo0
- NiwxODAgLS0+IDAwOjE1OjQ4LDM1MA0KztK/tLn9xMfGrMTYDQoNCjI2Nw0KMDA6MTU6NDksMzAw
- IC0tPiAwMDoxNTo1MSw0MDANCsrHsKEgway7t7HkzKzQydDJDQoNCjI2OA0KMDA6MTU6NTQsMDQw
- IC0tPiAwMDoxNTo1Niw5NjANCrz7xOO12tK7zOwgSG93YXJkvs3L0bW9wcsNCg0KMjY5DQowMDox
- NTo1Niw5NjAgLS0+IDAwOjE1OjU4LDQ2MA0KxbYgzOzExC4uLg0KDQoyNzANCjAwOjE1OjU4LDQ2
- MCAtLT4gMDA6MTY6MDEsMjYwDQq+zdTaxOOz9sPFxMfSu7/MDQoNCjI3MQ0KMDA6MTY6MDMsMjAw
- IC0tPiAwMDoxNjowNyw4MDANCs7Sz9bU2taqtcDE49KqwcTKssO0xNrI3cHLDQoNCjI3Mg0KMDA6
- MTY6MDcsODEwIC0tPiAwMDoxNjoxMSw1MTANCrrDsMkg1eK49sPYw9wNCs7Ssb7AtNKqtPi9+LnX
- ssS1xA0KDQoyNzMNCjAwOjE2OjExLDUxMCAtLT4gMDA6MTY6MTIsNzkwDQq6ww0KDQoyNzQNCjAw
- OjE2OjE1LDEwMCAtLT4gMDA6MTY6MTksNjgwDQrWrsewIFlvdXR1YmWw0dPDu6e958PmDQoNCjI3
- NQ0KMDA6MTY6MTksNjgwIC0tPiAwMDoxNjoyNCwzNzANCtPJIsbA0Mciu7uzySKwtNTeIg0KDQoy
- NzYNCjAwOjE2OjI0LDM3MCAtLT4gMDA6MTY6MjksMzkwDQrO0rHtw+bJz9TezawgxuTKtdK7teO2
- vLK7DQoNCjI3Nw0KMDA6MTY6MzQsMjYwIC0tPiAwMDoxNjozNSw5MjANCtXivs3Kx8TjtcTD2MPc
- Pw0KDQoyNzgNCjAwOjE2OjM1LDkyMCAtLT4gMDA6MTY6MzcsMDA4DQrKx7XEDQoNCjI3OQ0KMDA6
- MTY6MzcsNjUwIC0tPiAwMDoxNjo0MSwyNDANCs3bISDSu8/Cx+HBy8quve8NCg0KMjgwDQowMDox
- Njo0MSwyNDAgLS0+IDAwOjE2OjQ1LDk5MA0KusPByyDO0rK7zebByyDLr771yKUNCg0KMjgxDQow
- MDoxNjo0Niw2ODAgLS0+IDAwOjE2OjQ5LDIxMA0K1Nm4+sTjy7W8/s7SsrvOqsjL1qq1xMrCDQoN
- CjI4Mg0KMDA6MTY6NDksMjEwIC0tPiAwMDoxNjo1MCw2NjANCsTjuNXJy7qmwcvO0g0KDQoyODMN
- CjAwOjE2OjUwLDY3MCAtLT4gMDA6MTY6NTIsNTcwDQrO0tf2tO3JtsHLPw0KDQoyODQNCjAwOjE2
- OjUyLDU3MCAtLT4gMDA6MTY6NTgsMDIwDQrO0rOov6rQxLuzILjmy9/E47z+yMPO0sTRyty1xMrC
- DQrE48i0sru1sbvYysINCg0KMjg1DQowMDoxNjo1OCwwMjAgLS0+IDAwOjE3OjAwLDg5MA0KztIu
- Li4gztKyu771tcPEx9PQyrLDtA0KDQoyODYNCjAwOjE3OjAwLDg5MCAtLT4gMDA6MTc6MDMsNzMw
- DQq1q7bUztLAtMu1yLTKx7TzysINCg0KMjg3DQowMDoxNzowNiw1ODAgLS0+IDAwOjE3OjA4LDI2
- MA0KU2hlbGRvbiDE48u1tcO21A0KDQoyODgNCjAwOjE3OjA4LDI3MCAtLT4gMDA6MTc6MTEsMDIw
- DQrV5rXEttSyu8bwDQrO0tOmuMO4/MHLveLE4w0KDQoyODkNCjAwOjE3OjExLDAyMCAtLT4gMDA6
- MTc6MTIsODUwDQq908rcxOO1xLXAx7gNCg0KMjkwDQowMDoxNzoxMiw4NTAgLS0+IDAwOjE3OjE0
- LDk0MA0K0LvQuw0KDQoyOTENCjAwOjE3OjE0LDk0MCAtLT4gMDA6MTc6MTYsMjQwDQrAtCCxp7Gn
- Pw0KDQoyOTINCjAwOjE3OjE2LDI0MCAtLT4gMDA6MTc6MTksNjMwDQotILu5ysfO1crWsMk/DQot
- IMC0sMkNCg0KMjkzDQowMDoxNzoyMiw2MTAgLS0+IDAwOjE3OjI3LDgzMA0Kz9bU2s7Swcu94sTj
- sbux5Mys0MnQyc+uu/e1xLjQvvXByw0KDQoyOTQNCjAwOjE3OjQzLDMyMCAtLT4gMDA6MTc6NDQs
- MzUwDQrN7bCyDQoNCjI5NQ0KMDA6MTc6NTIsMzMwIC0tPiAwMDoxNzo1NSw1OTANCr7TyLvT0MSw
- yfrIy8Lyvsa4+M7Sw8cNCsrcs+jI9L6qsKENCg0KMjk2DQowMDoxNzo1NSw2MDAgLS0+IDAwOjE3
- OjU4LDEwMA0KysewoSC40L71sru07Q0KDQoyOTcNCjAwOjE3OjU5LDYzMCAtLT4gMDA6MTg6MDIs
- NzAwDQrD99TnztLDx7XDtKnM9dDUuNC/47/jDQoNCjI5OA0KMDA6MTg6MDIsNzAwIC0tPiAwMDox
- ODowNSw5MTANCr+0v7TT0MO709DD4rfRusmw/LWwDQoNCjI5OQ0KMDA6MTg6MDcsMzcwIC0tPiAw
- MDoxODoxMyw5MTANCrzZyOfLtSDV5tKq0aEgxOPRocTE0ru49j8NCg0KMzAwDQowMDoxODoxNiwx
- ODAgLS0+IDAwOjE4OjIwLDI3MA0KztLRocTHuPa3otDNudbS7LXEsKu49tfTDQoNCjMwMQ0KMDA6
- MTg6MjAsMjcwIC0tPiAwMDoxODoyMiwzNDANCsyrusPByyDO0s+yu7bEx7j2yt2437j2tvkNCg0K
- MzAyDQowMDoxODoyMiwzNDAgLS0+IDAwOjE4OjI3LDAxMA0Ky/u/tMbwwLS63LTPw/cg0rK63LnC
- xqcNCtKy0O3Du8qyw7TQ1L6t0ekNCg0KMzAzDQowMDoxODoyNywwMTAgLS0+IDAwOjE4OjI5LDkw
- MA0Ku7m1w87SvczL+w0KDQozMDQNCjAwOjE4OjMxLDc3MCAtLT4gMDA6MTg6MzMsNjIwDQrO0tGh
- tcS/ybK71eLR+Q0KDQozMDUNCjAwOjE4OjMzLDYyMCAtLT4gMDA6MTg6MzUsNTcwDQrO0r+0tb3L
- +7ai18XO0tDYv7TE2A0KDQozMDYNCjAwOjE4OjM2LDQ3MCAtLT4gMDA6MTg6NDEsMjkwDQrO0s+y
- u7bEx9bWDQrP68y9y/fO0sOr0sLA78PmtcTE0MjLDQoNCjMwNw0KMDA6MTg6NDEsMjkwIC0tPiAw
- MDoxODo0NCwyOTANCsuzsePLtc/CIMDvw+a7ucrHvP7Dq9LCDQoNCjMwOA0KMDA6MTg6NDYsNDMw
- IC0tPiAwMDoxODo0OSw3NzANCsTHuPa8or/KtcSwq7j219PT0LXjz/FIb3dhcmQNCg0KMzA5DQow
- MDoxODo0OSw3NzAgLS0+IDAwOjE4OjUzLDA0MA0KxOPEx7j2tM/D97XEtKbE0M/xU2hlbGRvbg0K
- DQozMTANCjAwOjE4OjUzLDEwMCAtLT4gMDA6MTg6NTUsNjQwDQotIM3tsLINCi0gze2wsg0KDQoz
- MTENCjAwOjE4OjU4LDM0MCAtLT4gMDA6MTk6MDEsMzEwDQq6w8HLIEtvb3RocmFwcGFsabKpyr8N
- Crj6xOPMuLuwuty439DLDQoNCjMxMg0KMDA6MTk6MDEsMzEwIC0tPiAwMDoxOTowMyw4MTANCrWr
- ztLSqrvYvNINCr3it8XO0rXEsaPEt8HLDQoNCjMxMw0KMDA6MTk6MDMsODEwIC0tPiAwMDoxOTow
- NiwwNzANCsrHsKEgztLBy73itaXJ7bi4xLi1xLjQytwNCg0KMzE0DQowMDoxOTowNiwwNzAgLS0+
- IDAwOjE5OjA4LDAyMA0KztLT0NK71rvQobm3DQoNCjMxNQ0KMDA6MTk6MDgsMDIwIC0tPiAwMDox
- OToxMCw4NTANCsrHsKEgzerIq9K70fkNCg0KMzE2DQowMDoxOToxMCw4NjAgLS0+IDAwOjE5OjEy
- LDE1MA0Kze2wsg0KDQozMTcNCjAwOjE5OjEyLDE2MCAtLT4gMDA6MTk6MTMsODIwDQpEYXZpc8Wu
- yr8uLi4NCg0KMzE4DQowMDoxOToxMyw4MjAgLS0+IDAwOjE5OjE2LDY2MA0KztIuLi4gtu4gxuTK
- tS4uLg0KDQozMTkNCjAwOjE5OjE2LDY2MCAtLT4gMDA6MTk6MjAsODEwDQq98c3tztLKx7Gn18XD
- 7MOjz6PN+w0Kuf3AtL+0v7TE3LK7xNzF3bW9ucK2wLXEsqnKv7rzDQoNCjMyMA0KMDA6MTk6MjAs
- ODIwIC0tPiAwMDoxOToyNSwwNTANCrWryLS6zcTj1ebQxMHEyc/Byw0KDQozMjENCjAwOjE5OjI1
- LDA1MCAtLT4gMDA6MTk6MjcsODIwDQq4/LzTw8DD7rXE0rvN7Q0KDQozMjINCjAwOjE5OjI4LDU2
- MCAtLT4gMDA6MTk6MzAsNjIwDQrE48jLuty6ww0KDQozMjMNCjAwOjE5OjMwLDYzMCAtLT4gMDA6
- MTk6MzIsMzcwDQrE47K7u+G21M7S09DS4su8sMk/DQoNCjMyNA0KMDA6MTk6MzIsMzgwIC0tPiAw
- MDoxOTozNCwxMzANCrK7ILK7ILK7IMTHvs236MHLIQ0KDQozMjUNCjAwOjE5OjM0LDEzMCAtLT4g
- MDA6MTk6MzgsNDAwDQq82cjnztK21MTj09DS4su8IMTj1Oe3or71wcsNCtTauNC+9bK7y6zWrtPg
- IMTju7m74dPQtePNrMfpztINCg0KMzI2DQowMDoxOTo0Miw2NzAgLS0+IDAwOjE5OjQ0LDU1MA0K
- xOPV5r/JsK4NCg0KMzI3DQowMDoxOTo0NCw1OTAgLS0+IDAwOjE5OjQ2LDk5OQ0Kze2wsiBLb290
- aHJhcHBhbGmyqcq/DQoNCjMyOA0KMDA6MTk6NDcsMDEwIC0tPiAwMDoxOTo0OSw2MTANCs3tsLIN
- Cg0KMzI5DQowMDoxOTo1MSwxMTAgLS0+IDAwOjE5OjUzLDMzMA0Kw7LLxsTjtcDHuLPJuabByw0K
- DQozMzANCjAwOjE5OjUzLDMzMCAtLT4gMDA6MTk6NTUsMDMwDQq2+MfSLi4uDQoNCjMzMQ0KMDA6
- MTk6NTUsMDMwIC0tPiAwMDoxOTo1NywxMjANCs7SvvW1w87Sw8e7uc2mwLS157XEDQoNCjMzMg0K
- MDA6MTk6NTcsMTIwIC0tPiAwMDoxOTo1OSw3OTANCsvjwcuwySDAtLXnxOO49s23DQoNCjMzMw0K
- MDA6MTk6NTksNzkwIC0tPiAwMDoyMDowMSw5OTANCsTjyrLDtMqxuvKzycHLIsC0tefWrs31IsHL
- Pw0KDQozMzQNCjAwOjIwOjA0LDMyMCAtLT4gMDA6MjA6MDYsMDk4DQq6w7DJIL7Ny+PE48PH09DA
- tLXnDQoNCjMzNQ0KMDA6MjA6MDYsMTEwIC0tPiAwMDoyMDowOCw3ODANCi0gsb7AtL7N09ANCi0g
- w7vT0A0KDQozMzYNCjAwOjIwOjA4LDc4MCAtLT4gMDA6MjA6MTIsODgwDQq1qy4uLiC1q7y0yrnT
- 0CDE49Kq1PXDtNf2Pw0KDQozMzcNCjAwOjIwOjEyLDg4MCAtLT4gMDA6MjA6MTgsODAwDQrO0rvh
- wv3C/bm00v3L/Q0K1rG1vcv9zt7W+rXYtbnU2s7StLLJzw0KDQozMzgNCjAwOjIwOjE4LDgxMCAt
- LT4gMDA6MjA6MjAsODEwDQq/ys3718XWu9PQztLE3Lj4y/21xL/swNYNCg0KMzM5DQowMDoyMDoy
- MCw4MTAgLS0+IDAwOjIwOjIyLDY4MA0KLSDL+dLUy7UgyrLDtLa8srvX9g0KLSDKssO0tryyu9f2
- DQoNCjM0MA0KMDA6MjA6MjgsNjAwIC0tPiAwMDoyMDozNCw3MzANCtXmuN/Qy76vsuzW1dPa16W1
- vcHLxMe49g0K0MTA7bHkzKy1xLv50vK4xNTs0MnQyQ0KDQozNDENCjAwOjIwOjM5LDk5MCAtLT4g
- MDA6MjA6NDIsMjEwDQrO0reiysQg1eLKx87Sxa7F89PRIQ0KDQozNDINCjAwOjIwOjQzLDc1MCAt
- LT4gMDA6MjA6NDcsMjgwDQpMZW9uYXJkISBMZW9uYXJkIQ0KTGVvbmFyZCEgTGVvbmFyZCENCg0K
- MzQzDQowMDoyMDo0OCwyNDAgLS0+IDAwOjIwOjUwLDE0MA0KPGZvbnQgY29sb3I9IzIzOEU2OD4t
- LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0Ksb7C28yz19bEu732t63S6727
- wffRp8+w1q7Tww0KvfvWucjOus7JzNK108PNvrfx1PK687n719S4ug0KLS0tLS0tLS0tLS0tLS0t
- LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08L2ZvbnQ+DQoNCjM0NA0KMDA6MjA6NTAsMjgwIC0tPiAw
- MDoyMDo1MiwyNjANCjxmb250IGNvbG9yPSMyMzhFNjg+zOyyxcDtwtu0qyC12sbfvL4gtdrSu7yv
- IM3qDQo3MjBQIGlUdW5lcyAtINfUwLT33GFrPC9mb250Pg0K
- headers:
- cache-control:
- - max-age=2678400
- connection:
- - keep-alive
- content-disposition:
- - subtitle; filename="The.Big.Bang.Theory.S07E01.The.Hofstadter.Insufficiency.720p.WEB-DL.DD5.1.H.264.srt"
- content-length:
- - '21411'
- content-type:
- - application/octet-stream
- date:
- - Sat, 30 Nov 2019 07:14:46 GMT
- expires:
- - Tue, 31 Dec 2019 07:14:46 GMT
- master:
- - Windu
- server:
- - nginx
- x-cache:
- - HIT
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_download_subtitle.yaml b/tests/cassettes/assrt/test_download_subtitle.yaml
deleted file mode 100644
index d18900e61..000000000
--- a/tests/cassettes/assrt/test_download_subtitle.yaml
+++ /dev/null
@@ -1,3932 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langcht\":true,\"langeng\"\
- :true,\"langdou\":true,\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u7E41\u82F1\
- \u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"release_site\":\"CMCT\",\"revision\":0},{\"upload_time\":\"2014-12-06 04:13:44\"\
- ,\"subtype\":\"SSA\",\"id\":316973,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"Man of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0,\"vote_score\"\
- :0},{\"upload_time\":\"2014-03-17 15:30:19\",\"subtype\":\"Subrip(srt)\",\"\
- revision\":0,\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2014-03-05 18:10:39\"\
- ,\"subtype\":\"SSA\",\"revision\":0,\"id\":252930,\"lang\":{\"desc\":\"\u82F1\
- \ \u7E41 \u53CC\u8BED\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langdou\":true}},\"videoname\":\"Man of Steel\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"vote_score\":45},{\"upload_time\":\"2013-11-09\
- \ 10:43:13\",\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":246016,\"lang\"\
- :{\"desc\":\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\"\
- :true,\"langcht\":true}},\"videoname\":\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-11-02 05:56:40\",\"subtype\":\"\
- SSA\",\"revision\":0,\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langcht\":true,\"langchs\":true,\"langdou\":true}},\"\
- videoname\":\"Man of Steel 1080p.bluray.x264-sector7\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\
- \u96C4\\/\u7279\u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-31 23:41:07\",\"subtype\":\"\u5176\u4ED6\"\
- ,\"revision\":0,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"\
- langchs\":true}},\"videoname\":\"Man.of.Steel.2013\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-10-27 07:04:18\",\"subtype\":\"\
- VobSub\",\"id\":245259,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0,\"vote_score\":100},{\"upload_time\":\"2013-10-25 04:50:37\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"videoname\":\"Man.Of.Steel\"\
- ,\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\"\
- :80},{\"upload_time\":\"2013-10-24 07:52:31\",\"subtype\":\"SSA\",\"revision\"\
- :0,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013) 1080p.cht\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-23 00:46:40\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244971,\"lang\":{\"desc\"\
- :\"\u7B80 \u7E41\",\"langlist\":{\"langcht\":true,\"langchs\":true}},\"videoname\"\
- :\"\u8D85\u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\
- \u96C4(\u6E2F\\/\u53F0).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\
- \u76D8\",\"native_name\":\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"vote_score\"\
- :10},{\"upload_time\":\"2013-10-22 23:39:00\",\"subtype\":\"Subrip(srt)\"\
- ,\"revision\":0,\"id\":244969,\"lang\":{\"desc\":\"\",\"langlist\":{}},\"\
- videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"vote_score\":0},{\"upload_time\"\
- :\"2013-10-22 22:06:42\",\"subtype\":\"SSA\",\"revision\":0,\"id\":244960,\"\
- lang\":{\"desc\":\"\u82F1 \u7B80\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true}},\"videoname\":\"Superman: Man of Steel BD\",\"native_name\":\"\u8D85\
- \u4EBA:\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\":0},{\"upload_time\":\"2013-10-22\
- \ 17:42:45\",\"subtype\":\"\u5176\u4ED6\",\"revision\":0,\"id\":244939,\"\
- lang\":{\"desc\":\"\",\"langlist\":{}},\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\":true,\"\
- langcht\":true}},\"videoname\":\"man.of.steel.2013.720p.bluray.x264-felony.mkv\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"vote_score\"\
- :0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:40 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/detail?token=SECRET&id=%5B%27618185%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"result\":\"succeed\",\"subs\":[{\"id\":618185,\"\
- filelist\":[{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618185\\/-\\\
- /1\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?_=1575098080&-=89464d94d08c606674b645a8625f3dae&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- &\u82F1\u6587.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/2\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93%26%E8%8B%B1%E6%96%87.srt?_=1575098080&-=50d60b7ab566442b141746abb7446eed&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- &\u82F1\u6587.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/3\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93.ass?_=1575098080&-=c22e2c72cf726d705f9f5cfcc69bed3e&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- .ass\",\"s\":\"133KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/4\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93.srt?_=1575098080&-=872afa545589f9edab516c4de1b4da66&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- .srt\",\"s\":\"80KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/5\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?_=1575098080&-=ba69a8766469b168fa0024bee07644ff&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- &\u82F1\u6587.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/6\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93%26%E8%8B%B1%E6%96%87.srt?_=1575098080&-=f3c74b15bc3f3275d57f78d97dae639a&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- &\u82F1\u6587.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/7\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93.ass?_=1575098080&-=2fd32d1e9258bd0d723d35996abb6528&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- .ass\",\"s\":\"133KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/8\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93.srt?_=1575098080&-=fe26844b485b60d3e799f1dfaa3d4173&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- .srt\",\"s\":\"119KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/9\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%AE%80%E4%BD%93.ass?_=1575098080&-=c027d5b713399dca2f0911399ae547bd&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7B80\u4F53.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/10\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%AE%80%E4%BD%93.srt?_=1575098080&-=f38451f13a3c0e9aa847436bc6bd4f6a&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7B80\u4F53.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/11\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%B9%81%E4%BD%93.ass?_=1575098080&-=0aeb81283ff1fc32b011e67b95cf3c29&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7E41\u4F53.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/12\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%B9%81%E4%BD%93.srt?_=1575098080&-=bb97c6954807ffe4004084562f3a3f5a&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7E41\u4F53.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/13\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87.srt?_=1575098080&-=73a24cabafbb7a59383e204de657a971&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- .srt\",\"s\":\"85KB\"}],\"url\":\"http:\\/\\/file0.assrt.net\\/download\\\
- /618185\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.zip?_=1575098080&-=272e8e5858cae6889592e4ec48dab6b5&api=1\"\
- ,\"release_site\":\"CMCT\",\"revision\":0,\"filename\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.zip\"\
- ,\"subtype\":\"SSA\",\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\
- \",\"langlist\":{\"langchs\":true,\"langeng\":true,\"langdou\":true,\"langcht\"\
- :true}},\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"vote_score\":0,\"upload_time\":\"2018-01-26 12:19:27\",\"title\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"view_count\":2541,\"native_name\"\
- :\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"producer\":{\"source\":\"\u539F\u521B\
- \u7FFB\u8BD1\",\"verifier\":\"\",\"producer\":\"\",\"uploader\":\"\"},\"size\"\
- :627625,\"down_count\":1290}],\"action\":\"detail\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:40 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: http://file0.assrt.net/onthefly/618185/-/5/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?api=%5B%271%27%5D&-=%5B%27ba69a8766469b168fa0024bee07644ff%27%5D&_=%5B%271575098080%27%5D
- response:
- body:
- string: "\uFEFF[Script Info]\r\n;SrtEdit 6.3.2012.1001\r\n;Copyright(C) 2005-2012\
- \ Yuan Weiguo\r\n\r\nTitle: \r\nOriginal Script: \r\nOriginal Translation:\
- \ \r\nOriginal Timing: \r\nOriginal Editing: \r\nScript Updated By: \r\nUpdate\
- \ Details: \r\nScriptType: v4.00+\r\nCollisions: Normal\r\nPlayResX: 384\r\
- \nPlayResY: 288\r\nTimer: 100.0000\r\nSynch Point: \r\nWrapStyle: 0\r\nScaledBorderAndShadow:\
- \ no\r\n\r\n[V4+ Styles]\r\nFormat: Name, Fontname, Fontsize, PrimaryColour,\
- \ SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut,\
- \ ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment,\
- \ MarginL, MarginR, MarginV, Encoding\r\nStyle: chs,Arial,20,&H00E0E0E0,&H00000000,&H00000000,&H80000000,0,0,0,0,100,100,0,0,0,2,1,2,1,1,1,1\r\
- \nStyle: Default,Arial,18,&H00FFFFFF,&H0000FFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,3,2,20,20,20,1\r\
- \n\r\n[Events]\r\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR,\
- \ MarginV, Effect, Text\r\nDialogue: 0,0:00:01.00,0:00:05.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\fs18\\1c&H00FFFF&}--==\u672C\u5F71\u7247\u7531\
- \ {\\1c&HFF8000&\\b1}CMCT \u5718\u968A{\\r\\fn\u534E\u6587\u6977\u4F53\\fs18\\\
- 1c&H00FFFF&} \u69AE\u8B7D\u51FA\u54C1==--\\N\u66F4\u591A\u7CBE\u5F69\u5F71\
- \u8996 \u8ACB\u8A2A\u554F {\\fnCronos Pro Light Subhead\\1c&HFF00FF&\\b1}http://cmct.cc{\\\
- r\\fn\u534E\u6587\u6977\u4F53\\fs18\\1c&H00FFFF&}{\\r}\r\nDialogue: 0,0:00:06.00,0:00:10.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\fs16\\1c&H00FFFF&}\u5F71\u7247\u58D3\u5236: \u66AE\
- \u96E8\u701F\u701F \u5B57\u5E55\u8ABF\u6821\uFF1A\u4E5D\u5929 \u62DB\
- \u52DFQ\u865F: 76846146{\\r}\r\nDialogue: 0,0:00:58.52,0:01:00.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hurry!{\\r}\r\nDialogue: 0,0:02:11.03,0:02:14.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u9084\u4E0D\u660E\u767D\u55CE\
- \uFF1F\u6C2A\u661F\u7684\u6838\u5FC3\u6B63\u5728\u574D\u584C{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you not understand? Krypton's core\
- \ is collapsing.{\\r}\r\nDialogue: 0,0:02:15.20,0:02:18.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4E5F\u8A31\u53EA\u5269\u5E7E\
- \u500B\u661F\u671F\u4E86 \u6211\u8B66\u544A\u904E\u4F60\u5011{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We may only have a matter of weeks.\
- \ I warned you.{\\r}\r\nDialogue: 0,0:02:18.80,0:02:22.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u958B\u767C\u6838\u5FC3\u7684\u80FD\u6E90\
- \u8207\u81EA\u6BBA\u7121\u7570{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Harvesting the core was suicide. It has accelerated...{\\r}\r\nDialogue:\
- \ 0,0:02:22.54,0:02:25.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u5167\u7206\u7684\u901F\u5EA6\u5DF2\u7D93\u52A0\u5FEB - \u6211\
- \u5011\u7684\u80FD\u6E90\u5132\u5099\u5DF2\u7D93\u8017\u76E1{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...the process of implosion. \
- \ - Our energy reserves...{\\r}\r\nDialogue: 0,0:02:25.51,0:02:27.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u9084\u80FD\u600E\u9EBC\u8FA6\
- \ \u827E\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...were\
- \ exhausted. What would you have us do, El?{\\r}\r\nDialogue: 0,0:02:28.14,0:02:31.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u50CF\u6211\u5011\u7684\u7956\u5148\u4E00\
- \u6A23 \u653E\u773C\u5B87\u5B99{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Look to the stars, like our ancestors did.{\\r}\r\nDialogue: 0,0:02:31.81,0:02:35.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9069\u5408\u5C45\u4F4F\u7684\u4E16\u754C\
- \u89F8\u624B\u53EF\u53CA \u6211\u5011\u53EF\u4EE5\u5148\u7528\u90A3\u4E9B\u820A\
- \u524D\u54E8\u7AD9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There\
- \ are habitable worlds within reach. We can begin by using the old outposts.{\\\
- r}\r\nDialogue: 0,0:02:35.95,0:02:39.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u771F\u7684\u60F3\u8981\u64A4\u96E2\u5168\u661F\
- \u7403\u7684\u4EBA\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Are you seriously suggesting that we evacuate the entire planet?{\\\
- r}\r\nDialogue: 0,0:02:39.89,0:02:43.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u6211\u5011\u5DF2\u7D93\u6551\u4E0D\u4E86\u9019\
- \u88CF\u7684\u4EBA\u5011\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}No. Everybody here is already dead.{\\r}\r\nDialogue: 0,0:02:44.16,0:02:48.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5BC6\u5178\u4EA4\u7D66\u6211 \u6211\
- \u4FDD\u8B49\u8B93\u6211\u5011\u7A2E\u65CF\u5B58\u6D3B\u4E0B\u53BB{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Give me control of the\
- \ Codex. I will ensure the survival of our race.{\\r}\r\nDialogue: 0,0:02:48.66,0:02:49.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9084\u6709\u5E0C\u671B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There is still hope.{\\r}\r\nDialogue:\
- \ 0,0:02:50.00,0:02:53.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5C07\u9019\u500B\u5E0C\u671B\u63E1\u5728\u4E86\u6211\u7684\
- \u624B\u5FC3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have\
- \ held that hope in my hands.{\\r}\r\nDialogue: 0,0:03:07.42,0:03:09.96,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9577\u8001\u6703\u5DF2\u7D93\u89E3\u6563\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This council\
- \ has been disbanded.{\\r}\r\nDialogue: 0,0:03:10.05,0:03:11.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8AB0\u4E0B\u7684\u547D\u4EE4\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On whose authority?{\\\
- r}\r\nDialogue: 0,0:03:12.25,0:03:13.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mine.{\\r}\r\nDialogue: 0,0:03:17.16,0:03:21.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5176\u9918\u7684\u4EBA\u5C07\u88AB\u5BE9\
- \u5224 \u4E26\u914C\u60C5\u8655\u7F70{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The rest of you will be tried and punished accordingly.{\\\
- r}\r\nDialogue: 0,0:03:23.43,0:03:26.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4F60\u5728\u5E79\u4EC0\u9EBC \u4F50\u5FB7\uFF1F\u4F60\
- \u760B\u4E86 - \u6211\u5E7E\u5E74\u524D\u5C31\u8A72\u52D5\u624B\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- What are you doing,\
- \ Zod? This is madness. - What I should have done years ago...{\\r}\r\
- \nDialogue: 0,0:03:27.17,0:03:32.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u9019\u4E9B\u7ACB\u6CD5\u8005\u548C\u4ED6\u5011\
- \u7121\u4F11\u6B62\u7684\u722D\u8AD6\u6BC0\u4E86\u6C2A\u661F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}These lawmakers with their endless\
- \ debates have lead Krypton to ruin.{\\r}\r\nDialogue: 0,0:03:34.28,0:03:35.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u4F60\u7684\u8ECD\u968A\u52DD\
- \u5229\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ if your forces prevail...{\\r}\r\nDialogue: 0,0:03:36.21,0:03:38.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u4E5F\u53EA\u80FD\u662F\u500B\u5149\
- \u687F\u53F8\u4EE4 - \u90A3\u5C31\u52A0\u5165\u6211\u7684\u884C\u5217\u5427\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...you'll be the\
- \ leader of nothing. - Then join me.{\\r}\r\nDialogue: 0,0:03:39.08,0:03:42.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5354\u52A9\u6211\u62EF\u6551\u6211\u5011\
- \u7684\u7A2E\u65CF \u6211\u5011\u91CD\u65B0\u958B\u59CB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help me save our race. We'll start\
- \ anew.{\\r}\r\nDialogue: 0,0:03:42.42,0:03:46.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C07\u8B93\u6211\u5011\u6DEA\u843D\u5230\
- \u5982\u6B64\u7530\u5730\u7684\u58AE\u843D\u8840\u8108\u5207\u65B7{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We'll sever the degenerative\
- \ bloodlines that led us to this state.{\\r}\r\nDialogue: 0,0:03:46.72,0:03:49.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8AB0\u4F86\u6C7A\u5B9A\u8AB0\u53BB\u8AB0\
- \u7559 \u4F50\u5FB7\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}And who will decide which bloodlines survive, Zod?{\\r}\r\nDialogue:\
- \ 0,0:03:51.53,0:03:52.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You?{\\r}\r\nDialogue: 0,0:03:54.90,0:03:56.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5225\u9019\u6A23 \u827E\u723E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Don't do this, El.{\\r}\r\n\
- Dialogue: 0,0:03:56.87,0:03:59.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u6700\u4E0D\u9858\u610F\u770B\u5230\u7684 \u5C31\u662F\
- \u6211\u5011\u53CD\u76EE\u6210\u4EC7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The last thing I want is for us to be enemies.{\\r}\r\n\
- Dialogue: 0,0:03:59.57,0:04:02.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u80CC\u68C4\u4E86\u6211\u5011\u76F8\u7D04\u7ACB\u4E0B\
- \u7684\u539F\u5247{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ have abandoned the principles that bound us together.{\\r}\r\nDialogue:\
- \ 0,0:04:02.44,0:04:06.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C07\u528D\u6307\u5411\u4E86\u81EA\u5DF1\u7684\u4EBA\u6C11\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You've taken up\
- \ the sword against your own people.{\\r}\r\nDialogue: 0,0:04:06.48,0:04:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u656C\u91CD\u7684\u662F\u66FE\u7D93\
- \u7684\u4F60 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will honor the man you once were, Zod...{\\r}\r\nDialogue: 0,0:04:09.81,0:04:11.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4E0D\u662F\u5982\u4ECA\u9019\u500B\
- \u79BD\u7378{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...not\
- \ this monster you've become.{\\r}\r\nDialogue: 0,0:04:15.08,0:04:16.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u4ED6\u5E36\u8D70{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take him away.{\\r}\r\nDialogue: 0,0:04:22.59,0:04:23.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u4EBA \u4E00\u5207\u662F\u5426\u5B89\
- \u597D\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sir?\
- \ Is everything all right?{\\r}\r\nDialogue: 0,0:04:24.16,0:04:25.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u958B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Out of the way.{\\r}\r\nDialogue: 0,0:04:26.33,0:04:27.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u518D\u8AAA\u4E00\u904D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I said...{\\r}\r\nDialogue:\
- \ 0,0:04:43.81,0:04:44.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u53EB\u840A\u62C9\u904E\u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Get me Lara.{\\r}\r\nDialogue: 0,0:04:46.18,0:04:48.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55AC \u6CE8\u610F\u8EAB\u5F8C{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor. Behind you.{\\r}\r\nDialogue:\
- \ 0,0:04:52.25,0:04:54.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u840A\u62C9 \u6E96\u5099\u597D\u767C\u5C04{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lara, you have to ready the launch.{\\\
- r}\r\nDialogue: 0,0:04:54.49,0:04:56.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u6703\u76E1\u5FEB\u8DDF\u4F60\u6703\u5408{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll be with you as soon\
- \ as I can.{\\r}\r\nDialogue: 0,0:05:10.97,0:05:12.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D6B\u62C9\u5361{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}H'Raka!{\\r}\r\nDialogue: 0,0:05:51.58,0:05:54.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u80FD\u770B\u5230\u5BC6\u5178\u55CE\uFF1F\
- \ - \u5C31\u5728\u4E2D\u6A1E\u7684\u4E0B\u65B9 \u4E3B\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Can you see the Codex? -\
- \ It's just beneath the central hub.{\\r}\r\nDialogue: 0,0:05:54.55,0:05:55.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E0D\u5F97\u4E0D\u8B66\u544A\
- \u60A8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But I'm compelled\
- \ to warn you.{\\r}\r\nDialogue: 0,0:05:55.92,0:05:58.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5165\u4FB5\u59CB\u6E90\u5BA4\u662FB\u7D1A\
- \u72AF\u7F6A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Breaching\
- \ the genesis chamber is a Class-B crime...{\\r}\r\nDialogue: 0,0:05:58.49,0:06:02.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u4EBA\u5728\u4E4E\u9019\u500B\u4E86\
- \ \u57FA\u5217\u514B\u65AF \u9019\u500B\u4E16\u754C\u5C31\u8981\u6BC0\u6EC5\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Nobody cares\
- \ anymore, Kelex. The world is about to come to an end.{\\r}\r\nDialogue:\
- \ 0,0:07:06.72,0:07:09.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u55AC\u2022\u827E\u723E \u4F50\u5FB7\u5C07\u8ECD\u6709\u4EE4{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El, by the authority\
- \ of General Zod...{\\r}\r\nDialogue: 0,0:07:10.13,0:07:12.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EA4\u51FA\u5BC6\u5178{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...surrender the Codex.{\\r}\r\nDialogue:\
- \ 0,0:08:00.01,0:08:01.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5805\u6301\u4F4F \u8D6B\u62C9\u5361{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Easy, H'Raka.{\\r}\r\nDialogue: 0,0:08:22.50,0:08:24.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u627E\u5230\u4E86\u90A3\u500B\
- \u4E16\u754C\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Did you find a world?{\\r}\r\nDialogue: 0,0:08:24.33,0:08:26.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u627E\u5230\u4E86 - \u5B83\u7E5E\u8457\
- \u4E00\u9846\u9EC3\u8272\u4E3B\u5E8F\u661F\u904B\u884C{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- We have. - Orbiting a main\
- \ sequence yellow star...{\\r}\r\nDialogue: 0,0:08:26.87,0:08:28.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B63\u5982\u60A8\u6240\u8AAA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...just as you said it would.{\\\
- r}\r\nDialogue: 0,0:08:29.87,0:08:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u662F\u9846\u5E74\u8F15\u7684\u6046\u661F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A young star.{\\r}\r\n\
- Dialogue: 0,0:08:31.84,0:08:34.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4ED6\u7684\u7D30\u80DE\u80FD\u5438\u6536\u5B83\u7684\u8F3B\
- \u5C04\u80FD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His\
- \ cells will drink its radiation.{\\r}\r\nDialogue: 0,0:08:36.64,0:08:38.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F3C\u4E4E\u662F\u667A\u80FD\u751F\u7269\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's a seemingly\
- \ intelligent population.{\\r}\r\nDialogue: 0,0:08:39.81,0:08:40.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6703\u88AB\u907A\u68C4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll be an outcast.{\\r}\r\
- \nDialogue: 0,0:08:41.88,0:08:43.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u88AB\u7576\u6210\u602A\u7269{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}A freak.{\\r}\r\nDialogue: 0,0:08:44.55,0:08:45.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6703\u88AB\u6BBA\u6389\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They'll kill him.{\\\
- r}\r\nDialogue: 0,0:08:45.59,0:08:47.03,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How?{\\r}\r\nDialogue: 0,0:08:47.89,0:08:49.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6703\u88AB\u7576\u6210\u4E0A\u5E1D\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll be a god to\
- \ them.{\\r}\r\nDialogue: 0,0:08:51.43,0:08:53.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u98DB\u8239\u5230\u4E0D\u4E86\
- \u90A3\u88CF\u600E\u9EBC\u8FA6\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What if the ship doesn't make it?{\\r}\r\nDialogue: 0,0:08:54.53,0:08:56.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6703\u6B7B\u5728\u5916\u9762{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll die out there...{\\\
- r}\r\nDialogue: 0,0:08:56.93,0:08:58.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B64\u82E6\u4F36\u4EC3\u5730{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...alone.{\\r}\r\nDialogue: 0,0:09:00.07,0:09:01.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u505A\u4E0D\u5230{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't do it.{\\r}\r\nDialogue: 0,0:09:02.07,0:09:03.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EE5\u70BA\u53EF\u4EE5 \u4F46...{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I thought I could,\
- \ but...{\\r}\r\nDialogue: 0,0:09:03.71,0:09:05.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u840A\u62C9 - \u4ED6\u5C31\u5728\u6211\
- \u773C\u524D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Lara.\
- \ - ...now that he's here...{\\r}\r\nDialogue: 0,0:09:05.91,0:09:07.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C2A\u661F\u5DF2\u7D93\u4E0D\u884C\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton is doomed.{\\\
- r}\r\nDialogue: 0,0:09:08.84,0:09:10.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u662F\u4ED6\u552F\u4E00\u7684\u6A5F\u6703{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's his only chance now.{\\\
- r}\r\nDialogue: 0,0:09:11.38,0:09:12.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u662F\u6211\u5011\u6C11\u65CF\u552F\u4E00\u7684\
- \u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ our people's only hope.{\\r}\r\nDialogue: 0,0:09:14.42,0:09:15.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u9EBC\u4E86 \u57FA\u5217\u514B\u65AF\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What is it,\
- \ Kelex?{\\r}\r\nDialogue: 0,0:09:15.88,0:09:17.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4E94\u8258\u653B\u64CA\u8266\u6B63\
- \u5F9E\u6771\u9762\u9760\u8FD1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Five attack ships converging from the east.{\\r}\r\nDialogue: 0,0:09:18.09,0:09:20.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u6B63\u5728\u6383\u7784\u4E26\
- \u8A55\u4F30\u57CE\u5821\u7684\u9632\u79A6\u7CFB\u7D71{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Citadel's defenses are being scanned\
- \ and evaluated.{\\r}\r\nDialogue: 0,0:09:20.69,0:09:21.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4F86\u4E0A\u50B3\u5BC6\u5178{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll upload the Codex.{\\\
- r}\r\nDialogue: 0,0:09:22.36,0:09:23.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u7B49\u7B49{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}No, wait.{\\r}\r\nDialogue: 0,0:09:24.39,0:09:25.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u840A\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lara.{\\r}\r\nDialogue: 0,0:09:25.46,0:09:28.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u6211\u518D\u770B\u770B\u4ED6{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Just let me look at\
- \ him.{\\r}\r\nDialogue: 0,0:09:31.77,0:09:34.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u6C92\u6A5F\u6703\u770B\u4ED6\
- \u8D70\u8DEF\u7684\u6A23\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We'll never get to see him walk.{\\r}\r\nDialogue: 0,0:09:36.70,0:09:39.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u6A5F\u6703\u807D\u4ED6\u558A\u7238\
- \u7238\u5ABD\u5ABD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never\
- \ hear him say our names.{\\r}\r\nDialogue: 0,0:09:44.05,0:09:45.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6703\u5728{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}But out there...{\\r}\r\nDialogue: 0,0:09:45.71,0:09:47.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u832B\u832B\u5B87\u5B99\u9593{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...amongst the stars...{\\\
- r}\r\nDialogue: 0,0:09:48.98,0:09:50.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6D3B\u4E0B\u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...he will live.{\\r}\r\nDialogue: 0,0:10:48.54,0:10:50.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u518D\u898B \u5152\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Goodbye, my son.{\\r}\r\nDialogue:\
- \ 0,0:10:51.18,0:10:53.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u7684\u5E0C\u671B\u8207\u5922\u60F3\u8207\u4F60\u540C\
- \u884C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our hopes\
- \ and dreams travel with you.{\\r}\r\nDialogue: 0,0:11:32.42,0:11:35.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5411\u4E3B\u9580\u96C6\u4E2D\u706B\u529B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Concentrate fire\
- \ on the main doors.{\\r}\r\nDialogue: 0,0:11:50.57,0:11:51.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u840A\u62C9\u592B\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lady Lara.{\\r}\r\nDialogue: 0,0:11:51.77,0:11:54.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5E7D\u9748\u5F15\u64CE\u5DF2\u555F\u52D5\
- \ - \u9EDE\u706B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ The phantom drives are coming online. - Proceed to ignition.{\\r}\r\
- \nDialogue: 0,0:11:55.61,0:11:56.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}General.{\\r}\r\nDialogue: 0,0:11:56.88,0:12:00.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u57CE\u5821\u5167\u6709\u5F15\u64CE\u555F\
- \u52D5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have identified\
- \ an engine ignition within the citadel.{\\r}\r\nDialogue: 0,0:12:01.22,0:12:02.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u822A\u5929\u5668\u767C\u5C04{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A launch.{\\r}\r\n\
- Dialogue: 0,0:12:03.79,0:12:06.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5B88\u4F4F\u9019\u5E73\u53F0 \u6307\u63EE\u5B98{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hold this platform, commander.{\\\
- r}\r\nDialogue: 0,0:12:18.60,0:12:21.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u5077\u4E86\u5BC6\u5178 \u55AC\
- \u2022\u827E\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ know you stole the Codex, Jor-El.{\\r}\r\nDialogue: 0,0:12:21.70,0:12:22.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5B83\u4EA4\u51FA\u4F86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Surrender it...{\\r}\r\nDialogue:\
- \ 0,0:12:22.94,0:12:24.94,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5C31\u9952\u4F60\u4E0D\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...and I'll let you live.{\\r}\r\nDialogue: 0,0:12:25.57,0:12:28.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u6B21\u91CD\u751F\u7684\u6A5F\u6703\
- \u5C6C\u65BC\u6C2A\u661F\u6240\u6709\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This is a second chance for all of Krypton...{\\\
- r}\r\nDialogue: 0,0:12:28.38,0:12:31.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u800C\u4E0D\u50C5\u50C5\u662F\u4F60\u89BA\u5F97\u91CD\
- \u8981\u7684\u8840\u8108{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...not just the bloodlines you deem worthy.{\\r}\r\nDialogue: 0,0:12:32.25,0:12:33.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u505A\u4E86\u4EC0\u9EBC\u4E8B\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What have you done?{\\\
- r}\r\nDialogue: 0,0:12:33.65,0:12:35.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u6709\u4E00\u500B\u5B69\u5B50 \u4F50\u5FB7\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We've had a child,\
- \ Zod.{\\r}\r\nDialogue: 0,0:12:36.95,0:12:38.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u500B\u7537\u5B69{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A boy child.{\\r}\r\nDialogue: 0,0:12:38.59,0:12:41.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u662F\u6C2A\u661F\u5E7E\u767E\u5E74\
- \u4F86\u7B2C\u4E00\u500B\u81EA\u7136\u5206\u5A29\u7684\u5B69\u5B50{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton's first natural\
- \ birth in centuries.{\\r}\r\nDialogue: 0,0:12:42.56,0:12:44.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5C07\u7372\u5F97\u81EA\u7531{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And he will be free.{\\\
- r}\r\nDialogue: 0,0:12:44.76,0:12:47.24,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C7A\u5B9A\u81EA\u5DF1\u547D\u904B\u7684\u81EA\u7531\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Free to forge his\
- \ own destiny.{\\r}\r\nDialogue: 0,0:12:48.10,0:12:49.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80E1\u8AAA\u516B\u9053{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Heresy.{\\r}\r\nDialogue: 0,0:12:51.47,0:12:52.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5B83\u6BC0\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Destroy it.{\\r}\r\nDialogue: 0,0:13:45.62,0:13:46.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u840A\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lara...{\\r}\r\nDialogue: 0,0:13:46.79,0:13:48.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u807D\u6211\u8AAA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...listen to me.{\\r}\r\nDialogue: 0,0:13:48.39,0:13:52.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u662F\u6C2A\u661F\u7684\u672A\
- \u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Codex\
- \ is Krypton's future.{\\r}\r\nDialogue: 0,0:13:52.29,0:13:54.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D6\u6D88\u767C\u5C04{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Abort the launch.{\\r}\r\nDialogue:\
- \ 0,0:14:13.92,0:14:15.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No!{\\\
- r}\r\nDialogue: 0,0:14:45.61,0:14:47.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u840A\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your son, Lara...{\\r}\r\nDialogue: 0,0:14:48.18,0:14:50.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u628A\u4F60\u5011\u7684\u5152\u5B50\
- \u9001\u5230\u54EA\u88CF\u53BB\u4E86\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...where have you sent him?{\\r}\r\nDialogue: 0,0:14:53.59,0:14:55.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u540D\u5B57{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His name...{\\r}\r\nDialogue: 0,0:14:55.59,0:14:56.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5361\u723E{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is Kal...{\\r}\r\nDialogue: 0,0:14:57.36,0:14:59.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u827E\u723E\u4E4B\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...son of El.{\\r}\r\nDialogue: 0,0:15:02.30,0:15:05.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F11\u60F3\u627E\u5230\u4ED6{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And he's beyond your\
- \ reach.{\\r}\r\nDialogue: 0,0:15:15.28,0:15:16.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u90A3\u8258\u98DB\u8239\u6253\u4E0B\
- \u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bring that\
- \ ship down.{\\r}\r\nDialogue: 0,0:15:25.12,0:15:26.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76EE\u6A19\u5DF2\u9396\u5B9A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Target locked.{\\r}\r\nDialogue:\
- \ 0,0:15:38.23,0:15:39.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u653E\u4E0B\u4F60\u5011\u7684\u6B66\u5668{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lay down your weapons.{\\r}\r\nDialogue:\
- \ 0,0:15:39.93,0:15:42.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5011\u5DF2\u7D93\u88AB\u5305\u570D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your forces are surrounded.{\\r}\r\
- \nDialogue: 0,0:15:52.11,0:15:53.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}General Zod...{\\r}\r\nDialogue: 0,0:15:53.82,0:15:56.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u72AF\u4E0B\u4E86\u8B00\u6BBA\u7F6A\
- \u8207\u53DB\u570B\u7F6A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...for the crimes of murder and high treason...{\\r}\r\nDialogue: 0,0:15:56.82,0:16:01.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9577\u8001\u6703\u5224\u8655\u4F60\u548C\
- \u4F60\u7684\u540C\u8B00{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the Council has sentenced you and your fellow insurgents...{\\r}\r\
- \nDialogue: 0,0:16:01.19,0:16:04.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u56DA\u7981\u8089\u8EAB\u4E26\u6D41\u653E300\u5E74{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to three hundred\
- \ cycles of somatic reconditioning.{\\r}\r\nDialogue: 0,0:16:06.16,0:16:07.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EC0\u9EBC\u907A\u8A00\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you have any\
- \ last words?{\\r}\r\nDialogue: 0,0:16:11.27,0:16:12.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u4E0D\u6562\u89AA\u624B\u6BBA\
- \u6211\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ won't kill us yourself!{\\r}\r\nDialogue: 0,0:16:13.70,0:16:15.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6015\u5F04\u9AD2\u4E86\u81EA\u5DF1\u7684\
- \u624B \u6240\u4EE5\u4F60\u5011...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You wouldn't sully your hands! But you'll damn us...{\\\
- r}\r\nDialogue: 0,0:16:16.10,0:16:18.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u628A\u6211\u5011\u6254\u5230\u9ED1\u6D1E\u88CF\u95DC\
- \u4E00\u8F29\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to\
- \ a black hole for eternity!{\\r}\r\nDialogue: 0,0:16:20.34,0:16:21.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55AC\u2022\u827E\u723E\u8AAA\u5F97\u6C92\
- \u932F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El was\
- \ right.{\\r}\r\nDialogue: 0,0:16:21.64,0:16:25.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u662F\u4E00\u7FA4\u8822\u8CA8\
- \ \u6240\u6709\u4EBA\u90FD\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You're a pack of fools, every last one of you.{\\r}\r\nDialogue: 0,0:16:26.21,0:16:27.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And you.{\\r}\r\nDialogue: 0,0:16:29.12,0:16:31.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u89BA\u5F97\u4F60\u7684\u5152\u5B50\
- \u5F88\u5B89\u5168\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You believe your son is safe?{\\r}\r\nDialogue: 0,0:16:32.29,0:16:33.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u6703\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him.{\\\
- r}\r\nDialogue: 0,0:16:34.22,0:16:37.53,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u596A\u56DE\u4F60\u5F9E\u6211\u5011\u624B\u88CF\u6436\
- \u8D70\u7684\u6771\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will reclaim what you have taken from us.{\\r}\r\nDialogue: 0,0:16:39.96,0:16:41.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u6703\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him.{\\\
- r}\r\nDialogue: 0,0:16:42.73,0:16:45.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u6703\u627E\u5230\u4ED6 \u840A\u62C9\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him,\
- \ Lara.{\\r}\r\nDialogue: 0,0:16:47.90,0:16:50.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u6703\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him!{\\\
- r}\r\nDialogue: 0,0:17:00.31,0:17:02.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u554A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Argh!{\\r}\r\nDialogue: 0,0:18:31.67,0:18:35.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u840A\u62C9\u592B\u4EBA \u60A8\u4E0D\u8EB2\
- \u8D77\u4F86\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Lady Lara, shouldn't you find refuge?{\\r}\r\nDialogue: 0,0:18:35.61,0:18:38.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6839\u672C\u7121\u8655\u53EF\u8EB2 \u57FA\
- \u6D1B\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There\
- \ is no refuge, Kelor.{\\r}\r\nDialogue: 0,0:18:39.51,0:18:41.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55AC\u2022\u827E\u723E\u8AAA\u5F97\u5C0D\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El was right.{\\\
- r}\r\nDialogue: 0,0:18:43.92,0:18:45.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C2A\u661F\u7684\u672B\u65E5\u5230\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is the end.{\\r}\r\nDialogue:\
- \ 0,0:18:57.37,0:19:00.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5275\u9020\u4E00\u500B\u6BD4\u9019\u88CF\u597D\u7684\u4E16\u754C\
- \ \u5361\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Make\
- \ a better world than ours, Kal.{\\r}\r\nDialogue: 0,0:20:32.43,0:20:33.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7576\u5FC3\u9EDE \u8822\u8CA8{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Watch it, dumb-ass!{\\r}\r\n\
- Dialogue: 0,0:20:34.20,0:20:37.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E0D\u7559\u5FC3\u5C31\u7B49\u8457\u88AB\u7838\u6210\u8089\
- \u9905\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Keep\
- \ your eyes open or you're gonna get squashed.{\\r}\r\nDialogue: 0,0:20:38.70,0:20:41.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u662F\u5728\u4EC0\u9EBC\u9B3C\
- \u5730\u65B9\u627E\u5230\u4F60\u7684 \u83DC\u9CE5\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where the hell did they find you,\
- \ greenhorn?{\\r}\r\nDialogue: 0,0:20:41.40,0:20:42.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u6211\u5011\u5728\u7A7A\u4E2D\u5F04\
- \u6389\u9019\u500B\u9677\u9631{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Let's get this trap in the air.{\\r}\r\nDialogue: 0,0:20:43.10,0:20:44.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5927\u5BB6\u56FA\u5B9A\u597D\u7532\u677F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Gentlemen, secure\
- \ the deck.{\\r}\r\nDialogue: 0,0:20:44.91,0:20:47.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B63\u897F\u65B9\u5411\u7684\u947D\u4E95\
- \u8655\u6709\u4EBA\u5411\u6211\u5011\u6C42\u6551{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We just got a distress call from a rig due west of\
- \ us.{\\r}\r\nDialogue: 0,0:20:48.14,0:20:49.95,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u56FA\u5B9A\u597D\u7532\u677F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Secure the deck.{\\r}\r\nDialogue:\
- \ 0,0:20:54.15,0:20:55.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8ACB\u6240\u6709\u6C11\u7528\u8239\u96BB\u96E2\u958B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All civilian boats, stand clear.{\\\
- r}\r\nDialogue: 0,0:20:55.95,0:20:58.62,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6D77\u4E0B\u95A5\u9580\u5DF2\u5931\u6548 \u947D\u53F0\
- \u5FEB\u8981\u7206\u70B8\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The sub-sea valves failed and the rig is about to explode.{\\r}\r\n\
- Dialogue: 0,0:20:58.89,0:21:01.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6536\u5230 \u6D77\u5CB8\u8B66\u885B\u968A \u88AB\u56F0\u5728\
- \u88CF\u9762\u7684\u4EBA\u600E\u9EBC\u8FA6\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Roger, Coast Guard. What about the men left inside?{\\\
- r}\r\nDialogue: 0,0:21:01.46,0:21:03.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u5225\u7BA1\u4ED6\u5011\u4E86 \u4ED6\u5011\u6D3B\u4E0D\
- \u4E86 - \u83DC\u9CE5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Forget them. They're dead. - Greenhorn...{\\r}\r\nDialogue:\
- \ 0,0:21:04.06,0:21:06.10,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u628A\u6211\u7684\u671B\u9060\u93E1\u62FF\u4F86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...fetch me my binoculars.{\\r}\r\n\
- Dialogue: 0,0:21:07.63,0:21:08.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u83DC\u9CE5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Greenhorn.{\\r}\r\nDialogue: 0,0:21:17.30,0:21:20.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u5269\u9019\u9EDE\u6C27\u6C23\u4E86\
- \ \u6211\u4E0D\u77E5\u9053\u6211\u5011\u9084\u80FD\u6490\u591A\u4E45{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is the last of the\
- \ oxygen. I don't know how much longer we can hold out.{\\r}\r\nDialogue:\
- \ 0,0:21:30.39,0:21:32.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u88CF\u662F\u6D77\u5CB8\u8B66\u885B\u968A6510{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is Coast Guard 6510.{\\r}\r\n\
- Dialogue: 0,0:21:32.26,0:21:34.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5011\u518D\u67E5\u770B\u4E00\u904D \u7136\u5F8C\u5C31\
- \u96E2\u958B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We'll\
- \ make one more pass then get out.{\\r}\r\nDialogue: 0,0:21:36.76,0:21:38.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u7B49 \u7B49\u7B49 \u6709\u4EBA\u5728\
- \u76F4\u5347\u6A5F\u5347\u964D\u8655{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Wait, wait. I got some guys on the helipad.{\\r}\r\nDialogue:\
- \ 0,0:21:39.13,0:21:39.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u5728\u9019\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Right here!{\\r}\r\nDialogue: 0,0:21:45.27,0:21:47.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u9EDE \u8D70\u554A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, come on! Let's go! Let's\
- \ go!{\\r}\r\nDialogue: 0,0:21:47.33,0:21:49.14,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}- \u5FEB\u8D70 - \u8D70\u554A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Let's go! - Let's go!{\\r}\r\
- \nDialogue: 0,0:21:59.68,0:22:00.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EB\u6700\u5F8C\u90A3\u500B\u4EBA\u4E0A\u4F86{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get that last guy loaded.{\\\
- r}\r\nDialogue: 0,0:22:01.12,0:22:02.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u5F97\u8D70\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have got to go.{\\r}\r\nDialogue: 0,0:22:02.72,0:22:04.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u8D70\u554A \u4F60\u5728\u5E79\u4EC0\
- \u9EBC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey,\
- \ let's go. What are you doing?{\\r}\r\nDialogue: 0,0:22:10.52,0:22:11.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D70 \u8D70{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go! Go!{\\r}\r\nDialogue: 0,0:22:49.53,0:22:52.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u582A\u85A9\u65AF\u5DDE\u662F\u4EC0\u9EBC\
- \u6642\u5019\u8B8A\u6210\u7F8E\u570B\u9818\u571F\u7684\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...when Kansas became a territory?{\\\
- r}\r\nDialogue: 0,0:22:53.77,0:22:54.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:22:56.74,0:22:58.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5728\u807D\u8AB2\u55CE \u514B\u62C9\
- \u514B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are\
- \ you listening, Clark?{\\r}\r\nDialogue: 0,0:23:02.91,0:23:06.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u544A\u8A34\u6211 \u8AB0\u6700\u5148\u5728\
- \u582A\u85A9\u65AF\u5DDE\u5B9A\u5C45{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I asked if you could tell me who first settled Kansas.{\\\
- r}\r\nDialogue: 0,0:23:19.36,0:23:20.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u6C92\u4E8B\u5427 \u514B\u62C9\u514B\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are you all right, Clark?{\\\
- r}\r\nDialogue: 0,0:23:28.97,0:23:30.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:23:31.61,0:23:32.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:23:36.48,0:23:37.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark!{\\r}\r\nDialogue: 0,0:23:41.08,0:23:42.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u51FA\u4F86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark, come out of there.{\\\
- r}\r\nDialogue: 0,0:23:42.88,0:23:44.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5225\u7BA1\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Leave me alone.{\\r}\r\nDialogue: 0,0:23:45.25,0:23:46.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u6211\u5DF2\u7D93\u7D66\
- \u4F60\u5ABD\u5ABD\u6253\u96FB\u8A71\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Clark, I have called your mother.{\\r}\r\nDialogue:\
- \ 0,0:23:48.16,0:23:49.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Clark?{\\r}\r\nDialogue: 0,0:23:51.06,0:23:52.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u554A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Ah!{\\r}\r\nDialogue: 0,0:23:52.33,0:23:53.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4F86\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm here.{\\r}\r\nDialogue: 0,0:23:53.59,0:23:55.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u5BF6\u8C9D \u6211\u662F\
- \u5ABD\u5ABD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark,\
- \ honey, it's Mom.{\\r}\r\nDialogue: 0,0:23:57.97,0:23:59.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u958B\u9580\u597D\u55CE\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Will you open the door?{\\\
- r}\r\nDialogue: 0,0:23:59.27,0:24:01.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4ED6\u5230\u5E95\u6709\u4EC0\u9EBC\u6BDB\u75C5\uFF1F\
- \ - \u4ED6\u5C31\u662F\u500B\u602A\u80CE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- What's wrong with him? - He's such a freak.{\\\
- r}\r\nDialogue: 0,0:24:01.47,0:24:02.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5A18\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Crybaby.{\\r}\r\nDialogue: 0,0:24:02.57,0:24:05.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7236\u6BCD\u751A\u81F3\u4E0D\u8B93\
- \u6211\u8DDF\u4ED6\u73A9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}His parents won't even let him play with other kids.{\\r}\r\nDialogue:\
- \ 0,0:24:05.27,0:24:06.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I know.{\\r}\r\nDialogue: 0,0:24:06.51,0:24:07.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF6\u8C9D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Sweetie.{\\r}\r\nDialogue: 0,0:24:08.51,0:24:10.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u8B93\u6211\u9032\u53BB \u6211\
- \u600E\u9EBC\u5E6B\u4F60\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How can I help you if you won't let me in?{\\r}\r\nDialogue: 0,0:24:10.91,0:24:13.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u500B\u4E16\u754C\u592A\u5927\u4E86\
- \ \u5ABD\u5ABD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ world's too big, Mom.{\\r}\r\nDialogue: 0,0:24:13.48,0:24:15.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u628A\u5B83\u8B8A\u5C0F\u9EDE\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then make it small.{\\\
- r}\r\nDialogue: 0,0:24:17.48,0:24:18.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EA\u8981...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Just, um...{\\r}\r\nDialogue: 0,0:24:21.59,0:24:23.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96C6\u4E2D\u7CBE\u529B\u807D\u6211\u7684\
- \u8072\u97F3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...focus\
- \ on my voice.{\\r}\r\nDialogue: 0,0:24:25.26,0:24:27.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u60F3\u50CF\u6709\u4E00\u5EA7\u5CF6\u5DBC\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Pretend ifs an island...{\\\
- r}\r\nDialogue: 0,0:24:27.36,0:24:29.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B83\u5C31\u5728\u5927\u6D77\u4E4B\u4E2D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...out in the ocean.{\\r}\r\
- \nDialogue: 0,0:24:30.80,0:24:32.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u80FD\u770B\u5230\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you see it?{\\r}\r\nDialogue: 0,0:24:35.80,0:24:36.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u770B\u5230\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I see it.{\\r}\r\nDialogue: 0,0:24:38.17,0:24:40.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u5411\u5B83\u6E38\u904E\u53BB\
- \ \u5BF6\u8C9D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then\
- \ swim towards it, honey.{\\r}\r\nDialogue: 0,0:24:53.45,0:24:55.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u600E\u9EBC\u4E86 \u5ABD\u5ABD\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's wrong with\
- \ me, Mom?{\\r}\r\nDialogue: 0,0:24:57.89,0:24:59.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:24:59.66,0:25:01.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:25:29.82,0:25:31.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u62FF\u5230\u6211\u8981\u7684\u6771\
- \u897F\u4E86\uFF1F - \u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Did you get everything I need? - Yep.{\\r}\r\n\
- Dialogue: 0,0:25:31.93,0:25:33.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5225\u52D5 \u5225\u52D5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hold it, hold it.{\\r}\r\nDialogue: 0,0:26:23.44,0:26:24.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8822\u86CB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hey, ass-wipe.{\\r}\r\nDialogue: 0,0:26:25.55,0:26:27.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u89BA\u5F97\u600E\u6A23\uFF1F\u4F60\
- \u770B\u4E86\u6BD4\u8CFD\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What do you think? You see the game?{\\r}\r\nDialogue:\
- \ 0,0:26:27.45,0:26:29.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u5225\u800D\u4ED6 \u76AE\u7279 - \u4F60\u7B97\u54EA\u6839\u8525\
- \ \u4ED6\u7684\u5973\u670B\u53CB\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Leave him alone, Pete. - What are you, his\
- \ girlfriend?{\\r}\r\nDialogue: 0,0:26:30.22,0:26:31.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u807D\u807D\u4ED6\u600E\u9EBC\
- \u8AAA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I wanna hear\
- \ what he has to say.{\\r}\r\nDialogue: 0,0:26:34.25,0:26:34.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8AAA\u8A71\u554A{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on...{\\r}\r\nDialogue: 0,0:26:35.16,0:26:35.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B28\u74DC{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...dick-splash.{\\r}\r\nDialogue: 0,0:28:16.82,0:28:17.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5152\u5B50\u5C31\u5728\u73FE\u5834\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My son was there.{\\\
- r}\r\nDialogue: 0,0:28:18.06,0:28:20.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u5C31\u5728\u90A3\u8F1B\u6821\u8ECA\u88CF{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He was in the bus.{\\r}\r\
- \nDialogue: 0,0:28:20.53,0:28:23.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u89AA\u773C\u770B\u898B\u514B\u62C9\u514B\u505A\u4E86\
- \u4EC0\u9EBC - \u6211\u77E5\u9053\u4ED6\u770B\u898B\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- He saw what Clark did. - I\
- \ know he did.{\\r}\r\nDialogue: 0,0:28:24.26,0:28:28.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u770B\u5230\u7684\u4E00\u5B9A\u662F\
- ... - \u662F\u4E0A\u5E1D\u7684\u5B89\u6392 \u55AC\u7D0D\u68EE{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm sure what he thought\
- \ he saw was... - Was an act of God, Jonathan.{\\r}\r\nDialogue: 0,0:28:29.34,0:28:31.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5929\u610F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}This was providence.{\\r}\r\nDialogue:\
- \ 0,0:28:35.44,0:28:37.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u89BA\u5F97\u4F60\u9019\u6A23\u8AAA\u6709\u9EDE\u8A87\u5F35\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I think you're blowing\
- \ it out of proportion.{\\r}\r\nDialogue: 0,0:28:37.74,0:28:41.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6C92\u8A87\u5F35 \u62C9\u5A1C\u4E5F\
- \u770B\u898B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No,\
- \ I'm not. Lana saw it too.{\\r}\r\nDialogue: 0,0:28:41.25,0:28:42.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u500B\u53EB\u798F\u7279\u66FC\u7684\
- \u7537\u5B69\u4E5F\u770B\u898B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And the Fordham boy.{\\r}\r\nDialogue: 0,0:28:42.52,0:28:43.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u4E5F\u4E0D\u662F\u7B2C\u4E00\u6B21\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This isn't the first\
- \ time...{\\r}\r\nDialogue: 0,0:28:43.95,0:28:46.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B\u505A\u51FA\u9019\u7A2E\
- \u4E8B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...Clark's\
- \ done something like this.{\\r}\r\nDialogue: 0,0:29:01.24,0:29:03.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53EA\u662F\u60F3\u5E6B\u5FD9{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I just wanted to help.{\\\
- r}\r\nDialogue: 0,0:29:03.54,0:29:06.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053 \u4F46\u6211\u5011\u8AC7\u904E\u9019\
- \u500B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know\
- \ you did, but we talked about this.{\\r}\r\nDialogue: 0,0:29:06.54,0:29:07.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u5427\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Right?{\\r}\r\nDialogue: 0,0:29:08.28,0:29:10.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u5427 \u6211\u5011\u8AC7\u904E\u4E86\
- \ \u4F60...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Right?\
- \ We talked about this. You have...{\\r}\r\nDialogue: 0,0:29:11.48,0:29:14.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u4F60\u4E0D\u80FD\u8B93\
- \u5225\u4EBA\u77E5\u9053\u4F60\u7684\u9019\u4E00\u9762{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark, you have to keep this side\
- \ of yourself a secret.{\\r}\r\nDialogue: 0,0:29:15.38,0:29:19.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u6211\u8A72\u600E\u9EBC\u8FA6\uFF1F\
- \u770B\u8457\u4ED6\u5011\u6B7B\u6389\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What was I supposed to do? Just let them die?{\\\
- r}\r\nDialogue: 0,0:29:24.06,0:29:25.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E5F\u8A31\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Maybe.{\\r}\r\nDialogue: 0,0:29:27.39,0:29:29.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5371\u5728\u65E6\u5915\u7684\u4E0D\u53EA\
- \u662F\u6211\u5011\u7684\u6027\u547D \u514B\u62C9\u514B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's more at stake here than just\
- \ our lives, Clark,{\\r}\r\nDialogue: 0,0:29:29.76,0:29:31.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E5F\u4E0D\u53EA\u662F\u6211\u5011\u5468\
- \u570D\u4EBA\u7684\u6027\u547D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}or the lives of those around us.{\\r}\r\nDialogue: 0,0:29:34.33,0:29:35.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u9019\u500B\u4E16\u754C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When the world...{\\\
- r}\r\nDialogue: 0,0:29:36.67,0:29:40.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u77E5\u9053\u4E86\u4F60\u7684\u80FD\u529B \u4E00\u5207\
- \u90FD\u5C07\u6539\u8B8A \u5305\u62EC\u6211\u5011\u7684...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When the world finds out what you\
- \ can do it's gonna change everything. Our...{\\r}\r\nDialogue: 0,0:29:40.94,0:29:43.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u7684\u4FE1\u4EF0...{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our beliefs, our notions\
- \ of...{\\r}\r\nDialogue: 0,0:29:43.78,0:29:46.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u4EBA\u985E\u7684\u6982\u5FF5 \u4E00\
- \u5207{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...what it\
- \ means to be human. Everything.{\\r}\r\nDialogue: 0,0:29:46.75,0:29:49.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u770B\u5230\u4E86\u76AE\u7279\u5ABD\
- \u5ABD\u7684\u53CD\u61C9\u5427\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You saw how Pete's mom reacted, right?{\\r}\r\nDialogue:\
- \ 0,0:29:49.78,0:29:51.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5979\u5F88\u5BB3\u6015 \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}She was scared, Clark.{\\r}\r\nDialogue:\
- \ 0,0:29:53.12,0:29:53.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u70BA\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Why?{\\r}\r\nDialogue: 0,0:29:55.82,0:29:58.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EBA\u5011\u5BB3\u6015\u4ED6\u5011\u4E0D\
- \u77AD\u89E3\u7684\u6771\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}People are afraid of what they don't understand.{\\r}\r\nDialogue: 0,0:29:58.93,0:29:59.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5979\u8AAA\u5F97\u5C0D\u55CE\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is she right?{\\r}\r\
- \nDialogue: 0,0:30:01.96,0:30:04.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4E0A\u5E1D\u628A\u6211\u8B8A\u6210\u9019\u6A23\
- \u7684\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Did\
- \ God do this to me?{\\r}\r\nDialogue: 0,0:30:05.37,0:30:06.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u544A\u8A34\u6211{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Tell me.{\\r}\r\nDialogue: 0,0:30:21.65,0:30:23.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u6211\u5011\u5728\u9019\u500B\
- \u6771\u897F\u88CF\u627E\u5230\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We found you in this.{\\r}\r\nDialogue: 0,0:30:25.29,0:30:28.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4EE5\u70BA\u653F\u5E9C\u4E00\
- \u5B9A\u6703\u4F86\u627E\u6211\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We were sure the government was gonna show up on our doorstep...{\\\
- r}\r\nDialogue: 0,0:30:28.49,0:30:30.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u4E00\u76F4\u6C92\u4EBA\u4F86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but no one ever came.{\\r}\r\n\
- Dialogue: 0,0:30:44.97,0:30:47.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u9019\u500B\u548C\u4F60\u4E00\u6A23 \u4E5F\u662F\u5728\u88CF\
- \u9762\u627E\u5230\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This was in that chamber with you.{\\r}\r\nDialogue: 0,0:30:49.18,0:30:52.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u628A\u5B83\u62FF\u7D66\u582A\u85A9\
- \u65AF\u5DDE\u7684\u4E00\u500B\u51B6\u91D1\u5B78\u5BB6\u770B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I took it to a metallurgist at Kansas\
- \ State.{\\r}\r\nDialogue: 0,0:30:52.38,0:30:54.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u8AAA \u88FD\u6210\u5B83\u7684\u6750\
- \u6599\u751A\u81F3...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}He said whatever it was made from didn't even...{\\r}\r\nDialogue: 0,0:30:55.92,0:30:58.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u751A\u81F3\u4E0D\u5B58\u5728\u65BC\u5143\
- \u7D20\u9031\u671F\u8868\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Didn't even exist on the periodic table.{\\r}\r\nDialogue: 0,0:31:00.65,0:31:01.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u610F\u601D\u662F\u8AAA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's another way of saying...{\\\
- r}\r\nDialogue: 0,0:31:02.06,0:31:04.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B83\u4E0D\u4F86\u81EA\u65BC\u9019\u500B\u4E16\u754C\
- \ \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...that\
- \ it's not from this world, Clark.{\\r}\r\nDialogue: 0,0:31:06.43,0:31:07.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E5F\u4E00\u6A23{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And neither are you.{\\r}\r\nDialogue:\
- \ 0,0:31:10.40,0:31:11.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C31\u662F\u7B54\u6848 \u5152\u5B50{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're the answer, son.{\\r}\r\nDialogue:\
- \ 0,0:31:12.20,0:31:15.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\"\u4EBA\u985E\u662F\u5426\u5B64\u7368\u5730\u5B58\u5728\u65BC\u5B87\
- \u5B99\u4E2D\"\u7684\u7B54\u6848{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You're the answer to \"Are we alone in the universe?\"{\\r}\r\nDialogue:\
- \ 0,0:31:16.74,0:31:18.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u60F3\u7576\u9019\u500B\u7B54\u6848{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't wanna be.{\\r}\r\nDialogue:\
- \ 0,0:31:18.41,0:31:20.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u602A\u4F60 \u5152\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And I don't blame you, son.{\\r}\r\nDialogue: 0,0:31:20.87,0:31:23.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u822C\u4EBA\u96E3\u4EE5\u80CC\u8CA0\
- \u9019\u7A2E\u91CD\u64D4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It'd be a huge burden for anyone to bear.{\\r}\r\nDialogue: 0,0:31:23.84,0:31:27.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u662F\u4E00\u822C\u4EBA\
- \ \u514B\u62C9\u514B \u800C\u4E14\u6211\u5FC5\u9808\u76F8\u4FE1\u4F60{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you're not just anyone,\
- \ Clark, and I have to believe that you were...{\\r}\r\nDialogue: 0,0:31:28.42,0:31:30.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u88AB\u9001\u4F86\u9019\u88CF\u662F\
- \u6709\u539F\u56E0\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}That you were sent here for a reason.{\\r}\r\nDialogue: 0,0:31:31.52,0:31:34.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6240\u7D93\u6B77\u7684\u9019\u4E9B\
- \u6539\u8B8A \u7D42\u6709\u4E00\u5929...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}All these changes that you're going through, one\
- \ day...{\\r}\r\nDialogue: 0,0:31:34.35,0:31:37.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6703\u89BA\u5F97\u5B83\u5011\u662F\
- \u4E0A\u5E1D\u7684\u6069\u8CDC \u7576\u90A3\u4E00\u5929\u5230\u4F86...{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}One day you're gonna\
- \ think of them as a blessing. When that day comes...{\\r}\r\nDialogue: 0,0:31:37.92,0:31:39.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u5FC5\u9808\u4F5C\u51FA\u9078\
- \u64C7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you have\
- \ to make a choice.{\\r}\r\nDialogue: 0,0:31:39.59,0:31:44.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5426\u8981\u5728\u4EBA\u985E\u9762\
- \u524D\u9A55\u50B2\u5730\u633A\u8EAB\u800C\u51FA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}A choice of whether to stand proud in front of the\
- \ human race or not.{\\r}\r\nDialogue: 0,0:31:45.37,0:31:48.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5C31\u4E0D\u80FD\u7E7C\u7E8C\u5047\
- \u88DD\u662F\u60A8\u7684\u5152\u5B50\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Can't I just keep pretending I'm your son?{\\r}\r\
- \nDialogue: 0,0:31:48.74,0:31:50.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C31\u662F\u6211\u5152\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are my son.{\\r}\r\nDialogue:\
- \ 0,0:31:55.11,0:31:57.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F46\u5728\u67D0\u500B\u5730\u65B9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}But somewhere out there you've...{\\r}\r\nDialogue:\
- \ 0,0:31:57.81,0:32:01.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u9084\u6709\u53E6\u5916\u4E00\u500B\u7236\u89AA \u4ED6\u7D66\
- \u4E86\u4F60\u53E6\u5916\u4E00\u500B\u540D\u5B57{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You have another father too, who gave you another\
- \ name.{\\r}\r\nDialogue: 0,0:32:04.12,0:32:07.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51FA\u65BC\u67D0\u7A2E\u539F\u56E0 \u4ED6\
- \u628A\u4F60\u9001\u5230\u4E86\u9019\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And he sent you here for a reason, Clark.{\\r}\r\n\
- Dialogue: 0,0:32:08.76,0:32:12.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5C31\u7B97\u8981\u82B1\u4E00\u8F29\u5B50\u7684\u6642\u9593\
- \ \u4F60\u4E5F\u8981\u70BA\u81EA\u5DF1...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And even if it takes you the rest of your life, you\
- \ owe it to yourself...{\\r}\r\nDialogue: 0,0:32:12.66,0:32:14.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u627E\u5230\u90A3\u500B\u539F\u56E0{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to find out what\
- \ that reason is.{\\r}\r\nDialogue: 0,0:32:23.00,0:32:26.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u88AB\u72C2\u71B1\u7684\u617E\u671B\u6240\
- \u675F\u7E1B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bound\
- \ by wild desire{\\r}\r\nDialogue: 0,0:32:27.07,0:32:30.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6389\u9032\u4E86\u706B\u5708{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I fell into a ring\
- \ of fire{\\r}\r\nDialogue: 0,0:32:30.28,0:32:32.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u4E00\u4E0B \u4F60\u4F86\u9019\u5152\
- \u4E0D\u662F\u70BA\u4E86\u935B\u7149\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Wait a second. Aren't you here for the exercise?{\\\
- r}\r\nDialogue: 0,0:32:32.68,0:32:34.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u90A3\u662F\u5728\u6539\u8B8A\u8A08\u5283{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No, there was a change\
- \ in the plans.{\\r}\r\nDialogue: 0,0:32:34.61,0:32:37.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u807D\u8AAA\u6709\u4EBA\u5728\u57C3\u723E\
- \u65AF\u7C73\u723E\u627E\u5230\u4E9B\u5947\u602A\u7684\u6771\u897F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Somebody found something\
- \ strange on Ellesmere.{\\r}\r\nDialogue: 0,0:32:37.25,0:32:38.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7A7A\u4E2D\u5075\u5BDF\u6A5F\u5DF2\u7D93\
- \u5728\u90A3\u88CF\u98DB\u4E86\u4E00\u500B\u661F\u671F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Aircom's making runs out there all\
- \ week.{\\r}\r\nDialogue: 0,0:32:38.91,0:32:39.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u500B\u8001\u9F20\u6D1E\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That rat hole?{\\\
- r}\r\nDialogue: 0,0:32:40.15,0:32:42.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4F60\u958B\u73A9\u7B11\u7684\u5427 - \u4E0D\u53EF\
- \u601D\u8B70 \u5C0D\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- You gotta be kidding me. - I know. It's crazy.{\\r}\r\nDialogue:\
- \ 0,0:32:42.49,0:32:44.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8A31\u591A\u7F8E\u570B\u4EBA\u4E5F\u53BB\u4E86\u90A3\u88CF{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Americans are there\
- \ too, lots of them.{\\r}\r\nDialogue: 0,0:32:44.46,0:32:47.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9084\u6709\u5225\u7684\u55CE\uFF1F\u4ED6\
- \u5011\u7BA1\u5B83\u53EB\u7570\u5E38\u7269\u9AD4{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Anything else? They're calling it an anomalous object.{\\\
- r}\r\nDialogue: 0,0:32:47.29,0:32:49.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E5F\u4E0D\u77E5\u9053\u4EC0\u9EBC\u610F\u601D -\
- \ \u8D70\u958B \u62C9\u5FB7\u6D1B \u6211\u8A8D\u771F\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Whatever that means. - Back\
- \ off, Ludlow. I'm serious.{\\r}\r\nDialogue: 0,0:32:49.80,0:32:51.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5225\u4ECB \u514B\u9E97\u831C - \u4F4F\
- \u624B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Oh, come\
- \ on, Chrissy. - Knock it off.{\\r}\r\nDialogue: 0,0:32:51.83,0:32:53.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5750\u4E0B - \u653E\u6211\u8D70{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Sit down. -\
- \ Let me go.{\\r}\r\nDialogue: 0,0:32:53.50,0:32:55.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u653E\u958B\u5979 \u54E5\u5011{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey. Leave her alone, man.{\\\
- r}\r\nDialogue: 0,0:32:59.51,0:33:01.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u653E\u53C8\u600E\u6A23 \u786C\u6F22\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or what, tough guy?{\\\
- r}\r\nDialogue: 0,0:33:01.78,0:33:05.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u653E\u5C31\u53EA\u80FD\u8ACB\u4F60\u96E2\u958B\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or I'm gonna\
- \ have to ask you to leave.{\\r}\r\nDialogue: 0,0:33:06.38,0:33:09.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u89BA\u5F97\u6211\u60F3\u8D70\u7684\
- \u6642\u5019\u624D\u6703\u8D70{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I think I'll probably just leave when I'm good and ready.{\\r}\r\nDialogue:\
- \ 0,0:33:19.39,0:33:21.07,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F86\u52C1\u4E86\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Oh, there he is.{\\r}\r\nDialogue: 0,0:33:28.37,0:33:30.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u72AF\u4E0D\u4E0A \u89AA\u611B\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's not worth it,\
- \ sweetie.{\\r}\r\nDialogue: 0,0:33:38.51,0:33:40.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6DF7\u86CB \u5225\u5FD8\u4E86\u4F60\u7684\
- \u5C0F\u8CBB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey,\
- \ asshole, don't forget your tip.{\\r}\r\nDialogue: 0,0:33:43.05,0:33:44.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53BB\u5427{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Strike.{\\r}\r\nDialogue: 0,0:34:35.40,0:34:36.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B1D\u8B1D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thanks.{\\r}\r\nDialogue: 0,0:34:37.64,0:34:38.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55E8{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hi.{\\r}\r\nDialogue: 0,0:34:39.11,0:34:40.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u84EE\u6069\u5C0F\u59D0 \u4F60\u597D\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane.\
- \ How you doing?{\\r}\r\nDialogue: 0,0:34:41.07,0:34:43.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u597D - \u6211\u662F\u5091\u5FB7\
- \u2022\u5C24\u73ED\u514B\u65AF \u4F86\u81EA\u5317\u6975\u8CA8\u904B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Good. - Jed Eubanks,\
- \ Arctic Cargo.{\\r}\r\nDialogue: 0,0:34:43.54,0:34:45.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u96E2\u99D0\u5730\u6709\u591A\u9060\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How far to\
- \ the station?{\\r}\r\nDialogue: 0,0:34:46.25,0:34:49.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5BBF\u71DF\u5730\u5C31\u5728\u4E0A\u9762\
- \ \u6211\u966A\u4F60\u8D70\u904E\u53BB - \u592A\u597D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Camp's just over the rise. I'll\
- \ walk you over. - Great.{\\r}\r\nDialogue: 0,0:34:49.58,0:34:51.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55AC\u53EF\u4EE5\u5E6B\u4F60\u62FF\u5305\
- \ \u55AC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Joe can\
- \ take your bags. Joe.{\\r}\r\nDialogue: 0,0:34:52.05,0:34:53.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F86\u5E6B\u5E6B\u5FD9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help her out.{\\r}\r\nDialogue: 0,0:34:53.55,0:34:56.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0F\u5FC3\u9EDE \u90A3\u4E9B\u6771\u897F\
- \u5F88\u91CD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Careful\
- \ with those. They're heavy.{\\r}\r\nDialogue: 0,0:34:58.49,0:35:00.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5F97\u627F\u8A8D \u84EE\u6069\u5C0F\
- \u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I gotta confess,\
- \ Miss Lane...{\\r}\r\nDialogue: 0,0:35:00.39,0:35:03.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u300A\u661F\u7403\u65E5\
- \u5831\u300B\u7684\u5FE0\u5BE6\u89C0\u773E{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...I'm not a fan of the Daily Planet.{\\r}\r\nDialogue:\
- \ 0,0:35:03.63,0:35:07.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F46\u4F60\u6F5B\u5165\u7B2C\u4E00\u5E2B\u6642\u5BEB\u7684\u90A3\
- \u4E9B\u6587\u7AE0\u90FD...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But those pieces you wrote when you were embedded with the 1st Division\
- \ were...{\\r}\r\nDialogue: 0,0:35:07.83,0:35:09.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u6211\u5370\u8C61\u5341\u5206\u6DF1\
- \u523B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, they\
- \ were pretty impressive.{\\r}\r\nDialogue: 0,0:35:09.94,0:35:14.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u80FD\u8AAA\u4EC0\u9EBC\u5462\uFF1F\
- \u4E0D\u7A7F\u8ECD\u670D\u7684\u6642\u5019\u6211\u5C31\u5F97\u5BEB\u5C08\u6B04\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, what can I\
- \ say? I get writer's block if I'm not wearing a flak jacket.{\\r}\r\nDialogue:\
- \ 0,0:35:19.61,0:35:20.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u84EE\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Miss Lane.{\\r}\r\nDialogue: 0,0:35:20.85,0:35:23.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u7F8E\u570B\u5317\u65B9\u53F8\
- \u4EE4\u90E8\u7684\u54C8\u8FEA\u4E0A\u6821 {\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm Colonel Hardy, U.S. Northcom. {\\r}\r\nDialogue:\
- \ 0,0:35:23.00,0:35:24.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u4F4D\u662F\u9AD8\u7D1A\u7814\u7A76\u8A08\u5283\u5C40\u7684\
- \u57C3\u7C73\u723E\u535A\u58EB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Dr. Emil Hamilton from DARPA.{\\r}\r\nDialogue: 0,0:35:25.12,0:35:26.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u4F86\u65E9\u4E86 - \u55E8{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- You're early. \
- \ - Hi.{\\r}\r\nDialogue: 0,0:35:26.52,0:35:28.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4EE5\u70BA\u4F60\u660E\u5929\
- \u624D\u5230{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We were\
- \ expecting you tomorrow.{\\r}\r\nDialogue: 0,0:35:28.25,0:35:30.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u6211\u624D\u4ECA\u5929\u4F86\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Which is why\
- \ I showed up today.{\\r}\r\nDialogue: 0,0:35:31.36,0:35:33.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u6709\u53E5\u8A71\u5F97\u8AAA\
- \u5728\u524D\u982D \u597D\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Look, let's get one thing straight, guys, okay?{\\r}\r\n\
- Dialogue: 0,0:35:33.79,0:35:35.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5728\u9019\u7684\u552F\u4E00\u539F\u56E0\u662F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The only reason I'm here\
- \ is{\\r}\r\nDialogue: 0,0:35:35.01,0:35:36.64,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u6211\u5011\u5728\u52A0\u62FF\u5927\u570B\u5883\
- \u5167\u53D7\u7406\u4E0A\u8A34\u7684\u6CD5\u5EAD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}because we're on Canadian soil...{\\r}\r\nDialogue:\
- \ 0,0:35:36.86,0:35:40.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u99C1\u56DE\u4E86\u4F60\u5011\u8D95\u6211\u8D70\u7684\u7981\u4EE4\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and the appellate\
- \ court overruled your injunction to keep me away.{\\r}\r\nDialogue: 0,0:35:40.53,0:35:42.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u9EBC \u4F60\u5982\u679C\u73A9\u86CB\
- \u73A9\u5920\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So\
- \ if we're done measuring dicks...{\\r}\r\nDialogue: 0,0:35:42.94,0:35:45.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80FD\u6D3E\u4EBA\u5E36\u6211\u770B\u770B\
- \u4F60\u5011\u7684\u767C\u73FE\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...can you have your people show me what you found?{\\\
- r}\r\nDialogue: 0,0:35:47.34,0:35:50.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7F8E\u570B\u822A\u7A7A\u822A\u5929\u5C40\u7684\u7DCA\
- \u6025\u6551\u63F4\u885B\u661F\u9996\u5148\u767C\u73FE\u7570\u5E38{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}NASA's EOS satellites pinged\
- \ the anomaly first.{\\r}\r\nDialogue: 0,0:35:50.71,0:35:53.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51B0\u67B6\u7684\u56DE\u8072\u63A2\u6E2C\
- \u986F\u793A\u5F88\u6DF7\u4E82{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The ice shelf plays hell on the echo soundings.{\\r}\r\nDialogue: 0,0:35:53.45,0:35:55.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u90A3\u88CF\u7D55\u5C0D\u6709\u6771\
- \u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But there's\
- \ something there.{\\r}\r\nDialogue: 0,0:35:55.30,0:35:57.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8AAA\u4E0D\u5B9A\u662F\u8607\u806F\u6642\
- \u4EE3\u7684\u6F5B\u8247\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3} A submarine, maybe? Soviet-era?{\\r}\r\nDialogue: 0,0:35:57.05,0:35:58.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u4E00\u5B9A \u90A3\u73A9\u610F\u4E09\
- \u767E\u7C73\u9577{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Doubtful.\
- \ That's 300 meters.{\\r}\r\nDialogue: 0,0:35:58.89,0:36:01.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BD4\u6211\u5011\u90A3\u6642\u5019\u80FD\
- \u5EFA\u51FA\u4F86\u7684\u6771\u897F\u5927\u591A\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Considerably larger than anything\
- \ we know they built back then.{\\r}\r\nDialogue: 0,0:36:02.12,0:36:03.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u662F\u8A6D\u7570\u7684\u5730\u65B9\
- \u5728\u9019{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But\
- \ herds the spooky pan.{\\r}\r\nDialogue: 0,0:36:04.56,0:36:07.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u6771\u897F\u5468\u570D\u8986\u84CB\
- \u7684\u51B0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ ice surrounding the object...{\\r}\r\nDialogue: 0,0:36:07.29,0:36:10.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5927\u6982\u5728\u4E0A\u9762\u6709\u5169\
- \u842C\u5E74\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...it's\
- \ nearly twenty thousand years old.{\\r}\r\nDialogue: 0,0:36:11.83,0:36:12.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u84EE\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane?{\\r}\r\nDialogue: 0,0:36:14.03,0:36:15.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5225\u4E82\u8D70 \u9019\u88CF\u5230\u4E86\
- \u534A\u591C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Try\
- \ not to wander.{\\r}\r\nDialogue: 0,0:36:15.54,0:36:18.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6EAB\u5EA6\u6703\u964D\u5230\u96F6\u4E0B\
- 40\u5EA6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Temperatures\
- \ drop to minus 40 at night around here.{\\r}\r\nDialogue: 0,0:36:18.87,0:36:21.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6625\u5929\u904E\u5B8C\u4E86\u624D\u80FD\
- \u627E\u5230\u4F60\u7684\u5C4D\u9AD4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Wouldn't find your body till after spring.{\\r}\r\nDialogue:\
- \ 0,0:36:24.14,0:36:25.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u5C31\u9019\u6A23\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And there you go.{\\r}\r\nDialogue: 0,0:36:29.22,0:36:30.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u89E3\u624B\u600E\u9EBC\u8FA6\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What if I\
- \ need to tinkle?{\\r}\r\nDialogue: 0,0:36:31.38,0:36:33.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u89D2\u843D\u88CF\u6709\u500B\u6876{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's a bucket in\
- \ the corner.{\\r}\r\nDialogue: 0,0:37:07.22,0:37:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5230\u5E95\u8981\u53BB\u54EA\u5152\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where the\
- \ hell are you going?{\\r}\r\nDialogue: 0,0:39:18.72,0:39:20.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u597D\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hello?{\\r}\r\nDialogue: 0,0:40:55.58,0:40:59.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u4E8B\u4E86 \u6C92\u4E8B\u4E86 \u6C92\
- \u4E8B\u4E86 \u6C92\u4E8B\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's all right, it's all right, it's all right. It's all right.{\\r}\r\
- \nDialogue: 0,0:41:13.00,0:41:14.88,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5167\u51FA\u8840\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're hemorrhaging internally...{\\r}\r\
- \nDialogue: 0,0:41:15.13,0:41:17.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8981\u662F\u73FE\u5728\u6211\u4E0D\u6B62\u8840{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and if I don't cauterize\
- \ this bleed...{\\r}\r\nDialogue: 0,0:41:18.67,0:41:19.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u9EBC\u80FD\u2026\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How can...?{\\r}\r\nDialogue:\
- \ 0,0:41:19.61,0:41:22.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u6709\u5E38\u4EBA\u6C92\u6709\u7684\u80FD\u529B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can do things that other\
- \ people can't.{\\r}\r\nDialogue: 0,0:41:23.14,0:41:24.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6293\u4F4F\u6211\u7684\u624B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Now hold my hand.{\\r}\r\n\
- Dialogue: 0,0:41:25.11,0:41:26.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6703\u75BC\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This is gonna hurt.{\\r}\r\nDialogue: 0,0:42:28.37,0:42:30.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u54C8\u8FEA\u4E0A\u6821\u548C\u4ED6\u7684\
- \u5718\u968A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What\
- \ Colonel Hardy and his team surmised...{\\r}\r\nDialogue: 0,0:42:30.74,0:42:32.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u731C\u6E2C\u9019\u6703\u662F\u4E00\u8258\
- \u8607\u806F\u6642\u4EE3\u7684\u6F5B\u8247{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...was a Soviet-era submarine...{\\r}\r\nDialogue:\
- \ 0,0:42:32.51,0:42:34.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5B83\u7684\u771F\u9762\u76EE\u537B\u66F4\u52A0\u5947\u7279{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...was actually something\
- \ much more exotic.{\\r}\r\nDialogue: 0,0:42:35.21,0:42:39.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5468\u570D\u51B0\u5B54\u7684\u540C\u4F4D\
- \u7D20\u5206\u6790\u8868\u660E...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}An isotope analysis of the surrounding ice bores suggests that an object...{\\\
- r}\r\nDialogue: 0,0:42:39.29,0:42:43.13,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8A72\u7269\u9AD4\u5DF2\u88AB\u56F0\u65BC\u51B0\u5DDD\
- \u4E4B\u4E2D\u8D85\u904E\u4E00\u842C\u516B\u5343\u5E74{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...had been trapped in the glacier\
- \ for over 18,000 years.{\\r}\r\nDialogue: 0,0:42:43.39,0:42:44.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u6551\u6211\u7684\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}As for my rescuer?{\\r}\r\n\
- Dialogue: 0,0:42:45.19,0:42:47.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5728\u8A72\u7269\u9AD4\u8D77\u98DB\u7684\u540C\u6642\u6D88\
- \u5931\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He disappeared\
- \ during the object's departure...{\\r}\r\nDialogue: 0,0:42:47.96,0:42:50.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80CC\u666F\u8ABF\u67E5\u767C\u73FE \u4ED6\
- \u7684\u5DE5\u4F5C\u6B77\u53F2...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A background check revealed that his work history...{\\r}\r\nDialogue:\
- \ 0,0:42:50.60,0:42:52.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u548C\u8EAB\u4EFD\u5747\u70BA\u507D\u9020{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and identity had been falsified.{\\\
- r}\r\nDialogue: 0,0:42:52.93,0:42:54.81,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u95DC\u65BC\u6551\u6211\u7684\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The questions raised by my rescuer's...{\\\
- r}\r\nDialogue: 0,0:42:55.07,0:42:56.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B58\u5728\u8207\u5426\u7684\u8003\u91CF\u78BA\u5BE6\
- \u9A5A\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...existence\
- \ are frightening to contemplate...{\\r}\r\nDialogue: 0,0:42:57.14,0:43:00.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E5F\u77E5\u9053\u81EA\u5DF1\
- \u6240\u898B\u5C6C\u5BE6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...but I also know what I saw.{\\r}\r\nDialogue: 0,0:43:00.71,0:43:03.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u6B64\u6211\u5F97\u51FA\u4E86\u4E00\
- \u500B\u5FC5\u7136\u7684\u7D50\u8AD6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}\"And I have arrived at the inescapable conclusion...{\\\
- r}\r\nDialogue: 0,0:43:03.54,0:43:05.55,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5373\u8A72\u7269\u9AD4\u8207\u5B83\u7684\u4E58\u5750\
- \u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...that the\
- \ object and its occupant...{\\r}\r\nDialogue: 0,0:43:05.78,0:43:08.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E26\u975E\u5730\u7403\u7522\u7269{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...did not originate\
- \ on Earth.\"{\\r}\r\nDialogue: 0,0:43:09.45,0:43:12.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u6A23\u6C92\u6CD5\u4E0A\u5831 \u88CF\
- \u9762\u53EF\u80FD\u6709\u4E00\u534A\u662F\u4F60\u7684\u5E7B\u89BA{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't print this, Lois.\
- \ You might have hallucinated half of it.{\\r}\r\nDialogue: 0,0:43:12.99,0:43:15.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u5E73\u6C11\u627F\u5305\u5546\u8B49\
- \u5BE6\u4E86\u6211\u7684\u6545\u4E8B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What about the contractors who corroborated my story?{\\\
- r}\r\nDialogue: 0,0:43:15.98,0:43:18.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E94\u89D2\u5927\u6A13\u5426\u8A8D\u6709\u8239\u7684\
- \u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ Pentagon is denying that there was a ship.{\\r}\r\nDialogue: 0,0:43:18.76,0:43:20.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u7576\u7136\u5426\u8A8D \u4ED6\
- \u5011\u5C31\u8A72\u5426\u8A8D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Of course they are. They're supposed to.{\\r}\r\nDialogue: 0,0:43:20.83,0:43:22.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u70BA\u4ED6\u5011\u662F\u4E94\u89D2\
- \u5927\u6A13{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ the Pentagon.{\\r}\r\nDialogue: 0,0:43:22.60,0:43:24.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F69\u88CF \u62DC\u8A17 \u6211\u5011\u8AAA\
- \u7684\u53EF\u662F\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Perry,come on, it's me we're talking about.{\\r}\r\nDialogue: 0,0:43:24.50,0:43:27.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u662F\u4E00\u500B\u666E\u5229\u7B56\
- \u734E\u7372\u734E\u8A18\u8005 - \u90A3\u5C31\u6709\u9EDE\u540D\u8A18\u8005\
- \u6A23{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm a Pulitzer\
- \ Prize-winning reporter. - Then act like it.{\\r}\r\nDialogue: 0,0:43:27.43,0:43:29.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4E0D\u5831\u51FA\u53BB\u6211\u5C31\u8FAD\
- \u8077 - \u8D70\u4E0D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Print it or I walk. - You can't.{\\r}\r\nDialogue: 0,0:43:29.80,0:43:30.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7C3D\u4E86\u5408\u540C\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're under contract.{\\\
- r}\r\nDialogue: 0,0:43:33.31,0:43:37.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u6703\u5831\u9053\u5916\u661F\u4EBA\u96B1\
- \u85CF\u65BC\u5C0B\u5E38\u4EBA\u4E4B\u4E2D\u7684\u6545\u4E8B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm not running a story about aliens\
- \ walking among us.{\\r}\r\nDialogue: 0,0:43:43.62,0:43:45.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7D55\u5C0D\u4E0D\u6703{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never gonna happen.{\\r}\r\nDialogue:\
- \ 0,0:43:48.45,0:43:50.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u4F4D\u5973\u58EB\u7684\u8607\u683C\u862D\u5A01\u58EB\u5FCC\
- \u7D14\u98F2{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ a Scotch, straight-up, for the lady.{\\r}\r\nDialogue: 0,0:43:51.09,0:43:52.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u73FE\u5728\u5C31\u767C\u539F\u6587\
- \u7D66\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ sending you the article.{\\r}\r\nDialogue: 0,0:43:52.63,0:43:55.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u7DE8\u8F2F\u4E0D\u80AF\u5831\
- \ \u4F46\u5982\u679C\u78B0\u5DE7\u5728\u7DB2\u4E0A\u6D29\u9732\u4E86\u7684\
- \u8A71...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My editor\
- \ won't print it, but if it leaked online...{\\r}\r\nDialogue: 0,0:43:55.33,0:43:56.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u61C2\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Got it.{\\r}\r\nDialogue: 0,0:43:56.86,0:43:59.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u662F\u66FE\u7D93\u628A\
- \u6211\u7684\u7DB2\u7AD9\u5F62\u5BB9\u70BA...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}But didn't you once describe my site...{\\r}\r\n\
- Dialogue: 0,0:43:59.53,0:44:02.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6EFF\u6EA2\u8B0A\u8A00\u7684\u6BD2\u7624\u55CE\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...as a creeping cancer\
- \ of falsehoods?{\\r}\r\nDialogue: 0,0:44:02.94,0:44:06.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u9084\u9019\u9EBC\u8A8D\u70BA \u4F46\
- \u6211\u60F3\u8B93\u9019\u500B\u6545\u4E8B\u898B\u5149{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I stand by my words, Woodburn, but\
- \ I want this story out there.{\\r}\r\nDialogue: 0,0:44:06.53,0:44:07.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u70BA\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why?{\\r}\r\nDialogue: 0,0:44:07.97,0:44:11.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u70BA\u6211\u60F3\u8B93\u6211\u7684\
- \u795E\u79D8\u7537\u5B50\u77E5\u9053\u6211\u77E5\u9053\u771F\u76F8{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Because I want my mystery\
- \ man to know I know the truth.{\\r}\r\nDialogue: 0,0:44:25.66,0:44:27.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u905E\u6B78\u8A3A\u65B7\u5B8C\u6210{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Recursive diagnostics\
- \ complete...{\\r}\r\nDialogue: 0,0:44:28.46,0:44:30.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0E\u793A\u5F71\u50CF\u5DF2\u6388\u6B0A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guiding presence\
- \ authenticated.{\\r}\r\nDialogue: 0,0:44:30.90,0:44:33.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7CFB\u7D71\u904B\u8F49\u6B63\u5E38{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All systems operational.{\\\
- r}\r\nDialogue: 0,0:44:45.55,0:44:49.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u770B\u898B\u4F60\u5728\u90A3\u88CF\u9577\u5927\u6210\
- \u4EBA...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To see\
- \ you standing there having grown into an adult...{\\r}\r\nDialogue: 0,0:44:51.72,0:44:54.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u840A\u62C9\u80FD\u89AA\u773C\
- \u5F97\u898B\u5C31\u597D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}If only Lara could have witnessed this.{\\r}\r\nDialogue: 0,0:44:54.69,0:44:55.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u8AB0\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Who are you?{\\r}\r\nDialogue: 0,0:44:56.89,0:44:58.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u4F60\u7684\u7236\u89AA \u5361\
- \u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I am your\
- \ father, Kal.{\\r}\r\nDialogue: 0,0:45:00.23,0:45:02.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D77\u78BC\u662F\u4ED6\u7684\u8EAB\u5F71\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or at least a shadow\
- \ of him.{\\r}\r\nDialogue: 0,0:45:02.60,0:45:04.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u610F\u8B58{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His consciousness.{\\r}\r\nDialogue:\
- \ 0,0:45:06.10,0:45:09.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u53EB\u55AC\u2022\u827E\u723E{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My name was Jor-El.{\\r}\r\nDialogue: 0,0:45:11.87,0:45:13.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5361\u723E{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And Kal?{\\r}\r\nDialogue: 0,0:45:16.74,0:45:17.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u6211\u7684\u540D\u5B57\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's my name.{\\\
- r}\r\nDialogue: 0,0:45:18.84,0:45:22.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EB \u5361\u723E\u2022\u827E\u723E{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Kal-El. It is.{\\r}\r\nDialogue: 0,0:45:22.75,0:45:24.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6709\u597D\u591A\u554F\u984C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have so many questions.{\\\
- r}\r\nDialogue: 0,0:45:27.52,0:45:29.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5F9E\u54EA\u88CF\u4F86\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where do I come from?{\\r}\r\nDialogue:\
- \ 0,0:45:30.86,0:45:32.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u70BA\u4EC0\u9EBC\u8981\u9001\u6211\u4F86\u9019\u88CF\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why did you send\
- \ me here?{\\r}\r\nDialogue: 0,0:45:33.56,0:45:35.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F86\u81EA\u6C2A\u661F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You came from Krypton.{\\r}\r\
- \nDialogue: 0,0:45:38.13,0:45:42.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E00\u500B\u6BD4\u5730\u7403\u74B0\u5883\u66F4\u60E1\
- \u52A3\u7684\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A world with a much harsher environment than Earths.{\\r}\r\nDialogue:\
- \ 0,0:45:45.94,0:45:47.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5F88\u4E45\u4EE5\u524D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Long ago...{\\r}\r\nDialogue: 0,0:45:47.81,0:45:50.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u5927\u64F4\u5F35\u7684\u6642\u4EE3\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...in an era of\
- \ expansion...{\\r}\r\nDialogue: 0,0:45:50.28,0:45:53.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u7684\u7A2E\u65CF\u63A2\u7D22\
- \u4E00\u9846\u9846\u661F\u7403{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...our race spread out through the stars...{\\r}\r\nDialogue: 0,0:45:53.75,0:45:56.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0B\u8993\u53EF\u4EE5\u5E38\u99D0\u7684\
- \u65B0\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...seeking\
- \ new worlds to settle upon.{\\r}\r\nDialogue: 0,0:45:57.58,0:46:01.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u8258\u5075\u5BDF\u8239\u662F\u5C04\
- \u5165\u865B\u7A7A\u7684\u6578\u5343\u8258\u4E4B\u4E00{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This scout ship was one of thousands\
- \ launched into the void.{\\r}\r\nDialogue: 0,0:46:03.66,0:46:06.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u5728\u5176\u4ED6\u884C\u661F\
- \u4E0A\u5EFA\u9020\u524D\u54E8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We built outposts on other planets...{\\r}\r\nDialogue: 0,0:46:06.49,0:46:10.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7528\u5DE8\u5927\u7684\u6A5F\u5668\u6309\
- \u6211\u5011\u7684\u9700\u6C42\u91CD\u5851\u74B0\u5883{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}musing great machines to reshape environments\
- \ to our needs.{\\r}\r\nDialogue: 0,0:46:12.43,0:46:16.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5341\u842C\u5E74\u4F86\u6211\u5011\u7684\
- \u6587\u660E\u84EC\u52C3\u767C\u5C55{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}For 100,000 years, our civilization flourished...{\\r}\r\
- \nDialogue: 0,0:46:17.97,0:46:19.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5275\u9020\u4E86\u8A31\u591A\u5947\u8DE1{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...accomplishing wonders.{\\\
- r}\r\nDialogue: 0,0:46:21.14,0:46:22.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u767C\u751F\u4E86\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened?{\\r}\r\nDialogue: 0,0:46:24.78,0:46:27.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u5275\u9020\u4E86\u4EBA\u9020\
- \u4EBA\u53E3\u63A7\u5236\u7CFB\u7D71{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Artificial population control was established.{\\r}\r\n\
- Dialogue: 0,0:46:28.58,0:46:32.19,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u907A\u68C4\u4E86\u592A\u7A7A\u63A2\u7D22\u7684\u524D\u54E8\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The outposts on\
- \ space exploration were abandoned.{\\r}\r\nDialogue: 0,0:46:32.79,0:46:35.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u7528\u76E1\u4E86\u81EA\u7136\
- \u8CC7\u6E90{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We exhausted\
- \ our natural resources.{\\r}\r\nDialogue: 0,0:46:35.62,0:46:39.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u6B64\u6211\u5011\u884C\u661F\u7684\
- \u6838\u5FC3\u8B8A\u5F97\u4E0D\u7A69\u5B9A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}As a result, our planet's core became unstable.{\\\
- r}\r\nDialogue: 0,0:46:42.09,0:46:44.63,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6700\u7D42\u6211\u5011\u7684\u8ECD\u4E8B\u9818\u8896\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Eventually, our\
- \ military leader...{\\r}\r\nDialogue: 0,0:46:44.86,0:46:48.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u5C07\u8ECD\u4F01\u5716\u767C\
- \u52D5\u653F\u8B8A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...General\
- \ Zod, attempted a coup.{\\r}\r\nDialogue: 0,0:46:50.70,0:46:52.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u70BA\u6642\u5DF2\u665A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But by then it was too late.{\\\
- r}\r\nDialogue: 0,0:46:54.14,0:46:56.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5ABD\u5ABD\u548C\u6211\u9810\u898B\u4E86\u672A\
- \u4F86\u707D\u96E3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your\
- \ mother and I foresaw the coming calamity...{\\r}\r\nDialogue: 0,0:46:57.01,0:47:00.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u63A1\u53D6\u4E86\u67D0\u4E9B\
- \u63AA\u65BD\u4EE5\u78BA\u4FDD\u4F60\u7684\u751F\u5B58{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and we took certain steps to ensure\
- \ your survival.{\\r}\r\nDialogue: 0,0:47:01.88,0:47:03.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u662F\u59CB\u6E90\u5BA4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is a genesis chamber.{\\\
- r}\r\nDialogue: 0,0:47:04.38,0:47:07.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6240\u6709\u6C2A\u661F\u4EBA\u90FD\u5728\u9019\u6A23\
- \u7684\u5C0F\u623F\u9593\u88CF\u88AB\u5B55\u80B2{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}All Kryptonians were conceived in chambers such as\
- \ this.{\\r}\r\nDialogue: 0,0:47:07.79,0:47:11.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BCF\u500B\u51FA\u751F\u7684\u5B69\u5B50\
- \u90FD\u6709\u4E00\u500B\u9810\u5B9A\u7684\u89D2\u8272{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Every child was designed to fulfill\
- \ a pre-determined role in our society...{\\r}\r\nDialogue: 0,0:47:11.72,0:47:12.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5DE5\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...as a worker...{\\r}\r\nDialogue: 0,0:47:12.83,0:47:15.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6230\u58EB \u9818\u5C0E\u8005\u7B49\u7B49\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...a warrior, a\
- \ leader and so on.{\\r}\r\nDialogue: 0,0:47:16.20,0:47:19.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5ABD\u5ABD\u548C\u6211\u76F8\u4FE1\
- \u6C2A\u661F\u5931\u53BB\u4E86\u4E00\u4E9B\u73CD\u8CB4\u7684\u6771\u897F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your mother and I believed\
- \ Krypton lost something precious.{\\r}\r\nDialogue: 0,0:47:19.70,0:47:21.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9078\u64C7\u548C\u6A5F\u6703\u7684\u8981\
- \u7D20{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The element\
- \ of choice, of chance.{\\r}\r\nDialogue: 0,0:47:22.40,0:47:24.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u4E00\u500B\u5B69\u5B50\u7684\
- \u5922\u60F3\u662F...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What if a child dreamed of becoming something...{\\r}\r\nDialogue: 0,0:47:24.84,0:47:27.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6210\u70BA\u9810\u5B9A\u8F03\u8272\u4EE5\
- \u5916\u7684\u89D2\u8272\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}mother than what society had intended for him or her?{\\\
- r}\r\nDialogue: 0,0:47:28.87,0:47:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8981\u662F\u4ED6\u6E34\u671B\u66F4\u5049\u5927\u7684\
- \u6771\u897F\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What if a child aspired to something greater?{\\r}\r\nDialogue: 0,0:47:32.24,0:47:34.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u662F\u9019\u7A2E\u4FE1\u5FF5\
- \u7684\u9AD4\u73FE \u5361\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You were the embodiment of that belief, Kal.{\\r}\r\nDialogue: 0,0:47:34.51,0:47:37.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E7E\u4E16\u7D00\u4EE5\u4F86\u6C2A\u661F\
- \u7684\u7B2C\u4E00\u500B\u81EA\u7136\u5206\u5A29\u7684\u5B69\u5B50{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton's first natural\
- \ birth in centuries.{\\r}\r\nDialogue: 0,0:47:38.08,0:47:40.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u6211\u5011\u624D\u5192\u5982\
- \u6B64\u5927\u7684\u98A8\u96AA\u6551\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}That's why we risked so much to save you.{\\r}\r\n\
- Dialogue: 0,0:47:41.89,0:47:43.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u5011\u70BA\u4EC0\u9EBC\u4E0D\u8DDF\u6211\u4E00\u8D77\
- \u4F86\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why\
- \ didn't you come with me?{\\r}\r\nDialogue: 0,0:47:46.86,0:47:48.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u505A\u4E0D\u5230 \u5361\u723E\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We couldn't, Kal.{\\\
- r}\r\nDialogue: 0,0:47:49.66,0:47:52.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u8AD6\u6211\u5011\u591A\u9EBC\u6E34\u671B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No matter how much we wanted\
- \ to.{\\r}\r\nDialogue: 0,0:47:52.60,0:47:54.60,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u4E0D\u8AD6\u6211\u5011\u6709\u591A\u611B\u4F60\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No matter how much\
- \ we loved you.{\\r}\r\nDialogue: 0,0:47:55.37,0:47:56.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6BCD\u89AA\u840A\u62C9\u548C\u6211\
- \ \u90FD\u8DDF\u4F50\u5FB7\u4E00\u6A23{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Your mother, Lara, and I...{\\r}\r\nDialogue: 0,0:47:57.00,0:48:00.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u6211\u5011\u4E16\u754C\u751F\u7522\
- \u51FA\u4F86\u7684\u5931\u6557\u7522\u7269{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...were a product of the failures of our world as\
- \ much as Zod was...{\\r}\r\nDialogue: 0,0:48:00.37,0:48:02.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u8207\u5B83\u7684\u547D\u904B\
- \u7DCA\u7DCA\u76F8\u9023{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...tied to its fate.{\\r}\r\nDialogue: 0,0:48:02.27,0:48:04.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u90A3\u6211\u662F\u5B64\u55AE\u4E00\u4EBA\
- \u4E86 - \u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ So I'm alone. - No.{\\r}\r\nDialogue: 0,0:48:06.08,0:48:09.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u65E2\u662F\u6C2A\u661F\u7684\u5B50\
- \u55E3 \u4E5F\u662F\u5730\u7403\u7684\u5B69\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You're as much a child of Earth now as you are of\
- \ Krypton.{\\r}\r\nDialogue: 0,0:48:10.02,0:48:13.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u9AD4\u73FE\u5169\u500B\u4E16\
- \u754C\u7684\u7CBE\u83EF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You can embody the best of both worlds.{\\r}\r\nDialogue: 0,0:48:13.42,0:48:17.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6BCD\u89AA\u548C\u6211\u81F4\u529B\
- \u4FDD\u8B77\u7684\u5922\u60F3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A dream your mother and I dedicated our lives to preserve.{\\r}\r\n\
- Dialogue: 0,0:48:21.59,0:48:24.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5730\u7403\u4EBA\u8207\u6211\u5011\u4E0D\u540C \u9019\u4E0D\
- \u5047{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The people\
- \ of Earth are different from us, it's true.{\\r}\r\nDialogue: 0,0:48:24.80,0:48:27.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6700\u7D42\u6211\u76F8\u4FE1\u9019\
- \u662F\u4EF6\u597D\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But, ultimately, I believe that's a good thing.{\\r}\r\nDialogue: 0,0:48:27.97,0:48:30.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u4E0D\u4E00\u5B9A\u6703\u72AF\
- \u8207\u6211\u5011\u76F8\u540C\u7684\u932F\u8AA4{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}They won't necessarily make the same mistakes we\
- \ did.{\\r}\r\nDialogue: 0,0:48:30.64,0:48:32.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u6709\u4F60\u7684\u5F15\u5C0E\
- \ \u5361\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Not\
- \ if you guide them, Kal.{\\r}\r\nDialogue: 0,0:48:34.21,0:48:36.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u4F60\u5E36\u7D66\u4ED6\u5011\
- \u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Not\
- \ if you give them hope.{\\r}\r\nDialogue: 0,0:48:39.65,0:48:41.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u500B\u7B26\u865F\u5C31\u662F\u9019\
- \u500B\u610F\u601D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ what this symbol means.{\\r}\r\nDialogue: 0,0:48:42.55,0:48:44.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u827E\u723E\u5BB6\u65CF\u7684\u6A19\u8A8C\
- \u4EE3\u8868\u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The symbol of the house of El means hope.{\\r}\r\nDialogue: 0,0:48:45.12,0:48:47.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u7A2E\u5E0C\u671B\u7684\u9AD4\u73FE\
- \u5728\u65BC...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Embodied\
- \ within that hope is the fundamental belief...{\\r}\r\nDialogue: 0,0:48:47.89,0:48:52.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u6BCF\u500B\u4EBA\u7684\u6F5B\u529B\
- \u6210\u70BA\u5584\u7684\u529B\u91CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...in the potential of every person to be a force for good.{\\\
- r}\r\nDialogue: 0,0:48:52.93,0:48:54.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u53EF\u4EE5\u5C07\u9019\u4E00\u9EDE\u5E36\u7D66\
- \u4ED6\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ what you can bring them.{\\r}\r\nDialogue: 0,0:49:15.15,0:49:17.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u70BA\u4EC0\u9EBC\u6211\u9019\u9EBC\u8207\
- \u773E\u4E0D\u540C\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Why am I so different from them?{\\r}\r\nDialogue: 0,0:49:18.25,0:49:21.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5730\u7403\u7684\u592A\u967D\u6BD4\u6C2A\
- \u661F\u7684\u592A\u967D\u66F4\u5E74\u8F15\u66F4\u660E\u4EAE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Earth's sun is younger and brighter\
- \ than Krypton's was.{\\r}\r\nDialogue: 0,0:49:22.66,0:49:25.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7D30\u80DE\u6C72\u53D6\u4E86\
- \u5B83\u7684\u8F3B\u5C04{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your cells have drunken its radiation...{\\r}\r\nDialogue: 0,0:49:25.29,0:49:29.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u52A0\u5F37\u4F60\u7684\u808C\u8089 \u76AE\
- \u819A\u4EE5\u53CA\u611F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...strengthening your muscles, your skin, your senses.{\\r}\r\nDialogue:\
- \ 0,0:49:29.83,0:49:33.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5730\u7403\u7684\u5F15\u529B\u8F03\u5F31 \u4F46\u5927\u6C23\u66F4\
- \u52A0\u6ECB\u6F64{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Earth's\
- \ gravity is weaker, yet its atmosphere is more nourishing.{\\r}\r\nDialogue:\
- \ 0,0:49:35.13,0:49:38.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5728\u9019\u88CF\u8B8A\u5F97\u6703\u6BD4\u6211\u60F3\u50CF\
- \u4E2D\u7684\u66F4\u5F37{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You've grown stronger here than I ever could have imagined.{\\r}\r\n\
- Dialogue: 0,0:49:38.37,0:49:41.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u77E5\u9053\u591A\u5F37\u7684\u552F\u4E00\u8FA6\u6CD5\u5C31\
- \u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The only way\
- \ to know how strong...{\\r}\r\nDialogue: 0,0:49:41.04,0:49:44.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u65B7\u6E2C\u8A66\u4F60\u7684\u6975\
- \u9650{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is to keep\
- \ testing your limits.{\\r}\r\nDialogue: 0,0:50:36.43,0:50:40.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6703\u5E36\u7D66\u5730\u7403\u4EBA\
- \u70BA\u4E4B\u596E\u9B25\u7684\u7406\u60F3{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You will give the people of Earth an ideal lo strive\
- \ towards.{\\r}\r\nDialogue: 0,0:50:42.10,0:50:43.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u6703\u5728\u4F60\u8EAB\u5F8C\
- \u52AA\u529B\u8FFD\u8D95{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They'll race behind you.{\\r}\r\nDialogue: 0,0:50:44.17,0:50:45.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u6703\u5931\u8DB3{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They will stumble.{\\r}\r\n\
- Dialogue: 0,0:50:45.77,0:50:46.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6703\u5012\u4E0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They will fall.{\\r}\r\nDialogue: 0,0:50:47.17,0:50:48.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6700\u5F8C{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}But In time...{\\r}\r\nDialogue: 0,0:50:50.41,0:50:53.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u6703\u5728\u592A\u967D\u4E0B\
- \u8207\u4F60\u6BD4\u80A9 \u5361\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...they will join you in the sun, Kal.{\\r}\r\nDialogue:\
- \ 0,0:50:54.55,0:50:56.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5230\u6700\u5F8C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}In time...{\\r}\r\nDialogue: 0,0:50:56.58,0:50:59.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6703\u5E6B\u52A9\u4ED6\u5011\u5275\
- \u9020\u5947\u8DE1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}you\
- \ will help them accomplish wonders.{\\r}\r\nDialogue: 0,0:52:25.94,0:52:27.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5148\u5F9E\u8FFD\u8E64\u6709\u4ED6\u51FA\
- \u73FE\u7684\u90FD\u5E02\u50B3\u8AAA\u958B\u59CB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You start with the urban legends...{\\r}\r\nDialogue:\
- \ 0,0:52:27.81,0:52:30.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u4ED6\u9192\u4F86\u5F8C\u90FD\u6D8C\u73FE\u4E86\u51FA\u4F86 -\
- \ \u9019\u662F\u55AC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ ...that have sprung up in his wake. - That's Joe.{\\r}\r\nDialogue:\
- \ 0,0:52:30.38,0:52:32.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6240\u6709\u8072\u7A31\u898B\u904E\u4ED6\u7684\u670B\u53CB\u7684\
- \u670B\u53CB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ friends of a friend who have seen him.{\\r}\r\nDialogue: 0,0:52:32.85,0:52:34.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u904E\u53BB\u5728\u9019\u88CF\u5DE5\
- \u4F5C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He worked\
- \ here.{\\r}\r\nDialogue: 0,0:52:34.28,0:52:36.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u67D0\u4E9B\u4EBA\u800C\u8A00 \u4ED6\
- \u662F\u5B88\u8B77\u5929\u4F7F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}For some he was a guardian angel.{\\r}\r\nDialogue: 0,0:52:36.26,0:52:39.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u5176\u4ED6\u4EBA\u4F86\u8B1B \u4ED6\
- \u662F\u500B\u8B0E \u662F\u500B\u683C\u683C\u4E0D\u5165\u7684\u5E7D\u9748\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For others, a cipher,\
- \ a ghost who never quite fit in...{\\r}\r\nDialogue: 0,0:52:40.02,0:52:43.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u6211\u662F\u8AAA\u6211\u5011\
- \u5728\u9760\u8FD1\u77F3\u6CB9\u947D\u6A5F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Well, I was saying we were coming towards the oil\
- \ rig.{\\r}\r\nDialogue: 0,0:52:43.19,0:52:47.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96A8\u8457\u4F60\u6392\u9664\u56F0\u96E3\
- \u8FFD\u6EAF\u904E\u53BB \u6545\u4E8B\u958B\u59CB\u6F38\u6F38\u6210\u578B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}As you work your\
- \ way back in time, the stories form a pattern.{\\r}\r\nDialogue: 0,0:52:47.06,0:52:49.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5728\u627E\u76AE\u7279\u2022\u7F85\
- \u65AF \u4F60\u8A8D\u8B58\u4ED6\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm looking for a Pete Ross. Do you know him?{\\\
- r}\r\nDialogue: 0,0:52:54.13,0:52:55.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u76AE\u7279\u2022\u7F85\u65AF\u55CE\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Pete Ross?{\\r}\r\nDialogue:\
- \ 0,0:52:57.17,0:53:00.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u60F3\u8DDF\u60A8\u8AC7\u8AC7\u4F60\u5E74\u8F15\u6642\u5019\
- \u7684\u4E00\u5834\u4E8B\u6545{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'd like to talk to you about an accident when you were younger.{\\\
- r}\r\nDialogue: 0,0:53:00.64,0:53:03.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E00\u8F1B\u885D\u9032\u6CB3\u88CF\u7684\u6821\u8ECA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A school bus that\
- \ went into the river.{\\r}\r\nDialogue: 0,0:53:08.65,0:53:10.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5091\u65AF{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Dusty.{\\r}\r\nDialogue: 0,0:53:10.92,0:53:11.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80AF\u7279\u592B\u4EBA\u55CE\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Mrs. Kent?{\\r}\r\n\
- Dialogue: 0,0:53:12.92,0:53:15.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u662F\u9732\u6613\u7D72\u2022\u84EE\u6069 \u4F86\u81EA\
- \u300A\u661F\u7403\u65E5\u5831\u300B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm Lois Lane. I'm from the Daily Planet.{\\r}\r\nDialogue:\
- \ 0,0:53:15.92,0:53:16.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5B89\u975C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Quiet.{\\\
- r}\r\nDialogue: 0,0:53:18.26,0:53:21.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4F86\u81EA\u300A\u661F\u7403\u65E5\u5831\u300B\
- \ \u6211\u60F3\u8DDF\u60A8\u8AC7\u8AC7\u4F60\u7684\u5152\u5B50{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm from the Daily Planet and\
- \ I'd like to talk to you about your son.{\\r}\r\nDialogue: 0,0:53:39.85,0:53:44.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u65E9\u5C31\u77E5\u9053\u8981\u662F\
- \u6211\u67E5\u5F97\u5920\u4ED4\u7D30 \u4F60\u6700\u5F8C\u6703\u627E\u5230\u6211\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I figured if I turned\
- \ over enough stones you'd eventually find me.{\\r}\r\nDialogue: 0,0:53:49.42,0:53:52.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F9E\u54EA\u4F86\uFF1F\u5728\u9019\
- \u88CF\u505A\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Where are you from? What are you doing here?{\\r}\r\nDialogue: 0,0:53:52.73,0:53:54.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u6211\u8B1B\u4F60\u7684\u6545\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Let me tell your\
- \ story.{\\r}\r\nDialogue: 0,0:53:54.29,0:53:57.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u6211\u4E0D\u60F3\u8B93\u6211\
- \u7684\u6545\u4E8B\u88AB\u8B1B\u51FA\u53BB\u5462\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What if I don't want my story told?{\\\
- r}\r\nDialogue: 0,0:53:57.70,0:53:59.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6700\u5F8C\u5B83\u7E3D\u6703\u88AB\u50B3\u51FA\u53BB\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's going\
- \ to come out eventually.{\\r}\r\nDialogue: 0,0:53:59.73,0:54:02.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EBA\u6703\u62FF\u5230\u76F8\u7247\
- \u6216\u662F\u67E5\u5230\u4F60\u7684\u4F4F\u8655{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Somebody's going to get a photograph or figure out\
- \ where you live.{\\r}\r\nDialogue: 0,0:54:03.04,0:54:05.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u90A3\u6211\u5C31\u518D\u6B21\u6D88\u5931\
- \ - \u552F\u4E00\u7684\u8FA6\u6CD5\u5C31\u662F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Then I'll disappear again. - The only way\
- \ you could disappear...{\\r}\r\nDialogue: 0,0:54:06.24,0:54:10.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u518D\u5E6B\u52A9\u4EBA\u5011 \u6211\
- \u611F\u89BA\u4F60\u4E0D\u6703\u90A3\u6A23\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...is to stop helping people altogether, and I sense\
- \ that's not an option for you.{\\r}\r\nDialogue: 0,0:54:14.41,0:54:18.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7236\u89AA\u76F8\u4FE1\u8981\u662F\
- \u4E16\u754C\u67E5\u51FA\u6211\u7684\u771F\u5BE6\u8EAB\u4EFD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My father believed that if the world\
- \ found out who I really was...{\\r}\r\nDialogue: 0,0:54:20.42,0:54:21.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u6703\u62D2\u7D55\u6211{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...they'd reject me...{\\\
- r}\r\nDialogue: 0,0:54:22.15,0:54:23.79,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u56E0\u70BA\u6050\u61FC{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...out of fear.{\\r}\r\nDialogue: 0,0:54:25.82,0:54:27.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53AD\u5026\u4E86\u5B89\u5168{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm tired of safe.{\\\
- r}\r\nDialogue: 0,0:54:28.13,0:54:30.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u53EA\u60F3\u6709\u751F\u4E4B\u5E74\u505A\u4E9B\
- \u6709\u7528\u7684\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I just wanna do something useful with my life.{\\r}\r\nDialogue: 0,0:54:30.46,0:54:33.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u9EBC\u958B\u8FB2\u5834 \u990A\u6D3B\
- \u5927\u5BB6 \u5C31\u6C92\u6709\u7528\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}So farming, feeding people. That's not useful?{\\\
- r}\r\nDialogue: 0,0:54:33.30,0:54:34.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u6C92\u90A3\u9EBC\u8AAA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I didn't say that.{\\r}\r\nDialogue: 0,0:54:34.40,0:54:36.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u7684\u5BB6\u65CF\u6574\u6574\
- \u4E94\u4EE3\u90FD\u4EE5\u8FB2\u5834\u70BA\u751F \u514B\u62C9\u514B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our family's been farming\
- \ for five generations.{\\r}\r\nDialogue: 0,0:54:36.77,0:54:38.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u5BB6\u65CF \u4E0D\u662F\u6211\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your family,\
- \ not mine.{\\r}\r\nDialogue: 0,0:54:38.94,0:54:42.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u90FD\u4E0D\u77E5\u9053\u81EA\u5DF1\
- \u70BA\u4EC0\u9EBC\u8981\u807D\u4F60\u8AAA \u4F60\u4E0D\u662F\u6211\u7238\u7238\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't even know\
- \ why I'm listening to you. You're not my dad.{\\r}\r\nDialogue: 0,0:54:42.14,0:54:43.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EA\u662F\u67D0\u500B\u5728\u5730\
- \u88CF\u64BF\u5230\u6211\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You're just some guy who found me in a field.{\\r}\r\n\
- Dialogue: 0,0:54:43.78,0:54:44.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Clark.{\\r}\r\nDialogue: 0,0:54:47.31,0:54:48.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u95DC\u4FC2 \u746A\u838E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's all right, Martha.{\\\
- r}\r\nDialogue: 0,0:54:50.82,0:54:52.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u8AAA\u5F97\u5C0D \u514B\u62C9\u514B\u8AAA\u5F97\
- \u6709\u9053\u7406{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's\
- \ right. Clark has a point.{\\r}\r\nDialogue: 0,0:54:53.49,0:54:54.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4E0D\u662F\u4F60\u7684\u7236\
- \u6BCD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're not\
- \ your parents.{\\r}\r\nDialogue: 0,0:54:56.62,0:54:58.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u5011\u529B\u6C42\u505A\u5230\
- \u6700\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But\
- \ we've been doing the best we can.{\\r}\r\nDialogue: 0,0:54:58.59,0:55:01.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4E5F\u5728\u76E1\u53EF\u80FD\
- \u5730\u6539\u9032 \u4E5F\u8A31...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And we've been making this up as we go along, so maybe...{\\\
- r}\r\nDialogue: 0,0:55:02.19,0:55:05.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u6240\u8B02\u7684\u6700\u597D\u5DF2\u7D93\
- \u4E0D\u5920\u597D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Maybe our best isn't good enough anymore.{\\r}\r\nDialogue: 0,0:55:09.64,0:55:11.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u807D\u8457 \u7238{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look, Dad...{\\r}\r\nDialogue: 0,0:55:11.94,0:55:13.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u4E00\u4E0B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hold on.{\\r}\r\nDialogue: 0,0:55:33.13,0:55:34.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u53BB\u5929\u6A4B\u8EB2\u8457{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go for the overpass.{\\\
- r}\r\nDialogue: 0,0:55:36.63,0:55:37.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5FEB\u9EDE\u53BB\u8EB2\u8D77\u4F86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go for the overpass!{\\r}\r\nDialogue:\
- \ 0,0:55:40.07,0:55:41.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u627E\u63A9\u8B77 \u5FEB\u627E\u63A9\u8B77{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take cover! Take cover!{\\r}\r\nDialogue:\
- \ 0,0:55:41.97,0:55:44.35,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u5728\u90A3\u908A \u8DDF\u4E0A\u4ED6\u5011 - \u627E\u63A9\u8B77\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Over there. Just\
- \ follow them. - Take cover.{\\r}\r\nDialogue: 0,0:55:48.07,0:55:49.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5979\u88AB\u56F0\u4F4F\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}She's stuck.{\\r}\r\nDialogue:\
- \ 0,0:55:53.81,0:55:55.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6F22\u514B\u5728\u8ECA\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hank's still in the car.{\\r}\r\nDialogue: 0,0:55:56.52,0:55:57.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6F22\u514B\u5728\u8ECA\u88CF{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hank's in the car.{\\r}\r\n\
- Dialogue: 0,0:55:58.42,0:56:00.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}- \u6211\u53BB\u6551\u5B83 \u6211\u53BB\u6551 - \u4E0D{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'll get him, I'll\
- \ get him. - No, no.{\\r}\r\nDialogue: 0,0:56:01.09,0:56:03.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E36\u4F60\u5ABD\u53BB\u5929\u6A4B{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get your mom to the\
- \ overpass.{\\r}\r\nDialogue: 0,0:56:21.71,0:56:23.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6F22\u514B \u5FEB\u4F86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hank! Hank! Come!{\\r}\r\nDialogue:\
- \ 0,0:56:54.64,0:56:56.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u55AC\u7D0D\u68EE - \u5ABD \u5F85\u5728\u9019{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Jonathan! - Mom, stay here.{\\\
- r}\r\nDialogue: 0,0:57:21.90,0:57:24.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7238{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Dad!{\\r}\r\nDialogue: 0,0:57:26.94,0:57:30.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u70BA\u6211\u7684\u4FE1\u4EFB \u7236\
- \u89AA\u53BB\u4E16\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I let my father die because I trusted him.{\\r}\r\nDialogue: 0,0:57:30.91,0:57:34.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u70BA\u4ED6\u76F8\u4FE1\u4E16\u754C\
- \u9084\u6C92\u6709\u6E96\u5099\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Because he was convinced that I had to wait.{\\r}\r\nDialogue:\
- \ 0,0:57:35.58,0:57:37.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5FC5\u9808\u7B49\u5F85\u4E0B\u53BB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}That the world was not ready.{\\r}\r\n\
- Dialogue: 0,0:57:39.48,0:57:41.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u600E\u9EBC\u60F3\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What do you think?{\\r}\r\nDialogue: 0,0:57:46.02,0:57:47.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F97\u5C0F\u5FC3\u4E86 \u9732\u6613\
- \u7D72{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You better\
- \ watch out, Lois.{\\r}\r\nDialogue: 0,0:57:48.16,0:57:50.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F69\u88CF\u8981\u885D\u4F60\u767C\u706B\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey, Perry's\
- \ gunning for you.{\\r}\r\nDialogue: 0,0:57:50.70,0:57:52.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u77E5\u9053\u4F60\u662F\u4F0D\u5FB7\
- \u4F2F\u6069\u7684\u533F\u540D\u4FE1\u606F\u6E90{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}He knows you're Woodburn's anonymous source{\\r}\r\
- \nDialogue: 0,0:57:52.65,0:57:54.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u90FD\u7B49\u4E0D\u53CA\u597D\u597D\u6559\u8A13\u4F60\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}and cannot\
- \ wait to rip you a new one.{\\r}\r\nDialogue: 0,0:57:56.84,0:57:58.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u770B\u5979 \u54C8\u54C8{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Oh, look at her. Ha, ha, ha.{\\\
- r}\r\nDialogue: 0,0:58:00.27,0:58:02.81,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u544A\u8A34\u904E\u4F60\u4E0D\u8981\u8DDF\u9019\
- \u689D\u7DDA \u7136\u5F8C\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I told you not to run with this, and what do you do?{\\\
- r}\r\nDialogue: 0,0:58:03.04,0:58:05.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u537B\u8B93\u4F0D\u5FB7\u4F2F\u6069\u5C07\u4E4B\
- \u50B3\u904D\u4E86\u7DB2\u7D61{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You let Woodburn just shotgun it all over the Internet.{\\r}\r\nDialogue:\
- \ 0,0:58:05.81,0:58:08.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u73FE\u5728\u51FA\u7248\u5546\u60F3\u8B93\u6211\u8D77\u8A34\u4F60\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Now the publishers\
- \ want me to sue you.{\\r}\r\nDialogue: 0,0:58:08.95,0:58:12.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u5982\u679C\u9084\u6709\u7528\
- \u7684\u8A71 \u6211\u653E\u68C4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Well, if it makes a difference, I'm dropping it.{\\r}\r\nDialogue: 0,0:58:12.45,0:58:13.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u90A3\u6A23\u55CE\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Whoa, just like that?{\\r}\r\
- \nDialogue: 0,0:58:13.69,0:58:14.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C92\u932F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Yep.{\\r}\r\nDialogue: 0,0:58:15.05,0:58:16.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7DDA\u7D22\u600E\u9EBC\u4E86\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened\
- \ to your leads?{\\r}\r\nDialogue: 0,0:58:17.02,0:58:19.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u4EC0\u9EBC\u610F\u601D \u6574\u500B\
- \u6545\u4E8B\u90FD\u662F\u904E\u773C\u96F2\u7159{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}They didn't pan out. The story is smoke.{\\r}\r\n\
- Dialogue: 0,0:58:19.89,0:58:22.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E5F\u6709\u53EF\u80FD\u6C92\u5F15\u8D77\u4F60\u671F\u76FC\
- \u7684\u516C\u773E\u6CE8\u610F\u7F77\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Or it didn't get the traction you hoped?{\\r}\r\n\
- Dialogue: 0,0:58:24.20,0:58:25.04,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5169\u5468\u7684\u7121\u85AA\u4F11\u5047{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Two weeks leave...{\\r}\r\nDialogue:\
- \ 0,0:58:25.30,0:58:26.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7B97\u662F\u61F2\u7F70\u4F60\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...no pay, that's your penance.{\\r}\r\nDialogue:\
- \ 0,0:58:27.17,0:58:28.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u518D\u9019\u9EBC\u5F04\u4E00\u6B21{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You try something like this again...{\\\
- r}\r\nDialogue: 0,0:58:29.07,0:58:30.74,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u6211\u5C31\u958B\u9664\u4F60 - \u597D\u5427{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...you're done here.\
- \ - Fine.{\\r}\r\nDialogue: 0,0:58:31.00,0:58:32.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u9019\u9EBC\u8FEB\u4E0D\u53CA\u5F85\
- \u5730\u9644\u548C\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Let's make it three weeks{\\r}\r\nDialogue: 0,0:58:32.11,0:58:33.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u6210\u4E09\u5468\u4F11\u5047\u6BD4\
- \u8F03\u5408\u9069{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}since\
- \ you're so willing to agree.{\\r}\r\nDialogue: 0,0:58:37.14,0:58:38.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9732\u6613\u7D72 \u6211\u7D55\u4E0D\u8A8D\
- \u70BA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I believe\
- \ you saw something, Lois.{\\r}\r\nDialogue: 0,0:58:39.31,0:58:42.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7DDA\u7D22\u6BEB\u7121\u50F9\
- \u503C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But not for\
- \ a moment do I believe that your leads just went cold.{\\r}\r\nDialogue:\
- \ 0,0:58:42.55,0:58:46.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u6B64\u4E0D\u7BA1\u4F60\u653E\u68C4\u7684\u7406\u7531\u662F\
- \u4EC0\u9EBC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So whatever\
- \ your reasons are for dropping it...{\\r}\r\nDialogue: 0,0:58:47.09,0:58:48.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u76F8\u4FE1\u4F60\u505A\u5F97\u6C92\
- \u932F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I think\
- \ you're doing the right thing.{\\r}\r\nDialogue: 0,0:58:49.49,0:58:50.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u70BA\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why?{\\r}\r\nDialogue: 0,0:58:52.09,0:58:55.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4EBA\u5011\u5F97\u77E5\u5730\
- \u7403\u6709\u9019\u6A23\u7684\u4EBA\u7684\u5B58\u5728{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you imagine how people on this\
- \ planet would react...{\\r}\r\nDialogue: 0,0:58:58.00,0:59:01.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u60F3\u50CF\u4EBA\u5011\u6703\
- \u6709\u4F55\u7A2E\u53CD\u61C9\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...if they knew there was someone like this out there?{\\\
- r}\r\nDialogue: 0,0:59:19.58,0:59:20.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53BB\u63A5\u63A5\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go get him.{\\r}\r\nDialogue: 0,0:59:27.43,0:59:29.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u770B\u6211\u5152\u5B50{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, look at you.{\\r}\r\n\
- Dialogue: 0,0:59:46.11,0:59:47.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E00\u500B\u8A18\u8005\u4F86\u904E{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}A reporter came by here.{\\r}\r\nDialogue:\
- \ 0,0:59:48.48,0:59:50.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u662F\u500B\u670B\u53CB \u5225\u64D4\u5FC3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}She's a friend. Don't worry.{\\r}\r\n\
- Dialogue: 0,0:59:53.72,0:59:54.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5ABD\u5ABD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mom.{\\r}\r\nDialogue: 0,0:59:54.75,0:59:56.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u9EBC\u4E86\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What?{\\r}\r\nDialogue: 0,0:59:57.96,1:00:00.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u627E\u5230\u4E86 - \u8AB0\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I found them.\
- \ - Who?{\\r}\r\nDialogue: 0,1:00:01.33,1:00:02.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u7236\u6BCD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My parents.{\\r}\r\nDialogue: 0,1:00:04.00,1:00:05.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u65CF\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My People.{\\r}\r\nDialogue: 0,1:00:06.23,1:00:09.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u73FE\u5728\u77E5\u9053\u81EA\u5DF1\
- \u7684\u8EAB\u4E16\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I know where I come from now.{\\r}\r\nDialogue: 0,1:00:10.84,1:00:12.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u54C7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Wow.{\\r}\r\nDialogue: 0,1:00:13.17,1:00:14.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u771F\u662F\u592A\u597D\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's wonderful.{\\\
- r}\r\nDialogue: 0,1:00:16.81,1:00:19.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u592A\u70BA\u4F60\u9AD8\u8208\u4E86 \u514B\u62C9\u514B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm so happy for\
- \ you, Clark.{\\r}\r\nDialogue: 0,1:00:28.09,1:00:30.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u600E\u9EBC\u4E86\uFF1F - \u6C92\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- What? -\
- \ It's nothing.{\\r}\r\nDialogue: 0,1:00:33.33,1:00:36.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C1A\u5728\u8941\u8913\u4E2D\u6642\
- \ \u6211\u6574\u591C\u5728\u5B30\u5152\u5E8A\u908A\u966A\u4F60{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When you were a baby I used\
- \ to lay by your crib at night...{\\r}\r\nDialogue: 0,1:00:36.50,1:00:38.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u807D\u8457\u4F60\u7684\u547C\u5438{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...listening to you\
- \ breathe.{\\r}\r\nDialogue: 0,1:00:39.93,1:00:41.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C0D\u4F60\u4F86\u8AAA\u4E0D\u5BB9\
- \u6613{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was hard\
- \ for you.{\\r}\r\nDialogue: 0,1:00:42.77,1:00:44.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u52AA\u529B\u8457{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You struggled.{\\r}\r\nDialogue: 0,1:00:44.37,1:00:46.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7121\u6642\u4E0D\u523B\u4E0D\u64D4\
- \u5FC3\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ I worried all the time.{\\r}\r\nDialogue: 0,1:00:46.47,1:00:48.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6015\u771F\u76F8\u66B4\u9732\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You worried\
- \ the truth would come out.{\\r}\r\nDialogue: 0,1:00:49.84,1:00:51.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No.{\\r}\r\nDialogue: 0,1:00:52.01,1:00:54.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u771F\u76F8\u55CE\uFF1F\u90A3\
- \u5C31\u662F\u4F60\u592A\u53EF\u611B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}The truth about you is beautiful.{\\r}\r\nDialogue:\
- \ 0,1:00:55.05,1:00:58.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7B2C\u4E00\u773C\u898B\u5230\u4F60\u7684\u6642\u5019\u6211\u5011\
- \u5C31\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ saw that the moment we laid eyes on you.{\\r}\r\nDialogue: 0,1:01:00.79,1:01:04.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u77E5\u9053\u6709\u4E00\u5929 \u4E16\u4EBA\
- \u4E5F\u7D42\u6B78\u6703\u767C\u73FE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We knew that one day, the whole world would see that.{\\\
- r}\r\nDialogue: 0,1:01:07.23,1:01:08.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u53EA\u662F...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm just...{\\r}\r\nDialogue: 0,1:01:09.49,1:01:11.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u64D4\u5FC3\u4ED6\u5011\u6703\u8B93\u6211\
- \u5011\u5206\u96E2{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ worried they'll take you away from me.{\\r}\r\nDialogue: 0,1:01:13.80,1:01:16.18,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u54EA\u4E5F\u4E0D\u53BB \u5ABD\u5ABD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm not going anywhere,\
- \ Mom.{\\r}\r\nDialogue: 0,1:01:18.00,1:01:19.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4FDD\u8B49{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I promise.{\\r}\r\nDialogue: 0,1:01:25.71,1:01:27.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65AF\u65FA\u5A01\u514B\u5C07\u8ECD \u9577\
- \u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General Swanwick,\
- \ sir.{\\r}\r\nDialogue: 0,1:01:28.15,1:01:31.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u662F\u4EC0\u9EBC \u535A\u58EB\uFF1F\
- \u5F57\u661F\u9084\u662F\u5C0F\u884C\u661F\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What am I looking at, doc? Comet? Asteroid?{\\r}\r\
- \nDialogue: 0,1:01:33.05,1:01:37.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5F57\u661F\u53EF\u4E0D\u6703\u4FEE\u6B63\u822A\u9053\
- \ \u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Comets\
- \ don't make course corrections, general.{\\r}\r\nDialogue: 0,1:01:39.86,1:01:43.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u67D0\u500B\u5929\u6587\u611B\u597D\
- \u8005\u770B\u5230\u4E26\u5F15\u8D77\u6050\u614C\u524D \u6211\u60F3\u8B93\u4F60\
- \u597D\u597D\u770B\u4E00\u4E0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Wanted you to see this before some amateur with a telescope creates\
- \ a worldwide panic.{\\r}\r\nDialogue: 0,1:01:45.53,1:01:46.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u8258\u8239\u4F3C\u4E4E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship appears to have...{\\\
- r}\r\nDialogue: 0,1:01:47.17,1:01:49.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C07\u81EA\u5DF1\u9001\u5165\u4E86\u6708\u7403\u540C\
- \u6B65\u8ECC\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...inserted\
- \ itself into a lunar synchronous orbit...{\\r}\r\nDialogue: 0,1:01:50.17,1:01:52.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u77E5\u9053\u70BA\u4EC0\u9EBC\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...though I have\
- \ no idea why.{\\r}\r\nDialogue: 0,1:01:52.57,1:01:55.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u8A66\u904E\u548C\u5B83\u53D6\
- \u5F97\u806F\u7E6B\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Have you tried... communicating with it?{\\r}\r\nDialogue: 0,1:01:55.67,1:01:59.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u81F3\u4ECA\u6C92\u6709\u56DE\
- \u61C9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, they\
- \ haven't responded as of yet.{\\r}\r\nDialogue: 0,1:02:00.95,1:02:04.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u500B\u4EBA\u7684\u731C\u6E2C\u662F\
- \ \u4E0D\u7BA1\u662F\u8AB0\u5728\u64CD\u7E31\u98DB\u8239...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm just speculating, but I think\
- \ whoever's at the helm of that thing...{\\r}\r\nDialogue: 0,1:02:05.22,1:02:07.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4E00\u5B9A\u60F3\u4F86\u500B\u9A5A\
- \u4EBA\u7684\u8457\u9678{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...is looking to make a dramatic entrance.{\\r}\r\nDialogue: 0,1:02:14.59,1:02:16.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EBA\u77E5\u9053\u58A8\u76D2\u653E\
- \u5728\u54EA\u4E86\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Anybody know where we keep the toner?{\\r}\r\nDialogue: 0,1:02:17.03,1:02:18.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u600E\u9EBC\u4E86\uFF1F - \u65B0\u805E\
- \u90FD\u5728\u5831\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- What's going on? - It's all over the news.{\\r}\r\nDialogue:\
- \ 0,1:02:19.20,1:02:21.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5F97\u4F86\u770B\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You gotta see this.{\\r}\r\nDialogue: 0,1:02:48.13,1:02:49.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:02:50.00,1:02:51.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55EF\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Yeah?{\\r}\r\nDialogue: 0,1:02:51.40,1:02:52.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F86\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Coming.{\\r}\r\nDialogue: 0,1:02:53.06,1:02:55.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u662F\u500B\u7A81\u767C\u65B0\u805E\
- \ \u8EAB\u4EFD\u4E0D\u660E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This is a breaking news. An unidentified...{\\r}\r\nDialogue: 0,1:03:36.98,1:03:39.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E26\u4E0D\u662F\u4E00\u500B\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\\
- r}\r\nDialogue: 0,1:03:40.71,1:03:43.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u4E26\u4E0D\u662F\u4E00\u500B\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\n\
- Dialogue: 0,1:03:44.98,1:03:47.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u4E26\u4E0D\u662F\u4E00\u500B\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\nDialogue:\
- \ 0,1:03:52.89,1:03:55.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60 \u4E26\u4E0D\u662F \u4E00\u500B\u4EBA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\nDialogue: 0,1:04:20.92,1:04:22.48,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}RSS\u4E5F\u6709\u9019\u4FE1\u606F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's coming in on the RSS\
- \ feeds.{\\r}\r\nDialogue: 0,1:04:22.69,1:04:24.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E26\u4E0D\u662F\u4E00\u500B\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\\
- r}\r\nDialogue: 0,1:04:25.19,1:04:27.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u624B\u6A5F\u4E0A\u4E5F\u6709{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's on my phone too.{\\r}\r\nDialogue:\
- \ 0,1:04:29.39,1:04:31.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u662F\u4F50\u5FB7\u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My name is General Zod.{\\r}\r\nDialogue: 0,1:04:33.67,1:04:36.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4F86\u81EA\u4E00\u500B\u9059\u9060\
- \u7684\u661F\u7403{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ come from a world far from yours.{\\r}\r\nDialogue: 0,1:04:37.84,1:04:42.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7A7F\u8D8A\u4E86\u832B\u832B\u661F\
- \u6D77\u4F86\u627E\u4F60\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I have journeyed across an ocean of stars to reach you.{\\r}\r\nDialogue:\
- \ 0,1:04:43.94,1:04:47.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5011\u5E87\u8B77\u4E86\u6211\u7684\u4E00\u500B\u5B50\u6C11\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For some time, your\
- \ world has sheltered one of my citizens.{\\r}\r\nDialogue: 0,1:04:48.58,1:04:51.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73FE\u5728\u6211\u8981\u6C42\u4F60\u5011\
- \u628A\u4ED6\u4EA4\u51FA\u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I request that you return this individual...{\\r}\r\nDialogue: 0,1:04:52.05,1:04:54.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7D66\u6211\u8655\u7406{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to my custody.{\\r}\r\nDialogue:\
- \ 0,1:04:54.42,1:05:00.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u70BA\u67D0\u4E9B\u539F\u56E0 \u4ED6\u9078\u64C7\u5411\u4F60\
- \u5011\u96B1\u779E\u4ED6\u7684\u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}For reasons unknown, he has chosen to keep his existence\
- \ a secret from you.{\\r}\r\nDialogue: 0,1:05:01.59,1:05:04.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7AED\u76E1\u5168\u529B\u878D\u5165\
- \u4F60\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He will\
- \ have made efforts to blend in.{\\r}\r\nDialogue: 0,1:05:05.36,1:05:07.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u770B\u8D77\u4F86\u548C\u4F60\u5011\
- \u76F8\u4F3C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He will\
- \ look like you.{\\r}\r\nDialogue: 0,1:05:07.77,1:05:10.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4ED6\u4E0D\u662F\u540C\u65CF{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But he is not one of\
- \ you.{\\r}\r\nDialogue: 0,1:05:11.57,1:05:13.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u6709\u8AB0\u77E5\u9053{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To those of you who\
- \ may know...{\\r}\r\nDialogue: 0,1:05:13.64,1:05:15.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u4F4D\u7F6E{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...of his current location.{\\r}\r\
- \nDialogue: 0,1:05:15.91,1:05:18.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u90A3\u4F60\u5011\u661F\u7403\u7684\u547D\u904B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the fate of your planet...{\\\
- r}\r\nDialogue: 0,1:05:18.71,1:05:21.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u5728\u4F60\u624B\u4E2D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...rests in your hands.{\\r}\r\nDialogue:\
- \ 0,1:05:22.45,1:05:25.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u723E\u2022\u827E\u723E \u807D\u5230\u4E86\u55CE\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To Kai-El, I say this:{\\\
- r}\r\nDialogue: 0,1:05:27.55,1:05:30.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}24\u5C0F\u6642\u5167\u51FA\u4F86\u6295\u964D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Surrender within 24 hours...{\\\
- r}\r\nDialogue: 0,1:05:34.49,1:05:37.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6216\u8005\u8B93\u6574\u500B\u4E16\u754C\u4F86\u627F\
- \u64D4\u5F8C\u679C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...or\
- \ watch this world suffer the consequences...{\\r}\r\nDialogue: 0,1:05:53.24,1:05:55.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u5C0D\u4ED6\u4E00\u7121\u6240\
- \u77E5 \u5C0D\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We hardly know anything about him, isn't that right?{\\r}\r\nDialogue:\
- \ 0,1:05:55.25,1:05:57.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5982\u679C\u4ED6\u771F\u7684\u4E0D\u60F3\u5BB3\u6211\u5011{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If he truly means us no\
- \ harm...{\\r}\r\nDialogue: 0,1:05:57.48,1:05:59.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4ED6\u61C9\u8A72\u56DE\u6B78\u4ED6\
- \u7684\u65CF\u4EBA \u53BB\u627F\u64D4\u5F8C\u679C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...he'll turn himself in and face the consequences.{\\\
- r}\r\nDialogue: 0,1:06:00.12,1:06:01.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5982\u679C\u4ED6\u4E0D\u80AF\u53BB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And if he won't do that...{\\r}\r\n\
- Dialogue: 0,1:06:01.59,1:06:03.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E5F\u8A31\u6211\u5011\u8A72\u9001\u4ED6\u53BB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...then maybe we should.{\\\
- r}\r\nDialogue: 0,1:06:03.82,1:06:06.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u300A\u661F\u7403\u65E5\u5831\u300B\u7684\u9732\u6613\
- \u7D72\u2022\u84EE\u6069\u77E5\u9053\u4ED6\u662F\u8AB0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Daily Planet's Lois Lane knows\
- \ who this guy is. She's...{\\r}\r\nDialogue: 0,1:06:07.03,1:06:08.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8A8D\u70BA\u5979\u662F\u6211\u5011\
- \u8A72\u8CEA\u554F\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the one we should be questioning.{\\r}\r\nDialogue: 0,1:06:08.93,1:06:11.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u7B49\u7B49 \u4F60\u662F\u8AAA\u9732\u6613\
- \u7D72\u2022\u84EE\u6069 - \u4F60\u597D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Hold on. You're saying Lois Lane... - Hello?{\\\
- r}\r\nDialogue: 0,1:06:11.93,1:06:14.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5728\u770B\u65B0\u805E\u55CE\uFF1F\u64AD\u4E86\
- \u4E00\u65E9\u4E0A\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Are you watching this crap? Been running all morning.{\\r}\r\nDialogue:\
- \ 0,1:06:14.67,1:06:16.98,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u6B21\u6211\u7ADF\u7136\u5B8C\u5168\u540C\u610F\u4F0D\u5FB7\
- \u4F2F\u6069\u7684\u89C0\u9EDE \u4F60\u898B\u904E\u4ED6\u55CE\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For once I agree with Woodburn.\
- \ Have you seen him?{\\r}\r\nDialogue: 0,1:06:17.20,1:06:20.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u77E5\u9053\u4ED6\u5728\u54EA\u55CE\uFF1F\
- \ - \u4E0D\u77E5\u9053 \u5373\u4F7F\u77E5\u9053 \u6211\u4E5F\u4E0D\u6703\u8AAA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Do you know where\
- \ he is? - No. Even if I did, I wouldn't say.{\\r}\r\nDialogue: 0,1:06:20.77,1:06:23.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6574\u500B\u4E16\u754C\u5C8C\u5C8C\u53EF\
- \u5371{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The entire\
- \ world is being threatened here.{\\r}\r\nDialogue: 0,1:06:24.18,1:06:28.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u53EF\u4E0D\u662F\u4F60\u5C55\u73FE\
- \u65B0\u805E\u9053\u5FB7\u7684\u6642\u5019{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This is not time for you to fall back on journalistic\
- \ integrity.{\\r}\r\nDialogue: 0,1:06:28.65,1:06:30.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E8B\u614B\u56B4\u91CD\u4E86 \u9732\u6613\
- \u7D72{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is serious,\
- \ Lois.{\\r}\r\nDialogue: 0,1:06:30.35,1:06:33.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}FBI\u90FD\u4F86\u4E86 \u4ED6\u5011\u5728\
- \u8AAA\u53DB\u570B\u7F6A\u4EC0\u9EBC\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}The FBI is here. They're throwing around words like\
- \ \"treason.\"{\\r}\r\nDialogue: 0,1:06:33.55,1:06:35.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5F97\u8D70\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I gotta go.{\\r}\r\nDialogue: 0,1:06:51.37,1:06:52.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}FBI \u8209\u8D77\u624B\u4F86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}FBI. Hands up.{\\r}\r\nDialogue:\
- \ 0,1:06:52.97,1:06:54.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6254\u4E86\u888B\u5B50 \u99AC\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Drop the bag. Now.{\\r}\r\nDialogue: 0,1:07:01.65,1:07:04.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u64DA\u6211\u63A1\u8A2A\u7684\u653F\u5E9C\
- \u5B98\u54E1\u8AAA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Regarding\
- \ the visitors themselves we know...{\\r}\r\nDialogue: 0,1:07:04.15,1:07:06.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73FE\u5728\u6211\u5011\u6240\u77E5\u751A\
- \u5C11{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...very little.\
- \ According to government officials...{\\r}\r\nDialogue: 0,1:07:06.85,1:07:09.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5118\u7BA1\u4ED6\u5011\u7684\u8A9E\u8ABF\
- \u4E26\u4E0D\u53CB\u5584{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the visitors do not represent a threat...{\\r}\r\nDialogue: 0,1:07:09.55,1:07:11.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F86\u5BA2\u4E26\u4E0D\u4EE3\u8868\
- \u8457\u5A01\u8105{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...despite\
- \ the ominous tone of their message.{\\r}\r\nDialogue: 0,1:07:11.99,1:07:14.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7576\u7136\u4E86 \u5927\u5BB6\u5FC3\u4E2D\
- \u90FD\u6709\u4E00\u500B\u7591\u554F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Then of course there's the question on everyone's mind:{\\\
- r}\r\nDialogue: 0,1:07:14.73,1:07:18.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u500B\u5361\u723E\u2022\u827E\u723E\u662F\u8AB0\
- \uFF1F\u4ED6\u771F\u7684\u5B58\u5728\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}\"Who is this Kai-El person? Does he actually exist?\"\
- {\\r}\r\nDialogue: 0,1:07:18.76,1:07:21.44,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u4ED6\u5982\u4F55\u5728\u6211\u5011\u4E4B\u4E2D\
- \u96B1\u85CF\u4E86\u9019\u9EBC\u4E45\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}\"How could he have remained hidden from us for so\
- \ long?\"{\\r}\r\nDialogue: 0,1:07:26.07,1:07:27.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F86\u554A \u80AF\u7279{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, Kent.{\\r}\r\nDialogue: 0,1:07:34.45,1:07:35.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F86\u554A \u6253\u56DE\u4F86\u554A{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on. Fight back.{\\\
- r}\r\nDialogue: 0,1:07:35.78,1:07:37.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7AD9\u8D77\u4F86 \u80AF\u7279{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get up, Kent.{\\r}\r\nDialogue: 0,1:07:40.69,1:07:42.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u9019\u9EDE\u6C34\u5E73{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So is that it?{\\r}\r\nDialogue:\
- \ 0,1:07:42.52,1:07:44.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C31\u9019\u9EDE\u5BE6\u529B\u55CE\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is that all you've got?{\\r}\r\nDialogue:\
- \ 0,1:07:45.69,1:07:47.19,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F86\u554A \u80AF\u7279{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Come on, Kent.{\\r}\r\nDialogue: 0,1:07:48.43,1:07:49.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u904E\u4F86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Come on!{\\r}\r\nDialogue: 0,1:08:18.42,1:08:19.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u50B7\u5230\u4F60\u4E86\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Did they hurl\
- \ you?{\\r}\r\nDialogue: 0,1:08:20.83,1:08:22.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u77E5\u9053\u90A3\u4E0D\u53EF\u80FD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You know they can't.{\\\
- r}\r\nDialogue: 0,1:08:22.59,1:08:25.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u90A3\u500B\u610F\u601D \u6211\u662F\
- \u8AAA \u4F60\u9084\u597D\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}That's not what I meant. I meant, are you all right?{\\\
- r}\r\nDialogue: 0,1:08:27.47,1:08:29.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u60F3\u75DB\u6241\u90A3\u500B\u5C41\u5B69 \u6211\
- \u60F3\u72E0\u72E0\u5730\u63CD\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I wanted to hit that kid. I wanted to hit him bad.{\\r}\r\
- \nDialogue: 0,1:08:30.00,1:08:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u60F3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know you did. I mean...{\\r}\r\nDialogue:\
- \ 0,1:08:31.74,1:08:34.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u751A\u81F3\u4E5F\u60F3\u8B93\u4F60\u63CD\u4ED6 \u53EF\u662F\
- \u7136\u5F8C\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...part of me even wanted you to, but then what?{\\r}\r\nDialogue: 0,1:08:35.14,1:08:36.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u6703\u9AD8\u8208\u4E86\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Make you feel\
- \ any better?{\\r}\r\nDialogue: 0,1:08:39.68,1:08:43.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EA\u9700\u8981\u6C7A\u5B9A\u4F60\
- \u60F3\u6210\u9577\u70BA\u4EC0\u9EBC\u6A23\u7684\u4EBA \u514B\u62C9\u514B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You just have to\
- \ decide what kind of man you want to grow up to be, Clark.{\\r}\r\nDialogue:\
- \ 0,1:08:43.95,1:08:47.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u70BA\u7121\u8AD6\u6210\u70BA\u4EC0\u9EBC\u6A23 \u597D\u4EBA\
- \u6216\u662F\u58DE\u4EBA \u4F60\u90FD\u6703...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Because whoever that man is, good character or bad,\
- \ he's...{\\r}\r\nDialogue: 0,1:08:49.29,1:08:51.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u8B8A\u9019\u500B\u4E16\u754C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's gonna change the\
- \ world.{\\r}\r\nDialogue: 0,1:08:56.66,1:08:58.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u8166\u4E2D\u6240\u616E\u70BA\u4F55\
- \u4E8B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's\
- \ on your mind?{\\r}\r\nDialogue: 0,1:09:03.77,1:09:05.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u77E5\u5F9E\u4F55\u8AAA\u8D77\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't know where\
- \ to start.{\\r}\r\nDialogue: 0,1:09:05.67,1:09:07.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6089\u807D\u5C0A\u4FBF{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Wherever you want.{\\r}\r\nDialogue:\
- \ 0,1:09:09.44,1:09:11.55,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6628\u665A\u51FA\u73FE\u7684\u98DB\u8239{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}That ship that appeared last night.{\\\
- r}\r\nDialogue: 0,1:09:12.88,1:09:14.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5C31\u662F\u4ED6\u5011\u8981\u627E\u7684\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm the one they're\
- \ looking for.{\\r}\r\nDialogue: 0,1:09:19.18,1:09:20.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u77E5\u9053{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you know...{\\r}\r\nDialogue: 0,1:09:21.49,1:09:22.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u627E\u4F60\u7684\u539F\u56E0\
- \u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...why\
- \ they want you?{\\r}\r\nDialogue: 0,1:09:22.85,1:09:25.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D \u4F46\u9019\u500B\u4F50\u5FB7\u5C07\
- \u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No. But this\
- \ General Zod...{\\r}\r\nDialogue: 0,1:09:25.69,1:09:29.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5373\u4F7F\u6211\u6295\u964D \u4ED6\u4E5F\
- \u672A\u5FC5\u6703\u4FE1\u5B88\u8AFE\u8A00{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...even if I surrender, there's no guarantee he'll\
- \ keep his word, but...{\\r}\r\nDialogue: 0,1:09:29.96,1:09:33.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u82E5\u6211\u6295\u964D\u5C31\u53EF\
- \u4EE5\u62EF\u6551\u5730\u7403\u7684\u8A71{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...if there's a chance I can save Earth by turning\
- \ myself in...{\\r}\r\nDialogue: 0,1:09:35.57,1:09:37.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96E3\u9053\u6211\u4E0D\u8A72\u9019\u9EBC\
- \u505A\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...shouldn't\
- \ I take it?{\\r}\r\nDialogue: 0,1:09:38.20,1:09:40.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u76F4\u89BA\u5462\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What does your gut\
- \ tell you?{\\r}\r\nDialogue: 0,1:09:40.81,1:09:42.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u4E0D\u53EF\u4FE1{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Zod can't be trusted.{\\r}\r\
- \nDialogue: 0,1:09:45.14,1:09:46.71,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u554F\u984C\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The problem is...{\\r}\r\nDialogue: 0,1:09:47.75,1:09:50.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u4E0D\u77E5\u9053\u5730\u7403\
- \u7684\u4EBA\u6C11\u53EF\u4E0D\u53EF\u4FE1{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...I'm not sure the people of Earth can be either.{\\\
- r}\r\nDialogue: 0,1:09:58.36,1:10:01.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6709\u6642\u5019\u4F60\u5FC5\u9808\u5805\u4FE1\u4E0D\
- \u7591{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sometimes\
- \ you have to take a leap of faith first.{\\r}\r\nDialogue: 0,1:10:02.73,1:10:04.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FE1\u4EFB\u6703\u96A8\u4E4B\u800C\u4F86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The trust part comes\
- \ later.{\\r}\r\nDialogue: 0,1:10:28.92,1:10:32.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u4E86 \u6211\u5011\u6CE8\u610F\u5230\
- \u4F60\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All\
- \ right. You've got our attention.{\\r}\r\nDialogue: 0,1:10:32.12,1:10:33.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u60F3\u600E\u9EBC\u6A23\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What is it you want?{\\\
- r}\r\nDialogue: 0,1:10:33.39,1:10:35.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u8981\u548C\u9732\u6613\u7D72\u2022\u84EE\u6069\
- \u8AC7\u8A71{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I would\
- \ like to speak to Lois Lane.{\\r}\r\nDialogue: 0,1:10:35.43,1:10:37.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6191\u4EC0\u9EBC\u8A8D\u70BA\u5979\
- \u5728\u9019\u88CF\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What makes you think she's here?{\\r}\r\nDialogue: 0,1:10:37.63,1:10:39.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5225\u6D6A\u8CBB\u6642\u9593 \u5C07\u8ECD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Don't play games\
- \ with me, general.{\\r}\r\nDialogue: 0,1:10:39.93,1:10:43.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u4F60\u5011\u80FD\u4FDD\u8B49\
- \u9732\u6613\u7D72\u7684\u81EA\u7531 \u6211\u5C31\u6295\u964D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll surrender, but only if you guarantee\
- \ Lois's freedom.{\\r}\r\nDialogue: 0,1:10:54.05,1:10:55.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u70BA\u4EC0\u9EBC\u5411\u4F50\u5FB7\
- \u6295\u964D\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why\
- \ are you surrendering to Zod?{\\r}\r\nDialogue: 0,1:10:57.22,1:11:00.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u5411\u4EBA\u985E\u5C48\u670D\
- \ \u9019\u4E26\u4E0D\u4E00\u6A23{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'm surrendering to mankind. There's a difference.{\\r}\r\nDialogue:\
- \ 0,1:11:01.95,1:11:03.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u8B93\u4ED6\u5011\u628A\u4F60\u92AC\u8D77\u4F86\u4E86\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You let them\
- \ handcuff you?{\\r}\r\nDialogue: 0,1:11:04.62,1:11:07.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u662F\u62B5\u6297 \u5C31\u4E0D\
- \u7B97\u662F\u6295\u964D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Wouldn't be much of a surrender if I resisted.{\\r}\r\nDialogue: 0,1:11:08.56,1:11:10.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4ED6\u5011\u9019\u6A23\u505A\
- \u611F\u5230\u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}And if it makes them feel more secure...{\\r}\r\nDialogue: 0,1:11:11.66,1:11:13.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u9EBC \u5982\u4ED6\u5011\u6240\u9858\
- \u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...then all\
- \ the better for it.{\\r}\r\nDialogue: 0,1:11:17.94,1:11:19.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}S\u9019\u500B\u5B57\u6BCD\u6709\u542B\u7FA9\
- \u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's\
- \ the S stand for?{\\r}\r\nDialogue: 0,1:11:22.74,1:11:24.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E0D\u662FS{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's not an S.{\\r}\r\nDialogue: 0,1:11:25.78,1:11:27.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6211\u7684\u661F\u7403 \u90A3\u4EE3\
- \u8868\u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On\
- \ my world it means hope.{\\r}\r\nDialogue: 0,1:11:29.31,1:11:33.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u5728\u5730\u7403\u9019\u5C31\
- \u662F\u500BS{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well,\
- \ here, it's an S.{\\r}\r\nDialogue: 0,1:11:34.85,1:11:36.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u60F3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}How about...{\\r}\r\nDialogue: 0,1:11:41.99,1:11:43.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5148\u751F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Sir?{\\r}\r\nDialogue: 0,1:11:43.29,1:11:46.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u55E8 \u6211\u662F\u2026\u535A\u58EB\
- \ - \u57C3\u7C73\u723E\u2022\u6F22\u5BC6\u723E\u9813{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Hi, my name is Dr. E... -\
- \ Emil Hamilton.{\\r}\r\nDialogue: 0,1:11:46.86,1:11:49.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053 \u6211\u53EF\u4EE5\u770B\
- \u5230\u4F60\u4E0A\u8863\u53E3\u888B\u88CF\u7684\u8EAB\u4EFD\u5361{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know, I can see your\
- \ ID tag in your breast pocket.{\\r}\r\nDialogue: 0,1:11:50.10,1:11:52.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9084\u6709\u4E00\u888B\u5403\u4E86\u4E00\
- \u534A\u7684\u7CD6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Along\
- \ with a half-eaten roll of Lifesavers.{\\r}\r\nDialogue: 0,1:11:53.30,1:11:55.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u80FD\u770B\u5230\u9694\u58C1\
- \u623F\u9593\u7684\u4E00\u968A\u58EB\u5175{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I can also see the soldiers in the next room...{\\\
- r}\r\nDialogue: 0,1:11:55.87,1:11:58.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9084\u6709\u4F60\u7684\u93AE\u58D3\u7528\u7279\u5DE5\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...preparing that\
- \ tranquilizing agent of yours.{\\r}\r\nDialogue: 0,1:11:58.44,1:11:59.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u5FC5\u8981\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You won't need it.{\\r}\r\nDialogue:\
- \ 0,1:12:00.14,1:12:03.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5148\u751F \u6211\u5011\u4E0D\u53EF\u80FD\u6BEB\u7121\u6E96\u5099\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sir, you can't expect\
- \ us to not take precautions.{\\r}\r\nDialogue: 0,1:12:03.45,1:12:05.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F88\u53EF\u80FD\u651C\u5E36\u4E86\
- \u5916\u661F\u75C5\u539F\u9AD4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You could be carrying some kind of alien pathogen.{\\r}\r\nDialogue:\
- \ 0,1:12:06.12,1:12:07.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5DF2\u7D93\u5728\u9019\u88CF\u751F\u6D3B\u4E8633\u5E74\u4E86\
- \ \u535A\u58EB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Been\
- \ here for 33 years, doctor.{\\r}\r\nDialogue: 0,1:12:07.82,1:12:10.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u9084\u6C92\u611F\u67D3\u4EFB\u4F55\u4EBA\
- \ - \u4E00\u9762\u4E4B\u8FAD\u800C\u5DF2{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Haven't infected anyone yet. - That you know\
- \ of. {\\r}\r\nDialogue: 0,1:12:10.83,1:12:12.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u6709\u5B89\u5168\u65B9\u9762\
- \u7684\u8003\u616E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ have legitimate security concerns.{\\r}\r\nDialogue: 0,1:12:12.68,1:12:15.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65E2\u7136\u4F60\u5411\u84EE\u6069\u5C0F\
- \u59D0\u900F\u9732\u4E86\u8EAB\u4EFD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You revealed your identity to Miss Lane over there.{\\\
- r}\r\nDialogue: 0,1:12:16.36,1:12:18.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u70BA\u4EC0\u9EBC\u6C92\u544A\u8A34\u6211\u5011\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why won't you do\
- \ the same with us?{\\r}\r\nDialogue: 0,1:12:19.53,1:12:21.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u628A\u8A71\u8AAA\u958B\u4E86\
- \u5427 \u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Let's\
- \ put our cards on the table here, general.{\\r}\r\nDialogue: 0,1:12:23.33,1:12:25.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u6015\u6211\u662F\u56E0\u70BA\
- \u4F60\u5011\u7121\u6CD5\u63A7\u5236\u6211{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You're scared because you can't control me.{\\r}\r\
- \nDialogue: 0,1:12:25.64,1:12:28.17,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u73FE\u5728\u4E0D\u80FD \u4EE5\u5F8C\u4E5F\u4E0D\u80FD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You don't, and you\
- \ never will.{\\r}\r\nDialogue: 0,1:12:29.01,1:12:30.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u90A3\u4E26\u4E0D\u610F\u5473\u8457\
- \u6211\u662F\u6575\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But that doesn't' mean I'm your enemy.{\\r}\r\nDialogue: 0,1:12:31.21,1:12:32.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u8AB0\u662F\u6575\u4EBA\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then who is?{\\r}\r\
- \nDialogue: 0,1:12:32.98,1:12:34.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Zod?{\\r}\r\nDialogue: 0,1:12:35.01,1:12:36.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6B63\u662F\u64D4\u5FC3\u9019\u4E00\
- \u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's what\
- \ I'm worried about.{\\r}\r\nDialogue: 0,1:12:37.01,1:12:38.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u662F\u9019\u6A23{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Be that as it may...{\\r}\r\
- \nDialogue: 0,1:12:38.98,1:12:42.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E5F\u6536\u5230\u4E86\u547D\u4EE4\u8981\u628A\
- \u4F60\u4EA4\u7D66\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...I've been given orders to hand you over to him.{\\r}\r\nDialogue:\
- \ 0,1:12:42.99,1:12:44.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u505A\u4F60\u5FC5\u9808\u505A\u7684\u5427 \u5C07\u8ECD{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do what you have to do, general.{\\\
- r}\r\nDialogue: 0,1:12:49.66,1:12:50.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8B1D\u8B1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Thank you.{\\r}\r\nDialogue: 0,1:12:51.56,1:12:52.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B1D\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For what?{\\r}\r\nDialogue: 0,1:12:53.70,1:12:55.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B1D\u8B1D\u4F60\u4FE1\u4EFB\u6211{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For believing in me.{\\\
- r}\r\nDialogue: 0,1:12:58.34,1:13:00.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5230\u6700\u5F8C\u4E5F\u6C92\u6539\u8B8A\u4EC0\u9EBC\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Didn't make much\
- \ difference in the end.{\\r}\r\nDialogue: 0,1:13:01.21,1:13:02.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u8B8A\u4E86\u6211{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It did to me.{\\r}\r\nDialogue: 0,1:13:23.36,1:13:24.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u4F86\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They're coming.{\\r}\r\nDialogue:\
- \ 0,1:13:25.70,1:13:27.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u8A72\u8D70\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You should leave now.{\\r}\r\nDialogue: 0,1:13:30.30,1:13:31.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u8D70 \u9732\u6613\u7D72{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go, Lois.{\\r}\r\nDialogue:\
- \ 0,1:14:42.77,1:14:44.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u723E\u2022\u827E\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Kal-El.{\\r}\r\nDialogue: 0,1:14:44.68,1:14:46.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u526F\u6307\u63EE\u5B98\u8299\
- \u62C9\u2022\u5967{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ sub-commander Faora-UI.{\\r}\r\nDialogue: 0,1:14:47.38,1:14:51.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EE3\u8868\u4F50\u5FB7\u5C07\u8ECD \u5411\
- \u4F60\u554F\u5019{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On\
- \ behalf of General Zod, I extend you his greetings.{\\r}\r\nDialogue: 0,1:14:56.69,1:14:59.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u662F\u6307\u63EE\u5B98\u55CE\uFF1F\
- \ - \u6211\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Are you the ranking officer here? - I am.{\\r}\r\nDialogue: 0,1:15:00.02,1:15:04.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u5C07\u8ECD\u5E0C\u671B\u9019\
- \u500B\u5973\u4EBA\u966A\u6211\u8D70{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}General Zod would like this woman to accompany me.{\\r}\r\
- \nDialogue: 0,1:15:04.83,1:15:06.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u8981\u7684\u53EA\u662F\u4F60\u7684\u65CF\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You asked for the\
- \ alien.{\\r}\r\nDialogue: 0,1:15:07.40,1:15:10.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E26\u6C92\u6709\u8AAA\u8981\u5E36\
- \u8D70\u6211\u5011\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You didn't say anything about one of our own.{\\r}\r\nDialogue: 0,1:15:10.57,1:15:13.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9700\u8981\u6211\u544A\u8A34\u5C07\u8ECD\
- \u4F60\u4E0D\u7B54\u61C9\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Shall I tell the general you're unwilling to comply?{\\\
- r}\r\nDialogue: 0,1:15:13.97,1:15:15.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u5728\u4E4E\u4F60\u600E\u9EBC\u544A\u8A34\
- \u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't care\
- \ what you tell him.{\\r}\r\nDialogue: 0,1:15:18.84,1:15:20.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C92\u95DC\u4FC2{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's all right.{\\r}\r\nDialogue: 0,1:15:21.35,1:15:22.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53BB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'll go.{\\r}\r\nDialogue: 0,1:16:05.39,1:16:09.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EBA\u985E\u7121\u6CD5\u9069\u61C9\u6211\
- \u5011\u98DB\u8239\u4E2D\u7684\u5927\u6C23\u6210\u5206{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The atmospheric composition on our\
- \ ship is not compatible with humans.{\\r}\r\nDialogue: 0,1:16:09.46,1:16:10.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u904E\u53BB\u4EE5\u5F8C \u4F60\u5FC5\u9808\
- \u5E36\u4E0A\u547C\u5438\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You need to wear a breather...{\\r}\r\nDialogue: 0,1:16:11.10,1:16:12.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981\u9760\u8FD1{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...beyond this point.{\\r}\r\nDialogue:\
- \ 0,1:16:37.92,1:16:38.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u723E\u2022\u827E\u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Kal-El.{\\r}\r\nDialogue: 0,1:16:40.79,1:16:42.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u90FD\u4E0D\u77E5\u9053{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You have no idea how long...{\\\
- r}\r\nDialogue: 0,1:16:42.66,1:16:44.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u627E\u4E86\u4F60\u591A\u4E45{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we've been searching for\
- \ you.{\\r}\r\nDialogue: 0,1:16:45.16,1:16:46.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u4F60\u5C31\u662F\u4F50\u5FB7\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I take it you're\
- \ Zod?{\\r}\r\nDialogue: 0,1:16:46.43,1:16:47.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u4F50\u5FB7\u5C07\u8ECD{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General Zod.{\\r}\r\nDialogue:\
- \ 0,1:16:47.80,1:16:49.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u6211\u5011\u7684\u7D71\u9818 - \u6C92\u95DC\u4FC2 \u8299\u62C9\
- \u2022\u5967{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Our\
- \ commander. - It's all right, Faora.{\\r}\r\nDialogue: 0,1:16:49.83,1:16:52.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u539F\u8AD2\u5361\u723E\u7684\u7121\u79AE\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can forgive Kal\
- \ any lapses in decorum.{\\r}\r\nDialogue: 0,1:16:52.77,1:16:54.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u9084\u4E0D\u719F\u6089\u6211\u5011\
- \u7684\u79AE\u5100{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's\
- \ a stranger to our ways.{\\r}\r\nDialogue: 0,1:16:54.94,1:16:58.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u61C9\u8A72\u597D\u597D\u6176\
- \u795D\u4E00\u4E0B \u800C\u4E0D\u8A72\u722D\u5435{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This should be cause for celebration, not conflict.{\\\
- r}\r\nDialogue: 0,1:16:59.51,1:17:01.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5225\u885D\u7A81{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Not conflict.{\\r}\r\nDialogue: 0,1:17:04.12,1:17:05.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I...{\\r}\r\nDialogue: 0,1:17:05.42,1:17:06.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u611F\u89BA\u4E0D\u8212\u670D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...feel strange.{\\r}\r\nDialogue:\
- \ 0,1:17:09.35,1:17:10.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5F88\u865B\u5F31{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Weak.{\\r}\r\nDialogue: 0,1:17:12.86,1:17:14.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u600E\u9EBC\u4E86\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's happening to him?{\\\
- r}\r\nDialogue: 0,1:17:14.26,1:17:16.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u7684\u8EAB\u9AD4\u5C0D\u8239\u4E0A\u7684\u5927\
- \u6C23\u6709\u6392\u65A5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}He's rejecting our ship's atmospherics.{\\r}\r\nDialogue: 0,1:17:17.03,1:17:17.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:17:17.86,1:17:20.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7528\u4E86\u4E00\u8F29\u5B50\u4F86\
- \u9069\u61C9\u5730\u7403\u7684\u74B0\u5883{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You've spent a lifetime adapting to Earth's ecology...{\\\
- r}\r\nDialogue: 0,1:17:20.70,1:17:21.64,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u537B\u9069\u61C9\u4E0D\u4E86\u6211\u5011\u81EA\u5DF1\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but never\
- \ adapted to ours.{\\r}\r\nDialogue: 0,1:17:21.80,1:17:22.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u5E6B\u5E6B\u4ED6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:24.87,1:17:27.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:17:28.47,1:17:29.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E6B\u5E6B\u4ED6{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:31.54,1:17:32.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u5E6B\u5E6B\u4ED6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:44.36,1:17:45.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u597D \u5361\u723E{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hello, Kal.{\\r}\r\nDialogue: 0,1:17:47.56,1:17:49.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9084\u662F\u4F60\u66F4\u559C\u6B61\u6211\
- \u53EB\u4F60\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Or do you prefer Clark?{\\r}\r\nDialogue: 0,1:17:50.36,1:17:51.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u662F\u4ED6\u5011\u7D66\u4F60\u8D77\
- \u7684\u540D\u5B57{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ the name they gave you.{\\r}\r\nDialogue: 0,1:17:52.00,1:17:53.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u662F\u55CE\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Isn't it?{\\r}\r\nDialogue: 0,1:17:54.57,1:17:56.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u66FE\u662F\u6C2A\u661F\u7684\u8ECD\
- \u4E8B\u7D71\u9818{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ was Krypton's military leader...{\\r}\r\nDialogue: 0,1:17:56.53,1:17:58.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4F60\u7236\u89AA\u662F\u6211\u5011\
- \u7684\u9996\u5E2D\u79D1\u5B78\u5BB6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...your father our foremost scientist.{\\r}\r\nDialogue:\
- \ 0,1:17:59.20,1:18:00.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u552F\u4E00\u9054\u6210\u5171\u8B58\u7684\u4E00\u9EDE\
- \u5C31\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ only thing we agreed on...{\\r}\r\nDialogue: 0,1:18:00.87,1:18:02.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C2A\u661F\u5C31\u8981\u6BC0\u6EC5\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...was that Krypton\
- \ was dying. {\\r}\r\nDialogue: 0,1:18:02.75,1:18:06.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u62DA\u547D\u4FDD\u8B77\u6211\u5011\
- \u7684\u6587\u5316{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}In\
- \ return for my efforts to protect our civilization...{\\r}\r\nDialogue: 0,1:18:06.68,1:18:08.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FDD\u885B\u6211\u5011\u7684\u661F\u7403\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and save our\
- \ planet...{\\r}\r\nDialogue: 0,1:18:09.01,1:18:13.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F97\u5230\u7684\u56DE\u5831\u537B\u662F\
- \u6211\u5011\u90FD\u88AB\u653E\u9010\u5230\u5E7D\u9748\u5340{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I and my fellow officers were sentenced\
- \ to the Phantom Zone.{\\r}\r\nDialogue: 0,1:18:15.99,1:18:21.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u6211\u5011\u661F\u7403\u7684\u6BC0\
- \u6EC5\u537B\u8B93\u6211\u5011\u91CD\u7372\u81EA\u7531{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And then the destruction of our world\
- \ freed us.{\\r}\r\nDialogue: 0,1:18:26.16,1:18:27.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u56DB\u8655\u6F02\u6CCA{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We were adrift, {\\\
- r}\r\nDialogue: 0,1:18:27.92,1:18:31.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6CE8\u5B9A\u6F02\u6D41\u5728\u6211\u5011\u661F\u7403\
- \u7684\u6B98\u9AB8\u4E4B\u4E2D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}destined to float amongst the ruins of our planet...{\\r}\r\nDialogue:\
- \ 0,1:18:32.07,1:18:33.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u76F4\u81F3\u6B7B\u4EA1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...until we starved.{\\r}\r\nDialogue: 0,1:18:34.84,1:18:36.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5011\u662F\u600E\u9EBC\u627E\u5230\
- \u5730\u7403\u4F86\u7684\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How did you find your way to Earth?{\\r}\r\nDialogue: 0,1:18:37.21,1:18:41.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u628A\u5E7D\u9748\u63A8\u9032\
- \u5668\u6539\u9020\u6210\u4E86\u9AD8\u901F\u98DB\u884C\u5668{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We managed to retrofit the phantom\
- \ projector into a hyperdrive.{\\r}\r\nDialogue: 0,1:18:41.71,1:18:45.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7236\u89AA\u4E5F\u662F\u5C0D\u98DB\
- \u8239\u505A\u4E86\u985E\u4F3C\u7684\u4FEE\u6539 \u628A\u4F60\u9001\u5230\u4E86\
- \u9019\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your\
- \ father made a similar modification to the craft that brought you here.{\\\
- r}\r\nDialogue: 0,1:18:46.92,1:18:50.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6240\u4EE5\u56DA\u7981\u6211\u5011\u7684\u5DE5\u5177\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And so the instrument\
- \ of our damnation...{\\r}\r\nDialogue: 0,1:18:52.06,1:18:53.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u540C\u6642\u4E5F\u62EF\u6551\u4E86\u6211\
- \u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...became\
- \ our salvation.{\\r}\r\nDialogue: 0,1:18:58.80,1:19:01.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u627E\u904D\u4E86\u820A\u6B96\
- \u6C11\u5730\u7684\u524D\u54E8\u7AD9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We sought out the old colonial outposts...{\\r}\r\nDialogue:\
- \ 0,1:19:01.57,1:19:03.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u60F3\u8981\u5C0B\u627E\u751F\u547D\u7684\u8DE1\u8C61{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...looking for signs of life.{\\\
- r}\r\nDialogue: 0,1:19:06.24,1:19:09.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u627E\u5230\u7684\u53EA\u6709\u6B7B\u4EA1{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But all we found was death.{\\\
- r}\r\nDialogue: 0,1:19:10.04,1:19:12.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u4E9B\u524D\u54E8\u7AD9\u65E9\u548C\u6C2A\u661F\
- \u5931\u53BB\u806F\u7D61{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Cut off from Krypton, these outposts...{\\r}\r\nDialogue: 0,1:19:12.88,1:19:15.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EE5\u5F8C\u5C31\u5EE2\u68C4\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...withered and died\
- \ long ago.{\\r}\r\nDialogue: 0,1:19:15.58,1:19:17.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u628A\u80FD\u7528\u7684\u90FD\
- \u5E36\u8D70\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ salvaged what we could...{\\r}\r\nDialogue: 0,1:19:17.78,1:19:19.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76D4\u7532 \u6B66\u5668{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...armor, weapons...{\\r}\r\nDialogue:\
- \ 0,1:19:19.75,1:19:21.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9084\u6709\u4E00\u500B\u4E16\u754C\u5F15\u64CE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...even a world engine.{\\r}\r\nDialogue:\
- \ 0,1:19:23.42,1:19:25.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u6E96\u5099\u4E8633\u5E74{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}For 33 years we prepared...{\\r}\r\nDialogue: 0,1:19:26.79,1:19:29.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76F4\u5230\u6211\u5011\u5075\u6E2C\u5230\
- \u4E00\u500B\u6C42\u6551\u4FE1\u865F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...until finally we detected a distress beacon...{\\r}\r\
- \nDialogue: 0,1:19:29.79,1:19:34.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4F60\u5728\u8001\u5075\u5BDF\u6A5F\u88CF\u767C\
- \u51FA\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...which\
- \ you triggered when you accessed the ancient scout ship.{\\r}\r\nDialogue:\
- \ 0,1:19:35.47,1:19:38.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u662F\u4F60\u628A\u6211\u5011\u5E36\u5230\u9019\u88CF\u7684 \u5361\
- \u723E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You led us\
- \ here, Kal.{\\r}\r\nDialogue: 0,1:19:39.14,1:19:44.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73FE\u5728\u4F60\u6709\u80FD\u529B\u62EF\
- \u6551\u6211\u5011\u7684\u7A2E\u65CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Now it's within your power to save what remains of your\
- \ race.{\\r}\r\nDialogue: 0,1:19:49.11,1:19:50.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6C2A\u661F\u4E0A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On Krypton...{\\r}\r\nDialogue: 0,1:19:50.61,1:19:53.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u6709\u672A\u51FA\u751F\u5B69\u5B50\
- \u7684\u907A\u50B3\u57FA\u56E0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the genetic template for every being yet to be born...{\\r}\r\nDialogue:\
- \ 0,1:19:53.48,1:19:56.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90FD\u88AB\u7DE8\u5BEB\u5728\u516C\u6C11\u6A94\u6848\u88CF{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is encoded in the registry\
- \ of citizens.{\\r}\r\nDialogue: 0,1:19:56.69,1:19:58.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7236\u89AA\u5077\u8D70\u4E86\u6A94\
- \u6848\u7684\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your father stole the registry's Codex...{\\r}\r\nDialogue: 0,1:19:59.09,1:20:01.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u85CF\u5728\u4E86\u5E36\u4F60\u4F86\u7684\
- \u592A\u7A7A\u8259\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...and stored it in the capsule that brought you here.{\\r}\r\nDialogue:\
- \ 0,1:20:02.63,1:20:03.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u70BA\u4EC0\u9EBC\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}For what purpose?{\\r}\r\nDialogue: 0,1:20:04.53,1:20:09.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u6A23\u6C2A\u661F\u5C31\u80FD\u5728\
- \u5730\u7403\u4E0A\u91CD\u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}So that Krypton can live again on Earth.{\\r}\r\nDialogue: 0,1:20:29.52,1:20:31.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u5728\u54EA\u88CF \u5361\u723E\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where is the\
- \ Codex, Kal?{\\r}\r\nDialogue: 0,1:20:33.29,1:20:35.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u6C2A\u661F\u91CD\u751F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If Krypton lives again...{\\\
- r}\r\nDialogue: 0,1:20:36.29,1:20:37.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5730\u7403\u6703\u600E\u9EBC\u6A23\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...what happens to Earth?{\\\
- r}\r\nDialogue: 0,1:20:38.70,1:20:42.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u91CD\u751F\u7E3D\u9700\u8981\u5EFA\u7ACB\u5728\u6BC0\
- \u6EC5\u4E4B\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ foundation has to be built on something.{\\r}\r\nDialogue: 0,1:20:42.47,1:20:45.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9023\u4F60\u7236\u89AA\u90FD\u77E5\u9053\
- \u9019\u4E00\u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Even\
- \ your father recognized that.{\\r}\r\nDialogue: 0,1:20:51.71,1:20:54.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}No, Zod.{\\r}\r\nDialogue: 0,1:20:55.18,1:20:56.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u6703\u5E6B\u4F60\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't be a part of\
- \ this.{\\r}\r\nDialogue: 0,1:20:57.21,1:20:58.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u9EBC\u4F60\u6703\u5E6B\u8AB0\u5462\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then what\
- \ can you be a part of?{\\r}\r\nDialogue: 0,1:20:59.52,1:21:00.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:01.92,1:21:02.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Zod!{\\r}\r\nDialogue: 0,1:21:04.02,1:21:04.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:05.89,1:21:07.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:13.56,1:21:17.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7236\u89AA\u70BA\u69AE\u8B7D\
- \u737B\u51FA\u4E86\u81EA\u5DF1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your father acquitted himself with honor, Kal.{\\r}\r\nDialogue: 0,1:21:19.84,1:21:21.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u4F60\u6BBA\u4E86\u4ED6\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You killed him?{\\\
- r}\r\nDialogue: 0,1:21:22.17,1:21:23.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I did.{\\r}\r\nDialogue: 0,1:21:24.11,1:21:27.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6C38\u9060\u90FD\u64FA\u812B\u4E0D\
- \u4E86\u9019\u4EF6\u4E8B\u7684\u9670\u5F71{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And not a day goes by where it doesn't haunt me.{\\\
- r}\r\nDialogue: 0,1:21:28.88,1:21:31.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u5982\u679C\u91CD\u4F86\u4E00\u6B21 \u6211\u9084\
- \u662F\u6703\u9019\u9EBC\u505A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But if I had to do it again, I would.{\\r}\r\nDialogue: 0,1:21:31.45,1:21:34.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u5C0D\u6211\u7684\u4EBA\u6C11\
- \u8CA0\u8CAC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have\
- \ a duty to my people...{\\r}\r\nDialogue: 0,1:21:35.19,1:21:39.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u6703\u8B93\u4EFB\u4F55\u4EBA\
- \u963B\u6B62\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and\
- \ I will not allow anyone to prevent me from carrying it out.{\\r}\r\nDialogue:\
- \ 0,1:21:55.64,1:21:57.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u662F\u4EC0\u9EBC \u5C11\u6821\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's the sit-rep, major?{\\r}\r\nDialogue:\
- \ 0,1:21:57.91,1:22:00.29,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5075\u6E2C\u5230\u5169\u67B6\u6575\u6A5F\u5F9E\u5916\u661F\u98DB\
- \u8239\u4E2D\u767C\u5C04{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}DSP pinged two bogeys launching from the alien ship.{\\r}\r\nDialogue:\
- \ 0,1:22:00.54,1:22:02.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u87A2\u5E55\u986F\u793A - \u597D\u7684 \u9577\u5B98{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Put it up. - Yes, sir.{\\\
- r}\r\nDialogue: 0,1:22:03.08,1:22:04.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u662F\u9019\u500B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}There it is.{\\r}\r\nDialogue: 0,1:22:04.42,1:22:05.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u63A5\u7121\u7DDA\u96FB4\u865F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Re-task IKon-4...{\\r}\r\n\
- Dialogue: 0,1:22:05.45,1:22:07.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}- \u518D\u62C9\u8FD1\u9EDE - \u597D\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...and get me a closer look. \
- \ - Yes, sir.{\\r}\r\nDialogue: 0,1:22:08.22,1:22:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6307\u63EE\u90E8{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Command, the word...{\\r}\r\nDialogue:\
- \ 0,1:22:09.39,1:22:10.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ECA\u5929\u7684\u6697\u865F\u662F\u4E09\u53C9\u621F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...of the day is trident.{\\\
- r}\r\nDialogue: 0,1:22:10.79,1:22:12.89,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6709\u5169\u67B6\u5916\u661F\u98DB\u8239\u6B63\u5728\
- \u63A5\u8FD1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have\
- \ two alien craft on aggressive approach.{\\r}\r\nDialogue: 0,1:22:13.12,1:22:14.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7121\u7DDA\u96FB4\u865F\u5DF2\u63A5\u901A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Ikon-4 coming online.{\\\
- r}\r\nDialogue: 0,1:22:14.99,1:22:15.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u901F\u5EA6\u6709\u591A\u5FEB\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Air speed?{\\r}\r\nDialogue: 0,1:22:16.06,1:22:17.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}380\u6D77\u91CC \u6B63\u5728\u9032\u5165\
- \u582A\u85A9\u65AF\u5DDE\u4E0A\u7A7A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}380 knots, entering Kansas...{\\r}\r\nDialogue: 0,1:22:17.73,1:22:19.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u4E0D\u56DE\u61C9\u6211\u5011\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...airspace. Not\
- \ responding to our hails.{\\r}\r\nDialogue: 0,1:22:19.96,1:22:22.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u8981\u6D6A\u8CBB\u9AD4\u529B\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're wasting\
- \ your efforts.{\\r}\r\nDialogue: 0,1:22:23.10,1:22:25.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F9E\u5730\u7403\u7684\u592A\u967D\
- \u5F97\u5230\u7684\u529B\u91CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The strength you derived from the Earth's sun...{\\r}\r\nDialogue: 0,1:22:25.67,1:22:27.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6211\u5011\u7684\u8239\u4E0A\u5B8C\
- \u5168\u6C92\u6709\u7528{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...has been neutralized aboard our ship.{\\r}\r\nDialogue: 0,1:22:28.44,1:22:29.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u9019\u88CF{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Here...{\\r}\r\nDialogue: 0,1:22:29.81,1:22:31.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u6A23\u7684\u74B0\u5883\u4E0B{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...in this environment...{\\\
- r}\r\nDialogue: 0,1:22:32.18,1:22:33.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C31\u8DDF\u4EBA\u985E\u4E00\u6A23\u8106\u5F31\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you are as weak\
- \ as a human.{\\r}\r\nDialogue: 0,1:23:32.20,1:23:34.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F9E\u54EA\u5192\u51FA\u4F86\u7684\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where did\
- \ you come from?{\\r}\r\nDialogue: 0,1:23:34.57,1:23:36.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u63A7\u9470\u5319\u88CF \u84EE\u6069\
- \u5C0F\u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ command key, Miss Lane.{\\r}\r\nDialogue: 0,1:23:36.24,1:23:39.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u591A\u8667\u4E86\u4F60 \u6211\u6B63\u5728\
- \u88AB\u4E0A\u50B3\u5230\u9019\u8258\u8239\u7684\u4E3B\u7A0B\u5E8F\u88CF{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thanks to you, I'm\
- \ uploading to the ship's mainframe.{\\r}\r\nDialogue: 0,1:23:39.91,1:23:40.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u8AB0\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Who are you?{\\r}\r\nDialogue: 0,1:23:41.85,1:23:43.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u5361\u723E\u7684\u7236\u89AA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I am Kai's father.{\\\
- r}\r\nDialogue: 0,1:23:44.82,1:23:45.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u80FD\u5E6B\u6211\u5011\u55CE\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you help us?{\\r}\r\nDialogue:\
- \ 0,1:23:47.52,1:23:49.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u8258\u8239\u662F\u6211\u8A2D\u8A08\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I designed this ship.{\\r}\r\nDialogue:\
- \ 0,1:23:49.59,1:23:51.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u80FD\u6539\u9020\u5B83\u7684\u5927\u6C23\u7D50\u69CB{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can modify its atmospheric\
- \ composition...{\\r}\r\nDialogue: 0,1:23:52.02,1:23:53.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F7F\u4EBA\u985E\u9069\u61C9{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to human compatibility.{\\\
- r}\r\nDialogue: 0,1:23:54.02,1:23:54.87,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u80FD\u963B\u6B62\u4ED6\u5011{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can stop them.{\\r}\r\n\
- Dialogue: 0,1:23:55.09,1:23:57.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5011\u80FD\u628A\u4ED6\u5011\u9001\u56DE\u5E7D\u9748\
- \u5340{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can send\
- \ them back to the Phantom Zone.{\\r}\r\nDialogue: 0,1:23:58.53,1:23:59.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u9EBC\u505A\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How?{\\r}\r\nDialogue: 0,1:23:59.40,1:24:00.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4F86\u6559\u4F60{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can teach you.{\\r}\r\nDialogue:\
- \ 0,1:24:01.20,1:24:03.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7136\u5F8C\u4F60\u518D\u6559\u7D66\u5361\u723E{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And in turn, you can teach Kal.{\\\
- r}\r\nDialogue: 0,1:24:03.23,1:24:04.94,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u6703\u5E6B\u6211\u55CE\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Will you help me?{\\r}\r\nDialogue:\
- \ 0,1:24:18.78,1:24:20.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8239\u4E0A\u7684\u8B66\u5831\u97FF\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship's crew are alerted.{\\r}\r\n\
- Dialogue: 0,1:24:20.35,1:24:21.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5011\u5F97\u5FEB\u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We need to move quickly.{\\r}\r\nDialogue: 0,1:24:21.62,1:24:23.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u4E3B\u63A7\u9470\u5319\u62FF\u4E0A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Retrieve the command\
- \ key.{\\r}\r\nDialogue: 0,1:24:30.93,1:24:33.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u662F\u4F60\u505A\u7684\u55CE\uFF1F -\
- \ \u662F\u7684 \u628A\u5979\u7684\u6B66\u5668\u62FF\u4E0A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Did you do that? - Yes. Pick\
- \ up her sidearm.{\\r}\r\nDialogue: 0,1:24:43.37,1:24:44.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u767C\u751F\u4E86\u4EC0\u9EBC\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's happening?{\\\
- r}\r\nDialogue: 0,1:25:05.73,1:25:06.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53F3\u908A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}To your right.{\\r}\r\nDialogue: 0,1:25:06.63,1:25:07.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u958B\u706B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Fire.{\\r}\r\nDialogue: 0,1:25:08.83,1:25:09.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F8C\u9762{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Behind you.{\\r}\r\nDialogue: 0,1:25:23.08,1:25:25.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B89\u5168\u5F85\u5728\u6551\u751F\u8259\
- \u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Secure yourself\
- \ inside the open pod.{\\r}\r\nDialogue: 0,1:25:26.15,1:25:28.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65C5\u9014\u5E73\u5B89 \u84EE\u6069\u5C0F\
- \u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Safe travels,\
- \ Miss Lane. It's unlikely...{\\r}\r\nDialogue: 0,1:25:28.65,1:25:30.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u61C9\u8A72\u4E0D\u53EF\u80FD\
- \u518D\u898B\u9762\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...we'll see each other again.{\\r}\r\nDialogue: 0,1:25:31.82,1:25:34.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A18\u4F4F \u5E7D\u9748\u5F15\u64CE\u662F\
- \u963B\u6B62\u4ED6\u5011\u7684\u95DC\u9375{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Remember, the phantom drives are essential in stopping\
- \ them.{\\r}\r\nDialogue: 0,1:25:35.79,1:25:37.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u982D\u504F\u5411\u5DE6\u908A{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Move your head to the\
- \ left.{\\r}\r\nDialogue: 0,1:26:04.62,1:26:07.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u8AAA\u7684\u95DC\u65BC\u5BC6\
- \u5178\u7684\u4E8B\u662F\u771F\u7684\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Is it true what Zod said about the Codex?{\\r}\r\n\
- Dialogue: 0,1:26:07.66,1:26:09.04,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u628A\u8239\u58C1\u6253\u7834{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Strike that panel.{\\r}\r\nDialogue: 0,1:26:12.70,1:26:16.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u60F3\u8981\u4F60\u5B78\u7FD2\
- \u4EBA\u985E\u6700\u91CD\u8981\u7684\u662F\u4EC0\u9EBC{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We wanted you to learn what it meant\
- \ to be human first...{\\r}\r\nDialogue: 0,1:26:16.87,1:26:18.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u5982\u679C\u6709\u4E00\u5929\
- \ \u6642\u6A5F\u6210\u719F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...so that one day, when the time was right, {\\r}\r\nDialogue: 0,1:26:18.90,1:26:22.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6703\u6210\u70BA\u5169\u500B\u7A2E\
- \u65CF\u6E9D\u901A\u7684\u6A4B\u6A11{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}you could be the bridge between two peoples.{\\r}\r\nDialogue:\
- \ 0,1:26:25.24,1:26:26.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look.{\\\
- r}\r\nDialogue: 0,1:26:29.18,1:26:30.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9732\u6613\u7D72{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Lois.{\\r}\r\nDialogue: 0,1:26:31.01,1:26:32.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u6551\u5979 \u5361\u723E{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You can save her, Kal.{\\\
- r}\r\nDialogue: 0,1:26:35.19,1:26:37.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u80FD\u62EF\u6551\u6240\u6709\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You can save all of them.{\\\
- r}\r\nDialogue: 0,1:27:55.97,1:27:57.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5B89\u5168\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You'll be safe here.{\\r}\r\nDialogue: 0,1:27:59.84,1:28:02.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u6C92\u4E8B\u5427\uFF1F - \u6C92\
- \u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Are you\
- \ all right? - Yeah.{\\r}\r\nDialogue: 0,1:28:05.64,1:28:07.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u4E0D\u8D77{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm sorry.{\\r}\r\nDialogue: 0,1:28:07.84,1:28:10.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u6545\u610F\u544A\u8A34\
- \u4ED6\u5011\u4F60\u7684\u4E8B \u4ED6\u5011\u5C0D\u6211\u52D5\u4E86\u624B\u8173\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I didn't wanna tell\
- \ them anything, but they did something to me.{\\r}\r\nDialogue: 0,1:28:11.08,1:28:13.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u5011\u770B\u7A7F\u4E86\u6211\u7684\
- \u5FC3\u601D - \u6C92\u95DC\u4FC2 \u9732\u6613\u7D72{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- They looked inside my mind... \
- \ - It's okay, Lois.{\\r}\r\nDialogue: 0,1:28:13.48,1:28:15.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u4E5F\u5C0D\u6211\u505A\u4E86\
- \u540C\u6A23\u7684\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They did the same thing to me.{\\r}\r\nDialogue: 0,1:28:28.33,1:28:29.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark!{\\r}\r\nDialogue: 0,1:28:38.68,1:28:40.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E36\u4ED6\u4F86\u7684\u90A3\u8258\u8239\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The craft he arrived\
- \ in...{\\r}\r\nDialogue: 0,1:28:40.98,1:28:42.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B83\u5728\u54EA\u88CF\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...where is it?{\\r}\r\nDialogue:\
- \ 0,1:28:44.05,1:28:45.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u53BB\u6B7B\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Go to hell.{\\r}\r\nDialogue: 0,1:28:56.53,1:28:57.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u90A3\u908A{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}There.{\\r}\r\nDialogue: 0,1:29:20.52,1:29:22.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u4E0D\u5728\u9019\u88CF{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Codex is not here.{\\\
- r}\r\nDialogue: 0,1:29:29.39,1:29:30.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u85CF\u5728\u54EA\u4E86\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where has he hidden it?{\\r}\r\nDialogue:\
- \ 0,1:29:30.69,1:29:31.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I don't know.{\\r}\r\nDialogue: 0,1:29:31.56,1:29:32.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u5728\u54EA\u88CF\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where is the Codex?!{\\\
- r}\r\nDialogue: 0,1:29:48.68,1:29:50.62,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C45\u7136\u6562\u5A01\u8105\u6211\u5ABD\u5ABD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You think you can\
- \ threaten my mother?!{\\r}\r\nDialogue: 0,1:30:32.42,1:30:33.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C0D\u6211\u505A\u4E86\u4EC0\u9EBC\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What have\
- \ you done to me?{\\r}\r\nDialogue: 0,1:30:34.12,1:30:38.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7236\u6BCD\u6559\u6211\u8981\u78E8\
- \u7DF4\u6211\u7684\u611F\u5B98 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My parents taught me to hone my senses, Zod.{\\r}\r\
- \nDialogue: 0,1:30:39.96,1:30:41.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C08\u6CE8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Focus...{\\r}\r\nDialogue: 0,1:30:42.13,1:30:43.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u81EA\u5DF1\u60F3\u770B\u7684\u6771\
- \u897F\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...on\
- \ just what I wanted to see.{\\r}\r\nDialogue: 0,1:30:44.10,1:30:45.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6C92\u4E86\u982D\u76D4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Without your helmet...{\\r}\r\
- \nDialogue: 0,1:30:45.40,1:30:46.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EF\u4EE5\u611F\u53D7\u5230\u66F4\u591A\u6771\u897F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you're getting\
- \ everything.{\\r}\r\nDialogue: 0,1:30:48.24,1:30:49.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F88\u96E3\u53D7{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And it hurts...{\\r}\r\nDialogue: 0,1:30:50.24,1:30:51.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5427\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...doesn't it?{\\r}\r\nDialogue: 0,1:31:36.45,1:31:37.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5225\u7AD9\u5728\u7A97\u6236\u908A\u4E0A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get away from the\
- \ window.{\\r}\r\nDialogue: 0,1:31:40.69,1:31:42.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90FD\u9032\u53BB \u9019\u88CF\u4E0D\u5B89\
- \u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get inside.\
- \ It's not safe.{\\r}\r\nDialogue: 0,1:31:47.83,1:31:50.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5168\u9AD4\u807D\u547D \u9019\u88CF\u662F\
- \u5B88\u8B77\u8005 \u6211\u662F\u7A7A\u4E2D\u6307\u63EE\u5B98{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All players, this is Guardian. I am\
- \ airborne mission commander.{\\r}\r\nDialogue: 0,1:31:50.97,1:31:53.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5DF2\u7D93\u4E8B\u5148\u63A5\u89F8\
- \u904E\u4E26\u89C0\u5BDF\u904E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I have previously encountered and observed...{\\r}\r\nDialogue: 0,1:31:53.24,1:31:55.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u5C07\u8981\u63A5\u8FD1\u7684\
- \u76EE\u6A19{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the\
- \ beings we're about to engage.{\\r}\r\nDialogue: 0,1:31:55.64,1:31:58.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u975E\u5E38\u5371\u96AA \u6211\
- \u5011\u53EF\u4EE5...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They are extremely dangerous and we have been authorized...{\\r}\r\n\
- Dialogue: 0,1:31:58.58,1:32:00.08,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F7F\u7528\u81F4\u547D\u6B66\u5668{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to use deadly force.{\\r}\r\nDialogue:\
- \ 0,1:32:02.05,1:32:04.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6536\u5230 \u5B88\u8B77\u8005 \u6211\u5011\u6B63\u63A5\u8FD1\u76EE\
- \u6A19{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Roger, Guardian,\
- \ we are inbound to target.{\\r}\r\nDialogue: 0,1:32:09.69,1:32:11.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u958B\u706B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Cleared hot. Weapons free.{\\r}\r\nDialogue: 0,1:32:11.15,1:32:12.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}11\u865F \u958B\u706B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Copy, 11. Weapons free.{\\r}\r\nDialogue:\
- \ 0,1:32:15.56,1:32:16.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9019\u88CF\u662F\u96F7\u96FB11\u865F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thunder 11...{\\r}\r\nDialogue: 0,1:32:16.56,1:32:17.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9396\u5B9A\u4E09\u500B\u76EE\u6A19{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...tally three targets.{\\\
- r}\r\nDialogue: 0,1:32:35.21,1:32:36.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u96F7\u96FB11\u865F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thunder 11...{\\r}\r\nDialogue: 0,1:32:36.25,1:32:38.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E79\u5F97\u6F02\u4EAE \u8ACB\u6C42\u7ACB\
- \u5373\u518D\u6B21\u653B\u64CA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...good hit. Request immediate re-attack.{\\r}\r\nDialogue: 0,1:32:38.92,1:32:41.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6536\u5230 \u5B88\u8B77\u8005 \u6E96\u5099\
- \u4E8C\u6B21\u653B\u64CA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Roger, Guardian. We'll make a second gun run...{\\r}\r\nDialogue: 0,1:32:41.28,1:32:43.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u822A\u5411212\u5EA6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...on a heading of 212 degrees.{\\\
- r}\r\nDialogue: 0,1:32:50.39,1:32:51.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u96F7\u96FB11\u865F \u5FEB\u5F48\u51FA\u9003\u751F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 11, eject!{\\\
- r}\r\nDialogue: 0,1:32:51.59,1:32:52.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5FEB\u5F48\u51FA\u9003\u751F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Eject!{\\r}\r\nDialogue: 0,1:32:53.30,1:32:54.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96F7\u96FB11\u865F \u5FEB\u5F48\u51FA\u9003\
- \u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 11,\
- \ eject!{\\r}\r\nDialogue: 0,1:33:05.08,1:33:06.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u6575\u4EBA\u5411\u6211\u885D\u4F86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have a bogey incoming!{\\\
- r}\r\nDialogue: 0,1:33:07.48,1:33:08.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8A72\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Oh, shit.{\\r}\r\nDialogue: 0,1:33:27.10,1:33:27.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u592A\u5F31\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are weak...{\\r}\r\nDialogue:\
- \ 0,1:33:28.23,1:33:29.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u827E\u723E\u4E4B\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...son of El.{\\r}\r\nDialogue: 0,1:33:29.60,1:33:30.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0D\u81EA\u5DF1\u6C92\u4FE1\u5FC3{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Unsure of yourself.{\\\
- r}\r\nDialogue: 0,1:33:35.97,1:33:38.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u4E26\u4E0D\u50CF\u4F60{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The fact that you possess a sense\
- \ of morality...{\\r}\r\nDialogue: 0,1:33:39.18,1:33:40.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D7\u9053\u5FB7\u6E96\u5247\u7684\u675F\
- \u7E1B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and we\
- \ do not...{\\r}\r\nDialogue: 0,1:33:41.18,1:33:43.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u9019\u6B63\u662F\u6211\u5011\u9032\
- \u5316\u7684\u512A\u52E2{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...gives us an evolutionary advantage.{\\r}\r\nDialogue: 0,1:33:47.25,1:33:49.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u8AAA\u6B77\u53F2\u8B49\u660E\
- \u4E86\u4EC0\u9EBC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ if history has proven anything...{\\r}\r\nDialogue: 0,1:33:59.63,1:34:03.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u662F\u9032\u5316\u8005\u6C38\
- \u9060\u66F4\u5F37\u5927{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...it is that evolution always wins.{\\r}\r\nDialogue: 0,1:34:24.52,1:34:26.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u4F86\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}CCT, we're approaching...{\\r}\r\n\
- Dialogue: 0,1:34:26.29,1:34:28.13,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u8457\u9678 \u5168\u529B\u4E0B\u964D{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...LZ Jayhawk. Get down in five.{\\r}\r\
- \nDialogue: 0,1:34:28.36,1:34:30.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8D70\u5427 \u524D\u9032{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Let's go. Go to the LZ.{\\r}\r\nDialogue: 0,1:34:30.99,1:34:32.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6536\u5230 \u4E2D\u58EB \u51FA\u767C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Roger, sarge. let's\
- \ go!{\\r}\r\nDialogue: 0,1:35:09.77,1:35:11.09,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u516C\u725B\u6D41\u6D6A\u8005\u865F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All rangers, I need you...{\\\
- r}\r\nDialogue: 0,1:35:11.33,1:35:12.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7784\u6E96\u6240\u6709\u76EE\u6A19{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to engage the targets.{\\r}\r\n\
- Dialogue: 0,1:35:13.00,1:35:14.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5B88\u8B77\u8005 \u9019\u88CF\u662F\u4E00\u865F\u6230\u5834\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian, this is\
- \ Badger 01.{\\r}\r\nDialogue: 0,1:35:14.34,1:35:15.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u500B\u7A7F\u85CD\u8863\u670D\u7684\
- \u50A2\u4F19\u600E\u9EBC\u8FA6\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What about the guy in blue?{\\r}\r\nDialogue: 0,1:35:15.87,1:35:16.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8AAA\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I said engage...{\\r}\r\nDialogue: 0,1:35:17.17,1:35:18.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u653B\u64CA\u6240\u6709\u76EE\u6A19{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...all targets.{\\\
- r}\r\nDialogue: 0,1:35:29.52,1:35:30.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6230\u9B25 \u6230\u9B25{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Contact. Contact.{\\r}\r\nDialogue: 0,1:35:40.73,1:35:41.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6C92\u4E8B\u5427\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You okay?{\\r}\r\nDialogue:\
- \ 0,1:35:47.30,1:35:49.41,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u88AB\u64CA\u4E2D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We're auto-rotating, going in hard.{\\r}\r\nDialogue:\
- \ 0,1:35:50.14,1:35:51.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u53D7\u5230\u4E86\u649E\u64CA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Brace for impact.{\\r}\r\nDialogue: 0,1:35:52.11,1:35:53.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u53D7\u649E\u64CA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Brace for impact.{\\r}\r\n\
- Dialogue: 0,1:35:53.48,1:35:54.45,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6B63\u5728\u589C\u843D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We're going in hard!{\\r}\r\nDialogue: 0,1:35:59.55,1:36:03.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u8B77\u8005\u5DF2\u589C\u6BC0 \u91CD\
- \u8907\u4E00\u6B21 \u5B88\u8B77\u8005\u5DF2\u589C\u6BC0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Fallen angel. Fallen angel. Guardian\
- \ is down. I repeat, Guardian is down.{\\r}\r\nDialogue: 0,1:36:25.48,1:36:26.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u8B77\u8005 \u807D\u5230\u8ACB\u56DE\
- \u7B54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian,\
- \ do you read?{\\r}\r\nDialogue: 0,1:36:27.24,1:36:28.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96F7\u96FB12\u865F\u547C\u53EB\u5B88\u8B77\
- \u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 12,\
- \ calling Guardian.{\\r}\r\nDialogue: 0,1:36:28.81,1:36:30.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u80FD\u6536\u5230\u55CE\uFF1F - \u96F7\
- \u96FB12\u865F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Do you read? - Thunder 12...{\\r}\r\nDialogue: 0,1:36:30.41,1:36:31.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u88CF\u662F\u5B88\u8B77\u8005{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...this is Guardian.{\\\
- r}\r\nDialogue: 0,1:36:31.58,1:36:33.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u706B\u529B\u5168\u90E8\u5C0D\u6E96\u9019\u88CF \u4E0D\
- \u7528\u7BA1\u6211\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Put down everything you've got north of my position.{\\r}\r\nDialogue:\
- \ 0,1:36:34.18,1:36:36.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u9019\u88CF\u662F\u5371\u96AA\u5340\u57DF - \u6536\u5230 \u5371\
- \u96AA\u5340\u57DF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ This will be danger-close. - Copy, danger-close.{\\r}\r\nDialogue:\
- \ 0,1:36:36.62,1:36:37.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u795D\u4F60\u597D\u904B \u9577\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Good luck, sir.{\\r}\r\nDialogue: 0,1:37:17.73,1:37:20.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B7B\u5F97\u5149\u69AE\u5C31\u662F\u6B7B\
- \u5F97\u5176\u6240{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A\
- \ good death is its own reward.{\\r}\r\nDialogue: 0,1:37:34.18,1:37:35.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u8D0F\u4E0D\u4E86\u7684{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You will not win.{\\r}\r\n\
- Dialogue: 0,1:37:36.98,1:37:38.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u6BCF\u6551\u4E00\u500B\u4EBA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}For every human you save...{\\r}\r\nDialogue:\
- \ 0,1:37:38.75,1:37:41.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u6703\u591A\u6BBA\u4E00\u767E\u842C{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we will kill a million more. Unh!{\\\
- r}\r\nDialogue: 0,1:38:32.74,1:38:35.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9084\u6709\u6575\u4EBA\u55CE\uFF1F\u9084\u6709\u6575\
- \u4EBA\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do\
- \ we have an all clear? Do we have an all clear?{\\r}\r\nDialogue: 0,1:38:36.14,1:38:38.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}A\u5C0F\u968A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Alpha team, sit-rep. Alpha team.{\\r}\r\nDialogue:\
- \ 0,1:38:38.64,1:38:40.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6536\u5230\u8ACB\u56DE\u7B54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Do you copy? Alpha team.{\\r}\r\nDialogue: 0,1:39:29.76,1:39:31.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u500B\u4EBA\u4E0D\u662F\u6211\u5011\
- \u7684\u6575\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This\
- \ man is not our enemy.{\\r}\r\nDialogue: 0,1:39:34.43,1:39:35.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B1D\u8B1D\u4F60 \u4E0A\u6821{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thank you, colonel.{\\r}\r\n\
- Dialogue: 0,1:39:53.82,1:39:54.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5ABD\u5ABD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mom?{\\r}\r\nDialogue: 0,1:39:55.95,1:39:57.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6C92\u4E8B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm all right.{\\r}\r\nDialogue: 0,1:40:09.67,1:40:11.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8863\u670D\u5F88\u6F02\u4EAE \u5152\u5B50\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Nice suit, son.{\\\
- r}\r\nDialogue: 0,1:40:12.70,1:40:14.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C0D\u4E0D\u8D77{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm so sorry.{\\r}\r\nDialogue: 0,1:40:15.04,1:40:17.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u4E9B\u53EA\u662F\u8EAB\u5916\u4E4B\
- \u7269 \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's only stuff, Clark.{\\r}\r\nDialogue: 0,1:40:18.51,1:40:20.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7E3D\u662F\u6703\u88AB\u53D6\u4EE3\u7684\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It can always be\
- \ replaced.{\\r}\r\nDialogue: 0,1:40:23.38,1:40:24.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u80FD\u88AB\u53D6\u4EE3\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you can't be.{\\\
- r}\r\nDialogue: 0,1:40:25.98,1:40:28.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5ABD\u5ABD \u4F50\u5FB7\u8AAA\u4ED6\u8981\u627E\u7684\
- \u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Mom,\
- \ Zod said this Codex...{\\r}\r\nDialogue: 0,1:40:28.65,1:40:30.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u4EE5\u8B93\u6211\u7684\u7A2E\u65CF\
- \u91CD\u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...he's\
- \ looking for can bring my people back.{\\r}\r\nDialogue: 0,1:40:31.25,1:40:32.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u4E0D\u662F\u5F88\u597D\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Isn't that a good\
- \ thing?{\\r}\r\nDialogue: 0,1:40:37.16,1:40:39.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u8A8D\u70BA\u4ED6\u5011\u60F3\
- \u8981\u5206\u4EAB\u9019\u500B\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I don't think they're interested in sharing this\
- \ world.{\\r}\r\nDialogue: 0,1:40:40.26,1:40:41.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:40:42.23,1:40:43.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:40:45.00,1:40:46.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053\u600E\u9EBC\u963B\u6B62\
- \u4ED6\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know\
- \ how to stop them.{\\r}\r\nDialogue: 0,1:40:48.94,1:40:50.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u767C\u751F\u4E86\u4EC0\u9EBC\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened down\
- \ there?{\\r}\r\nDialogue: 0,1:40:50.61,1:40:53.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u767C\u73FE\u4E86\u6211\u5011\u4E00\
- \u500B\u66AB\u6642\u7684\u5F31\u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}He exposed a temporary weakness.{\\r}\r\nDialogue: 0,1:40:54.34,1:40:56.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u5DF2\u7D93\u4E0D\u91CD\u8981\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It is of little\
- \ consequence...{\\r}\r\nDialogue: 0,1:40:57.55,1:41:00.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u70BA\u6211\u77E5\u9053\u5BC6\u5178\
- \u5728\u54EA\u5152\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...because I have located the Codex.{\\r}\r\nDialogue: 0,1:41:01.25,1:41:03.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6839\u672C\u5C31\u4E0D\u5728\u592A\u7A7A\
- \u8259\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was\
- \ never in the capsule.{\\r}\r\nDialogue: 0,1:41:04.12,1:41:05.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55AC\u2022\u827E\u723E\u62FF\u8D70\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-el took the\
- \ Codex...{\\r}\r\nDialogue: 0,1:41:06.06,1:41:08.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A18\u9304\u8457\u6578\u5341\u5104\u4EBA\
- \u57FA\u56E0\u7684\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the DNA of a billion people, then he bonded it...{\\r}\r\nDialogue:\
- \ 0,1:41:08.76,1:41:11.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u628A\u5B83\u85CF\u5728\u4ED6\u5152\u5B50\u7684\u6BCF\u4E00\u500B\
- \u7D30\u80DE\u7576\u4E2D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...within his son's individual cells.{\\r}\r\nDialogue: 0,1:41:11.96,1:41:13.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u6709\u6C2A\u661F\u4EBA\u7684\u5F8C\
- \u4EE3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All of Krypton's\
- \ heirs...{\\r}\r\nDialogue: 0,1:41:13.80,1:41:17.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u85CF\u5728\u4E00\u500B\u5916\u661F\
- \u96E3\u6C11\u7684\u8EAB\u9AD4\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...living hidden in one refugee's body.{\\r}\r\nDialogue:\
- \ 0,1:41:21.30,1:41:23.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8981\u5F9E\u5361\u723E\u2022\u827E\u723E\u7684\u7D30\u80DE\u88CF\
- \u62FF\u5230\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Does Kal-El need to be alive...{\\r}\r\nDialogue: 0,1:41:23.54,1:41:26.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9700\u8981\u4ED6\u6D3B\u8457\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...for us to extract\
- \ the Codex from his cells?{\\r}\r\nDialogue: 0,1:41:28.08,1:41:29.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u7528{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No.{\\r}\r\nDialogue: 0,1:41:35.15,1:41:37.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u555F\u52D5\u4E16\u754C\u5F15\u64CE{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Release the world engine.{\\\
- r}\r\nDialogue: 0,1:42:09.65,1:42:10.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u767C\u751F\u4E86\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What just happened?{\\r}\r\nDialogue:\
- \ 0,1:42:10.75,1:42:11.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u8258\u8239\u4E00\u5206\u70BA\u4E8C{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship just split in two.{\\r}\r\nDialogue:\
- \ 0,1:42:12.15,1:42:15.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E00\u8258\u5F80\u6771\u98DB\u53BB\u4E86 \u53E6\u4E00\u8258\u5411\
- \u5357\u534A\u7403\u53BB\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Track one is heading east, track two to the southern hemisphere.{\\\
- r}\r\nDialogue: 0,1:42:15.49,1:42:18.16,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u901F\u5EA6\u6709\u591A\u5FEB\uFF1F - \u63A5\u8FD1\
- ...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- How fast is\
- \ that bogey moving? - Approaching...{\\r}\r\nDialogue: 0,1:42:18.16,1:42:19.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}24\u99AC\u8D6B \u4E26\u4E14\u9084\u5728\u52A0\
- \u901F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...Mach 24\
- \ and accelerating.{\\r}\r\nDialogue: 0,1:42:19.83,1:42:22.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u8D77\u4F86\u50CF\u662F\u8981\u964D\
- \u843D\u5728\u5357\u5370\u5EA6\u6D0B\u7684\u67D0\u500B\u5730\u65B9{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's gonna impact somewhere\
- \ in the Indian Ocean.{\\r}\r\nDialogue: 0,1:42:41.22,1:42:42.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53E6\u4E00\u8258\u8239\u4E5F\u5728\u964D\
- \u843D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The rest of\
- \ the ship is descending.{\\r}\r\nDialogue: 0,1:42:43.85,1:42:45.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u87A2\u5E55\u986F\u793A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Put it on the board now.{\\r}\r\n\
- Dialogue: 0,1:42:45.22,1:42:46.29,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u9075\u547D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Yes, sir.{\\r}\r\nDialogue: 0,1:42:47.32,1:42:48.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u554A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:43:29.00,1:43:31.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8B93\u5E7D\u9748\u5F15\u64CE\u5F85\u547D\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bring the phantom\
- \ drive online.{\\r}\r\nDialogue: 0,1:43:53.39,1:43:55.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5DF2\u7D93\u8207\u4E16\u754C\u5F15\u64CE\
- \u5EFA\u7ACB\u9023\u63A5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We are now slave to the world engine.{\\r}\r\nDialogue: 0,1:43:56.96,1:43:58.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u555F\u52D5{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Initiate.{\\r}\r\nDialogue: 0,1:44:31.63,1:44:33.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u767C\u5C04\u904E\u4F86\u7684\
- \u662F\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What have they hit us with?{\\r}\r\nDialogue: 0,1:44:33.67,1:44:35.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3} \u770B\u4E0A\u53BB\u50CF\u662F\u67D0\u7A2E\
- \u91CD\u529B\u6B66\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Looks like some kind of gravity...{\\r}\r\nDialogue: 0,1:44:36.10,1:44:39.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u548C\u4ED6\u5011\u7684\u98DB\u8239\u540C\
- \u6B65\u5DE5\u4F5C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...weapon.\
- \ It's working in tandem with their ship.{\\r}\r\nDialogue: 0,1:44:40.07,1:44:43.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u7A2E\u53EF\u4EE5\u589E\u52A0\u5730\
- \u7403\u8CEA\u91CF\u7684\u6771\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Somehow they're increasing the Earth's mass...{\\r}\r\n\
- Dialogue: 0,1:44:43.41,1:44:45.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5229\u7528\u5FAE\u5875\u6C61\u6FC1\u5927\u6C23{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...clouding the atmosphere\
- \ with particulates.{\\r}\r\nDialogue: 0,1:44:47.24,1:44:48.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u54EA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:44:50.18,1:44:51.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u5728\u9032\u884C\u74B0\u5883\
- \u6539\u9020{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They're\
- \ terraforming.{\\r}\r\nDialogue: 0,1:44:51.95,1:44:52.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u662F\u4EC0\u9EBC\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's that?{\\r}\r\nDialogue:\
- \ 0,1:44:53.58,1:44:54.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u884C\u661F\u5DE5\u7A0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Planetary engineering...{\\r}\r\nDialogue: 0,1:44:54.95,1:44:58.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FEE\u6539\u5730\u7403\u4E0A\u7684\u5927\
- \u6C23\u548C\u5730\u5F62{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...modifying the Earth's atmosphere and topography.{\\r}\r\nDialogue:\
- \ 0,1:44:58.42,1:44:59.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ED6\u5011\u8981\u628A\u5730\u7403\u8F49\u5316\u6210\u6C2A\u661F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Turning Earth into\
- \ Krypton.{\\r}\r\nDialogue: 0,1:45:00.36,1:45:03.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F46\u662F\u6211\u5011\u6703\u600E\u9EBC\
- \u6A23\uFF1F - \u7406\u8AD6\u4E0A\u8AAA...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- But what happens to us? - Based on these\
- \ readings...{\\r}\r\nDialogue: 0,1:45:03.76,1:45:06.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4E0D\u518D\u6709\"\u6211\u5011\"\u4E86\
- \ - \u65AF\u65FA\u5A01\u514B\u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- ...there won't be an \"us.\" - General Swanwick,\
- \ sir.{\\r}\r\nDialogue: 0,1:45:07.16,1:45:08.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u63A7\u5236\u5854\u4F86\u96FB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm on with the control tower.{\\\
- r}\r\nDialogue: 0,1:45:08.80,1:45:11.64,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u54C8\u8FEA\u4E0A\u6821\u6B63\u5728\u8DEF\u4E0A \u548C\
- \u4ED6\u5728\u4E00\u8D77\u7684\u9084\u6709\u8D85\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Colonel Hardy's on his way and he's\
- \ got Superman in tow.{\\r}\r\nDialogue: 0,1:45:11.77,1:45:12.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D85\u4EBA\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Superman?{\\r}\r\nDialogue: 0,1:45:13.37,1:45:14.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u500B\u5916\u661F\u4EBA \u5148\u751F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The alien, sir.{\\\
- r}\r\nDialogue: 0,1:45:14.80,1:45:17.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u5011\u53EB\u4ED6\u8D85\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's what they're calling him. Superman.{\\\
- r}\r\nDialogue: 0,1:45:22.68,1:45:23.88,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u6709\u500B\u8A08\u5283 \u5C07\u8ECD{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have a plan, general.{\\\
- r}\r\nDialogue: 0,1:45:24.15,1:45:26.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u548C\u6211\u60F3\u7684\u4E00\u6A23\u55CE\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is that what I think it\
- \ is?{\\r}\r\nDialogue: 0,1:45:26.78,1:45:28.56,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u9019\u662F\u4ED6\u5750\u7684\u98DB\u8239{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's the ship he arrived\
- \ in.{\\r}\r\nDialogue: 0,1:45:30.22,1:45:32.86,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u9019\u8258\u98DB\u8239\u7531\u67D0\u7A2E\u53EB\
- \u5E7D\u9748\u5F15\u64CE\u7684\u7269\u8CEA\u9A45\u52D5{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This ship is powered by something\
- \ called a phantom drive.{\\r}\r\nDialogue: 0,1:45:33.12,1:45:34.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B83\u80FD\u5920\u626D\u66F2\u6642\u7A7A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It bends space.{\\\
- r}\r\nDialogue: 0,1:45:34.82,1:45:38.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u7684\u98DB\u8239\u904B\u7528\u4E86\u540C\
- \u6A23\u7684\u539F\u7406 \u5982\u679C\u6211\u5011\u80FD\u8B93\u5169\u8005\u5C0D\
- \u649E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Zod's ship\
- \ uses the same technology, and if we can make the two drives collide...{\\\
- r}\r\nDialogue: 0,1:45:39.03,1:45:40.87,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u80FD\u5275\u9020\u51FA\u4E00\u500B\u5947\u7570\
- \u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A singularity\
- \ can be created.{\\r}\r\nDialogue: 0,1:45:41.13,1:45:42.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5C31\u50CF\u9ED1\u6D1E - \u5C0D{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Like a black hole.\
- \ - Yes.{\\r}\r\nDialogue: 0,1:45:42.70,1:45:44.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u5982\u679C\u6211\u5011\u6253\
- \u958B\u901A\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So\
- \ if we open up this doorway...{\\r}\r\nDialogue: 0,1:45:44.47,1:45:46.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7406\u8AD6\u4E0A\u4F86\u8AAA\u4ED6\u5011\
- \u5C31\u61C9\u8A72\u88AB\u5438\u9032\u53BB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...they should be pulled back in.{\\r}\r\nDialogue:\
- \ 0,1:45:46.34,1:45:48.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6240\u4EE5\u4F60\u60F3\u6211\u5011\u7528\u90A3\u500B\u70B8\u6389\
- \u4ED6\u5011{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So you\
- \ want us to bomb them with that?{\\r}\r\nDialogue: 0,1:45:49.07,1:45:51.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C07\u8ECD \u5982\u679C\u592A\u7A7A\u8239\
- \u9054\u5230{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General,\
- \ that craft maxes out...{\\r}\r\nDialogue: 0,1:45:51.31,1:45:54.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}17000\u78C5 \u53EF\u4EE5\u5F9EC-17\u6295\
- \u64F2\u4E0B\u4F86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...17,000\
- \ pounds, we can drop it from a C-17.{\\r}\r\nDialogue: 0,1:45:54.91,1:45:56.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u662F\u53EF\u884C\u7684{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's a viable plan.{\\r}\r\n\
- Dialogue: 0,1:45:56.31,1:45:58.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5982\u679C\u6211\u4E0D\u963B\u6B62\u5370\u5EA6\u6D0B\u4E0A\
- \u7684\u6A5F\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If\
- \ I don't stop that machine over the Indian Ocean...{\\r}\r\nDialogue: 0,1:45:58.68,1:46:02.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u91CD\u529B\u5834\u9084\u6703\u7E7C\u7E8C\
- \u64F4\u5927{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the\
- \ gravity field will continue to expand.{\\r}\r\nDialogue: 0,1:46:07.76,1:46:10.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u90A3\u500B\u6771\u897F\u662F\
- \u4F7F\u5730\u7403\u6C2A\u661F\u5316{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}If that thing is making Earth more like Krypton...{\\r}\r\
- \nDialogue: 0,1:46:10.89,1:46:12.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5728\u5B83\u9644\u8FD1\u4E0D\u6703\u66F4\u8106\
- \u5F31\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...won't\
- \ you be weaker around it?{\\r}\r\nDialogue: 0,1:46:14.23,1:46:15.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u53EF\u80FD{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Maybe.{\\r}\r\nDialogue: 0,1:46:16.40,1:46:18.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E0D\u6703\u8B93\u5B83\u963B\
- \u6B62\u6211\u8A66\u4E00\u8A66{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'm not about to let that stop me from trying.{\\r}\r\nDialogue: 0,1:46:19.84,1:46:22.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EF\u80FD\u60F3\u5F8C\u9000\u4E00\
- \u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You might\
- \ want to step back a little bit.{\\r}\r\nDialogue: 0,1:46:24.11,1:46:25.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u80FD\u8981\u518D\u9000\u4E00\u9EDE\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Maybe a little bit\
- \ more.{\\r}\r\nDialogue: 0,1:46:57.71,1:46:58.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8299\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Faora.{\\r}\r\nDialogue: 0,1:46:59.31,1:47:00.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F86\u6307\u63EE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take command.{\\r}\r\nDialogue: 0,1:47:00.64,1:47:03.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u9075\u547D - \u6211\u8981\u4FDD\u8B49\
- \u59CB\u6E90\u5BA4\u7684\u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Yes, sir. - I need to secure the genesis chamber...{\\\
- r}\r\nDialogue: 0,1:47:04.21,1:47:06.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9084\u8981\u5411\u4E00\u500B\u8001\u670B\u53CB\u81F4\
- \u610F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and pay\
- \ my respects to an old friend.{\\r}\r\nDialogue: 0,1:47:14.72,1:47:16.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u8B77\u8005\u524D\u5F80\u5927\u90FD\
- \u6703{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian en\
- \ route to Metropolis...{\\r}\r\nDialogue: 0,1:47:17.63,1:47:18.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u651C\u5E36\u5305\u88F9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...package in tow.{\\r}\r\nDialogue:\
- \ 0,1:47:24.10,1:47:27.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u88AB\u544A\u77E5\u4E86F-35\u6230\u6A5F\u5165\u5883\u7684\u6703\u5408\
- \u9EDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Be advised,\
- \ F-35s inbound to rendezvous point.{\\r}\r\nDialogue: 0,1:47:27.27,1:47:29.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u73FE\u5728\u61C9\u8A72\u5728\u8996\
- \u89BA\u63A5\u89F8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ should have visual contact now.{\\r}\r\nDialogue: 0,1:48:14.45,1:48:18.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u63A7\u9470\u5319\u8B58\u5225\u6B63\
- \u78BA \u59CB\u6E90\u5BA4\u5F85\u547D \u5148\u751F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Command key accepted. Genesis chamber\
- \ coming online, sir.{\\r}\r\nDialogue: 0,1:48:18.52,1:48:19.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F4F\u624B \u4F50\u5FB7{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Stop this, Zod...{\\r}\r\nDialogue:\
- \ 0,1:48:19.69,1:48:21.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8D81\u9084\u6709\u6642\u9593{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...while there's still time.{\\r}\r\nDialogue: 0,1:48:23.06,1:48:26.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9084\u6C92\u653E\u68C4\u5C0D\u6211\u8AAA\
- \u6559\u5462 \u662F\u5427 \u54EA\u6015\u662F\u6B7B\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Haven't given up lecturing me, have\
- \ you, even in death?{\\r}\r\nDialogue: 0,1:48:26.73,1:48:28.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u6703\u8B93\u4F60\u7528\u5BC6\
- \u5178\u505A\u9019\u4E9B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will not let you use the Codex like this.{\\r}\r\nDialogue: 0,1:48:29.00,1:48:30.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6C92\u6B0A\u529B\u963B\u6B62\u6211\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You don't have the\
- \ power to stop me.{\\r}\r\nDialogue: 0,1:48:30.97,1:48:34.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u63D2\u5165\u7684\u4E3B\u63A7\u9470\
- \u5319\u5DF2\u7D93\u5EE2\u9664\u4E86\u4F60\u7684\u6B0A\u9650{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The command key I have entered is\
- \ revoking your authority.{\\r}\r\nDialogue: 0,1:48:34.24,1:48:37.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u98DB\u8239\u5728\u6211\u638C\u63A7\u4E4B\
- \u4E0B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This\
- \ ship is now under my control.{\\r}\r\nDialogue: 0,1:49:08.67,1:49:10.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u9019\u88CF\
- \u662F\u9583\u96FB1\u865F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Northcom, Lightning 1, request...{\\r}\r\nDialogue: 0,1:49:10.51,1:49:12.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8ACB\u6C42\u91CB\u653E\u5C0E\u5F48{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...permission to unleash\
- \ the hounds.{\\r}\r\nDialogue: 0,1:49:12.03,1:49:16.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5468\u570D\u5B89\u5168 \u53EF\u4EE5\u8972\
- \u64CA \u53EF\u80FD\u7684\u8A71\u767C\u751F\u4F5C\u6230\u640D\u58DE\u8A55\u4F30\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lightning 1, you\
- \ are clear to engage. Send battle damage assessment when able. Out.{\\r}\r\
- \nDialogue: 0,1:49:30.19,1:49:32.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u96FB\u5B50\u8A2D\u5099\u9677\u5165\u6DF7\u4E82{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Avionics are going haywire.\
- \ The gravity field...{\\r}\r\nDialogue: 0,1:49:32.80,1:49:35.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u91CD\u529B\u5834\u727D\u5F15\u6211\u5011\
- \u7684\u5C0E\u5F48\u4E0B\u589C \u6211\u5011\u9700\u8981\u66F4\u52A0\u63A5\u8FD1\
- \u76EE\u6A19{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is\
- \ pulling our missiles down. We gotta get closer.{\\r}\r\nDialogue: 0,1:49:40.24,1:49:41.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u4E86\u5404\u4F4D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All right, everybody...{\\r}\r\nDialogue:\
- \ 0,1:49:41.54,1:49:44.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5011\u96E2\u958B\u4E86 \u73FE\u5728\u5C31\u96E2\u958B\u5927\
- \u6A13{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we're leaving.\
- \ We're leaving the building now.{\\r}\r\nDialogue: 0,1:50:07.56,1:50:09.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5931\u53BB\u4E86\u6211\u7684\u50DA\
- \u6A5F\u99D5\u99DB\u54E1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I just lost my wingman.{\\r}\r\nDialogue: 0,1:50:11.80,1:50:12.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u98DB\u6A5F\u5931\u63A7 \u98DB\u6A5F\u5931\
- \u63A7 \u98DB\u6A5F\u5931\u63A7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mayday! Mayday! Mayday!{\\r}\r\nDialogue: 0,1:50:24.51,1:50:26.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5404\u4F4D \u9019\u908A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Everybody, this way! Come on!{\\r}\r\
- \nDialogue: 0,1:50:26.75,1:50:29.82,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5404\u4F4D \u5FEB\u9EDE \u5FEB \u5FEB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Everybody, come on! Keep moving, keep\
- \ moving.{\\r}\r\nDialogue: 0,1:50:36.66,1:50:37.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A79\u59AE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Jenny!{\\r}\r\nDialogue: 0,1:50:41.66,1:50:42.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u54EA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:50:42.76,1:50:43.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u746A\u9E97{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Perry!{\\r}\r\nDialogue: 0,1:50:48.20,1:50:50.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D70\u9019\u908A \u5FEB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go! There! Go!{\\r}\r\nDialogue: 0,1:50:56.01,1:50:57.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u53EF\u4EE5\u5171\u5B58{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our people can co-exist.{\\\
- r}\r\nDialogue: 0,1:50:58.15,1:51:00.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9019\u6A23\u6211\u5011\u5C31\u50CF\u4F60\u5152\u5B50\
- \u90A3\u6A23{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So we\
- \ can suffer through years of pain{\\r}\r\nDialogue: 0,1:51:00.12,1:51:02.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6490\u904E\u6578\u5E74\u7684\u50B7\u75DB\
- \u4F86\u9069\u61C9\u74B0\u5883\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}trying to adapt like your son has?{\\r}\r\nDialogue: 0,1:51:02.99,1:51:04.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u8AAA\u7684\u662F\u7A2E\u65CF\u5C60\
- \u6BBA - \u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- You're talking about genocide. - Yes.{\\r}\r\nDialogue: 0,1:51:04.89,1:51:07.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4E14\u6211\u6B63\u548C\u4E00\u500B\
- \u9B3C\u9B42\u722D\u8AD6\u5176\u529F\u904E{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And I'm arguing its merits with a ghost.{\\r}\r\n\
- Dialogue: 0,1:51:08.86,1:51:10.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5011\u90FD\u662F\u9B3C\u9B42 \u4F50\u5FB7{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're both ghosts, Zod.{\\\
- r}\r\nDialogue: 0,1:51:10.89,1:51:14.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u4E0D\u660E\u767D\u55CE\uFF1F\u4F60\u4E0D\u9858\
- \u653E\u68C4\u7684\u6C2A\u661F\u5DF2\u7D93\u6C92\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can't you see that? The Krypton you're\
- \ clinging onto is gone.{\\r}\r\nDialogue: 0,1:51:14.66,1:51:17.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6AA2\u67E5\u597D\u5165\u4FB5\u7684\
- \u60C5\u5831\u4E86\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Ship, have you managed to quarantine this invasive intelligence?{\\\
- r}\r\nDialogue: 0,1:51:17.50,1:51:18.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u5931\u6557\u4E86 - \u597D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- You'll fail. - I have.{\\\
- r}\r\nDialogue: 0,1:51:18.63,1:51:20.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6E96\u5099\u597D\u7D42\u7D50\u9019\u4E00\u5207{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then prepare to terminate\
- \ it.{\\r}\r\nDialogue: 0,1:51:20.30,1:51:22.08,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u60F3\u722D\u5435\u4E86 \u8B93\u6211\
- \u9589\u5634{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ tired of this debate. Silencing me...{\\r}\r\nDialogue: 0,1:51:22.34,1:51:23.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u8B8A\u4E0D\u4E86\u4EFB\u4F55\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...won't change\
- \ anything.{\\r}\r\nDialogue: 0,1:51:26.01,1:51:27.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5152\u5B50...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My son...{\\r}\r\nDialogue: 0,1:51:28.14,1:51:29.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BD4\u4F60\u5F37\u5169\u500D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is twice the man you were.{\\\
- r}\r\nDialogue: 0,1:51:32.48,1:51:34.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u6703\u7D50\u675F\u6211\u5011\u767C\u8D77\u7684\
- \u7A2E\u7A2E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ he will finish what we started.{\\r}\r\nDialogue: 0,1:51:35.08,1:51:36.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4FDD\u8B49{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can promise you that.{\\r}\r\nDialogue:\
- \ 0,1:51:41.52,1:51:42.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u544A\u8A34\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Tell me...{\\r}\r\nDialogue: 0,1:51:43.16,1:51:46.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u55AC\u2022\u827E\u723E\u7684\
- \u8A18\u61B6\u548C\u826F\u77E5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...you have Jor-El's memories, his conscience.{\\r}\r\nDialogue: 0,1:51:47.43,1:51:50.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u4F60\u7D93\u6B77\u904E\u4ED6\u7684\
- \u75DB\u82E6\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Can you experience his pain?{\\r}\r\nDialogue: 0,1:51:51.87,1:51:55.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6703\u5F9E\u4F60\u5152\u5B50\u7684\
- \u5C4D\u9AD4\u88CF\u63D0\u53D6\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I will harvest the Codex from your son's corpse...{\\\
- r}\r\nDialogue: 0,1:51:55.90,1:52:01.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5728\u4ED6\u7684\u5C4D\u9AA8\u4E4B\u4E0A\u91CD\u5EFA\
- \u6C2A\u661F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and\
- \ I will rebuild Krypton atop his bones.{\\r}\r\nDialogue: 0,1:52:58.63,1:52:59.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A79\u59AE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Jenny.{\\r}\r\nDialogue: 0,1:52:59.60,1:53:02.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u8A79\u59AE \u8A79\u59AE \u4F60\u5728\
- \u54EA\uFF1F - \u6211\u5728\u9019\u88CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Jenny. Jenny, where are you? - I'm here!{\\r}\r\
- \nDialogue: 0,1:53:02.60,1:53:03.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u9019\u88CF \u9019\u88CF - \u8A79\u59AE{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm here. Here. - Jenny.{\\\
- r}\r\nDialogue: 0,1:53:03.91,1:53:05.41,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6490\u4F4F \u6490\u4F4F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hold on, hold on.{\\r}\r\nDialogue: 0,1:53:05.64,1:53:06.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5361\u4F4F\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm stuck.{\\r}\r\nDialogue: 0,1:53:06.84,1:53:08.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u52D5\u4E0D\u4E86 \u5361\u4F4F\u4E86\
- \ - \u597D\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ I can't get free. I'm stuck. - Okay.{\\r}\r\nDialogue: 0,1:53:08.78,1:53:11.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u6703\u628A\u4F60\u6551\u51FA\
- \u53BB \u4F60\u5225\u52D5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We'll get you out of there, all right? Just sit tight.{\\r}\r\nDialogue:\
- \ 0,1:53:11.58,1:53:12.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E0D\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No,\
- \ no, no!{\\r}\r\nDialogue: 0,1:53:12.41,1:53:14.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5225\u96E2\u958B\u6211 - \u6211\u4E0D\
- \u6703\u96E2\u958B\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Don't leave me. - We're not gonna leave you.{\\r}\r\nDialogue:\
- \ 0,1:53:14.35,1:53:15.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u597D - \u502B\u5DF4\u7B2C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Okay. - Lombard!{\\r}\r\nDialogue: 0,1:53:15.78,1:53:19.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u5ABD\u7684\u5FEB\u904E\u4F86\u5E6B\
- \u5FD9 - \u8A72\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Get your ass over here and help me. - Damn it.{\\r}\r\nDialogue:\
- \ 0,1:53:21.12,1:53:23.10,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u7528\u9019\u500B\u64AC - \u7D66\u4F60{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}- We just gotta move this. - Here.{\\\
- r}\r\nDialogue: 0,1:53:23.33,1:53:25.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7528\u529B\u8A66\u8A66\u770B \u597D\u4E86\u55CE\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Slide that in. You\
- \ push, I'll pull, okay?{\\r}\r\nDialogue: 0,1:53:25.63,1:53:26.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F86\u5427{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go.{\\r}\r\nDialogue: 0,1:53:30.87,1:53:32.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u7528\u529B - \u5929\u554A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Push! - Oh, my God.{\\\
- r}\r\nDialogue: 0,1:53:32.43,1:53:34.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8D8A\u4F86\u8D8A\u8FD1\u4E86 \u7528\u529B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's getting closer! Come on,\
- \ push!{\\r}\r\nDialogue: 0,1:53:36.10,1:53:38.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u9019\u88CF\
- \u662F\u5B88\u8B77\u8005 \u53EF\u4EE5\u6295\u64F2\u55CE\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Northcom, this is Guardian. Are we\
- \ cleared?{\\r}\r\nDialogue: 0,1:53:38.84,1:53:39.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u884C \u5B88\u8B77\u8005{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Negative, Guardian.{\\r}\r\n\
- Dialogue: 0,1:54:04.57,1:54:07.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5FEB \u7528\u529B\u554A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Come on! Push!{\\r}\r\nDialogue: 0,1:54:59.02,1:55:00.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u505A\u5230\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He did it.{\\r}\r\nDialogue: 0,1:55:02.56,1:55:03.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u9019\u88CF\
- \u662F\u5B88\u8B77\u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Northcom, this is Guardian.{\\r}\r\nDialogue: 0,1:55:04.06,1:55:06.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u6B63\u7D93\u904E\u8ABF\u6574\
- \u7DDA \u4E00\u5207\u826F\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We're passing through phase line red. Good to go.{\\r}\r\nDialogue:\
- \ 0,1:55:06.56,1:55:07.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E00\u8DEF\u5E73\u5B89 \u5B88\u8B77\u8005{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Godspeed, Guardian.{\\r}\r\nDialogue:\
- \ 0,1:55:07.73,1:55:10.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6574\u7406\u5305\u88F9 \u6E96\u5099\u6295\u64F2{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Arm the package. You are cleared hot.{\\\
- r}\r\nDialogue: 0,1:55:10.40,1:55:12.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6E96\u5099\u767C\u51FA\u6700\u5F8C\u4E00\u64CA{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're lining up for the\
- \ final run.{\\r}\r\nDialogue: 0,1:55:13.27,1:55:15.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73FE\u5728\u770B\u4F60\u548C\u6F22\u5BC6\
- \u723E\u9813\u7684\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's up to you and Hamilton now.{\\r}\r\nDialogue: 0,1:55:55.44,1:55:56.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u641E\u4EC0\u9EBC{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You gotta be kidding me.{\\r}\r\nDialogue:\
- \ 0,1:55:56.45,1:55:59.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7406\u8CA8\u54E1 \u5305\u88F9\u662F\u5426\u6B66\u88DD\u5B8C\u7562\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Loadmaster,\
- \ is the package ready to drop?{\\r}\r\nDialogue: 0,1:55:59.35,1:56:00.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u884C \u5B88\u8B77\u8005{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Negative, Guardian.{\\r}\r\n\
- Dialogue: 0,1:56:00.85,1:56:02.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u51FA\u554F\u984C\u4E86 \u4E0D\u8A72\u9019\u6A23\u7684{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's something wrong.\
- \ It's not supposed to do this.{\\r}\r\nDialogue: 0,1:56:02.65,1:56:04.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u61C9\u8A72\u600E\u6A23\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's it supposed\
- \ to do?{\\r}\r\nDialogue: 0,1:56:04.65,1:56:07.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u61C9\u8A72\u5B8C\u5168\u63D2\u9032\u53BB\
- \ - \u6211\u770B\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- It's supposed to go in all the way. - Let me take a look.{\\\
- r}\r\nDialogue: 0,1:56:07.96,1:56:09.53,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u526F\u99D5\u99DB\u63A5\u7BA1\u98DB\u6A5F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Co-pilot's aircraft.{\\r}\r\
- \nDialogue: 0,1:56:10.26,1:56:11.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u526F\u99D5\u99DB\u63A5\u7BA1\u98DB\u6A5F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Co-pilot's aircraft.{\\r}\r\
- \nDialogue: 0,1:56:18.50,1:56:21.17,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u5DF2\u7D93\u6392\u5217\u597D\u6E96\u5099\
- \u6295\u64F2\u4E86 \u9084\u5728\u7B49\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We are lined up for the drop. What's\
- \ the hold up?{\\r}\r\nDialogue: 0,1:56:21.44,1:56:22.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51FA\u73FE\u4E86\u9EDE\u554F\u984C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We've had a setback.{\\\
- r}\r\nDialogue: 0,1:56:38.19,1:56:39.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7784\u6E96\u98DB\u6A5F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Target that aircraft.{\\r}\r\nDialogue: 0,1:56:43.56,1:56:45.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9396\u5B9A\u76EE\u6A19{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Target locked.{\\r}\r\nDialogue: 0,1:56:54.80,1:56:55.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,1:56:55.90,1:56:58.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4F60\u6BC0\u4E86\u9019\u8258\
- \u98DB\u8239{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If you\
- \ destroy this ship...{\\r}\r\nDialogue: 0,1:56:58.24,1:57:00.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u662F\u6BC0\u4E86\u6C2A\u661F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you destroy Krypton!{\\\
- r}\r\nDialogue: 0,1:57:03.71,1:57:05.89,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C2A\u661F\u672C\u4F86\u9084\u6709\u6A5F\u6703\u7684\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton had its\
- \ chance.{\\r}\r\nDialogue: 0,1:57:59.87,1:58:01.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u84EE\u6069\u5C0F\u59D0 \u9019\u5152\u4E0D\
- \u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss\
- \ Lane! It's not safe for you...{\\r}\r\nDialogue: 0,1:58:01.97,1:58:02.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96E2\u958B\u90A3\u5152{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...over there!{\\r}\r\nDialogue: 0,1:58:03.10,1:58:03.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u84EE\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane!{\\r}\r\nDialogue: 0,1:58:33.60,1:58:35.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96E2\u958B \u5FEB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Move now! Go!{\\r}\r\nDialogue: 0,1:58:56.19,1:58:57.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B7B\u5F97\u5149\u69AE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A good death...{\\r}\r\nDialogue:\
- \ 0,1:58:57.46,1:58:59.03,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u662F\u6B7B\u5F97\u5176\u6240{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...is its own reward.{\\r}\r\nDialogue: 0,2:00:01.49,2:00:02.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5011\u8D70\u4E86\u55CE\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are they gone?{\\r}\r\
- \nDialogue: 0,2:00:04.09,2:00:05.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u60F3\u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I think so.{\\r}\r\nDialogue: 0,2:00:07.40,2:00:08.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6551\u4E86\u6211\u5011{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He saved us.{\\r}\r\nDialogue:\
- \ 0,2:00:34.22,2:00:37.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ED6\u5011\u8AAA\u521D\u543B\u4E4B\u5F8C\u5C31\u6BCF\u6CC1\u6108\
- \u4E0B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ know, they say it's all downhill after the first kiss.{\\r}\r\nDialogue:\
- \ 0,2:00:40.90,2:00:43.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5F88\u78BA\u5B9A \u4ED6\u5011\u53EA\u7D71\u8A08\u4E86\u89AA\
- \u543B\u4EBA\u985E\u7684\u6578\u64DA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm pretty sure that only counts when you're kissing a\
- \ human.{\\r}\r\nDialogue: 0,2:01:13.29,2:01:14.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u9019\u500B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look at this.{\\r}\r\nDialogue: 0,2:01:17.07,2:01:21.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5011\u672C\u53EF\u4EE5\u5728\u9019\
- \u7247\u5EE2\u589F\u4E0A\u5EFA\u7ACB\u8D77\u4E00\u500B\u65B0\u7684\u6C2A\u661F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We could have built\
- \ a new Krypton in this squalor.{\\r}\r\nDialogue: 0,2:01:21.24,2:01:24.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u662F\u5728\u6211\u5011\u548C\u4EBA\
- \u985E\u4E4B\u9593 \u4F60\u9078\u64C7\u4E86\u5F8C\u8005{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you chose the humans over us.{\\\
- r}\r\nDialogue: 0,2:01:25.77,2:01:27.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u7684\u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I exist...{\\r}\r\nDialogue: 0,2:01:27.58,2:01:29.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u50C5\u662F\u70BA\u4E86\u5B88\u8B77\u6C2A\
- \u661F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...only to\
- \ protect Krypton.{\\r}\r\nDialogue: 0,2:01:31.75,2:01:35.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u662F\u81EA\u6211\u51FA\u751F\u4EE5\
- \u4F86\u7684\u552F\u4E00\u76EE\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}That is the sole purpose for which I was born.{\\r}\r\n\
- Dialogue: 0,2:01:36.99,2:01:39.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u6240\u505A\u7684\u4E00\u5207{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And every action I take...{\\r}\r\nDialogue:\
- \ 0,2:01:39.35,2:01:41.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7121\u8AD6\u591A\u66B4\u529B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...no matter how violent...{\\r}\r\nDialogue: 0,2:01:41.62,2:01:43.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u591A\u9EBC\u6B98\u5FCD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...or how cruel...{\\r}\r\nDialogue:\
- \ 0,2:01:44.53,2:01:49.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7686\u662F\u70BA\u4E86\u6211\u7684\u4EBA\u6C11\u7684\u798F\u7949\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is for the greater\
- \ good of my people.{\\r}\r\nDialogue: 0,2:01:53.43,2:01:54.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73FE\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And now...{\\r}\r\nDialogue: 0,2:01:55.10,2:01:57.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6C92\u6709\u4EBA\u6C11\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I have no people.{\\\
- r}\r\nDialogue: 0,2:02:00.81,2:02:10.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4F60\u596A\u8D70\u4E86\u6211\u7684\u9748\u9B42\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My soul that is\
- \ what you have taken from me.{\\r}\r\nDialogue: 0,2:02:16.79,2:02:19.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u8B93\u4ED6\u5011\u627F\u64D4\
- \u75DB\u82E6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ going to make them suffer, Kal.{\\r}\r\nDialogue: 0,2:02:19.53,2:02:22.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6551\u4E0B\u7684\u4EBA\u985E \u6211\
- \u8981\u5F9E\u4F60\u624B\u88CF...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}These humans you've adopted, I will take them all from you...{\\r}\r\
- \nDialogue: 0,2:02:23.20,2:02:26.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E00\u500B\u4E00\u500B\u596A\u8D70 - \u4F60\u9019\
- \u500B\u602A\u7269 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- ...one by one. - You're a monster, Zod...{\\r}\r\nDialogue:\
- \ 0,2:02:28.80,2:02:30.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u6703\u963B\u6B62\u4F60\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...and I'm gonna stop you.{\\r}\r\nDialogue: 0,2:04:11.61,2:04:14.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7D50\u675F\u9019\u4E00\u5207\u53EA\u6709\
- \u4E00\u500B\u8FA6\u6CD5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}There's only one way this ends, Kal.{\\r}\r\nDialogue: 0,2:04:14.14,2:04:15.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u662F\u4F60\u6B7B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Either you die...{\\r}\r\nDialogue:\
- \ 0,2:04:16.24,2:04:17.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u662F\u6211\u4EA1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...or I do.{\\r}\r\nDialogue: 0,2:04:48.68,2:04:50.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u88AB\u7576\u505A\u4E00\u500B\u6230\
- \u58EB\u8A13\u7DF4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ was bred to be a warrior, Kal.{\\r}\r\nDialogue: 0,2:04:51.68,2:04:55.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7D42\u751F\u90FD\u5728\u53D7\u8A13\
- \u63A7\u5236\u611F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Trained my entire life to master my senses.{\\r}\r\nDialogue: 0,2:04:55.88,2:04:59.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5728\u54EA\u53D7\u8A13\u7684\uFF1F\
- \u8FB2\u5834\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Where did you train? On a farm?{\\r}\r\nDialogue: 0,2:07:08.42,2:07:12.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4F60\u6DF1\u611B\u8457\u9019\
- \u7FA4\u4EBA\u985E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If\
- \ you love these people so much...{\\r}\r\nDialogue: 0,2:07:13.19,2:07:15.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u70BA\u4ED6\u5011\u8FFD\u60BC\u5427\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you can mourn\
- \ for them.{\\r}\r\nDialogue: 0,2:07:19.93,2:07:21.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Don't do this!{\\r}\r\nDialogue: 0,2:07:24.20,2:07:25.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F4F\u624B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,2:07:31.37,2:07:32.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,2:07:34.71,2:07:35.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u53EF\u80FD{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never.{\\r}\r\nDialogue: 0,2:09:10.54,2:09:11.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4ED6\u5ABD\u662F\u8822\u86CB\u55CE\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are you effing\
- \ stupid?{\\r}\r\nDialogue: 0,2:09:12.14,2:09:14.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u90A3\u9EBC\u591A\u7A7A\u4E2D\
- \u5075\u5BDF\u6A5F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ one of your surveillance drones.{\\r}\r\nDialogue: 0,2:09:14.11,2:09:16.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9019\u73A9\u610F\u503C1200\u842C{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's a $12,000,000 piece\
- \ of hardware.{\\r}\r\nDialogue: 0,2:09:16.78,2:09:17.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u66FE\u7D93\u503C{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was.{\\r}\r\nDialogue: 0,2:09:18.61,2:09:21.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u60F3\u8FFD\u8E64\
- \u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know you're\
- \ trying to find out where I hang my cape.{\\r}\r\nDialogue: 0,2:09:21.75,2:09:25.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F46\u662F\u6C92\u9580 - \u90A3\u6211\
- \u660E\u78BA\u554F\u4F60\u4E00\u500B\u554F\u984C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- You won't. - Then I'll ask the obvious question:{\\\
- r}\r\nDialogue: 0,2:09:25.22,2:09:28.82,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5011\u600E\u9EBC\u77E5\u9053\u6709\u4E00\u5929\
- \ \u4F60\u4E0D\u6703\u640D\u5BB3\u7F8E\u570B\u7684\u5229\u76CA\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How do we know you won't\
- \ one day act against America's interests?{\\r}\r\nDialogue: 0,2:09:28.92,2:09:30.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5728\u582A\u85A9\u65AF\u9577\u5927\
- \ \u5C07\u8ECD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ grew up in Kansas, general.{\\r}\r\nDialogue: 0,2:09:31.23,2:09:33.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u7B97\u662F\u7F8E\u570B\u4EBA\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm about\
- \ as American as it gets.{\\r}\r\nDialogue: 0,2:09:33.66,2:09:34.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Look...{\\r}\r\nDialogue: 0,2:09:34.80,2:09:36.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u9858\u610F\u5E6B\u5FD9{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I'm here to help...{\\r}\r\
- \nDialogue: 0,2:09:36.50,2:09:38.74,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u5FC5\u9808\u662F\u6211\u5FC3\u7518\u60C5\u9858\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but it has to\
- \ be on my own terms.{\\r}\r\nDialogue: 0,2:09:38.97,2:09:40.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EF\u4EE5\u9019\u6A23\u8AAA\u670D\
- \u83EF\u76DB\u9813{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ have to convince Washington of that.{\\r}\r\nDialogue: 0,2:09:41.07,2:09:45.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u6211\u9858\u610F\u8AAA \u4F60\
- \u8A8D\u70BA\u4ED6\u5011\u6703\u807D\u55CE\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Even if I were willing to try, what makes you think\
- \ they'd listen?{\\r}\r\nDialogue: 0,2:09:46.14,2:09:47.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u77E5\u9053 \u5C07\u8ECD{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't know, general.{\\r}\r\
- \nDialogue: 0,2:09:49.14,2:09:50.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u662F\u6211\u53EA\u80FD\u76F8\u4FE1\u4F60{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guess I'll just have to\
- \ trust you.{\\r}\r\nDialogue: 0,2:10:00.42,2:10:03.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u7B11\u4EC0\u9EBC \u4E0A\u5C09\uFF1F\
- \ - \u6C92\u4EC0\u9EBC \u9577\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- What are you smiling about? - Nothing, Sir.{\\\
- r}\r\nDialogue: 0,2:10:07.13,2:10:09.71,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u89BA\u5F97\u4ED6\u5E25\u7206\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I just think he's kind of hot.{\\\
- r}\r\nDialogue: 0,2:10:11.27,2:10:13.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E0A\u8ECA \u4E0A\u5C09 - \u9075\u547D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Get in the car, captain.\
- \ - Mm-hm. Yes, sir.{\\r}\r\nDialogue: 0,2:10:23.34,2:10:26.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4E00\u76F4\u5805\u4FE1\u4F60\u751F\
- \u4F86\u8981\u505A\u5927\u4E8B\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}He always believed you were meant for greater things.{\\\
- r}\r\nDialogue: 0,2:10:26.81,2:10:28.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7576\u9019\u4E00\u5929\u4F86\u81E8\u6642{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And that when the day came...{\\\
- r}\r\nDialogue: 0,2:10:28.55,2:10:31.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u7684\u80A9\u8180\u8981\u80FD\u625B\u8D77\u5343\
- \u65A4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...your shoulders\
- \ would be able to bear the weight.{\\r}\r\nDialogue: 0,2:10:31.62,2:10:35.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u554A \u6211\u5E0C\u671B\u4ED6\u80FD\
- \u5920\u770B\u5230\u9019\u4E00\u5207{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Yeah, I just wish he could have been here to see it finally\
- \ happen.{\\r}\r\nDialogue: 0,2:10:35.89,2:10:38.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u770B\u5230\u4E86 \u514B\u62C9\u514B\
- \ \u76F8\u4FE1\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He\
- \ saw it, Clark, believe me.{\\r}\r\nDialogue: 0,2:11:25.37,2:11:28.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u62EF\u6551\u5730\u7403\u7684\
- \u6642\u5019 \u60F3\u5E79\u9EDE\u4EC0\u9EBC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What are you going to do when you're not saving the\
- \ world?{\\r}\r\nDialogue: 0,2:11:28.44,2:11:32.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6709\u60F3\u904E\u55CE\uFF1F - \u60F3\
- \u904E \u771F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Have you given any thought to that? - I have, actually. Heh, heh.{\\\
- r}\r\nDialogue: 0,2:11:33.78,2:11:37.79,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u6703\u627E\u4E00\u4EFD\u5DE5\u4F5C \u80FD\u5920\
- \u4FDD\u6301\u9AD8\u5EA6\u8B66\u89BA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I gotta find a job where I can keep my ear to the ground.{\\\
- r}\r\nDialogue: 0,2:11:43.02,2:11:45.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4EBA\u5011\u4E0D\u6703\u591A\u770B\u6211\u5169\u773C\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where people won't\
- \ look twice...{\\r}\r\nDialogue: 0,2:11:45.36,2:11:49.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7576\u6211\u8981\u53BB\u5371\u96AA\u7684\
- \u5730\u65B9 \u4E0D\u6703\u554F\u6211\u554F\u984C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...when I want to go somewhere dangerous and start\
- \ asking questions...{\\r}\r\nDialogue: 0,2:12:03.24,2:12:06.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u884C\u884C\u597D \u9732\u6613\u7D72 \u4F60\
- \u4EC0\u9EBC\u6642\u5019\u80FD\u53EF\u6190\u6211\u4E00\u4E0B\u5462\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, Lois. When\
- \ are you gonna throw me a bone?{\\r}\r\nDialogue: 0,2:12:07.55,2:12:09.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ECA\u665A\u6BD4\u8CFD\u7684\u7D55\u4F73\
- \u4F4D\u5B50 \u600E\u9EBC\u6A23\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Courtside seats to the game tonight.{\\r}\r\nDialogue:\
- \ 0,2:12:09.65,2:12:11.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u4EC0\u9EBC\uFF1F - \u6211\u8AAA...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- What do you say? - I say...{\\r}\r\nDialogue:\
- \ 0,2:12:11.45,2:12:13.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u61C9\u8A72\u53BB\u91E3\u91E3\u5BE6\u7FD2\u751F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you should go back to trolling\
- \ the intern pool.{\\r}\r\nDialogue: 0,2:12:14.26,2:12:17.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u80FD\u6703\u6709\u597D\u904B \u62B1\
- \u6B49{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You'll probably\
- \ have more luck. Sorry.{\\r}\r\nDialogue: 0,2:12:19.43,2:12:20.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u6BD4\u8CFD\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Courtside?{\\r}\r\nDialogue: 0,2:12:20.33,2:12:22.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5225\u53BB - \u4E0D\u53BB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Don't. Ha, ha, ha. \
- \ - No.{\\r}\r\nDialogue: 0,2:12:22.30,2:12:25.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u502B\u5DF4\u7B2C \u84EE\u6069 \u4F86\u898B\
- \u898B\u65B0\u7684\u7279\u7D04\u901A\u8A0A\u54E1{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lombard, Lane, I want you to meet our new stringer.{\\\
- r}\r\nDialogue: 0,2:12:25.33,2:12:28.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u7D66\u4ED6\u50B3\u6388\u50B3\u6388\u7AC5\u9580\
- \ \u4ED6\u53EB\u5361\u62C9\u514B\u2022\u80AF\u7279{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I want you to show him the ropes. This\
- \ is Clark Kent.{\\r}\r\nDialogue: 0,2:12:28.80,2:12:30.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u904B \u5B69\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Good luck, kid.{\\r}\r\nDialogue:\
- \ 0,2:12:31.64,2:12:32.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u53EB\u65AF\u8482\u592B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hey. Steve.{\\r}\r\nDialogue: 0,2:12:33.14,2:12:34.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5E78\u6703 - \u5E78\u6703{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Nice to meet you. -\
- \ You too.{\\r}\r\nDialogue: 0,2:12:34.64,2:12:35.48,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55E8{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hi.{\\r}\r\nDialogue: 0,2:12:36.41,2:12:37.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53EB\u9732\u6613\u7D72\u2022\u84EE\
- \u6069{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lois Lane.{\\\
- r}\r\nDialogue: 0,2:12:38.58,2:12:40.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6B61\u8FCE\u4F86\u300A\u661F\u7403\u65E5\u5831\u300B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Welcome to the \
- \ Planet.{\\r}\r\nDialogue: 0,2:12:43.85,2:12:46.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F88\u9AD8\u8208\u4F86\u9019 \u9732\u6613\
- \u7D72{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Glad to be\
- \ here, Lois.{\\r}\r\n\r\n"
- headers:
- cache-control:
- - max-age=2678400
- connection:
- - keep-alive
- # content-disposition:
- # - !!python/str "subtitle; filename=\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\
- # \u4F53&\u82F1\u6587.ass\""
- content-length:
- - '239578'
- content-type:
- - application/octet-stream
- date:
- - Sat, 30 Nov 2019 07:14:40 GMT
- expires:
- - Tue, 31 Dec 2019 07:14:40 GMT
- master:
- - Windu
- server:
- - nginx
- x-cache:
- - HIT
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_download_subtitle_zh.yaml b/tests/cassettes/assrt/test_download_subtitle_zh.yaml
deleted file mode 100644
index 0da87684a..000000000
--- a/tests/cassettes/assrt/test_download_subtitle_zh.yaml
+++ /dev/null
@@ -1,3933 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true,\"langdou\":true,\"langcht\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"release_site\":\"CMCT\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"revision\":0},{\"subtype\":\"SSA\",\"id\":316973,\"vote_score\":0,\"upload_time\"\
- :\"2014-12-06 04:13:44\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\":\"Man\
- \ of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0},{\"subtype\":\"\
- Subrip(srt)\",\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"vote_score\":0,\"upload_time\":\"2014-03-17 15:30:19\"\
- ,\"native_name\":\"\",\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4\
- ]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\",\"revision\":0},{\"subtype\"\
- :\"SSA\",\"id\":252930,\"lang\":{\"desc\":\"\u82F1 \u7E41 \u53CC\u8BED\",\"\
- langlist\":{\"langeng\":true,\"langdou\":true,\"langcht\":true}},\"vote_score\"\
- :45,\"upload_time\":\"2014-03-05 18:10:39\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"videoname\":\"Man of Steel\",\"revision\"\
- :0},{\"subtype\":\"Subrip(srt)\",\"id\":246016,\"lang\":{\"desc\":\"\u82F1\
- \ \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"langchs\"\
- :true}},\"vote_score\":0,\"upload_time\":\"2013-11-09 10:43:13\",\"native_name\"\
- :\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\
- \u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\",\"videoname\"\
- :\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\",\"revision\":0},{\"subtype\"\
- :\"SSA\",\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\u8BED\",\"\
- langlist\":{\"langchs\":true,\"langdou\":true,\"langcht\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2013-11-02 05:56:40\",\"native_name\":\"\u8D85\u4EBA\uFF1A\
- \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u7279\
- \u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"videoname\":\"Man of Steel\
- \ 1080p.bluray.x264-sector7\",\"revision\":0},{\"subtype\":\"\u5176\u4ED6\"\
- ,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"langchs\":true}},\"\
- vote_score\":0,\"upload_time\":\"2013-10-31 23:41:07\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"videoname\":\"Man.of.Steel.2013\",\"revision\":0},{\"subtype\":\"VobSub\"\
- ,\"id\":245259,\"vote_score\":100,\"upload_time\":\"2013-10-27 07:04:18\"\
- ,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"vote_score\":80,\"upload_time\"\
- :\"2013-10-25 04:50:37\",\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\
- \u8EAF\",\"videoname\":\"Man.Of.Steel\",\"revision\":0},{\"subtype\":\"SSA\"\
- ,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- vote_score\":0,\"upload_time\":\"2013-10-24 07:52:31\",\"native_name\":\"\"\
- ,\"videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013)\
- \ 1080p.cht\",\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":244971,\"\
- lang\":{\"desc\":\"\u7B80 \u7E41\",\"langlist\":{\"langchs\":true,\"langcht\"\
- :true}},\"vote_score\":10,\"upload_time\":\"2013-10-23 00:46:40\",\"native_name\"\
- :\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"videoname\":\"\u8D85\u4EBA: \u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4(\u6E2F\\/\u53F0\
- ).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\u76D8\",\"revision\"\
- :0},{\"subtype\":\"Subrip(srt)\",\"id\":244969,\"lang\":{\"desc\":\"\",\"\
- langlist\":{}},\"vote_score\":0,\"upload_time\":\"2013-10-22 23:39:00\",\"\
- native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"SSA\",\"id\":244960,\"lang\":{\"desc\":\"\u82F1\
- \ \u7B80\",\"langlist\":{\"langeng\":true,\"langchs\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2013-10-22 22:06:42\",\"native_name\":\"\u8D85\u4EBA\
- :\u94A2\u94C1\u4E4B\u8EAF\",\"videoname\":\"Superman: Man of Steel BD\",\"\
- revision\":0},{\"subtype\":\"\u5176\u4ED6\",\"id\":244939,\"lang\":{\"desc\"\
- :\"\",\"langlist\":{}},\"vote_score\":0,\"upload_time\":\"2013-10-22 17:42:45\"\
- ,\"native_name\":\"\",\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langchs\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"man.of.steel.2013.720p.bluray.x264-felony.mkv\",\"revision\":0}],\"action\"\
- :\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 14:07:59 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/detail?token=SECRET&id=%5B%27618185%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"result\":\"succeed\",\"subs\":[{\"id\":618185,\"\
- filelist\":[{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\/618185\\/-\\\
- /1\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?_=1575122879&-=159cbd264a1c51aaa40ba10021f3c849&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- &\u82F1\u6587.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/2\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93%26%E8%8B%B1%E6%96%87.srt?_=1575122879&-=dc85cb7adad4bd68bdbc72bd53c95f64&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- &\u82F1\u6587.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/3\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93.ass?_=1575122879&-=6803dae74a248f4cd25322084863fc5d&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- .ass\",\"s\":\"133KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/4\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93.srt?_=1575122879&-=f827dc4d357b85d428ee017b1828e506&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u4F53\
- .srt\",\"s\":\"80KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/5\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?_=1575122879&-=aecf7aa091e84874ae736d9679eeba15&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- &\u82F1\u6587.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/6\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93%26%E8%8B%B1%E6%96%87.srt?_=1575122879&-=ec15b55356564b55c55972723a72267e&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- &\u82F1\u6587.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/7\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93.ass?_=1575122879&-=10f05c7cd25cde35a11fda2c94a21d75&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- .ass\",\"s\":\"133KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/8\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%B9%81%E4%BD%93.srt?_=1575122879&-=99dd118570607efd6674d56a6612b4f9&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7E41\u4F53\
- .srt\",\"s\":\"119KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\/onthefly\\\
- /618185\\/-\\/9\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%AE%80%E4%BD%93.ass?_=1575122879&-=31d1f66db3d9508dbd8062f602691af0&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7B80\u4F53.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/10\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%AE%80%E4%BD%93.srt?_=1575122879&-=d32b0be444d0f33f8a64e283bb602f25&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7B80\u4F53.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/11\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%B9%81%E4%BD%93.ass?_=1575122879&-=b76ea6918bee991b256a740b2fd6f925&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7E41\u4F53.ass\",\"s\":\"233KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/12\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87%26%E7%B9%81%E4%BD%93.srt?_=1575122879&-=a9161834e513e8b851cb2cec03b05764&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- &\u7E41\u4F53.srt\",\"s\":\"200KB\"},{\"url\":\"http:\\/\\/file0.assrt.net\\\
- /onthefly\\/618185\\/-\\/13\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E8%8B%B1%E6%96%87.srt?_=1575122879&-=56a3a0099aa8670bd8b5ccc21e18656a&api=1\"\
- ,\"f\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u82F1\u6587\
- .srt\",\"s\":\"85KB\"}],\"url\":\"http:\\/\\/file0.assrt.net\\/download\\\
- /618185\\/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.zip?_=1575122879&-=efab65827fa22ae6a013202d29af471b&api=1\"\
- ,\"release_site\":\"CMCT\",\"revision\":0,\"filename\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.zip\"\
- ,\"subtype\":\"SSA\",\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\
- \",\"langlist\":{\"langchs\":true,\"langeng\":true,\"langdou\":true,\"langcht\"\
- :true}},\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"vote_score\":0,\"upload_time\":\"2018-01-26 12:19:27\",\"title\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"view_count\":2542,\"native_name\"\
- :\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"producer\":{\"source\":\"\u539F\u521B\
- \u7FFB\u8BD1\",\"verifier\":\"\",\"producer\":\"\",\"uploader\":\"\"},\"size\"\
- :627625,\"down_count\":1291}],\"action\":\"detail\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 14:07:59 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: http://file0.assrt.net/onthefly/618185/-/1/Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.%E7%AE%80%E4%BD%93%26%E8%8B%B1%E6%96%87.ass?api=%5B%271%27%5D&-=%5B%27159cbd264a1c51aaa40ba10021f3c849%27%5D&_=%5B%271575122879%27%5D
- response:
- body:
- string: "\uFEFF[Script Info]\r\n;SrtEdit 6.0.2011.1205\r\n;Copyright(C) 2005-2011\
- \ Yuan Weiguo\r\n\r\nTitle: \r\nOriginal Script: \r\nOriginal Translation:\
- \ \r\nOriginal Timing: \r\nOriginal Editing: \r\nScript Updated By: \r\nUpdate\
- \ Details: \r\nScriptType: v4.00+\r\nCollisions: Normal\r\nPlayResX: 384\r\
- \nPlayResY: 288\r\nTimer: 100.0000\r\nSynch Point: \r\nWrapStyle: 0\r\nScaledBorderAndShadow:\
- \ no\r\n\r\n[V4+ Styles]\r\nFormat: Name, Fontname, Fontsize, PrimaryColour,\
- \ SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut,\
- \ ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment,\
- \ MarginL, MarginR, MarginV, Encoding\r\nStyle: chs,Arial,20,&H00E0E0E0,&H00000000,&H00000000,&H80000000,0,0,0,0,100,100,0,0,0,2,1,2,1,1,1,1\r\
- \nStyle: Default,Arial,18,&H00FFFFFF,&H0000FFFF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,3,2,20,20,20,1\r\
- \n\r\n[Events]\r\nFormat: Layer, Start, End, Style, Name, MarginL, MarginR,\
- \ MarginV, Effect, Text\r\nDialogue: 0,0:00:01.00,0:00:05.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\fs18\\1c&H00FFFF&}--==\u672C\u5F71\u7247\u7531\
- \ {\\1c&HFF8000&\\b1}CMCT \u56E2\u961F{\\r\\fn\u534E\u6587\u6977\u4F53\\fs18\\\
- 1c&H00FFFF&} \u8363\u8A89\u51FA\u54C1==--\\N\u66F4\u591A\u7CBE\u5F69\u5F71\
- \u89C6 \u8BF7\u8BBF\u95EE {\\fnCronos Pro Light Subhead\\1c&HFF00FF&\\b1}http://cmct.cc{\\\
- r\\fn\u534E\u6587\u6977\u4F53\\fs18\\1c&H00FFFF&}{\\r}\r\nDialogue: 0,0:00:06.00,0:00:10.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\fs16\\1c&H00FFFF&}\u5F71\u7247\u538B\u5236: \u66AE\
- \u96E8\u6F47\u6F47 \u5B57\u5E55\u8C03\u6821\uFF1A\u4E5D\u5929 \u62DB\
- \u52DFQ\u53F7: 76846146{\\r}\r\nDialogue: 0,0:00:58.52,0:01:00.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u70B9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hurry!{\\r}\r\nDialogue: 0,0:02:11.03,0:02:14.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u8FD8\u4E0D\u660E\u767D\u5417\
- \uFF1F\u6C2A\u661F\u7684\u6838\u5FC3\u6B63\u5728\u574D\u584C{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you not understand? Krypton's core\
- \ is collapsing.{\\r}\r\nDialogue: 0,0:02:15.20,0:02:18.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4E5F\u8BB8\u53EA\u5269\u51E0\
- \u4E2A\u661F\u671F\u4E86 \u6211\u8B66\u544A\u8FC7\u4F60\u4EEC{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We may only have a matter of weeks.\
- \ I warned you.{\\r}\r\nDialogue: 0,0:02:18.80,0:02:22.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F00\u53D1\u6838\u5FC3\u7684\u80FD\u6E90\
- \u4E0E\u81EA\u6740\u65E0\u5F02{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Harvesting the core was suicide. It has accelerated...{\\r}\r\nDialogue:\
- \ 0,0:02:22.54,0:02:25.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u5185\u7206\u7684\u901F\u5EA6\u5DF2\u7ECF\u52A0\u5FEB - \u6211\
- \u4EEC\u7684\u80FD\u6E90\u50A8\u5907\u5DF2\u7ECF\u8017\u5C3D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...the process of implosion. \
- \ - Our energy reserves...{\\r}\r\nDialogue: 0,0:02:25.51,0:02:27.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u8FD8\u80FD\u600E\u4E48\u529E\
- \ \u827E\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...were\
- \ exhausted. What would you have us do, El?{\\r}\r\nDialogue: 0,0:02:28.14,0:02:31.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u50CF\u6211\u4EEC\u7684\u7956\u5148\u4E00\
- \u6837 \u653E\u773C\u5B87\u5B99{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Look to the stars, like our ancestors did.{\\r}\r\nDialogue: 0,0:02:31.81,0:02:35.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9002\u5408\u5C45\u4F4F\u7684\u4E16\u754C\
- \u89E6\u624B\u53EF\u53CA \u6211\u4EEC\u53EF\u4EE5\u5148\u7528\u90A3\u4E9B\u65E7\
- \u524D\u54E8\u7AD9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There\
- \ are habitable worlds within reach. We can begin by using the old outposts.{\\\
- r}\r\nDialogue: 0,0:02:35.95,0:02:39.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u771F\u7684\u60F3\u8981\u64A4\u79BB\u5168\u661F\
- \u7403\u7684\u4EBA\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Are you seriously suggesting that we evacuate the entire planet?{\\\
- r}\r\nDialogue: 0,0:02:39.89,0:02:43.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u6211\u4EEC\u5DF2\u7ECF\u6551\u4E0D\u4E86\u8FD9\
- \u91CC\u7684\u4EBA\u4EEC\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}No. Everybody here is already dead.{\\r}\r\nDialogue: 0,0:02:44.16,0:02:48.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5BC6\u5178\u4EA4\u7ED9\u6211 \u6211\
- \u4FDD\u8BC1\u8BA9\u6211\u4EEC\u79CD\u65CF\u5B58\u6D3B\u4E0B\u53BB{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Give me control of the\
- \ Codex. I will ensure the survival of our race.{\\r}\r\nDialogue: 0,0:02:48.66,0:02:49.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD8\u6709\u5E0C\u671B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There is still hope.{\\r}\r\nDialogue:\
- \ 0,0:02:50.00,0:02:53.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5C06\u8FD9\u4E2A\u5E0C\u671B\u63E1\u5728\u4E86\u6211\u7684\
- \u624B\u5FC3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have\
- \ held that hope in my hands.{\\r}\r\nDialogue: 0,0:03:07.42,0:03:09.96,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u957F\u8001\u4F1A\u5DF2\u7ECF\u89E3\u6563\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This council\
- \ has been disbanded.{\\r}\r\nDialogue: 0,0:03:10.05,0:03:11.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C01\u4E0B\u7684\u547D\u4EE4\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On whose authority?{\\\
- r}\r\nDialogue: 0,0:03:12.25,0:03:13.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mine.{\\r}\r\nDialogue: 0,0:03:17.16,0:03:21.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5176\u4F59\u7684\u4EBA\u5C06\u88AB\u5BA1\
- \u5224 \u5E76\u914C\u60C5\u5904\u7F5A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The rest of you will be tried and punished accordingly.{\\\
- r}\r\nDialogue: 0,0:03:23.43,0:03:26.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4F60\u5728\u5E72\u4EC0\u4E48 \u4F50\u5FB7\uFF1F\u4F60\
- \u75AF\u4E86 - \u6211\u51E0\u5E74\u524D\u5C31\u8BE5\u52A8\u624B\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- What are you doing,\
- \ Zod? This is madness. - What I should have done years ago...{\\r}\r\
- \nDialogue: 0,0:03:27.17,0:03:32.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u8FD9\u4E9B\u7ACB\u6CD5\u8005\u548C\u4ED6\u4EEC\
- \u65E0\u4F11\u6B62\u7684\u4E89\u8BBA\u6BC1\u4E86\u6C2A\u661F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}These lawmakers with their endless\
- \ debates have lead Krypton to ruin.{\\r}\r\nDialogue: 0,0:03:34.28,0:03:35.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u4F60\u7684\u519B\u961F\u80DC\
- \u5229\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ if your forces prevail...{\\r}\r\nDialogue: 0,0:03:36.21,0:03:38.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u4E5F\u53EA\u80FD\u662F\u4E2A\u5149\
- \u6746\u53F8\u4EE4 - \u90A3\u5C31\u52A0\u5165\u6211\u7684\u884C\u5217\u5427\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...you'll be the\
- \ leader of nothing. - Then join me.{\\r}\r\nDialogue: 0,0:03:39.08,0:03:42.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u534F\u52A9\u6211\u62EF\u6551\u6211\u4EEC\
- \u7684\u79CD\u65CF \u6211\u4EEC\u91CD\u65B0\u5F00\u59CB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help me save our race. We'll start\
- \ anew.{\\r}\r\nDialogue: 0,0:03:42.42,0:03:46.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C06\u8BA9\u6211\u4EEC\u6CA6\u843D\u5230\
- \u5982\u6B64\u7530\u5730\u7684\u5815\u843D\u8840\u8109\u5207\u65AD{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We'll sever the degenerative\
- \ bloodlines that led us to this state.{\\r}\r\nDialogue: 0,0:03:46.72,0:03:49.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C01\u6765\u51B3\u5B9A\u8C01\u53BB\u8C01\
- \u7559 \u4F50\u5FB7\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}And who will decide which bloodlines survive, Zod?{\\r}\r\nDialogue:\
- \ 0,0:03:51.53,0:03:52.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You?{\\r}\r\nDialogue: 0,0:03:54.90,0:03:56.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u522B\u8FD9\u6837 \u827E\u5C14{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Don't do this, El.{\\r}\r\n\
- Dialogue: 0,0:03:56.87,0:03:59.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u6700\u4E0D\u613F\u610F\u770B\u5230\u7684 \u5C31\u662F\
- \u6211\u4EEC\u53CD\u76EE\u6210\u4EC7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The last thing I want is for us to be enemies.{\\r}\r\n\
- Dialogue: 0,0:03:59.57,0:04:02.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u80CC\u5F03\u4E86\u6211\u4EEC\u76F8\u7EA6\u7ACB\u4E0B\
- \u7684\u539F\u5219{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ have abandoned the principles that bound us together.{\\r}\r\nDialogue:\
- \ 0,0:04:02.44,0:04:06.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C06\u5251\u6307\u5411\u4E86\u81EA\u5DF1\u7684\u4EBA\u6C11\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You've taken up\
- \ the sword against your own people.{\\r}\r\nDialogue: 0,0:04:06.48,0:04:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u656C\u91CD\u7684\u662F\u66FE\u7ECF\
- \u7684\u4F60 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will honor the man you once were, Zod...{\\r}\r\nDialogue: 0,0:04:09.81,0:04:11.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4E0D\u662F\u5982\u4ECA\u8FD9\u4E2A\
- \u79BD\u517D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...not\
- \ this monster you've become.{\\r}\r\nDialogue: 0,0:04:15.08,0:04:16.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u4ED6\u5E26\u8D70{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take him away.{\\r}\r\nDialogue: 0,0:04:22.59,0:04:23.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u4EBA \u4E00\u5207\u662F\u5426\u5B89\
- \u597D\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sir?\
- \ Is everything all right?{\\r}\r\nDialogue: 0,0:04:24.16,0:04:25.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u5F00{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Out of the way.{\\r}\r\nDialogue: 0,0:04:26.33,0:04:27.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u518D\u8BF4\u4E00\u904D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I said...{\\r}\r\nDialogue:\
- \ 0,0:04:43.81,0:04:44.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u53EB\u83B1\u62C9\u8FC7\u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Get me Lara.{\\r}\r\nDialogue: 0,0:04:46.18,0:04:48.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E54 \u6CE8\u610F\u8EAB\u540E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor. Behind you.{\\r}\r\nDialogue:\
- \ 0,0:04:52.25,0:04:54.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u83B1\u62C9 \u51C6\u5907\u597D\u53D1\u5C04{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lara, you have to ready the launch.{\\\
- r}\r\nDialogue: 0,0:04:54.49,0:04:56.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4F1A\u5C3D\u5FEB\u8DDF\u4F60\u4F1A\u5408{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll be with you as soon\
- \ as I can.{\\r}\r\nDialogue: 0,0:05:10.97,0:05:12.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D6B\u62C9\u5361{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}H'Raka!{\\r}\r\nDialogue: 0,0:05:51.58,0:05:54.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u80FD\u770B\u5230\u5BC6\u5178\u5417\uFF1F\
- \ - \u5C31\u5728\u4E2D\u67A2\u7684\u4E0B\u65B9 \u4E3B\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Can you see the Codex? -\
- \ It's just beneath the central hub.{\\r}\r\nDialogue: 0,0:05:54.55,0:05:55.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E0D\u5F97\u4E0D\u8B66\u544A\
- \u60A8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But I'm compelled\
- \ to warn you.{\\r}\r\nDialogue: 0,0:05:55.92,0:05:58.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5165\u4FB5\u59CB\u6E90\u5BA4\u662FB\u7EA7\
- \u72AF\u7F6A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Breaching\
- \ the genesis chamber is a Class-B crime...{\\r}\r\nDialogue: 0,0:05:58.49,0:06:02.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u4EBA\u5728\u4E4E\u8FD9\u4E2A\u4E86\
- \ \u57FA\u5217\u514B\u65AF \u8FD9\u4E2A\u4E16\u754C\u5C31\u8981\u6BC1\u706D\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Nobody cares\
- \ anymore, Kelex. The world is about to come to an end.{\\r}\r\nDialogue:\
- \ 0,0:07:06.72,0:07:09.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E54\u2022\u827E\u5C14 \u4F50\u5FB7\u5C06\u519B\u6709\u4EE4{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El, by the authority\
- \ of General Zod...{\\r}\r\nDialogue: 0,0:07:10.13,0:07:12.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EA4\u51FA\u5BC6\u5178{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...surrender the Codex.{\\r}\r\nDialogue:\
- \ 0,0:08:00.01,0:08:01.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u575A\u6301\u4F4F \u8D6B\u62C9\u5361{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Easy, H'Raka.{\\r}\r\nDialogue: 0,0:08:22.50,0:08:24.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u627E\u5230\u4E86\u90A3\u4E2A\
- \u4E16\u754C\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Did you find a world?{\\r}\r\nDialogue: 0,0:08:24.33,0:08:26.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u627E\u5230\u4E86 - \u5B83\u7ED5\u7740\
- \u4E00\u9897\u9EC4\u8272\u4E3B\u5E8F\u661F\u8FD0\u884C{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- We have. - Orbiting a main\
- \ sequence yellow star...{\\r}\r\nDialogue: 0,0:08:26.87,0:08:28.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B63\u5982\u60A8\u6240\u8BF4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...just as you said it would.{\\\
- r}\r\nDialogue: 0,0:08:29.87,0:08:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u662F\u9897\u5E74\u8F7B\u7684\u6052\u661F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A young star.{\\r}\r\n\
- Dialogue: 0,0:08:31.84,0:08:34.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4ED6\u7684\u7EC6\u80DE\u80FD\u5438\u6536\u5B83\u7684\u8F90\
- \u5C04\u80FD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His\
- \ cells will drink its radiation.{\\r}\r\nDialogue: 0,0:08:36.64,0:08:38.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F3C\u4E4E\u662F\u667A\u80FD\u751F\u7269\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's a seemingly\
- \ intelligent population.{\\r}\r\nDialogue: 0,0:08:39.81,0:08:40.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4F1A\u88AB\u9057\u5F03{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll be an outcast.{\\r}\r\
- \nDialogue: 0,0:08:41.88,0:08:43.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u88AB\u5F53\u6210\u602A\u7269{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}A freak.{\\r}\r\nDialogue: 0,0:08:44.55,0:08:45.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4F1A\u88AB\u6740\u6389\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They'll kill him.{\\\
- r}\r\nDialogue: 0,0:08:45.59,0:08:47.03,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How?{\\r}\r\nDialogue: 0,0:08:47.89,0:08:49.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4F1A\u88AB\u5F53\u6210\u4E0A\u5E1D\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll be a god to\
- \ them.{\\r}\r\nDialogue: 0,0:08:51.43,0:08:53.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u98DE\u8239\u5230\u4E0D\u4E86\
- \u90A3\u91CC\u600E\u4E48\u529E\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What if the ship doesn't make it?{\\r}\r\nDialogue: 0,0:08:54.53,0:08:56.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4F1A\u6B7B\u5728\u5916\u9762{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He'll die out there...{\\\
- r}\r\nDialogue: 0,0:08:56.93,0:08:58.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B64\u82E6\u4F36\u4EC3\u5730{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...alone.{\\r}\r\nDialogue: 0,0:09:00.07,0:09:01.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u505A\u4E0D\u5230{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't do it.{\\r}\r\nDialogue: 0,0:09:02.07,0:09:03.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EE5\u4E3A\u53EF\u4EE5 \u4F46...{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I thought I could,\
- \ but...{\\r}\r\nDialogue: 0,0:09:03.71,0:09:05.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u83B1\u62C9 - \u4ED6\u5C31\u5728\u6211\
- \u773C\u524D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Lara.\
- \ - ...now that he's here...{\\r}\r\nDialogue: 0,0:09:05.91,0:09:07.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C2A\u661F\u5DF2\u7ECF\u4E0D\u884C\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton is doomed.{\\\
- r}\r\nDialogue: 0,0:09:08.84,0:09:10.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u662F\u4ED6\u552F\u4E00\u7684\u673A\u4F1A{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's his only chance now.{\\\
- r}\r\nDialogue: 0,0:09:11.38,0:09:12.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u662F\u6211\u4EEC\u6C11\u65CF\u552F\u4E00\u7684\
- \u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ our people's only hope.{\\r}\r\nDialogue: 0,0:09:14.42,0:09:15.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u4E48\u4E86 \u57FA\u5217\u514B\u65AF\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What is it,\
- \ Kelex?{\\r}\r\nDialogue: 0,0:09:15.88,0:09:17.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4E94\u8258\u653B\u51FB\u8230\u6B63\
- \u4ECE\u4E1C\u9762\u9760\u8FD1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Five attack ships converging from the east.{\\r}\r\nDialogue: 0,0:09:18.09,0:09:20.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u6B63\u5728\u626B\u63CF\u5E76\
- \u8BC4\u4F30\u57CE\u5821\u7684\u9632\u5FA1\u7CFB\u7EDF{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Citadel's defenses are being scanned\
- \ and evaluated.{\\r}\r\nDialogue: 0,0:09:20.69,0:09:21.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6765\u4E0A\u4F20\u5BC6\u5178{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll upload the Codex.{\\\
- r}\r\nDialogue: 0,0:09:22.36,0:09:23.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u7B49\u7B49{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}No, wait.{\\r}\r\nDialogue: 0,0:09:24.39,0:09:25.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B1\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lara.{\\r}\r\nDialogue: 0,0:09:25.46,0:09:28.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u6211\u518D\u770B\u770B\u4ED6{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Just let me look at\
- \ him.{\\r}\r\nDialogue: 0,0:09:31.77,0:09:34.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u6CA1\u673A\u4F1A\u770B\u4ED6\
- \u8D70\u8DEF\u7684\u6837\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We'll never get to see him walk.{\\r}\r\nDialogue: 0,0:09:36.70,0:09:39.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u673A\u4F1A\u542C\u4ED6\u558A\u7238\
- \u7238\u5988\u5988{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never\
- \ hear him say our names.{\\r}\r\nDialogue: 0,0:09:44.05,0:09:45.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4F1A\u5728{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}But out there...{\\r}\r\nDialogue: 0,0:09:45.71,0:09:47.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u832B\u832B\u5B87\u5B99\u95F4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...amongst the stars...{\\\
- r}\r\nDialogue: 0,0:09:48.98,0:09:50.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6D3B\u4E0B\u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...he will live.{\\r}\r\nDialogue: 0,0:10:48.54,0:10:50.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u518D\u89C1 \u513F\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Goodbye, my son.{\\r}\r\nDialogue:\
- \ 0,0:10:51.18,0:10:53.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u7684\u5E0C\u671B\u4E0E\u68A6\u60F3\u4E0E\u4F60\u540C\
- \u884C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our hopes\
- \ and dreams travel with you.{\\r}\r\nDialogue: 0,0:11:32.42,0:11:35.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5411\u4E3B\u95E8\u96C6\u4E2D\u706B\u529B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Concentrate fire\
- \ on the main doors.{\\r}\r\nDialogue: 0,0:11:50.57,0:11:51.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B1\u62C9\u592B\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lady Lara.{\\r}\r\nDialogue: 0,0:11:51.77,0:11:54.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5E7D\u7075\u5F15\u64CE\u5DF2\u542F\u52A8\
- \ - \u70B9\u706B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ The phantom drives are coming online. - Proceed to ignition.{\\r}\r\
- \nDialogue: 0,0:11:55.61,0:11:56.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}General.{\\r}\r\nDialogue: 0,0:11:56.88,0:12:00.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u57CE\u5821\u5185\u6709\u5F15\u64CE\u542F\
- \u52A8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have identified\
- \ an engine ignition within the citadel.{\\r}\r\nDialogue: 0,0:12:01.22,0:12:02.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u822A\u5929\u5668\u53D1\u5C04{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A launch.{\\r}\r\n\
- Dialogue: 0,0:12:03.79,0:12:06.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5B88\u4F4F\u8FD9\u5E73\u53F0 \u6307\u6325\u5B98{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hold this platform, commander.{\\\
- r}\r\nDialogue: 0,0:12:18.60,0:12:21.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u5077\u4E86\u5BC6\u5178 \u4E54\
- \u2022\u827E\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ know you stole the Codex, Jor-El.{\\r}\r\nDialogue: 0,0:12:21.70,0:12:22.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5B83\u4EA4\u51FA\u6765{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Surrender it...{\\r}\r\nDialogue:\
- \ 0,0:12:22.94,0:12:24.94,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5C31\u9976\u4F60\u4E0D\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...and I'll let you live.{\\r}\r\nDialogue: 0,0:12:25.57,0:12:28.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u6B21\u91CD\u751F\u7684\u673A\u4F1A\
- \u5C5E\u4E8E\u6C2A\u661F\u6240\u6709\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This is a second chance for all of Krypton...{\\\
- r}\r\nDialogue: 0,0:12:28.38,0:12:31.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u800C\u4E0D\u4EC5\u4EC5\u662F\u4F60\u89C9\u5F97\u91CD\
- \u8981\u7684\u8840\u8109{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...not just the bloodlines you deem worthy.{\\r}\r\nDialogue: 0,0:12:32.25,0:12:33.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u505A\u4E86\u4EC0\u4E48\u4E8B\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What have you done?{\\\
- r}\r\nDialogue: 0,0:12:33.65,0:12:35.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u6709\u4E00\u4E2A\u5B69\u5B50 \u4F50\u5FB7\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We've had a child,\
- \ Zod.{\\r}\r\nDialogue: 0,0:12:36.95,0:12:38.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u4E2A\u7537\u5B69{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A boy child.{\\r}\r\nDialogue: 0,0:12:38.59,0:12:41.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u662F\u6C2A\u661F\u51E0\u767E\u5E74\
- \u6765\u7B2C\u4E00\u4E2A\u81EA\u7136\u5206\u5A29\u7684\u5B69\u5B50{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton's first natural\
- \ birth in centuries.{\\r}\r\nDialogue: 0,0:12:42.56,0:12:44.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u5C06\u83B7\u5F97\u81EA\u7531{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And he will be free.{\\\
- r}\r\nDialogue: 0,0:12:44.76,0:12:47.24,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u51B3\u5B9A\u81EA\u5DF1\u547D\u8FD0\u7684\u81EA\u7531\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Free to forge his\
- \ own destiny.{\\r}\r\nDialogue: 0,0:12:48.10,0:12:49.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80E1\u8BF4\u516B\u9053{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Heresy.{\\r}\r\nDialogue: 0,0:12:51.47,0:12:52.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5B83\u6BC1\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Destroy it.{\\r}\r\nDialogue: 0,0:13:45.62,0:13:46.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B1\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lara...{\\r}\r\nDialogue: 0,0:13:46.79,0:13:48.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542C\u6211\u8BF4{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...listen to me.{\\r}\r\nDialogue: 0,0:13:48.39,0:13:52.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u662F\u6C2A\u661F\u7684\u672A\
- \u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Codex\
- \ is Krypton's future.{\\r}\r\nDialogue: 0,0:13:52.29,0:13:54.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D6\u6D88\u53D1\u5C04{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Abort the launch.{\\r}\r\nDialogue:\
- \ 0,0:14:13.92,0:14:15.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No!{\\\
- r}\r\nDialogue: 0,0:14:45.61,0:14:47.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u83B1\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your son, Lara...{\\r}\r\nDialogue: 0,0:14:48.18,0:14:50.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u628A\u4F60\u4EEC\u7684\u513F\u5B50\
- \u9001\u5230\u54EA\u91CC\u53BB\u4E86\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...where have you sent him?{\\r}\r\nDialogue: 0,0:14:53.59,0:14:55.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u540D\u5B57{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His name...{\\r}\r\nDialogue: 0,0:14:55.59,0:14:56.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5361\u5C14{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is Kal...{\\r}\r\nDialogue: 0,0:14:57.36,0:14:59.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u827E\u5C14\u4E4B\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...son of El.{\\r}\r\nDialogue: 0,0:15:02.30,0:15:05.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F11\u60F3\u627E\u5230\u4ED6{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And he's beyond your\
- \ reach.{\\r}\r\nDialogue: 0,0:15:15.28,0:15:16.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u90A3\u8258\u98DE\u8239\u6253\u4E0B\
- \u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bring that\
- \ ship down.{\\r}\r\nDialogue: 0,0:15:25.12,0:15:26.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76EE\u6807\u5DF2\u9501\u5B9A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Target locked.{\\r}\r\nDialogue:\
- \ 0,0:15:38.23,0:15:39.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u653E\u4E0B\u4F60\u4EEC\u7684\u6B66\u5668{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lay down your weapons.{\\r}\r\nDialogue:\
- \ 0,0:15:39.93,0:15:42.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u4EEC\u5DF2\u7ECF\u88AB\u5305\u56F4\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your forces are surrounded.{\\r}\r\
- \nDialogue: 0,0:15:52.11,0:15:53.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}General Zod...{\\r}\r\nDialogue: 0,0:15:53.82,0:15:56.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u72AF\u4E0B\u4E86\u8C0B\u6740\u7F6A\
- \u4E0E\u53DB\u56FD\u7F6A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...for the crimes of murder and high treason...{\\r}\r\nDialogue: 0,0:15:56.82,0:16:01.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u957F\u8001\u4F1A\u5224\u5904\u4F60\u548C\
- \u4F60\u7684\u540C\u8C0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the Council has sentenced you and your fellow insurgents...{\\r}\r\
- \nDialogue: 0,0:16:01.19,0:16:04.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u56DA\u7981\u8089\u8EAB\u5E76\u6D41\u653E300\u5E74{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to three hundred\
- \ cycles of somatic reconditioning.{\\r}\r\nDialogue: 0,0:16:06.16,0:16:07.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EC0\u4E48\u9057\u8A00\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you have any\
- \ last words?{\\r}\r\nDialogue: 0,0:16:11.27,0:16:12.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u4E0D\u6562\u4EB2\u624B\u6740\
- \u6211\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ won't kill us yourself!{\\r}\r\nDialogue: 0,0:16:13.70,0:16:15.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6015\u5F04\u810F\u4E86\u81EA\u5DF1\u7684\
- \u624B \u6240\u4EE5\u4F60\u4EEC...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You wouldn't sully your hands! But you'll damn us...{\\\
- r}\r\nDialogue: 0,0:16:16.10,0:16:18.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u628A\u6211\u4EEC\u6254\u5230\u9ED1\u6D1E\u91CC\u5173\
- \u4E00\u8F88\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to\
- \ a black hole for eternity!{\\r}\r\nDialogue: 0,0:16:20.34,0:16:21.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E54\u2022\u827E\u5C14\u8BF4\u5F97\u6CA1\
- \u9519{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El was\
- \ right.{\\r}\r\nDialogue: 0,0:16:21.64,0:16:25.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u662F\u4E00\u7FA4\u8822\u8D27\
- \ \u6240\u6709\u4EBA\u90FD\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You're a pack of fools, every last one of you.{\\r}\r\nDialogue: 0,0:16:26.21,0:16:27.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And you.{\\r}\r\nDialogue: 0,0:16:29.12,0:16:31.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u89C9\u5F97\u4F60\u7684\u513F\u5B50\
- \u5F88\u5B89\u5168\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You believe your son is safe?{\\r}\r\nDialogue: 0,0:16:32.29,0:16:33.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u4F1A\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him.{\\\
- r}\r\nDialogue: 0,0:16:34.22,0:16:37.53,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u593A\u56DE\u4F60\u4ECE\u6211\u4EEC\u624B\u91CC\u62A2\
- \u8D70\u7684\u4E1C\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will reclaim what you have taken from us.{\\r}\r\nDialogue: 0,0:16:39.96,0:16:41.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u4F1A\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him.{\\\
- r}\r\nDialogue: 0,0:16:42.73,0:16:45.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u4F1A\u627E\u5230\u4ED6 \u83B1\u62C9\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him,\
- \ Lara.{\\r}\r\nDialogue: 0,0:16:47.90,0:16:50.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E00\u5B9A\u4F1A\u627E\u5230\u4ED6\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I will find him!{\\\
- r}\r\nDialogue: 0,0:17:00.31,0:17:02.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u554A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Argh!{\\r}\r\nDialogue: 0,0:18:31.67,0:18:35.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B1\u62C9\u592B\u4EBA \u60A8\u4E0D\u8EB2\
- \u8D77\u6765\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Lady Lara, shouldn't you find refuge?{\\r}\r\nDialogue: 0,0:18:35.61,0:18:38.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6839\u672C\u65E0\u5904\u53EF\u8EB2 \u57FA\
- \u6D1B\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There\
- \ is no refuge, Kelor.{\\r}\r\nDialogue: 0,0:18:39.51,0:18:41.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E54\u2022\u827E\u5C14\u8BF4\u5F97\u5BF9\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-El was right.{\\\
- r}\r\nDialogue: 0,0:18:43.92,0:18:45.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C2A\u661F\u7684\u672B\u65E5\u5230\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is the end.{\\r}\r\nDialogue:\
- \ 0,0:18:57.37,0:19:00.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u521B\u9020\u4E00\u4E2A\u6BD4\u8FD9\u91CC\u597D\u7684\u4E16\u754C\
- \ \u5361\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Make\
- \ a better world than ours, Kal.{\\r}\r\nDialogue: 0,0:20:32.43,0:20:33.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F53\u5FC3\u70B9 \u8822\u8D27{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Watch it, dumb-ass!{\\r}\r\n\
- Dialogue: 0,0:20:34.20,0:20:37.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E0D\u7559\u5FC3\u5C31\u7B49\u7740\u88AB\u7838\u6210\u8089\
- \u997C\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Keep\
- \ your eyes open or you're gonna get squashed.{\\r}\r\nDialogue: 0,0:20:38.70,0:20:41.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u662F\u5728\u4EC0\u4E48\u9B3C\
- \u5730\u65B9\u627E\u5230\u4F60\u7684 \u83DC\u9E1F\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where the hell did they find you,\
- \ greenhorn?{\\r}\r\nDialogue: 0,0:20:41.40,0:20:42.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u6211\u4EEC\u5728\u7A7A\u4E2D\u5F04\
- \u6389\u8FD9\u4E2A\u9677\u9631{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Let's get this trap in the air.{\\r}\r\nDialogue: 0,0:20:43.10,0:20:44.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5927\u5BB6\u56FA\u5B9A\u597D\u7532\u677F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Gentlemen, secure\
- \ the deck.{\\r}\r\nDialogue: 0,0:20:44.91,0:20:47.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B63\u897F\u65B9\u5411\u7684\u94BB\u4E95\
- \u5904\u6709\u4EBA\u5411\u6211\u4EEC\u6C42\u6551{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We just got a distress call from a rig due west of\
- \ us.{\\r}\r\nDialogue: 0,0:20:48.14,0:20:49.95,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u56FA\u5B9A\u597D\u7532\u677F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Secure the deck.{\\r}\r\nDialogue:\
- \ 0,0:20:54.15,0:20:55.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8BF7\u6240\u6709\u6C11\u7528\u8239\u53EA\u79BB\u5F00{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All civilian boats, stand clear.{\\\
- r}\r\nDialogue: 0,0:20:55.95,0:20:58.62,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6D77\u4E0B\u9600\u95E8\u5DF2\u5931\u6548 \u94BB\u53F0\
- \u5FEB\u8981\u7206\u70B8\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The sub-sea valves failed and the rig is about to explode.{\\r}\r\n\
- Dialogue: 0,0:20:58.89,0:21:01.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6536\u5230 \u6D77\u5CB8\u8B66\u536B\u961F \u88AB\u56F0\u5728\
- \u91CC\u9762\u7684\u4EBA\u600E\u4E48\u529E\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Roger, Coast Guard. What about the men left inside?{\\\
- r}\r\nDialogue: 0,0:21:01.46,0:21:03.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u522B\u7BA1\u4ED6\u4EEC\u4E86 \u4ED6\u4EEC\u6D3B\u4E0D\
- \u4E86 - \u83DC\u9E1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Forget them. They're dead. - Greenhorn...{\\r}\r\nDialogue:\
- \ 0,0:21:04.06,0:21:06.10,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u628A\u6211\u7684\u671B\u8FDC\u955C\u62FF\u6765{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...fetch me my binoculars.{\\r}\r\n\
- Dialogue: 0,0:21:07.63,0:21:08.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u83DC\u9E1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Greenhorn.{\\r}\r\nDialogue: 0,0:21:17.30,0:21:20.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u5269\u8FD9\u70B9\u6C27\u6C14\u4E86\
- \ \u6211\u4E0D\u77E5\u9053\u6211\u4EEC\u8FD8\u80FD\u6491\u591A\u4E45{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is the last of the\
- \ oxygen. I don't know how much longer we can hold out.{\\r}\r\nDialogue:\
- \ 0,0:21:30.39,0:21:32.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u91CC\u662F\u6D77\u5CB8\u8B66\u536B\u961F6510{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is Coast Guard 6510.{\\r}\r\n\
- Dialogue: 0,0:21:32.26,0:21:34.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u4EEC\u518D\u67E5\u770B\u4E00\u904D \u7136\u540E\u5C31\
- \u79BB\u5F00{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We'll\
- \ make one more pass then get out.{\\r}\r\nDialogue: 0,0:21:36.76,0:21:38.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u7B49 \u7B49\u7B49 \u6709\u4EBA\u5728\
- \u76F4\u5347\u673A\u5347\u964D\u5904{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Wait, wait. I got some guys on the helipad.{\\r}\r\nDialogue:\
- \ 0,0:21:39.13,0:21:39.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u5728\u8FD9\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Right here!{\\r}\r\nDialogue: 0,0:21:45.27,0:21:47.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u70B9 \u8D70\u554A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, come on! Let's go! Let's\
- \ go!{\\r}\r\nDialogue: 0,0:21:47.33,0:21:49.14,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}- \u5FEB\u8D70 - \u8D70\u554A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Let's go! - Let's go!{\\r}\r\
- \nDialogue: 0,0:21:59.68,0:22:00.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EB\u6700\u540E\u90A3\u4E2A\u4EBA\u4E0A\u6765{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get that last guy loaded.{\\\
- r}\r\nDialogue: 0,0:22:01.12,0:22:02.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u5F97\u8D70\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have got to go.{\\r}\r\nDialogue: 0,0:22:02.72,0:22:04.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u8D70\u554A \u4F60\u5728\u5E72\u4EC0\
- \u4E48\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey,\
- \ let's go. What are you doing?{\\r}\r\nDialogue: 0,0:22:10.52,0:22:11.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D70 \u8D70{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go! Go!{\\r}\r\nDialogue: 0,0:22:49.53,0:22:52.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u582A\u8428\u65AF\u5DDE\u662F\u4EC0\u4E48\
- \u65F6\u5019\u53D8\u6210\u7F8E\u56FD\u9886\u571F\u7684\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...when Kansas became a territory?{\\\
- r}\r\nDialogue: 0,0:22:53.77,0:22:54.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:22:56.74,0:22:58.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5728\u542C\u8BFE\u5417 \u514B\u62C9\
- \u514B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are\
- \ you listening, Clark?{\\r}\r\nDialogue: 0,0:23:02.91,0:23:06.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u544A\u8BC9\u6211 \u8C01\u6700\u5148\u5728\
- \u582A\u8428\u65AF\u5DDE\u5B9A\u5C45{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I asked if you could tell me who first settled Kansas.{\\\
- r}\r\nDialogue: 0,0:23:19.36,0:23:20.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u6CA1\u4E8B\u5427 \u514B\u62C9\u514B\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are you all right, Clark?{\\\
- r}\r\nDialogue: 0,0:23:28.97,0:23:30.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:23:31.61,0:23:32.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:23:36.48,0:23:37.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark!{\\r}\r\nDialogue: 0,0:23:41.08,0:23:42.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u51FA\u6765{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark, come out of there.{\\\
- r}\r\nDialogue: 0,0:23:42.88,0:23:44.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u522B\u7BA1\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Leave me alone.{\\r}\r\nDialogue: 0,0:23:45.25,0:23:46.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u6211\u5DF2\u7ECF\u7ED9\
- \u4F60\u5988\u5988\u6253\u7535\u8BDD\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Clark, I have called your mother.{\\r}\r\nDialogue:\
- \ 0,0:23:48.16,0:23:49.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Clark?{\\r}\r\nDialogue: 0,0:23:51.06,0:23:52.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u554A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Ah!{\\r}\r\nDialogue: 0,0:23:52.33,0:23:53.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6765\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm here.{\\r}\r\nDialogue: 0,0:23:53.59,0:23:55.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u5B9D\u8D1D \u6211\u662F\
- \u5988\u5988{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark,\
- \ honey, it's Mom.{\\r}\r\nDialogue: 0,0:23:57.97,0:23:59.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F00\u95E8\u597D\u5417\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Will you open the door?{\\\
- r}\r\nDialogue: 0,0:23:59.27,0:24:01.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4ED6\u5230\u5E95\u6709\u4EC0\u4E48\u6BDB\u75C5\uFF1F\
- \ - \u4ED6\u5C31\u662F\u4E2A\u602A\u80CE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- What's wrong with him? - He's such a freak.{\\\
- r}\r\nDialogue: 0,0:24:01.47,0:24:02.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5A18\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Crybaby.{\\r}\r\nDialogue: 0,0:24:02.57,0:24:05.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7236\u6BCD\u751A\u81F3\u4E0D\u8BA9\
- \u6211\u8DDF\u4ED6\u73A9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}His parents won't even let him play with other kids.{\\r}\r\nDialogue:\
- \ 0,0:24:05.27,0:24:06.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I know.{\\r}\r\nDialogue: 0,0:24:06.51,0:24:07.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B9D\u8D1D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Sweetie.{\\r}\r\nDialogue: 0,0:24:08.51,0:24:10.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u8BA9\u6211\u8FDB\u53BB \u6211\
- \u600E\u4E48\u5E2E\u4F60\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How can I help you if you won't let me in?{\\r}\r\nDialogue: 0,0:24:10.91,0:24:13.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E2A\u4E16\u754C\u592A\u5927\u4E86\
- \ \u5988\u5988{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ world's too big, Mom.{\\r}\r\nDialogue: 0,0:24:13.48,0:24:15.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u628A\u5B83\u53D8\u5C0F\u70B9\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then make it small.{\\\
- r}\r\nDialogue: 0,0:24:17.48,0:24:18.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EA\u8981...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Just, um...{\\r}\r\nDialogue: 0,0:24:21.59,0:24:23.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96C6\u4E2D\u7CBE\u529B\u542C\u6211\u7684\
- \u58F0\u97F3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...focus\
- \ on my voice.{\\r}\r\nDialogue: 0,0:24:25.26,0:24:27.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u60F3\u8C61\u6709\u4E00\u5EA7\u5C9B\u5C7F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Pretend ifs an island...{\\\
- r}\r\nDialogue: 0,0:24:27.36,0:24:29.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B83\u5C31\u5728\u5927\u6D77\u4E4B\u4E2D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...out in the ocean.{\\r}\r\
- \nDialogue: 0,0:24:30.80,0:24:32.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u80FD\u770B\u5230\u5417\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you see it?{\\r}\r\nDialogue: 0,0:24:35.80,0:24:36.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u770B\u5230\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I see it.{\\r}\r\nDialogue: 0,0:24:38.17,0:24:40.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u5411\u5B83\u6E38\u8FC7\u53BB\
- \ \u5B9D\u8D1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then\
- \ swim towards it, honey.{\\r}\r\nDialogue: 0,0:24:53.45,0:24:55.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u600E\u4E48\u4E86 \u5988\u5988\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's wrong with\
- \ me, Mom?{\\r}\r\nDialogue: 0,0:24:57.89,0:24:59.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:24:59.66,0:25:01.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,0:25:29.82,0:25:31.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u62FF\u5230\u6211\u8981\u7684\u4E1C\
- \u897F\u4E86\uFF1F - \u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Did you get everything I need? - Yep.{\\r}\r\n\
- Dialogue: 0,0:25:31.93,0:25:33.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u522B\u52A8 \u522B\u52A8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hold it, hold it.{\\r}\r\nDialogue: 0,0:26:23.44,0:26:24.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8822\u86CB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hey, ass-wipe.{\\r}\r\nDialogue: 0,0:26:25.55,0:26:27.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u89C9\u5F97\u600E\u6837\uFF1F\u4F60\
- \u770B\u4E86\u6BD4\u8D5B\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What do you think? You see the game?{\\r}\r\nDialogue:\
- \ 0,0:26:27.45,0:26:29.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u522B\u800D\u4ED6 \u76AE\u7279 - \u4F60\u7B97\u54EA\u6839\u8471\
- \ \u4ED6\u7684\u5973\u670B\u53CB\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Leave him alone, Pete. - What are you, his\
- \ girlfriend?{\\r}\r\nDialogue: 0,0:26:30.22,0:26:31.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u542C\u542C\u4ED6\u600E\u4E48\
- \u8BF4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I wanna hear\
- \ what he has to say.{\\r}\r\nDialogue: 0,0:26:34.25,0:26:34.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BF4\u8BDD\u554A{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on...{\\r}\r\nDialogue: 0,0:26:35.16,0:26:35.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B28\u74DC{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...dick-splash.{\\r}\r\nDialogue: 0,0:28:16.82,0:28:17.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u513F\u5B50\u5C31\u5728\u73B0\u573A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My son was there.{\\\
- r}\r\nDialogue: 0,0:28:18.06,0:28:20.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u5C31\u5728\u90A3\u8F86\u6821\u8F66\u91CC{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He was in the bus.{\\r}\r\
- \nDialogue: 0,0:28:20.53,0:28:23.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4EB2\u773C\u770B\u89C1\u514B\u62C9\u514B\u505A\u4E86\
- \u4EC0\u4E48 - \u6211\u77E5\u9053\u4ED6\u770B\u89C1\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- He saw what Clark did. - I\
- \ know he did.{\\r}\r\nDialogue: 0,0:28:24.26,0:28:28.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u770B\u5230\u7684\u4E00\u5B9A\u662F\
- ... - \u662F\u4E0A\u5E1D\u7684\u5B89\u6392 \u4E54\u7EB3\u68EE{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm sure what he thought\
- \ he saw was... - Was an act of God, Jonathan.{\\r}\r\nDialogue: 0,0:28:29.34,0:28:31.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5929\u610F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}This was providence.{\\r}\r\nDialogue:\
- \ 0,0:28:35.44,0:28:37.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u89C9\u5F97\u4F60\u8FD9\u6837\u8BF4\u6709\u70B9\u5938\u5F20\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I think you're blowing\
- \ it out of proportion.{\\r}\r\nDialogue: 0,0:28:37.74,0:28:41.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6CA1\u5938\u5F20 \u62C9\u5A1C\u4E5F\
- \u770B\u89C1\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No,\
- \ I'm not. Lana saw it too.{\\r}\r\nDialogue: 0,0:28:41.25,0:28:42.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E2A\u53EB\u798F\u7279\u66FC\u7684\
- \u7537\u5B69\u4E5F\u770B\u89C1\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And the Fordham boy.{\\r}\r\nDialogue: 0,0:28:42.52,0:28:43.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E5F\u4E0D\u662F\u7B2C\u4E00\u6B21\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This isn't the first\
- \ time...{\\r}\r\nDialogue: 0,0:28:43.95,0:28:46.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B\u505A\u51FA\u8FD9\u79CD\
- \u4E8B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...Clark's\
- \ done something like this.{\\r}\r\nDialogue: 0,0:29:01.24,0:29:03.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53EA\u662F\u60F3\u5E2E\u5FD9{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I just wanted to help.{\\\
- r}\r\nDialogue: 0,0:29:03.54,0:29:06.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053 \u4F46\u6211\u4EEC\u8C08\u8FC7\u8FD9\
- \u4E2A\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know\
- \ you did, but we talked about this.{\\r}\r\nDialogue: 0,0:29:06.54,0:29:07.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u5427\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Right?{\\r}\r\nDialogue: 0,0:29:08.28,0:29:10.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u5427 \u6211\u4EEC\u8C08\u8FC7\u4E86\
- \ \u4F60...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Right?\
- \ We talked about this. You have...{\\r}\r\nDialogue: 0,0:29:11.48,0:29:14.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B \u4F60\u4E0D\u80FD\u8BA9\
- \u522B\u4EBA\u77E5\u9053\u4F60\u7684\u8FD9\u4E00\u9762{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark, you have to keep this side\
- \ of yourself a secret.{\\r}\r\nDialogue: 0,0:29:15.38,0:29:19.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u6211\u8BE5\u600E\u4E48\u529E\uFF1F\
- \u770B\u7740\u4ED6\u4EEC\u6B7B\u6389\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What was I supposed to do? Just let them die?{\\\
- r}\r\nDialogue: 0,0:29:24.06,0:29:25.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E5F\u8BB8\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Maybe.{\\r}\r\nDialogue: 0,0:29:27.39,0:29:29.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5371\u5728\u65E6\u5915\u7684\u4E0D\u53EA\
- \u662F\u6211\u4EEC\u7684\u6027\u547D \u514B\u62C9\u514B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's more at stake here than just\
- \ our lives, Clark,{\\r}\r\nDialogue: 0,0:29:29.76,0:29:31.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E5F\u4E0D\u53EA\u662F\u6211\u4EEC\u5468\
- \u56F4\u4EBA\u7684\u6027\u547D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}or the lives of those around us.{\\r}\r\nDialogue: 0,0:29:34.33,0:29:35.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u8FD9\u4E2A\u4E16\u754C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When the world...{\\\
- r}\r\nDialogue: 0,0:29:36.67,0:29:40.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u77E5\u9053\u4E86\u4F60\u7684\u80FD\u529B \u4E00\u5207\
- \u90FD\u5C06\u6539\u53D8 \u5305\u62EC\u6211\u4EEC\u7684...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When the world finds out what you\
- \ can do it's gonna change everything. Our...{\\r}\r\nDialogue: 0,0:29:40.94,0:29:43.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u7684\u4FE1\u4EF0...{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our beliefs, our notions\
- \ of...{\\r}\r\nDialogue: 0,0:29:43.78,0:29:46.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u4EBA\u7C7B\u7684\u6982\u5FF5 \u4E00\
- \u5207{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...what it\
- \ means to be human. Everything.{\\r}\r\nDialogue: 0,0:29:46.75,0:29:49.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u770B\u5230\u4E86\u76AE\u7279\u5988\
- \u5988\u7684\u53CD\u5E94\u5427\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You saw how Pete's mom reacted, right?{\\r}\r\nDialogue:\
- \ 0,0:29:49.78,0:29:51.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5979\u5F88\u5BB3\u6015 \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}She was scared, Clark.{\\r}\r\nDialogue:\
- \ 0,0:29:53.12,0:29:53.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E3A\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Why?{\\r}\r\nDialogue: 0,0:29:55.82,0:29:58.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EBA\u4EEC\u5BB3\u6015\u4ED6\u4EEC\u4E0D\
- \u4E86\u89E3\u7684\u4E1C\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}People are afraid of what they don't understand.{\\r}\r\nDialogue: 0,0:29:58.93,0:29:59.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5979\u8BF4\u5F97\u5BF9\u5417\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is she right?{\\r}\r\
- \nDialogue: 0,0:30:01.96,0:30:04.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4E0A\u5E1D\u628A\u6211\u53D8\u6210\u8FD9\u6837\
- \u7684\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Did\
- \ God do this to me?{\\r}\r\nDialogue: 0,0:30:05.37,0:30:06.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u544A\u8BC9\u6211{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Tell me.{\\r}\r\nDialogue: 0,0:30:21.65,0:30:23.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u6211\u4EEC\u5728\u8FD9\u4E2A\
- \u4E1C\u897F\u91CC\u627E\u5230\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We found you in this.{\\r}\r\nDialogue: 0,0:30:25.29,0:30:28.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4EE5\u4E3A\u653F\u5E9C\u4E00\
- \u5B9A\u4F1A\u6765\u627E\u6211\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We were sure the government was gonna show up on our doorstep...{\\\
- r}\r\nDialogue: 0,0:30:28.49,0:30:30.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u4E00\u76F4\u6CA1\u4EBA\u6765{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but no one ever came.{\\r}\r\n\
- Dialogue: 0,0:30:44.97,0:30:47.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u8FD9\u4E2A\u548C\u4F60\u4E00\u6837 \u4E5F\u662F\u5728\u91CC\
- \u9762\u627E\u5230\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This was in that chamber with you.{\\r}\r\nDialogue: 0,0:30:49.18,0:30:52.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u628A\u5B83\u62FF\u7ED9\u582A\u8428\
- \u65AF\u5DDE\u7684\u4E00\u4E2A\u51B6\u91D1\u5B66\u5BB6\u770B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I took it to a metallurgist at Kansas\
- \ State.{\\r}\r\nDialogue: 0,0:30:52.38,0:30:54.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u8BF4 \u5236\u6210\u5B83\u7684\u6750\
- \u6599\u751A\u81F3...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}He said whatever it was made from didn't even...{\\r}\r\nDialogue: 0,0:30:55.92,0:30:58.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u751A\u81F3\u4E0D\u5B58\u5728\u4E8E\u5143\
- \u7D20\u5468\u671F\u8868\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Didn't even exist on the periodic table.{\\r}\r\nDialogue: 0,0:31:00.65,0:31:01.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u610F\u601D\u662F\u8BF4{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's another way of saying...{\\\
- r}\r\nDialogue: 0,0:31:02.06,0:31:04.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B83\u4E0D\u6765\u81EA\u4E8E\u8FD9\u4E2A\u4E16\u754C\
- \ \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...that\
- \ it's not from this world, Clark.{\\r}\r\nDialogue: 0,0:31:06.43,0:31:07.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E5F\u4E00\u6837{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And neither are you.{\\r}\r\nDialogue:\
- \ 0,0:31:10.40,0:31:11.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C31\u662F\u7B54\u6848 \u513F\u5B50{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're the answer, son.{\\r}\r\nDialogue:\
- \ 0,0:31:12.20,0:31:15.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\"\u4EBA\u7C7B\u662F\u5426\u5B64\u72EC\u5730\u5B58\u5728\u4E8E\u5B87\
- \u5B99\u4E2D\"\u7684\u7B54\u6848{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You're the answer to \"Are we alone in the universe?\"{\\r}\r\nDialogue:\
- \ 0,0:31:16.74,0:31:18.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u60F3\u5F53\u8FD9\u4E2A\u7B54\u6848{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't wanna be.{\\r}\r\nDialogue:\
- \ 0,0:31:18.41,0:31:20.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u602A\u4F60 \u513F\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And I don't blame you, son.{\\r}\r\nDialogue: 0,0:31:20.87,0:31:23.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u822C\u4EBA\u96BE\u4EE5\u80CC\u8D1F\
- \u8FD9\u79CD\u91CD\u62C5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It'd be a huge burden for anyone to bear.{\\r}\r\nDialogue: 0,0:31:23.84,0:31:27.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u662F\u4E00\u822C\u4EBA\
- \ \u514B\u62C9\u514B \u800C\u4E14\u6211\u5FC5\u987B\u76F8\u4FE1\u4F60{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you're not just anyone,\
- \ Clark, and I have to believe that you were...{\\r}\r\nDialogue: 0,0:31:28.42,0:31:30.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u88AB\u9001\u6765\u8FD9\u91CC\u662F\
- \u6709\u539F\u56E0\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}That you were sent here for a reason.{\\r}\r\nDialogue: 0,0:31:31.52,0:31:34.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6240\u7ECF\u5386\u7684\u8FD9\u4E9B\
- \u6539\u53D8 \u7EC8\u6709\u4E00\u5929...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}All these changes that you're going through, one\
- \ day...{\\r}\r\nDialogue: 0,0:31:34.35,0:31:37.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F1A\u89C9\u5F97\u5B83\u4EEC\u662F\
- \u4E0A\u5E1D\u7684\u6069\u8D50 \u5F53\u90A3\u4E00\u5929\u5230\u6765...{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}One day you're gonna\
- \ think of them as a blessing. When that day comes...{\\r}\r\nDialogue: 0,0:31:37.92,0:31:39.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u5FC5\u987B\u4F5C\u51FA\u9009\
- \u62E9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you have\
- \ to make a choice.{\\r}\r\nDialogue: 0,0:31:39.59,0:31:44.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5426\u8981\u5728\u4EBA\u7C7B\u9762\
- \u524D\u9A84\u50B2\u5730\u633A\u8EAB\u800C\u51FA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}A choice of whether to stand proud in front of the\
- \ human race or not.{\\r}\r\nDialogue: 0,0:31:45.37,0:31:48.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5C31\u4E0D\u80FD\u7EE7\u7EED\u5047\
- \u88C5\u662F\u60A8\u7684\u513F\u5B50\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Can't I just keep pretending I'm your son?{\\r}\r\
- \nDialogue: 0,0:31:48.74,0:31:50.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C31\u662F\u6211\u513F\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are my son.{\\r}\r\nDialogue:\
- \ 0,0:31:55.11,0:31:57.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F46\u5728\u67D0\u4E2A\u5730\u65B9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}But somewhere out there you've...{\\r}\r\nDialogue:\
- \ 0,0:31:57.81,0:32:01.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u8FD8\u6709\u53E6\u5916\u4E00\u4E2A\u7236\u4EB2 \u4ED6\u7ED9\
- \u4E86\u4F60\u53E6\u5916\u4E00\u4E2A\u540D\u5B57{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You have another father too, who gave you another\
- \ name.{\\r}\r\nDialogue: 0,0:32:04.12,0:32:07.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51FA\u4E8E\u67D0\u79CD\u539F\u56E0 \u4ED6\
- \u628A\u4F60\u9001\u5230\u4E86\u8FD9\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And he sent you here for a reason, Clark.{\\r}\r\n\
- Dialogue: 0,0:32:08.76,0:32:12.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5C31\u7B97\u8981\u82B1\u4E00\u8F88\u5B50\u7684\u65F6\u95F4\
- \ \u4F60\u4E5F\u8981\u4E3A\u81EA\u5DF1...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And even if it takes you the rest of your life, you\
- \ owe it to yourself...{\\r}\r\nDialogue: 0,0:32:12.66,0:32:14.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u627E\u5230\u90A3\u4E2A\u539F\u56E0{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to find out what\
- \ that reason is.{\\r}\r\nDialogue: 0,0:32:23.00,0:32:26.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u88AB\u72C2\u70ED\u7684\u6B32\u671B\u6240\
- \u675F\u7F1A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bound\
- \ by wild desire{\\r}\r\nDialogue: 0,0:32:27.07,0:32:30.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6389\u8FDB\u4E86\u706B\u5708{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I fell into a ring\
- \ of fire{\\r}\r\nDialogue: 0,0:32:30.28,0:32:32.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u4E00\u4E0B \u4F60\u6765\u8FD9\u513F\
- \u4E0D\u662F\u4E3A\u4E86\u953B\u70BC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Wait a second. Aren't you here for the exercise?{\\\
- r}\r\nDialogue: 0,0:32:32.68,0:32:34.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D \u90A3\u662F\u5728\u6539\u53D8\u8BA1\u5212{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No, there was a change\
- \ in the plans.{\\r}\r\nDialogue: 0,0:32:34.61,0:32:37.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542C\u8BF4\u6709\u4EBA\u5728\u57C3\u5C14\
- \u65AF\u7C73\u5C14\u627E\u5230\u4E9B\u5947\u602A\u7684\u4E1C\u897F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Somebody found something\
- \ strange on Ellesmere.{\\r}\r\nDialogue: 0,0:32:37.25,0:32:38.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7A7A\u4E2D\u4FA6\u5BDF\u673A\u5DF2\u7ECF\
- \u5728\u90A3\u91CC\u98DE\u4E86\u4E00\u4E2A\u661F\u671F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Aircom's making runs out there all\
- \ week.{\\r}\r\nDialogue: 0,0:32:38.91,0:32:39.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E2A\u8001\u9F20\u6D1E\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That rat hole?{\\\
- r}\r\nDialogue: 0,0:32:40.15,0:32:42.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4F60\u5F00\u73A9\u7B11\u7684\u5427 - \u4E0D\u53EF\
- \u601D\u8BAE \u5BF9\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- You gotta be kidding me. - I know. It's crazy.{\\r}\r\nDialogue:\
- \ 0,0:32:42.49,0:32:44.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8BB8\u591A\u7F8E\u56FD\u4EBA\u4E5F\u53BB\u4E86\u90A3\u91CC{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Americans are there\
- \ too, lots of them.{\\r}\r\nDialogue: 0,0:32:44.46,0:32:47.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD8\u6709\u522B\u7684\u5417\uFF1F\u4ED6\
- \u4EEC\u7BA1\u5B83\u53EB\u5F02\u5E38\u7269\u4F53{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Anything else? They're calling it an anomalous object.{\\\
- r}\r\nDialogue: 0,0:32:47.29,0:32:49.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E5F\u4E0D\u77E5\u9053\u4EC0\u4E48\u610F\u601D -\
- \ \u8D70\u5F00 \u62C9\u5FB7\u6D1B \u6211\u8BA4\u771F\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Whatever that means. - Back\
- \ off, Ludlow. I'm serious.{\\r}\r\nDialogue: 0,0:32:49.80,0:32:51.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u522B\u4ECB \u514B\u4E3D\u831C - \u4F4F\
- \u624B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Oh, come\
- \ on, Chrissy. - Knock it off.{\\r}\r\nDialogue: 0,0:32:51.83,0:32:53.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5750\u4E0B - \u653E\u6211\u8D70{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Sit down. -\
- \ Let me go.{\\r}\r\nDialogue: 0,0:32:53.50,0:32:55.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u653E\u5F00\u5979 \u54E5\u4EEC{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey. Leave her alone, man.{\\\
- r}\r\nDialogue: 0,0:32:59.51,0:33:01.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u653E\u53C8\u600E\u6837 \u786C\u6C49\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or what, tough guy?{\\\
- r}\r\nDialogue: 0,0:33:01.78,0:33:05.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u653E\u5C31\u53EA\u80FD\u8BF7\u4F60\u79BB\u5F00\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or I'm gonna\
- \ have to ask you to leave.{\\r}\r\nDialogue: 0,0:33:06.38,0:33:09.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u89C9\u5F97\u6211\u60F3\u8D70\u7684\
- \u65F6\u5019\u624D\u4F1A\u8D70{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I think I'll probably just leave when I'm good and ready.{\\r}\r\nDialogue:\
- \ 0,0:33:19.39,0:33:21.07,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6765\u52B2\u4E86\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Oh, there he is.{\\r}\r\nDialogue: 0,0:33:28.37,0:33:30.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u72AF\u4E0D\u4E0A \u4EB2\u7231\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's not worth it,\
- \ sweetie.{\\r}\r\nDialogue: 0,0:33:38.51,0:33:40.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6DF7\u86CB \u522B\u5FD8\u4E86\u4F60\u7684\
- \u5C0F\u8D39{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey,\
- \ asshole, don't forget your tip.{\\r}\r\nDialogue: 0,0:33:43.05,0:33:44.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53BB\u5427{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Strike.{\\r}\r\nDialogue: 0,0:34:35.40,0:34:36.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C22\u8C22{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thanks.{\\r}\r\nDialogue: 0,0:34:37.64,0:34:38.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55E8{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hi.{\\r}\r\nDialogue: 0,0:34:39.11,0:34:40.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B2\u6069\u5C0F\u59D0 \u4F60\u597D\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane.\
- \ How you doing?{\\r}\r\nDialogue: 0,0:34:41.07,0:34:43.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u597D - \u6211\u662F\u6770\u5FB7\
- \u2022\u5C24\u73ED\u514B\u65AF \u6765\u81EA\u5317\u6781\u8D27\u8FD0{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Good. - Jed Eubanks,\
- \ Arctic Cargo.{\\r}\r\nDialogue: 0,0:34:43.54,0:34:45.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u79BB\u9A7B\u5730\u6709\u591A\u8FDC\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How far to\
- \ the station?{\\r}\r\nDialogue: 0,0:34:46.25,0:34:49.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5BBF\u8425\u5730\u5C31\u5728\u4E0A\u9762\
- \ \u6211\u966A\u4F60\u8D70\u8FC7\u53BB - \u592A\u597D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Camp's just over the rise. I'll\
- \ walk you over. - Great.{\\r}\r\nDialogue: 0,0:34:49.58,0:34:51.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E54\u53EF\u4EE5\u5E2E\u4F60\u62FF\u5305\
- \ \u4E54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Joe can\
- \ take your bags. Joe.{\\r}\r\nDialogue: 0,0:34:52.05,0:34:53.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6765\u5E2E\u5E2E\u5FD9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help her out.{\\r}\r\nDialogue: 0,0:34:53.55,0:34:56.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C0F\u5FC3\u70B9 \u90A3\u4E9B\u4E1C\u897F\
- \u5F88\u91CD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Careful\
- \ with those. They're heavy.{\\r}\r\nDialogue: 0,0:34:58.49,0:35:00.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5F97\u627F\u8BA4 \u83B2\u6069\u5C0F\
- \u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I gotta confess,\
- \ Miss Lane...{\\r}\r\nDialogue: 0,0:35:00.39,0:35:03.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u300A\u661F\u7403\u65E5\
- \u62A5\u300B\u7684\u5FE0\u5B9E\u89C2\u4F17{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...I'm not a fan of the Daily Planet.{\\r}\r\nDialogue:\
- \ 0,0:35:03.63,0:35:07.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F46\u4F60\u6F5C\u5165\u7B2C\u4E00\u5E08\u65F6\u5199\u7684\u90A3\
- \u4E9B\u6587\u7AE0\u90FD...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But those pieces you wrote when you were embedded with the 1st Division\
- \ were...{\\r}\r\nDialogue: 0,0:35:07.83,0:35:09.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u6211\u5370\u8C61\u5341\u5206\u6DF1\
- \u523B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, they\
- \ were pretty impressive.{\\r}\r\nDialogue: 0,0:35:09.94,0:35:14.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u80FD\u8BF4\u4EC0\u4E48\u5462\uFF1F\
- \u4E0D\u7A7F\u519B\u670D\u7684\u65F6\u5019\u6211\u5C31\u5F97\u5199\u4E13\u680F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, what can I\
- \ say? I get writer's block if I'm not wearing a flak jacket.{\\r}\r\nDialogue:\
- \ 0,0:35:19.61,0:35:20.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u83B2\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Miss Lane.{\\r}\r\nDialogue: 0,0:35:20.85,0:35:23.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u7F8E\u56FD\u5317\u65B9\u53F8\
- \u4EE4\u90E8\u7684\u54C8\u8FEA\u4E0A\u6821 {\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm Colonel Hardy, U.S. Northcom. {\\r}\r\nDialogue:\
- \ 0,0:35:23.00,0:35:24.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u4F4D\u662F\u9AD8\u7EA7\u7814\u7A76\u8BA1\u5212\u5C40\u7684\
- \u57C3\u7C73\u5C14\u535A\u58EB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Dr. Emil Hamilton from DARPA.{\\r}\r\nDialogue: 0,0:35:25.12,0:35:26.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u6765\u65E9\u4E86 - \u55E8{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- You're early. \
- \ - Hi.{\\r}\r\nDialogue: 0,0:35:26.52,0:35:28.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4EE5\u4E3A\u4F60\u660E\u5929\
- \u624D\u5230{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We were\
- \ expecting you tomorrow.{\\r}\r\nDialogue: 0,0:35:28.25,0:35:30.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u6211\u624D\u4ECA\u5929\u6765\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Which is why\
- \ I showed up today.{\\r}\r\nDialogue: 0,0:35:31.36,0:35:33.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u6709\u53E5\u8BDD\u5F97\u8BF4\
- \u5728\u524D\u5934 \u597D\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Look, let's get one thing straight, guys, okay?{\\r}\r\n\
- Dialogue: 0,0:35:33.79,0:35:35.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u5728\u8FD9\u7684\u552F\u4E00\u539F\u56E0\u662F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The only reason I'm here\
- \ is{\\r}\r\nDialogue: 0,0:35:35.01,0:35:36.64,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5728\u52A0\u62FF\u5927\u56FD\u5883\
- \u5185\u53D7\u7406\u4E0A\u8BC9\u7684\u6CD5\u5EAD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}because we're on Canadian soil...{\\r}\r\nDialogue:\
- \ 0,0:35:36.86,0:35:40.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u9A73\u56DE\u4E86\u4F60\u4EEC\u8D76\u6211\u8D70\u7684\u7981\u4EE4\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and the appellate\
- \ court overruled your injunction to keep me away.{\\r}\r\nDialogue: 0,0:35:40.53,0:35:42.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E48 \u4F60\u5982\u679C\u73A9\u86CB\
- \u73A9\u591F\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So\
- \ if we're done measuring dicks...{\\r}\r\nDialogue: 0,0:35:42.94,0:35:45.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80FD\u6D3E\u4EBA\u5E26\u6211\u770B\u770B\
- \u4F60\u4EEC\u7684\u53D1\u73B0\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...can you have your people show me what you found?{\\\
- r}\r\nDialogue: 0,0:35:47.34,0:35:50.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7F8E\u56FD\u822A\u7A7A\u822A\u5929\u5C40\u7684\u7D27\
- \u6025\u6551\u63F4\u536B\u661F\u9996\u5148\u53D1\u73B0\u5F02\u5E38{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}NASA's EOS satellites pinged\
- \ the anomaly first.{\\r}\r\nDialogue: 0,0:35:50.71,0:35:53.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51B0\u67B6\u7684\u56DE\u58F0\u63A2\u6D4B\
- \u663E\u793A\u5F88\u6DF7\u4E71{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The ice shelf plays hell on the echo soundings.{\\r}\r\nDialogue: 0,0:35:53.45,0:35:55.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u90A3\u91CC\u7EDD\u5BF9\u6709\u4E1C\
- \u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But there's\
- \ something there.{\\r}\r\nDialogue: 0,0:35:55.30,0:35:57.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BF4\u4E0D\u5B9A\u662F\u82CF\u8054\u65F6\
- \u4EE3\u7684\u6F5C\u8247\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3} A submarine, maybe? Soviet-era?{\\r}\r\nDialogue: 0,0:35:57.05,0:35:58.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u4E00\u5B9A \u90A3\u73A9\u610F\u4E09\
- \u767E\u7C73\u957F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Doubtful.\
- \ That's 300 meters.{\\r}\r\nDialogue: 0,0:35:58.89,0:36:01.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BD4\u6211\u4EEC\u90A3\u65F6\u5019\u80FD\
- \u5EFA\u51FA\u6765\u7684\u4E1C\u897F\u5927\u591A\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Considerably larger than anything\
- \ we know they built back then.{\\r}\r\nDialogue: 0,0:36:02.12,0:36:03.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u662F\u8BE1\u5F02\u7684\u5730\u65B9\
- \u5728\u8FD9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But\
- \ herds the spooky pan.{\\r}\r\nDialogue: 0,0:36:04.56,0:36:07.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E1C\u897F\u5468\u56F4\u8986\u76D6\
- \u7684\u51B0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ ice surrounding the object...{\\r}\r\nDialogue: 0,0:36:07.29,0:36:10.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5927\u6982\u5728\u4E0A\u9762\u6709\u4E24\
- \u4E07\u5E74\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...it's\
- \ nearly twenty thousand years old.{\\r}\r\nDialogue: 0,0:36:11.83,0:36:12.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B2\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane?{\\r}\r\nDialogue: 0,0:36:14.03,0:36:15.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u522B\u4E71\u8D70 \u8FD9\u91CC\u5230\u4E86\
- \u534A\u591C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Try\
- \ not to wander.{\\r}\r\nDialogue: 0,0:36:15.54,0:36:18.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6E29\u5EA6\u4F1A\u964D\u5230\u96F6\u4E0B\
- 40\u5EA6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Temperatures\
- \ drop to minus 40 at night around here.{\\r}\r\nDialogue: 0,0:36:18.87,0:36:21.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6625\u5929\u8FC7\u5B8C\u4E86\u624D\u80FD\
- \u627E\u5230\u4F60\u7684\u5C38\u4F53{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Wouldn't find your body till after spring.{\\r}\r\nDialogue:\
- \ 0,0:36:24.14,0:36:25.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u5C31\u8FD9\u6837\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And there you go.{\\r}\r\nDialogue: 0,0:36:29.22,0:36:30.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u89E3\u624B\u600E\u4E48\u529E\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What if I\
- \ need to tinkle?{\\r}\r\nDialogue: 0,0:36:31.38,0:36:33.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u89D2\u843D\u91CC\u6709\u4E2A\u6876{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's a bucket in\
- \ the corner.{\\r}\r\nDialogue: 0,0:37:07.22,0:37:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5230\u5E95\u8981\u53BB\u54EA\u513F\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where the\
- \ hell are you going?{\\r}\r\nDialogue: 0,0:39:18.72,0:39:20.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u597D\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hello?{\\r}\r\nDialogue: 0,0:40:55.58,0:40:59.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u4E8B\u4E86 \u6CA1\u4E8B\u4E86 \u6CA1\
- \u4E8B\u4E86 \u6CA1\u4E8B\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's all right, it's all right, it's all right. It's all right.{\\r}\r\
- \nDialogue: 0,0:41:13.00,0:41:14.88,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5185\u51FA\u8840\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're hemorrhaging internally...{\\r}\r\
- \nDialogue: 0,0:41:15.13,0:41:17.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8981\u662F\u73B0\u5728\u6211\u4E0D\u6B62\u8840{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and if I don't cauterize\
- \ this bleed...{\\r}\r\nDialogue: 0,0:41:18.67,0:41:19.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u4E48\u80FD\u2026\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How can...?{\\r}\r\nDialogue:\
- \ 0,0:41:19.61,0:41:22.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u6709\u5E38\u4EBA\u6CA1\u6709\u7684\u80FD\u529B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can do things that other\
- \ people can't.{\\r}\r\nDialogue: 0,0:41:23.14,0:41:24.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6293\u4F4F\u6211\u7684\u624B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Now hold my hand.{\\r}\r\n\
- Dialogue: 0,0:41:25.11,0:41:26.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F1A\u75BC\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This is gonna hurt.{\\r}\r\nDialogue: 0,0:42:28.37,0:42:30.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u54C8\u8FEA\u4E0A\u6821\u548C\u4ED6\u7684\
- \u56E2\u961F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What\
- \ Colonel Hardy and his team surmised...{\\r}\r\nDialogue: 0,0:42:30.74,0:42:32.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u731C\u6D4B\u8FD9\u4F1A\u662F\u4E00\u8258\
- \u82CF\u8054\u65F6\u4EE3\u7684\u6F5C\u8247{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...was a Soviet-era submarine...{\\r}\r\nDialogue:\
- \ 0,0:42:32.51,0:42:34.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5B83\u7684\u771F\u9762\u76EE\u5374\u66F4\u52A0\u5947\u7279{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...was actually something\
- \ much more exotic.{\\r}\r\nDialogue: 0,0:42:35.21,0:42:39.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5468\u56F4\u51B0\u5B54\u7684\u540C\u4F4D\
- \u7D20\u5206\u6790\u8868\u660E...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}An isotope analysis of the surrounding ice bores suggests that an object...{\\\
- r}\r\nDialogue: 0,0:42:39.29,0:42:43.13,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8BE5\u7269\u4F53\u5DF2\u88AB\u56F0\u4E8E\u51B0\u5DDD\
- \u4E4B\u4E2D\u8D85\u8FC7\u4E00\u4E07\u516B\u5343\u5E74{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...had been trapped in the glacier\
- \ for over 18,000 years.{\\r}\r\nDialogue: 0,0:42:43.39,0:42:44.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u6551\u6211\u7684\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}As for my rescuer?{\\r}\r\n\
- Dialogue: 0,0:42:45.19,0:42:47.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5728\u8BE5\u7269\u4F53\u8D77\u98DE\u7684\u540C\u65F6\u6D88\
- \u5931\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He disappeared\
- \ during the object's departure...{\\r}\r\nDialogue: 0,0:42:47.96,0:42:50.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80CC\u666F\u8C03\u67E5\u53D1\u73B0 \u4ED6\
- \u7684\u5DE5\u4F5C\u5386\u53F2...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A background check revealed that his work history...{\\r}\r\nDialogue:\
- \ 0,0:42:50.60,0:42:52.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u548C\u8EAB\u4EFD\u5747\u4E3A\u4F2A\u9020{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and identity had been falsified.{\\\
- r}\r\nDialogue: 0,0:42:52.93,0:42:54.81,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5173\u4E8E\u6551\u6211\u7684\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The questions raised by my rescuer's...{\\\
- r}\r\nDialogue: 0,0:42:55.07,0:42:56.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5B58\u5728\u4E0E\u5426\u7684\u8003\u91CF\u786E\u5B9E\
- \u60CA\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...existence\
- \ are frightening to contemplate...{\\r}\r\nDialogue: 0,0:42:57.14,0:43:00.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E5F\u77E5\u9053\u81EA\u5DF1\
- \u6240\u89C1\u5C5E\u5B9E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...but I also know what I saw.{\\r}\r\nDialogue: 0,0:43:00.71,0:43:03.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u6B64\u6211\u5F97\u51FA\u4E86\u4E00\
- \u4E2A\u5FC5\u7136\u7684\u7ED3\u8BBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}\"And I have arrived at the inescapable conclusion...{\\\
- r}\r\nDialogue: 0,0:43:03.54,0:43:05.55,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5373\u8BE5\u7269\u4F53\u4E0E\u5B83\u7684\u4E58\u5750\
- \u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...that the\
- \ object and its occupant...{\\r}\r\nDialogue: 0,0:43:05.78,0:43:08.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E76\u975E\u5730\u7403\u4EA7\u7269{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...did not originate\
- \ on Earth.\"{\\r}\r\nDialogue: 0,0:43:09.45,0:43:12.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u6837\u6CA1\u6CD5\u4E0A\u62A5 \u91CC\
- \u9762\u53EF\u80FD\u6709\u4E00\u534A\u662F\u4F60\u7684\u5E7B\u89C9{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't print this, Lois.\
- \ You might have hallucinated half of it.{\\r}\r\nDialogue: 0,0:43:12.99,0:43:15.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u5E73\u6C11\u627F\u5305\u5546\u8BC1\
- \u5B9E\u4E86\u6211\u7684\u6545\u4E8B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What about the contractors who corroborated my story?{\\\
- r}\r\nDialogue: 0,0:43:15.98,0:43:18.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E94\u89D2\u5927\u697C\u5426\u8BA4\u6709\u8239\u7684\
- \u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ Pentagon is denying that there was a ship.{\\r}\r\nDialogue: 0,0:43:18.76,0:43:20.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u5F53\u7136\u5426\u8BA4 \u4ED6\
- \u4EEC\u5C31\u8BE5\u5426\u8BA4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Of course they are. They're supposed to.{\\r}\r\nDialogue: 0,0:43:20.83,0:43:22.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u4E3A\u4ED6\u4EEC\u662F\u4E94\u89D2\
- \u5927\u697C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ the Pentagon.{\\r}\r\nDialogue: 0,0:43:22.60,0:43:24.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F69\u91CC \u62DC\u6258 \u6211\u4EEC\u8BF4\
- \u7684\u53EF\u662F\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Perry,come on, it's me we're talking about.{\\r}\r\nDialogue: 0,0:43:24.50,0:43:27.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u662F\u4E00\u4E2A\u666E\u5229\u7B56\
- \u5956\u83B7\u5956\u8BB0\u8005 - \u90A3\u5C31\u6709\u70B9\u540D\u8BB0\u8005\
- \u6837{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm a Pulitzer\
- \ Prize-winning reporter. - Then act like it.{\\r}\r\nDialogue: 0,0:43:27.43,0:43:29.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4E0D\u62A5\u51FA\u53BB\u6211\u5C31\u8F9E\
- \u804C - \u8D70\u4E0D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Print it or I walk. - You can't.{\\r}\r\nDialogue: 0,0:43:29.80,0:43:30.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7B7E\u4E86\u5408\u540C\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're under contract.{\\\
- r}\r\nDialogue: 0,0:43:33.31,0:43:37.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u4F1A\u62A5\u9053\u5916\u661F\u4EBA\u9690\
- \u85CF\u4E8E\u5BFB\u5E38\u4EBA\u4E4B\u4E2D\u7684\u6545\u4E8B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm not running a story about aliens\
- \ walking among us.{\\r}\r\nDialogue: 0,0:43:43.62,0:43:45.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7EDD\u5BF9\u4E0D\u4F1A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never gonna happen.{\\r}\r\nDialogue:\
- \ 0,0:43:48.45,0:43:50.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u4F4D\u5973\u58EB\u7684\u82CF\u683C\u5170\u5A01\u58EB\u5FCC\
- \u7EAF\u996E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ a Scotch, straight-up, for the lady.{\\r}\r\nDialogue: 0,0:43:51.09,0:43:52.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u73B0\u5728\u5C31\u53D1\u539F\u6587\
- \u7ED9\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ sending you the article.{\\r}\r\nDialogue: 0,0:43:52.63,0:43:55.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u7F16\u8F91\u4E0D\u80AF\u62A5\
- \ \u4F46\u5982\u679C\u78B0\u5DE7\u5728\u7F51\u4E0A\u6CC4\u9732\u4E86\u7684\
- \u8BDD...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My editor\
- \ won't print it, but if it leaked online...{\\r}\r\nDialogue: 0,0:43:55.33,0:43:56.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u61C2\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Got it.{\\r}\r\nDialogue: 0,0:43:56.86,0:43:59.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u662F\u66FE\u7ECF\u628A\
- \u6211\u7684\u7F51\u7AD9\u5F62\u5BB9\u4E3A...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}But didn't you once describe my site...{\\r}\r\n\
- Dialogue: 0,0:43:59.53,0:44:02.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6EE1\u6EA2\u8C0E\u8A00\u7684\u6BD2\u7624\u5417\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...as a creeping cancer\
- \ of falsehoods?{\\r}\r\nDialogue: 0,0:44:02.94,0:44:06.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8FD8\u8FD9\u4E48\u8BA4\u4E3A \u4F46\
- \u6211\u60F3\u8BA9\u8FD9\u4E2A\u6545\u4E8B\u89C1\u5149{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I stand by my words, Woodburn, but\
- \ I want this story out there.{\\r}\r\nDialogue: 0,0:44:06.53,0:44:07.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3A\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why?{\\r}\r\nDialogue: 0,0:44:07.97,0:44:11.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u4E3A\u6211\u60F3\u8BA9\u6211\u7684\
- \u795E\u79D8\u7537\u5B50\u77E5\u9053\u6211\u77E5\u9053\u771F\u76F8{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Because I want my mystery\
- \ man to know I know the truth.{\\r}\r\nDialogue: 0,0:44:25.66,0:44:27.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9012\u5F52\u8BCA\u65AD\u5B8C\u6210{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Recursive diagnostics\
- \ complete...{\\r}\r\nDialogue: 0,0:44:28.46,0:44:30.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BFC\u793A\u5F71\u50CF\u5DF2\u6388\u6743\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guiding presence\
- \ authenticated.{\\r}\r\nDialogue: 0,0:44:30.90,0:44:33.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7CFB\u7EDF\u8FD0\u8F6C\u6B63\u5E38{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All systems operational.{\\\
- r}\r\nDialogue: 0,0:44:45.55,0:44:49.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u770B\u89C1\u4F60\u5728\u90A3\u91CC\u957F\u5927\u6210\
- \u4EBA...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To see\
- \ you standing there having grown into an adult...{\\r}\r\nDialogue: 0,0:44:51.72,0:44:54.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u83B1\u62C9\u80FD\u4EB2\u773C\
- \u5F97\u89C1\u5C31\u597D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}If only Lara could have witnessed this.{\\r}\r\nDialogue: 0,0:44:54.69,0:44:55.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u8C01\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Who are you?{\\r}\r\nDialogue: 0,0:44:56.89,0:44:58.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u4F60\u7684\u7236\u4EB2 \u5361\
- \u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I am your\
- \ father, Kal.{\\r}\r\nDialogue: 0,0:45:00.23,0:45:02.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D77\u7801\u662F\u4ED6\u7684\u8EAB\u5F71\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Or at least a shadow\
- \ of him.{\\r}\r\nDialogue: 0,0:45:02.60,0:45:04.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u610F\u8BC6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}His consciousness.{\\r}\r\nDialogue:\
- \ 0,0:45:06.10,0:45:09.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u53EB\u4E54\u2022\u827E\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My name was Jor-El.{\\r}\r\nDialogue: 0,0:45:11.87,0:45:13.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5361\u5C14{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And Kal?{\\r}\r\nDialogue: 0,0:45:16.74,0:45:17.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u6211\u7684\u540D\u5B57\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's my name.{\\\
- r}\r\nDialogue: 0,0:45:18.84,0:45:22.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EB \u5361\u5C14\u2022\u827E\u5C14{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Kal-El. It is.{\\r}\r\nDialogue: 0,0:45:22.75,0:45:24.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6709\u597D\u591A\u95EE\u9898{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have so many questions.{\\\
- r}\r\nDialogue: 0,0:45:27.52,0:45:29.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4ECE\u54EA\u91CC\u6765\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where do I come from?{\\r}\r\nDialogue:\
- \ 0,0:45:30.86,0:45:32.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u4E3A\u4EC0\u4E48\u8981\u9001\u6211\u6765\u8FD9\u91CC\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why did you send\
- \ me here?{\\r}\r\nDialogue: 0,0:45:33.56,0:45:35.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6765\u81EA\u6C2A\u661F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You came from Krypton.{\\r}\r\
- \nDialogue: 0,0:45:38.13,0:45:42.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E00\u4E2A\u6BD4\u5730\u7403\u73AF\u5883\u66F4\u6076\
- \u52A3\u7684\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A world with a much harsher environment than Earths.{\\r}\r\nDialogue:\
- \ 0,0:45:45.94,0:45:47.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5F88\u4E45\u4EE5\u524D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Long ago...{\\r}\r\nDialogue: 0,0:45:47.81,0:45:50.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u5927\u6269\u5F20\u7684\u65F6\u4EE3\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...in an era of\
- \ expansion...{\\r}\r\nDialogue: 0,0:45:50.28,0:45:53.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u7684\u79CD\u65CF\u63A2\u7D22\
- \u4E00\u9897\u9897\u661F\u7403{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...our race spread out through the stars...{\\r}\r\nDialogue: 0,0:45:53.75,0:45:56.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BFB\u89C5\u53EF\u4EE5\u5E38\u9A7B\u7684\
- \u65B0\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...seeking\
- \ new worlds to settle upon.{\\r}\r\nDialogue: 0,0:45:57.58,0:46:01.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u8258\u4FA6\u5BDF\u8239\u662F\u5C04\
- \u5165\u865A\u7A7A\u7684\u6570\u5343\u8258\u4E4B\u4E00{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This scout ship was one of thousands\
- \ launched into the void.{\\r}\r\nDialogue: 0,0:46:03.66,0:46:06.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5728\u5176\u4ED6\u884C\u661F\
- \u4E0A\u5EFA\u9020\u524D\u54E8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We built outposts on other planets...{\\r}\r\nDialogue: 0,0:46:06.49,0:46:10.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7528\u5DE8\u5927\u7684\u673A\u5668\u6309\
- \u6211\u4EEC\u7684\u9700\u6C42\u91CD\u5851\u73AF\u5883{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}musing great machines to reshape environments\
- \ to our needs.{\\r}\r\nDialogue: 0,0:46:12.43,0:46:16.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5341\u4E07\u5E74\u6765\u6211\u4EEC\u7684\
- \u6587\u660E\u84EC\u52C3\u53D1\u5C55{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}For 100,000 years, our civilization flourished...{\\r}\r\
- \nDialogue: 0,0:46:17.97,0:46:19.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u521B\u9020\u4E86\u8BB8\u591A\u5947\u8FF9{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...accomplishing wonders.{\\\
- r}\r\nDialogue: 0,0:46:21.14,0:46:22.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53D1\u751F\u4E86\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened?{\\r}\r\nDialogue: 0,0:46:24.78,0:46:27.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u521B\u9020\u4E86\u4EBA\u9020\
- \u4EBA\u53E3\u63A7\u5236\u7CFB\u7EDF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Artificial population control was established.{\\r}\r\n\
- Dialogue: 0,0:46:28.58,0:46:32.19,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u9057\u5F03\u4E86\u592A\u7A7A\u63A2\u7D22\u7684\u524D\u54E8\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The outposts on\
- \ space exploration were abandoned.{\\r}\r\nDialogue: 0,0:46:32.79,0:46:35.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u7528\u5C3D\u4E86\u81EA\u7136\
- \u8D44\u6E90{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We exhausted\
- \ our natural resources.{\\r}\r\nDialogue: 0,0:46:35.62,0:46:39.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u6B64\u6211\u4EEC\u884C\u661F\u7684\
- \u6838\u5FC3\u53D8\u5F97\u4E0D\u7A33\u5B9A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}As a result, our planet's core became unstable.{\\\
- r}\r\nDialogue: 0,0:46:42.09,0:46:44.63,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6700\u7EC8\u6211\u4EEC\u7684\u519B\u4E8B\u9886\u8896\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Eventually, our\
- \ military leader...{\\r}\r\nDialogue: 0,0:46:44.86,0:46:48.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u5C06\u519B\u4F01\u56FE\u53D1\
- \u52A8\u653F\u53D8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...General\
- \ Zod, attempted a coup.{\\r}\r\nDialogue: 0,0:46:50.70,0:46:52.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4E3A\u65F6\u5DF2\u665A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But by then it was too late.{\\\
- r}\r\nDialogue: 0,0:46:54.14,0:46:56.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5988\u5988\u548C\u6211\u9884\u89C1\u4E86\u672A\
- \u6765\u707E\u96BE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your\
- \ mother and I foresaw the coming calamity...{\\r}\r\nDialogue: 0,0:46:57.01,0:47:00.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u91C7\u53D6\u4E86\u67D0\u4E9B\
- \u63AA\u65BD\u4EE5\u786E\u4FDD\u4F60\u7684\u751F\u5B58{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and we took certain steps to ensure\
- \ your survival.{\\r}\r\nDialogue: 0,0:47:01.88,0:47:03.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u59CB\u6E90\u5BA4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is a genesis chamber.{\\\
- r}\r\nDialogue: 0,0:47:04.38,0:47:07.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6240\u6709\u6C2A\u661F\u4EBA\u90FD\u5728\u8FD9\u6837\
- \u7684\u5C0F\u623F\u95F4\u91CC\u88AB\u5B55\u80B2{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}All Kryptonians were conceived in chambers such as\
- \ this.{\\r}\r\nDialogue: 0,0:47:07.79,0:47:11.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BCF\u4E2A\u51FA\u751F\u7684\u5B69\u5B50\
- \u90FD\u6709\u4E00\u4E2A\u9884\u5B9A\u7684\u89D2\u8272{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Every child was designed to fulfill\
- \ a pre-determined role in our society...{\\r}\r\nDialogue: 0,0:47:11.72,0:47:12.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5DE5\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...as a worker...{\\r}\r\nDialogue: 0,0:47:12.83,0:47:15.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6218\u58EB \u9886\u5BFC\u8005\u7B49\u7B49\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...a warrior, a\
- \ leader and so on.{\\r}\r\nDialogue: 0,0:47:16.20,0:47:19.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5988\u5988\u548C\u6211\u76F8\u4FE1\
- \u6C2A\u661F\u5931\u53BB\u4E86\u4E00\u4E9B\u73CD\u8D35\u7684\u4E1C\u897F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your mother and I believed\
- \ Krypton lost something precious.{\\r}\r\nDialogue: 0,0:47:19.70,0:47:21.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9009\u62E9\u548C\u673A\u4F1A\u7684\u8981\
- \u7D20{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The element\
- \ of choice, of chance.{\\r}\r\nDialogue: 0,0:47:22.40,0:47:24.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u4E00\u4E2A\u5B69\u5B50\u7684\
- \u68A6\u60F3\u662F...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What if a child dreamed of becoming something...{\\r}\r\nDialogue: 0,0:47:24.84,0:47:27.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6210\u4E3A\u9884\u5B9A\u8F83\u8272\u4EE5\
- \u5916\u7684\u89D2\u8272\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}mother than what society had intended for him or her?{\\\
- r}\r\nDialogue: 0,0:47:28.87,0:47:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8981\u662F\u4ED6\u6E34\u671B\u66F4\u4F1F\u5927\u7684\
- \u4E1C\u897F\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What if a child aspired to something greater?{\\r}\r\nDialogue: 0,0:47:32.24,0:47:34.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u662F\u8FD9\u79CD\u4FE1\u5FF5\
- \u7684\u4F53\u73B0 \u5361\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You were the embodiment of that belief, Kal.{\\r}\r\nDialogue: 0,0:47:34.51,0:47:37.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51E0\u4E16\u7EAA\u4EE5\u6765\u6C2A\u661F\
- \u7684\u7B2C\u4E00\u4E2A\u81EA\u7136\u5206\u5A29\u7684\u5B69\u5B50{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton's first natural\
- \ birth in centuries.{\\r}\r\nDialogue: 0,0:47:38.08,0:47:40.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u6211\u4EEC\u624D\u5192\u5982\
- \u6B64\u5927\u7684\u98CE\u9669\u6551\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}That's why we risked so much to save you.{\\r}\r\n\
- Dialogue: 0,0:47:41.89,0:47:43.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u4EEC\u4E3A\u4EC0\u4E48\u4E0D\u8DDF\u6211\u4E00\u8D77\
- \u6765\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why\
- \ didn't you come with me?{\\r}\r\nDialogue: 0,0:47:46.86,0:47:48.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u505A\u4E0D\u5230 \u5361\u5C14\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We couldn't, Kal.{\\\
- r}\r\nDialogue: 0,0:47:49.66,0:47:52.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E0D\u8BBA\u6211\u4EEC\u591A\u4E48\u6E34\u671B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No matter how much we wanted\
- \ to.{\\r}\r\nDialogue: 0,0:47:52.60,0:47:54.60,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u4E0D\u8BBA\u6211\u4EEC\u6709\u591A\u7231\u4F60\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No matter how much\
- \ we loved you.{\\r}\r\nDialogue: 0,0:47:55.37,0:47:56.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6BCD\u4EB2\u83B1\u62C9\u548C\u6211\
- \ \u90FD\u8DDF\u4F50\u5FB7\u4E00\u6837{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Your mother, Lara, and I...{\\r}\r\nDialogue: 0,0:47:57.00,0:48:00.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u6211\u4EEC\u4E16\u754C\u751F\u4EA7\
- \u51FA\u6765\u7684\u5931\u8D25\u4EA7\u7269{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...were a product of the failures of our world as\
- \ much as Zod was...{\\r}\r\nDialogue: 0,0:48:00.37,0:48:02.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4E0E\u5B83\u7684\u547D\u8FD0\
- \u7D27\u7D27\u76F8\u8FDE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...tied to its fate.{\\r}\r\nDialogue: 0,0:48:02.27,0:48:04.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u90A3\u6211\u662F\u5B64\u5355\u4E00\u4EBA\
- \u4E86 - \u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ So I'm alone. - No.{\\r}\r\nDialogue: 0,0:48:06.08,0:48:09.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u65E2\u662F\u6C2A\u661F\u7684\u5B50\
- \u55E3 \u4E5F\u662F\u5730\u7403\u7684\u5B69\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You're as much a child of Earth now as you are of\
- \ Krypton.{\\r}\r\nDialogue: 0,0:48:10.02,0:48:13.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u4F53\u73B0\u4E24\u4E2A\u4E16\
- \u754C\u7684\u7CBE\u534E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You can embody the best of both worlds.{\\r}\r\nDialogue: 0,0:48:13.42,0:48:17.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6BCD\u4EB2\u548C\u6211\u81F4\u529B\
- \u4FDD\u62A4\u7684\u68A6\u60F3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}A dream your mother and I dedicated our lives to preserve.{\\r}\r\n\
- Dialogue: 0,0:48:21.59,0:48:24.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5730\u7403\u4EBA\u4E0E\u6211\u4EEC\u4E0D\u540C \u8FD9\u4E0D\
- \u5047{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The people\
- \ of Earth are different from us, it's true.{\\r}\r\nDialogue: 0,0:48:24.80,0:48:27.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6700\u7EC8\u6211\u76F8\u4FE1\u8FD9\
- \u662F\u4EF6\u597D\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But, ultimately, I believe that's a good thing.{\\r}\r\nDialogue: 0,0:48:27.97,0:48:30.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4E0D\u4E00\u5B9A\u4F1A\u72AF\
- \u4E0E\u6211\u4EEC\u76F8\u540C\u7684\u9519\u8BEF{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}They won't necessarily make the same mistakes we\
- \ did.{\\r}\r\nDialogue: 0,0:48:30.64,0:48:32.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u6709\u4F60\u7684\u5F15\u5BFC\
- \ \u5361\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Not\
- \ if you guide them, Kal.{\\r}\r\nDialogue: 0,0:48:34.21,0:48:36.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u4F60\u5E26\u7ED9\u4ED6\u4EEC\
- \u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Not\
- \ if you give them hope.{\\r}\r\nDialogue: 0,0:48:39.65,0:48:41.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E2A\u7B26\u53F7\u5C31\u662F\u8FD9\
- \u4E2A\u610F\u601D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ what this symbol means.{\\r}\r\nDialogue: 0,0:48:42.55,0:48:44.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u827E\u5C14\u5BB6\u65CF\u7684\u6807\u5FD7\
- \u4EE3\u8868\u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The symbol of the house of El means hope.{\\r}\r\nDialogue: 0,0:48:45.12,0:48:47.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u79CD\u5E0C\u671B\u7684\u4F53\u73B0\
- \u5728\u4E8E...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Embodied\
- \ within that hope is the fundamental belief...{\\r}\r\nDialogue: 0,0:48:47.89,0:48:52.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u6BCF\u4E2A\u4EBA\u7684\u6F5C\u529B\
- \u6210\u4E3A\u5584\u7684\u529B\u91CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...in the potential of every person to be a force for good.{\\\
- r}\r\nDialogue: 0,0:48:52.93,0:48:54.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u53EF\u4EE5\u5C06\u8FD9\u4E00\u70B9\u5E26\u7ED9\
- \u4ED6\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ what you can bring them.{\\r}\r\nDialogue: 0,0:49:15.15,0:49:17.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3A\u4EC0\u4E48\u6211\u8FD9\u4E48\u4E0E\
- \u4F17\u4E0D\u540C\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Why am I so different from them?{\\r}\r\nDialogue: 0,0:49:18.25,0:49:21.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5730\u7403\u7684\u592A\u9633\u6BD4\u6C2A\
- \u661F\u7684\u592A\u9633\u66F4\u5E74\u8F7B\u66F4\u660E\u4EAE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Earth's sun is younger and brighter\
- \ than Krypton's was.{\\r}\r\nDialogue: 0,0:49:22.66,0:49:25.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7EC6\u80DE\u6C72\u53D6\u4E86\
- \u5B83\u7684\u8F90\u5C04{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your cells have drunken its radiation...{\\r}\r\nDialogue: 0,0:49:25.29,0:49:29.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u52A0\u5F3A\u4F60\u7684\u808C\u8089 \u76AE\
- \u80A4\u4EE5\u53CA\u611F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...strengthening your muscles, your skin, your senses.{\\r}\r\nDialogue:\
- \ 0,0:49:29.83,0:49:33.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5730\u7403\u7684\u5F15\u529B\u8F83\u5F31 \u4F46\u5927\u6C14\u66F4\
- \u52A0\u6ECB\u6DA6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Earth's\
- \ gravity is weaker, yet its atmosphere is more nourishing.{\\r}\r\nDialogue:\
- \ 0,0:49:35.13,0:49:38.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5728\u8FD9\u91CC\u53D8\u5F97\u4F1A\u6BD4\u6211\u60F3\u8C61\
- \u4E2D\u7684\u66F4\u5F3A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You've grown stronger here than I ever could have imagined.{\\r}\r\n\
- Dialogue: 0,0:49:38.37,0:49:41.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u77E5\u9053\u591A\u5F3A\u7684\u552F\u4E00\u529E\u6CD5\u5C31\
- \u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The only way\
- \ to know how strong...{\\r}\r\nDialogue: 0,0:49:41.04,0:49:44.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u65AD\u6D4B\u8BD5\u4F60\u7684\u6781\
- \u9650{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is to keep\
- \ testing your limits.{\\r}\r\nDialogue: 0,0:50:36.43,0:50:40.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F1A\u5E26\u7ED9\u5730\u7403\u4EBA\
- \u4E3A\u4E4B\u594B\u6597\u7684\u7406\u60F3{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You will give the people of Earth an ideal lo strive\
- \ towards.{\\r}\r\nDialogue: 0,0:50:42.10,0:50:43.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4F1A\u5728\u4F60\u8EAB\u540E\
- \u52AA\u529B\u8FFD\u8D76{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They'll race behind you.{\\r}\r\nDialogue: 0,0:50:44.17,0:50:45.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4F1A\u5931\u8DB3{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They will stumble.{\\r}\r\n\
- Dialogue: 0,0:50:45.77,0:50:46.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F1A\u5012\u4E0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They will fall.{\\r}\r\nDialogue: 0,0:50:47.17,0:50:48.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6700\u540E{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}But In time...{\\r}\r\nDialogue: 0,0:50:50.41,0:50:53.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4F1A\u5728\u592A\u9633\u4E0B\
- \u4E0E\u4F60\u6BD4\u80A9 \u5361\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...they will join you in the sun, Kal.{\\r}\r\nDialogue:\
- \ 0,0:50:54.55,0:50:56.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5230\u6700\u540E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}In time...{\\r}\r\nDialogue: 0,0:50:56.58,0:50:59.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F1A\u5E2E\u52A9\u4ED6\u4EEC\u521B\
- \u9020\u5947\u8FF9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}you\
- \ will help them accomplish wonders.{\\r}\r\nDialogue: 0,0:52:25.94,0:52:27.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5148\u4ECE\u8FFD\u8E2A\u6709\u4ED6\u51FA\
- \u73B0\u7684\u90FD\u5E02\u4F20\u8BF4\u5F00\u59CB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You start with the urban legends...{\\r}\r\nDialogue:\
- \ 0,0:52:27.81,0:52:30.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u4ED6\u9192\u6765\u540E\u90FD\u6D8C\u73B0\u4E86\u51FA\u6765 -\
- \ \u8FD9\u662F\u4E54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ ...that have sprung up in his wake. - That's Joe.{\\r}\r\nDialogue:\
- \ 0,0:52:30.38,0:52:32.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6240\u6709\u58F0\u79F0\u89C1\u8FC7\u4ED6\u7684\u670B\u53CB\u7684\
- \u670B\u53CB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ friends of a friend who have seen him.{\\r}\r\nDialogue: 0,0:52:32.85,0:52:34.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u8FC7\u53BB\u5728\u8FD9\u91CC\u5DE5\
- \u4F5C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He worked\
- \ here.{\\r}\r\nDialogue: 0,0:52:34.28,0:52:36.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u67D0\u4E9B\u4EBA\u800C\u8A00 \u4ED6\
- \u662F\u5B88\u62A4\u5929\u4F7F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}For some he was a guardian angel.{\\r}\r\nDialogue: 0,0:52:36.26,0:52:39.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u5176\u4ED6\u4EBA\u6765\u8BB2 \u4ED6\
- \u662F\u4E2A\u8C1C \u662F\u4E2A\u683C\u683C\u4E0D\u5165\u7684\u5E7D\u7075\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For others, a cipher,\
- \ a ghost who never quite fit in...{\\r}\r\nDialogue: 0,0:52:40.02,0:52:43.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u6211\u662F\u8BF4\u6211\u4EEC\
- \u5728\u9760\u8FD1\u77F3\u6CB9\u94BB\u673A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Well, I was saying we were coming towards the oil\
- \ rig.{\\r}\r\nDialogue: 0,0:52:43.19,0:52:47.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u968F\u7740\u4F60\u6392\u9664\u56F0\u96BE\
- \u8FFD\u6EAF\u8FC7\u53BB \u6545\u4E8B\u5F00\u59CB\u6E10\u6E10\u6210\u578B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}As you work your\
- \ way back in time, the stories form a pattern.{\\r}\r\nDialogue: 0,0:52:47.06,0:52:49.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5728\u627E\u76AE\u7279\u2022\u7F57\
- \u65AF \u4F60\u8BA4\u8BC6\u4ED6\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm looking for a Pete Ross. Do you know him?{\\\
- r}\r\nDialogue: 0,0:52:54.13,0:52:55.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u76AE\u7279\u2022\u7F57\u65AF\u5417\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Pete Ross?{\\r}\r\nDialogue:\
- \ 0,0:52:57.17,0:53:00.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u60F3\u8DDF\u60A8\u8C08\u8C08\u4F60\u5E74\u8F7B\u65F6\u5019\
- \u7684\u4E00\u573A\u4E8B\u6545{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'd like to talk to you about an accident when you were younger.{\\\
- r}\r\nDialogue: 0,0:53:00.64,0:53:03.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E00\u8F86\u51B2\u8FDB\u6CB3\u91CC\u7684\u6821\u8F66\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A school bus that\
- \ went into the river.{\\r}\r\nDialogue: 0,0:53:08.65,0:53:10.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6770\u65AF{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Dusty.{\\r}\r\nDialogue: 0,0:53:10.92,0:53:11.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u80AF\u7279\u592B\u4EBA\u5417\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Mrs. Kent?{\\r}\r\n\
- Dialogue: 0,0:53:12.92,0:53:15.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u662F\u9732\u6613\u4E1D\u2022\u83B2\u6069 \u6765\u81EA\
- \u300A\u661F\u7403\u65E5\u62A5\u300B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm Lois Lane. I'm from the Daily Planet.{\\r}\r\nDialogue:\
- \ 0,0:53:15.92,0:53:16.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5B89\u9759{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Quiet.{\\\
- r}\r\nDialogue: 0,0:53:18.26,0:53:21.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u6765\u81EA\u300A\u661F\u7403\u65E5\u62A5\u300B\
- \ \u6211\u60F3\u8DDF\u60A8\u8C08\u8C08\u4F60\u7684\u513F\u5B50{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm from the Daily Planet and\
- \ I'd like to talk to you about your son.{\\r}\r\nDialogue: 0,0:53:39.85,0:53:44.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u65E9\u5C31\u77E5\u9053\u8981\u662F\
- \u6211\u67E5\u5F97\u591F\u4ED4\u7EC6 \u4F60\u6700\u540E\u4F1A\u627E\u5230\u6211\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I figured if I turned\
- \ over enough stones you'd eventually find me.{\\r}\r\nDialogue: 0,0:53:49.42,0:53:52.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4ECE\u54EA\u6765\uFF1F\u5728\u8FD9\
- \u91CC\u505A\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Where are you from? What are you doing here?{\\r}\r\nDialogue: 0,0:53:52.73,0:53:54.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u6211\u8BB2\u4F60\u7684\u6545\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Let me tell your\
- \ story.{\\r}\r\nDialogue: 0,0:53:54.29,0:53:57.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8981\u662F\u6211\u4E0D\u60F3\u8BA9\u6211\
- \u7684\u6545\u4E8B\u88AB\u8BB2\u51FA\u53BB\u5462\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What if I don't want my story told?{\\\
- r}\r\nDialogue: 0,0:53:57.70,0:53:59.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6700\u540E\u5B83\u603B\u4F1A\u88AB\u4F20\u51FA\u53BB\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's going\
- \ to come out eventually.{\\r}\r\nDialogue: 0,0:53:59.73,0:54:02.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EBA\u4F1A\u62FF\u5230\u76F8\u7247\
- \u6216\u662F\u67E5\u5230\u4F60\u7684\u4F4F\u5904{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Somebody's going to get a photograph or figure out\
- \ where you live.{\\r}\r\nDialogue: 0,0:54:03.04,0:54:05.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u90A3\u6211\u5C31\u518D\u6B21\u6D88\u5931\
- \ - \u552F\u4E00\u7684\u529E\u6CD5\u5C31\u662F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Then I'll disappear again. - The only way\
- \ you could disappear...{\\r}\r\nDialogue: 0,0:54:06.24,0:54:10.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u518D\u5E2E\u52A9\u4EBA\u4EEC \u6211\
- \u611F\u89C9\u4F60\u4E0D\u4F1A\u90A3\u6837\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...is to stop helping people altogether, and I sense\
- \ that's not an option for you.{\\r}\r\nDialogue: 0,0:54:14.41,0:54:18.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7236\u4EB2\u76F8\u4FE1\u8981\u662F\
- \u4E16\u754C\u67E5\u51FA\u6211\u7684\u771F\u5B9E\u8EAB\u4EFD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My father believed that if the world\
- \ found out who I really was...{\\r}\r\nDialogue: 0,0:54:20.42,0:54:21.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4F1A\u62D2\u7EDD\u6211{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...they'd reject me...{\\\
- r}\r\nDialogue: 0,0:54:22.15,0:54:23.79,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u56E0\u4E3A\u6050\u60E7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...out of fear.{\\r}\r\nDialogue: 0,0:54:25.82,0:54:27.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u538C\u5026\u4E86\u5B89\u5168{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm tired of safe.{\\\
- r}\r\nDialogue: 0,0:54:28.13,0:54:30.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u53EA\u60F3\u6709\u751F\u4E4B\u5E74\u505A\u4E9B\
- \u6709\u7528\u7684\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I just wanna do something useful with my life.{\\r}\r\nDialogue: 0,0:54:30.46,0:54:33.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E48\u5F00\u519C\u573A \u517B\u6D3B\
- \u5927\u5BB6 \u5C31\u6CA1\u6709\u7528\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}So farming, feeding people. That's not useful?{\\\
- r}\r\nDialogue: 0,0:54:33.30,0:54:34.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u6CA1\u90A3\u4E48\u8BF4{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I didn't say that.{\\r}\r\nDialogue: 0,0:54:34.40,0:54:36.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u7684\u5BB6\u65CF\u6574\u6574\
- \u4E94\u4EE3\u90FD\u4EE5\u519C\u573A\u4E3A\u751F \u514B\u62C9\u514B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our family's been farming\
- \ for five generations.{\\r}\r\nDialogue: 0,0:54:36.77,0:54:38.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u5BB6\u65CF \u4E0D\u662F\u6211\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your family,\
- \ not mine.{\\r}\r\nDialogue: 0,0:54:38.94,0:54:42.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u90FD\u4E0D\u77E5\u9053\u81EA\u5DF1\
- \u4E3A\u4EC0\u4E48\u8981\u542C\u4F60\u8BF4 \u4F60\u4E0D\u662F\u6211\u7238\u7238\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't even know\
- \ why I'm listening to you. You're not my dad.{\\r}\r\nDialogue: 0,0:54:42.14,0:54:43.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EA\u662F\u67D0\u4E2A\u5728\u5730\
- \u91CC\u6361\u5230\u6211\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You're just some guy who found me in a field.{\\r}\r\n\
- Dialogue: 0,0:54:43.78,0:54:44.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Clark.{\\r}\r\nDialogue: 0,0:54:47.31,0:54:48.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u5173\u7CFB \u739B\u838E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's all right, Martha.{\\\
- r}\r\nDialogue: 0,0:54:50.82,0:54:52.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u8BF4\u5F97\u5BF9 \u514B\u62C9\u514B\u8BF4\u5F97\
- \u6709\u9053\u7406{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's\
- \ right. Clark has a point.{\\r}\r\nDialogue: 0,0:54:53.49,0:54:54.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4E0D\u662F\u4F60\u7684\u7236\
- \u6BCD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're not\
- \ your parents.{\\r}\r\nDialogue: 0,0:54:56.62,0:54:58.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4EEC\u529B\u6C42\u505A\u5230\
- \u6700\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But\
- \ we've been doing the best we can.{\\r}\r\nDialogue: 0,0:54:58.59,0:55:01.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4E5F\u5728\u5C3D\u53EF\u80FD\
- \u5730\u6539\u8FDB \u4E5F\u8BB8...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}And we've been making this up as we go along, so maybe...{\\\
- r}\r\nDialogue: 0,0:55:02.19,0:55:05.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u6240\u8C13\u7684\u6700\u597D\u5DF2\u7ECF\
- \u4E0D\u591F\u597D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Maybe our best isn't good enough anymore.{\\r}\r\nDialogue: 0,0:55:09.64,0:55:11.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542C\u7740 \u7238{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look, Dad...{\\r}\r\nDialogue: 0,0:55:11.94,0:55:13.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7B49\u4E00\u4E0B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hold on.{\\r}\r\nDialogue: 0,0:55:33.13,0:55:34.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u53BB\u5929\u6865\u8EB2\u7740{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go for the overpass.{\\\
- r}\r\nDialogue: 0,0:55:36.63,0:55:37.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5FEB\u70B9\u53BB\u8EB2\u8D77\u6765{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go for the overpass!{\\r}\r\nDialogue:\
- \ 0,0:55:40.07,0:55:41.70,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u627E\u63A9\u62A4 \u5FEB\u627E\u63A9\u62A4{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take cover! Take cover!{\\r}\r\nDialogue:\
- \ 0,0:55:41.97,0:55:44.35,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u5728\u90A3\u8FB9 \u8DDF\u4E0A\u4ED6\u4EEC - \u627E\u63A9\u62A4\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Over there. Just\
- \ follow them. - Take cover.{\\r}\r\nDialogue: 0,0:55:48.07,0:55:49.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5979\u88AB\u56F0\u4F4F\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}She's stuck.{\\r}\r\nDialogue:\
- \ 0,0:55:53.81,0:55:55.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6C49\u514B\u5728\u8F66\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hank's still in the car.{\\r}\r\nDialogue: 0,0:55:56.52,0:55:57.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C49\u514B\u5728\u8F66\u91CC{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hank's in the car.{\\r}\r\n\
- Dialogue: 0,0:55:58.42,0:56:00.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}- \u6211\u53BB\u6551\u5B83 \u6211\u53BB\u6551 - \u4E0D{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'll get him, I'll\
- \ get him. - No, no.{\\r}\r\nDialogue: 0,0:56:01.09,0:56:03.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E26\u4F60\u5988\u53BB\u5929\u6865{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get your mom to the\
- \ overpass.{\\r}\r\nDialogue: 0,0:56:21.71,0:56:23.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C49\u514B \u5FEB\u6765{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hank! Hank! Come!{\\r}\r\nDialogue:\
- \ 0,0:56:54.64,0:56:56.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u4E54\u7EB3\u68EE - \u5988 \u5F85\u5728\u8FD9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Jonathan! - Mom, stay here.{\\\
- r}\r\nDialogue: 0,0:57:21.90,0:57:24.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7238{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Dad!{\\r}\r\nDialogue: 0,0:57:26.94,0:57:30.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u4E3A\u6211\u7684\u4FE1\u4EFB \u7236\
- \u4EB2\u53BB\u4E16\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I let my father die because I trusted him.{\\r}\r\nDialogue: 0,0:57:30.91,0:57:34.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u4E3A\u4ED6\u76F8\u4FE1\u4E16\u754C\
- \u8FD8\u6CA1\u6709\u51C6\u5907\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Because he was convinced that I had to wait.{\\r}\r\nDialogue:\
- \ 0,0:57:35.58,0:57:37.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5FC5\u987B\u7B49\u5F85\u4E0B\u53BB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}That the world was not ready.{\\r}\r\n\
- Dialogue: 0,0:57:39.48,0:57:41.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u600E\u4E48\u60F3\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What do you think?{\\r}\r\nDialogue: 0,0:57:46.02,0:57:47.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F97\u5C0F\u5FC3\u4E86 \u9732\u6613\
- \u4E1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You better\
- \ watch out, Lois.{\\r}\r\nDialogue: 0,0:57:48.16,0:57:50.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F69\u91CC\u8981\u51B2\u4F60\u53D1\u706B\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hey, Perry's\
- \ gunning for you.{\\r}\r\nDialogue: 0,0:57:50.70,0:57:52.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u77E5\u9053\u4F60\u662F\u4F0D\u5FB7\
- \u4F2F\u6069\u7684\u533F\u540D\u4FE1\u606F\u6E90{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}He knows you're Woodburn's anonymous source{\\r}\r\
- \nDialogue: 0,0:57:52.65,0:57:54.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u90FD\u7B49\u4E0D\u53CA\u597D\u597D\u6559\u8BAD\u4F60\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}and cannot\
- \ wait to rip you a new one.{\\r}\r\nDialogue: 0,0:57:56.84,0:57:58.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u770B\u5979 \u54C8\u54C8{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Oh, look at her. Ha, ha, ha.{\\\
- r}\r\nDialogue: 0,0:58:00.27,0:58:02.81,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u544A\u8BC9\u8FC7\u4F60\u4E0D\u8981\u8DDF\u8FD9\
- \u6761\u7EBF \u7136\u540E\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I told you not to run with this, and what do you do?{\\\
- r}\r\nDialogue: 0,0:58:03.04,0:58:05.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5374\u8BA9\u4F0D\u5FB7\u4F2F\u6069\u5C06\u4E4B\
- \u4F20\u904D\u4E86\u7F51\u7EDC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You let Woodburn just shotgun it all over the Internet.{\\r}\r\nDialogue:\
- \ 0,0:58:05.81,0:58:08.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u73B0\u5728\u51FA\u7248\u5546\u60F3\u8BA9\u6211\u8D77\u8BC9\u4F60\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Now the publishers\
- \ want me to sue you.{\\r}\r\nDialogue: 0,0:58:08.95,0:58:12.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u5982\u679C\u8FD8\u6709\u7528\
- \u7684\u8BDD \u6211\u653E\u5F03{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Well, if it makes a difference, I'm dropping it.{\\r}\r\nDialogue: 0,0:58:12.45,0:58:13.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u90A3\u6837\u5417\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Whoa, just like that?{\\r}\r\
- \nDialogue: 0,0:58:13.69,0:58:14.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6CA1\u9519{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Yep.{\\r}\r\nDialogue: 0,0:58:15.05,0:58:16.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7EBF\u7D22\u600E\u4E48\u4E86\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened\
- \ to your leads?{\\r}\r\nDialogue: 0,0:58:17.02,0:58:19.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u4EC0\u4E48\u610F\u601D \u6574\u4E2A\
- \u6545\u4E8B\u90FD\u662F\u8FC7\u773C\u4E91\u70DF{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}They didn't pan out. The story is smoke.{\\r}\r\n\
- Dialogue: 0,0:58:19.89,0:58:22.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E5F\u6709\u53EF\u80FD\u6CA1\u5F15\u8D77\u4F60\u671F\u76FC\
- \u7684\u516C\u4F17\u6CE8\u610F\u7F62\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Or it didn't get the traction you hoped?{\\r}\r\n\
- Dialogue: 0,0:58:24.20,0:58:25.04,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E24\u5468\u7684\u65E0\u85AA\u4F11\u5047{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Two weeks leave...{\\r}\r\nDialogue:\
- \ 0,0:58:25.30,0:58:26.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7B97\u662F\u60E9\u7F5A\u4F60\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...no pay, that's your penance.{\\r}\r\nDialogue:\
- \ 0,0:58:27.17,0:58:28.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u518D\u8FD9\u4E48\u5F04\u4E00\u6B21{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You try something like this again...{\\\
- r}\r\nDialogue: 0,0:58:29.07,0:58:30.74,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u6211\u5C31\u5F00\u9664\u4F60 - \u597D\u5427{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...you're done here.\
- \ - Fine.{\\r}\r\nDialogue: 0,0:58:31.00,0:58:32.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u8FD9\u4E48\u8FEB\u4E0D\u53CA\u5F85\
- \u5730\u9644\u548C\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Let's make it three weeks{\\r}\r\nDialogue: 0,0:58:32.11,0:58:33.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u6210\u4E09\u5468\u4F11\u5047\u6BD4\
- \u8F83\u5408\u9002{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}since\
- \ you're so willing to agree.{\\r}\r\nDialogue: 0,0:58:37.14,0:58:38.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9732\u6613\u4E1D \u6211\u7EDD\u4E0D\u8BA4\
- \u4E3A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I believe\
- \ you saw something, Lois.{\\r}\r\nDialogue: 0,0:58:39.31,0:58:42.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7EBF\u7D22\u6BEB\u65E0\u4EF7\
- \u503C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But not for\
- \ a moment do I believe that your leads just went cold.{\\r}\r\nDialogue:\
- \ 0,0:58:42.55,0:58:46.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u6B64\u4E0D\u7BA1\u4F60\u653E\u5F03\u7684\u7406\u7531\u662F\
- \u4EC0\u4E48{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So whatever\
- \ your reasons are for dropping it...{\\r}\r\nDialogue: 0,0:58:47.09,0:58:48.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u76F8\u4FE1\u4F60\u505A\u5F97\u6CA1\
- \u9519{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I think\
- \ you're doing the right thing.{\\r}\r\nDialogue: 0,0:58:49.49,0:58:50.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3A\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why?{\\r}\r\nDialogue: 0,0:58:52.09,0:58:55.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4EBA\u4EEC\u5F97\u77E5\u5730\
- \u7403\u6709\u8FD9\u6837\u7684\u4EBA\u7684\u5B58\u5728{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you imagine how people on this\
- \ planet would react...{\\r}\r\nDialogue: 0,0:58:58.00,0:59:01.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u60F3\u8C61\u4EBA\u4EEC\u4F1A\
- \u6709\u4F55\u79CD\u53CD\u5E94\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...if they knew there was someone like this out there?{\\\
- r}\r\nDialogue: 0,0:59:19.58,0:59:20.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53BB\u63A5\u63A5\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go get him.{\\r}\r\nDialogue: 0,0:59:27.43,0:59:29.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u770B\u6211\u513F\u5B50{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, look at you.{\\r}\r\n\
- Dialogue: 0,0:59:46.11,0:59:47.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E00\u4E2A\u8BB0\u8005\u6765\u8FC7{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}A reporter came by here.{\\r}\r\nDialogue:\
- \ 0,0:59:48.48,0:59:50.72,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u662F\u4E2A\u670B\u53CB \u522B\u62C5\u5FC3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}She's a friend. Don't worry.{\\r}\r\n\
- Dialogue: 0,0:59:53.72,0:59:54.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5988\u5988{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mom.{\\r}\r\nDialogue: 0,0:59:54.75,0:59:56.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u4E48\u4E86\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What?{\\r}\r\nDialogue: 0,0:59:57.96,1:00:00.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u627E\u5230\u4E86 - \u8C01\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I found them.\
- \ - Who?{\\r}\r\nDialogue: 0,1:00:01.33,1:00:02.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u7236\u6BCD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My parents.{\\r}\r\nDialogue: 0,1:00:04.00,1:00:05.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7684\u65CF\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My People.{\\r}\r\nDialogue: 0,1:00:06.23,1:00:09.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u73B0\u5728\u77E5\u9053\u81EA\u5DF1\
- \u7684\u8EAB\u4E16\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I know where I come from now.{\\r}\r\nDialogue: 0,1:00:10.84,1:00:12.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u54C7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Wow.{\\r}\r\nDialogue: 0,1:00:13.17,1:00:14.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u771F\u662F\u592A\u597D\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's wonderful.{\\\
- r}\r\nDialogue: 0,1:00:16.81,1:00:19.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u592A\u4E3A\u4F60\u9AD8\u5174\u4E86 \u514B\u62C9\u514B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm so happy for\
- \ you, Clark.{\\r}\r\nDialogue: 0,1:00:28.09,1:00:30.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u600E\u4E48\u4E86\uFF1F - \u6CA1\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- What? -\
- \ It's nothing.{\\r}\r\nDialogue: 0,1:00:33.33,1:00:36.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C1A\u5728\u8941\u8913\u4E2D\u65F6\
- \ \u6211\u6574\u591C\u5728\u5A74\u513F\u5E8A\u8FB9\u966A\u4F60{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}When you were a baby I used\
- \ to lay by your crib at night...{\\r}\r\nDialogue: 0,1:00:36.50,1:00:38.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542C\u7740\u4F60\u7684\u547C\u5438{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...listening to you\
- \ breathe.{\\r}\r\nDialogue: 0,1:00:39.93,1:00:41.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5BF9\u4F60\u6765\u8BF4\u4E0D\u5BB9\
- \u6613{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was hard\
- \ for you.{\\r}\r\nDialogue: 0,1:00:42.77,1:00:44.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u52AA\u529B\u7740{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You struggled.{\\r}\r\nDialogue: 0,1:00:44.37,1:00:46.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u65E0\u65F6\u4E0D\u523B\u4E0D\u62C5\
- \u5FC3\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ I worried all the time.{\\r}\r\nDialogue: 0,1:00:46.47,1:00:48.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6015\u771F\u76F8\u66B4\u9732\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You worried\
- \ the truth would come out.{\\r}\r\nDialogue: 0,1:00:49.84,1:00:51.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No.{\\r}\r\nDialogue: 0,1:00:52.01,1:00:54.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u771F\u76F8\u5417\uFF1F\u90A3\
- \u5C31\u662F\u4F60\u592A\u53EF\u7231\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}The truth about you is beautiful.{\\r}\r\nDialogue:\
- \ 0,1:00:55.05,1:00:58.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7B2C\u4E00\u773C\u89C1\u5230\u4F60\u7684\u65F6\u5019\u6211\u4EEC\
- \u5C31\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ saw that the moment we laid eyes on you.{\\r}\r\nDialogue: 0,1:01:00.79,1:01:04.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u77E5\u9053\u6709\u4E00\u5929 \u4E16\u4EBA\
- \u4E5F\u7EC8\u5F52\u4F1A\u53D1\u73B0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We knew that one day, the whole world would see that.{\\\
- r}\r\nDialogue: 0,1:01:07.23,1:01:08.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u53EA\u662F...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'm just...{\\r}\r\nDialogue: 0,1:01:09.49,1:01:11.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u62C5\u5FC3\u4ED6\u4EEC\u4F1A\u8BA9\u6211\
- \u4EEC\u5206\u79BB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ worried they'll take you away from me.{\\r}\r\nDialogue: 0,1:01:13.80,1:01:16.18,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u54EA\u4E5F\u4E0D\u53BB \u5988\u5988\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm not going anywhere,\
- \ Mom.{\\r}\r\nDialogue: 0,1:01:18.00,1:01:19.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4FDD\u8BC1{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I promise.{\\r}\r\nDialogue: 0,1:01:25.71,1:01:27.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65AF\u65FA\u5A01\u514B\u5C06\u519B \u957F\
- \u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General Swanwick,\
- \ sir.{\\r}\r\nDialogue: 0,1:01:28.15,1:01:31.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u4EC0\u4E48 \u535A\u58EB\uFF1F\
- \u5F57\u661F\u8FD8\u662F\u5C0F\u884C\u661F\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What am I looking at, doc? Comet? Asteroid?{\\r}\r\
- \nDialogue: 0,1:01:33.05,1:01:37.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5F57\u661F\u53EF\u4E0D\u4F1A\u4FEE\u6B63\u822A\u9053\
- \ \u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Comets\
- \ don't make course corrections, general.{\\r}\r\nDialogue: 0,1:01:39.86,1:01:43.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u67D0\u4E2A\u5929\u6587\u7231\u597D\
- \u8005\u770B\u5230\u5E76\u5F15\u8D77\u6050\u614C\u524D \u6211\u60F3\u8BA9\u4F60\
- \u597D\u597D\u770B\u4E00\u4E0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Wanted you to see this before some amateur with a telescope creates\
- \ a worldwide panic.{\\r}\r\nDialogue: 0,1:01:45.53,1:01:46.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u8258\u8239\u4F3C\u4E4E{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship appears to have...{\\\
- r}\r\nDialogue: 0,1:01:47.17,1:01:49.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C06\u81EA\u5DF1\u9001\u5165\u4E86\u6708\u7403\u540C\
- \u6B65\u8F68\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...inserted\
- \ itself into a lunar synchronous orbit...{\\r}\r\nDialogue: 0,1:01:50.17,1:01:52.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u77E5\u9053\u4E3A\u4EC0\u4E48\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...though I have\
- \ no idea why.{\\r}\r\nDialogue: 0,1:01:52.57,1:01:55.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u8BD5\u8FC7\u548C\u5B83\u53D6\
- \u5F97\u8054\u7CFB\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Have you tried... communicating with it?{\\r}\r\nDialogue: 0,1:01:55.67,1:01:59.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u81F3\u4ECA\u6CA1\u6709\u56DE\
- \u5E94{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well, they\
- \ haven't responded as of yet.{\\r}\r\nDialogue: 0,1:02:00.95,1:02:04.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E2A\u4EBA\u7684\u731C\u6D4B\u662F\
- \ \u4E0D\u7BA1\u662F\u8C01\u5728\u64CD\u7EB5\u98DE\u8239...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm just speculating, but I think\
- \ whoever's at the helm of that thing...{\\r}\r\nDialogue: 0,1:02:05.22,1:02:07.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4E00\u5B9A\u60F3\u6765\u4E2A\u60CA\
- \u4EBA\u7684\u7740\u9646{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...is looking to make a dramatic entrance.{\\r}\r\nDialogue: 0,1:02:14.59,1:02:16.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u4EBA\u77E5\u9053\u58A8\u76D2\u653E\
- \u5728\u54EA\u4E86\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Anybody know where we keep the toner?{\\r}\r\nDialogue: 0,1:02:17.03,1:02:18.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u600E\u4E48\u4E86\uFF1F - \u65B0\u95FB\
- \u90FD\u5728\u62A5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- What's going on? - It's all over the news.{\\r}\r\nDialogue:\
- \ 0,1:02:19.20,1:02:21.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5F97\u6765\u770B\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You gotta see this.{\\r}\r\nDialogue: 0,1:02:48.13,1:02:49.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:02:50.00,1:02:51.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55EF\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Yeah?{\\r}\r\nDialogue: 0,1:02:51.40,1:02:52.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6765\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Coming.{\\r}\r\nDialogue: 0,1:02:53.06,1:02:55.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u4E2A\u7A81\u53D1\u65B0\u95FB\
- \ \u8EAB\u4EFD\u4E0D\u660E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}This is a breaking news. An unidentified...{\\r}\r\nDialogue: 0,1:03:36.98,1:03:39.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5E76\u4E0D\u662F\u4E00\u4E2A\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\\
- r}\r\nDialogue: 0,1:03:40.71,1:03:43.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5E76\u4E0D\u662F\u4E00\u4E2A\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\n\
- Dialogue: 0,1:03:44.98,1:03:47.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u5E76\u4E0D\u662F\u4E00\u4E2A\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\nDialogue:\
- \ 0,1:03:52.89,1:03:55.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60 \u5E76\u4E0D\u662F \u4E00\u4E2A\u4EBA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\r}\r\nDialogue: 0,1:04:20.92,1:04:22.48,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}RSS\u4E5F\u6709\u8FD9\u4FE1\u606F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's coming in on the RSS\
- \ feeds.{\\r}\r\nDialogue: 0,1:04:22.69,1:04:24.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5E76\u4E0D\u662F\u4E00\u4E2A\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are not alone.{\\\
- r}\r\nDialogue: 0,1:04:25.19,1:04:27.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u624B\u673A\u4E0A\u4E5F\u6709{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's on my phone too.{\\r}\r\nDialogue:\
- \ 0,1:04:29.39,1:04:31.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u662F\u4F50\u5FB7\u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My name is General Zod.{\\r}\r\nDialogue: 0,1:04:33.67,1:04:36.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6765\u81EA\u4E00\u4E2A\u9065\u8FDC\
- \u7684\u661F\u7403{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ come from a world far from yours.{\\r}\r\nDialogue: 0,1:04:37.84,1:04:42.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7A7F\u8D8A\u4E86\u832B\u832B\u661F\
- \u6D77\u6765\u627E\u4F60\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I have journeyed across an ocean of stars to reach you.{\\r}\r\nDialogue:\
- \ 0,1:04:43.94,1:04:47.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u4EEC\u5E87\u62A4\u4E86\u6211\u7684\u4E00\u4E2A\u5B50\u6C11\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For some time, your\
- \ world has sheltered one of my citizens.{\\r}\r\nDialogue: 0,1:04:48.58,1:04:51.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73B0\u5728\u6211\u8981\u6C42\u4F60\u4EEC\
- \u628A\u4ED6\u4EA4\u51FA\u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I request that you return this individual...{\\r}\r\nDialogue: 0,1:04:52.05,1:04:54.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7ED9\u6211\u5904\u7406{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to my custody.{\\r}\r\nDialogue:\
- \ 0,1:04:54.42,1:05:00.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u4E3A\u67D0\u4E9B\u539F\u56E0 \u4ED6\u9009\u62E9\u5411\u4F60\
- \u4EEC\u9690\u7792\u4ED6\u7684\u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}For reasons unknown, he has chosen to keep his existence\
- \ a secret from you.{\\r}\r\nDialogue: 0,1:05:01.59,1:05:04.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7AED\u5C3D\u5168\u529B\u878D\u5165\
- \u4F60\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He will\
- \ have made efforts to blend in.{\\r}\r\nDialogue: 0,1:05:05.36,1:05:07.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u770B\u8D77\u6765\u548C\u4F60\u4EEC\
- \u76F8\u4F3C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He will\
- \ look like you.{\\r}\r\nDialogue: 0,1:05:07.77,1:05:10.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4ED6\u4E0D\u662F\u540C\u65CF{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But he is not one of\
- \ you.{\\r}\r\nDialogue: 0,1:05:11.57,1:05:13.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u6709\u8C01\u77E5\u9053{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To those of you who\
- \ may know...{\\r}\r\nDialogue: 0,1:05:13.64,1:05:15.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u7684\u4F4D\u7F6E{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...of his current location.{\\r}\r\
- \nDialogue: 0,1:05:15.91,1:05:18.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u90A3\u4F60\u4EEC\u661F\u7403\u7684\u547D\u8FD0{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the fate of your planet...{\\\
- r}\r\nDialogue: 0,1:05:18.71,1:05:21.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u5728\u4F60\u624B\u4E2D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...rests in your hands.{\\r}\r\nDialogue:\
- \ 0,1:05:22.45,1:05:25.49,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u5C14\u2022\u827E\u5C14 \u542C\u5230\u4E86\u5417\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}To Kai-El, I say this:{\\\
- r}\r\nDialogue: 0,1:05:27.55,1:05:30.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}24\u5C0F\u65F6\u5185\u51FA\u6765\u6295\u964D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Surrender within 24 hours...{\\\
- r}\r\nDialogue: 0,1:05:34.49,1:05:37.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6216\u8005\u8BA9\u6574\u4E2A\u4E16\u754C\u6765\u627F\
- \u62C5\u540E\u679C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...or\
- \ watch this world suffer the consequences...{\\r}\r\nDialogue: 0,1:05:53.24,1:05:55.09,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5BF9\u4ED6\u4E00\u65E0\u6240\
- \u77E5 \u5BF9\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We hardly know anything about him, isn't that right?{\\r}\r\nDialogue:\
- \ 0,1:05:55.25,1:05:57.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5982\u679C\u4ED6\u771F\u7684\u4E0D\u60F3\u5BB3\u6211\u4EEC{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If he truly means us no\
- \ harm...{\\r}\r\nDialogue: 0,1:05:57.48,1:05:59.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4ED6\u5E94\u8BE5\u56DE\u5F52\u4ED6\
- \u7684\u65CF\u4EBA \u53BB\u627F\u62C5\u540E\u679C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...he'll turn himself in and face the consequences.{\\\
- r}\r\nDialogue: 0,1:06:00.12,1:06:01.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5982\u679C\u4ED6\u4E0D\u80AF\u53BB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And if he won't do that...{\\r}\r\n\
- Dialogue: 0,1:06:01.59,1:06:03.59,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4E5F\u8BB8\u6211\u4EEC\u8BE5\u9001\u4ED6\u53BB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...then maybe we should.{\\\
- r}\r\nDialogue: 0,1:06:03.82,1:06:06.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u300A\u661F\u7403\u65E5\u62A5\u300B\u7684\u9732\u6613\
- \u4E1D\u2022\u83B2\u6069\u77E5\u9053\u4ED6\u662F\u8C01{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Daily Planet's Lois Lane knows\
- \ who this guy is. She's...{\\r}\r\nDialogue: 0,1:06:07.03,1:06:08.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8BA4\u4E3A\u5979\u662F\u6211\u4EEC\
- \u8BE5\u8D28\u95EE\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the one we should be questioning.{\\r}\r\nDialogue: 0,1:06:08.93,1:06:11.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u7B49\u7B49 \u4F60\u662F\u8BF4\u9732\u6613\
- \u4E1D\u2022\u83B2\u6069 - \u4F60\u597D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Hold on. You're saying Lois Lane... - Hello?{\\\
- r}\r\nDialogue: 0,1:06:11.93,1:06:14.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5728\u770B\u65B0\u95FB\u5417\uFF1F\u64AD\u4E86\
- \u4E00\u65E9\u4E0A\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Are you watching this crap? Been running all morning.{\\r}\r\nDialogue:\
- \ 0,1:06:14.67,1:06:16.98,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u6B21\u6211\u7ADF\u7136\u5B8C\u5168\u540C\u610F\u4F0D\u5FB7\
- \u4F2F\u6069\u7684\u89C2\u70B9 \u4F60\u89C1\u8FC7\u4ED6\u5417\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For once I agree with Woodburn.\
- \ Have you seen him?{\\r}\r\nDialogue: 0,1:06:17.20,1:06:20.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u77E5\u9053\u4ED6\u5728\u54EA\u5417\uFF1F\
- \ - \u4E0D\u77E5\u9053 \u5373\u4F7F\u77E5\u9053 \u6211\u4E5F\u4E0D\u4F1A\u8BF4\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Do you know where\
- \ he is? - No. Even if I did, I wouldn't say.{\\r}\r\nDialogue: 0,1:06:20.77,1:06:23.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6574\u4E2A\u4E16\u754C\u5C8C\u5C8C\u53EF\
- \u5371{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The entire\
- \ world is being threatened here.{\\r}\r\nDialogue: 0,1:06:24.18,1:06:28.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u53EF\u4E0D\u662F\u4F60\u5C55\u73B0\
- \u65B0\u95FB\u9053\u5FB7\u7684\u65F6\u5019{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This is not time for you to fall back on journalistic\
- \ integrity.{\\r}\r\nDialogue: 0,1:06:28.65,1:06:30.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E8B\u6001\u4E25\u91CD\u4E86 \u9732\u6613\
- \u4E1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This is serious,\
- \ Lois.{\\r}\r\nDialogue: 0,1:06:30.35,1:06:33.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}FBI\u90FD\u6765\u4E86 \u4ED6\u4EEC\u5728\
- \u8BF4\u53DB\u56FD\u7F6A\u4EC0\u4E48\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}The FBI is here. They're throwing around words like\
- \ \"treason.\"{\\r}\r\nDialogue: 0,1:06:33.55,1:06:35.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5F97\u8D70\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I gotta go.{\\r}\r\nDialogue: 0,1:06:51.37,1:06:52.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}FBI \u4E3E\u8D77\u624B\u6765{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}FBI. Hands up.{\\r}\r\nDialogue:\
- \ 0,1:06:52.97,1:06:54.75,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6254\u4E86\u888B\u5B50 \u9A6C\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Drop the bag. Now.{\\r}\r\nDialogue: 0,1:07:01.65,1:07:04.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u636E\u6211\u91C7\u8BBF\u7684\u653F\u5E9C\
- \u5B98\u5458\u8BF4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Regarding\
- \ the visitors themselves we know...{\\r}\r\nDialogue: 0,1:07:04.15,1:07:06.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73B0\u5728\u6211\u4EEC\u6240\u77E5\u751A\
- \u5C11{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...very little.\
- \ According to government officials...{\\r}\r\nDialogue: 0,1:07:06.85,1:07:09.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C3D\u7BA1\u4ED6\u4EEC\u7684\u8BED\u8C03\
- \u5E76\u4E0D\u53CB\u5584{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the visitors do not represent a threat...{\\r}\r\nDialogue: 0,1:07:09.55,1:07:11.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6765\u5BA2\u5E76\u4E0D\u4EE3\u8868\
- \u7740\u5A01\u80C1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...despite\
- \ the ominous tone of their message.{\\r}\r\nDialogue: 0,1:07:11.99,1:07:14.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F53\u7136\u4E86 \u5927\u5BB6\u5FC3\u4E2D\
- \u90FD\u6709\u4E00\u4E2A\u7591\u95EE{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Then of course there's the question on everyone's mind:{\\\
- r}\r\nDialogue: 0,1:07:14.73,1:07:18.54,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u4E2A\u5361\u5C14\u2022\u827E\u5C14\u662F\u8C01\
- \uFF1F\u4ED6\u771F\u7684\u5B58\u5728\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}\"Who is this Kai-El person? Does he actually exist?\"\
- {\\r}\r\nDialogue: 0,1:07:18.76,1:07:21.44,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u4ED6\u5982\u4F55\u5728\u6211\u4EEC\u4E4B\u4E2D\
- \u9690\u85CF\u4E86\u8FD9\u4E48\u4E45\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}\"How could he have remained hidden from us for so\
- \ long?\"{\\r}\r\nDialogue: 0,1:07:26.07,1:07:27.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6765\u554A \u80AF\u7279{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, Kent.{\\r}\r\nDialogue: 0,1:07:34.45,1:07:35.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6765\u554A \u6253\u56DE\u6765\u554A{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on. Fight back.{\\\
- r}\r\nDialogue: 0,1:07:35.78,1:07:37.38,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7AD9\u8D77\u6765 \u80AF\u7279{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get up, Kent.{\\r}\r\nDialogue: 0,1:07:40.69,1:07:42.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u8FD9\u70B9\u6C34\u5E73{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So is that it?{\\r}\r\nDialogue:\
- \ 0,1:07:42.52,1:07:44.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5C31\u8FD9\u70B9\u5B9E\u529B\u5417\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is that all you've got?{\\r}\r\nDialogue:\
- \ 0,1:07:45.69,1:07:47.19,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6765\u554A \u80AF\u7279{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Come on, Kent.{\\r}\r\nDialogue: 0,1:07:48.43,1:07:49.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FC7\u6765{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Come on!{\\r}\r\nDialogue: 0,1:08:18.42,1:08:19.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4F24\u5230\u4F60\u4E86\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Did they hurl\
- \ you?{\\r}\r\nDialogue: 0,1:08:20.83,1:08:22.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u77E5\u9053\u90A3\u4E0D\u53EF\u80FD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You know they can't.{\\\
- r}\r\nDialogue: 0,1:08:22.59,1:08:25.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u90A3\u4E2A\u610F\u601D \u6211\u662F\
- \u8BF4 \u4F60\u8FD8\u597D\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}That's not what I meant. I meant, are you all right?{\\\
- r}\r\nDialogue: 0,1:08:27.47,1:08:29.78,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u60F3\u75DB\u6241\u90A3\u4E2A\u5C41\u5B69 \u6211\
- \u60F3\u72E0\u72E0\u5730\u63CD\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I wanted to hit that kid. I wanted to hit him bad.{\\r}\r\
- \nDialogue: 0,1:08:30.00,1:08:31.48,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u60F3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know you did. I mean...{\\r}\r\nDialogue:\
- \ 0,1:08:31.74,1:08:34.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u751A\u81F3\u4E5F\u60F3\u8BA9\u4F60\u63CD\u4ED6 \u53EF\u662F\
- \u7136\u540E\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...part of me even wanted you to, but then what?{\\r}\r\nDialogue: 0,1:08:35.14,1:08:36.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5C31\u4F1A\u9AD8\u5174\u4E86\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Make you feel\
- \ any better?{\\r}\r\nDialogue: 0,1:08:39.68,1:08:43.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EA\u9700\u8981\u51B3\u5B9A\u4F60\
- \u60F3\u6210\u957F\u4E3A\u4EC0\u4E48\u6837\u7684\u4EBA \u514B\u62C9\u514B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You just have to\
- \ decide what kind of man you want to grow up to be, Clark.{\\r}\r\nDialogue:\
- \ 0,1:08:43.95,1:08:47.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u56E0\u4E3A\u65E0\u8BBA\u6210\u4E3A\u4EC0\u4E48\u6837 \u597D\u4EBA\
- \u6216\u662F\u574F\u4EBA \u4F60\u90FD\u4F1A...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Because whoever that man is, good character or bad,\
- \ he's...{\\r}\r\nDialogue: 0,1:08:49.29,1:08:51.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u53D8\u8FD9\u4E2A\u4E16\u754C{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's gonna change the\
- \ world.{\\r}\r\nDialogue: 0,1:08:56.66,1:08:58.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u8111\u4E2D\u6240\u8651\u4E3A\u4F55\
- \u4E8B\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's\
- \ on your mind?{\\r}\r\nDialogue: 0,1:09:03.77,1:09:05.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u77E5\u4ECE\u4F55\u8BF4\u8D77\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't know where\
- \ to start.{\\r}\r\nDialogue: 0,1:09:05.67,1:09:07.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6089\u542C\u5C0A\u4FBF{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Wherever you want.{\\r}\r\nDialogue:\
- \ 0,1:09:09.44,1:09:11.55,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6628\u665A\u51FA\u73B0\u7684\u98DE\u8239{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}That ship that appeared last night.{\\\
- r}\r\nDialogue: 0,1:09:12.88,1:09:14.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u5C31\u662F\u4ED6\u4EEC\u8981\u627E\u7684\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm the one they're\
- \ looking for.{\\r}\r\nDialogue: 0,1:09:19.18,1:09:20.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u77E5\u9053{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do you know...{\\r}\r\nDialogue: 0,1:09:21.49,1:09:22.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u627E\u4F60\u7684\u539F\u56E0\
- \u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...why\
- \ they want you?{\\r}\r\nDialogue: 0,1:09:22.85,1:09:25.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D \u4F46\u8FD9\u4E2A\u4F50\u5FB7\u5C06\
- \u519B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No. But this\
- \ General Zod...{\\r}\r\nDialogue: 0,1:09:25.69,1:09:29.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5373\u4F7F\u6211\u6295\u964D \u4ED6\u4E5F\
- \u672A\u5FC5\u4F1A\u4FE1\u5B88\u8BFA\u8A00{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...even if I surrender, there's no guarantee he'll\
- \ keep his word, but...{\\r}\r\nDialogue: 0,1:09:29.96,1:09:33.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u82E5\u6211\u6295\u964D\u5C31\u53EF\
- \u4EE5\u62EF\u6551\u5730\u7403\u7684\u8BDD{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...if there's a chance I can save Earth by turning\
- \ myself in...{\\r}\r\nDialogue: 0,1:09:35.57,1:09:37.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96BE\u9053\u6211\u4E0D\u8BE5\u8FD9\u4E48\
- \u505A\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...shouldn't\
- \ I take it?{\\r}\r\nDialogue: 0,1:09:38.20,1:09:40.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u76F4\u89C9\u5462\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What does your gut\
- \ tell you?{\\r}\r\nDialogue: 0,1:09:40.81,1:09:42.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u4E0D\u53EF\u4FE1{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Zod can't be trusted.{\\r}\r\
- \nDialogue: 0,1:09:45.14,1:09:46.71,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u95EE\u9898\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}The problem is...{\\r}\r\nDialogue: 0,1:09:47.75,1:09:50.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u4E0D\u77E5\u9053\u5730\u7403\
- \u7684\u4EBA\u6C11\u53EF\u4E0D\u53EF\u4FE1{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...I'm not sure the people of Earth can be either.{\\\
- r}\r\nDialogue: 0,1:09:58.36,1:10:01.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6709\u65F6\u5019\u4F60\u5FC5\u987B\u575A\u4FE1\u4E0D\
- \u7591{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sometimes\
- \ you have to take a leap of faith first.{\\r}\r\nDialogue: 0,1:10:02.73,1:10:04.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FE1\u4EFB\u4F1A\u968F\u4E4B\u800C\u6765\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The trust part comes\
- \ later.{\\r}\r\nDialogue: 0,1:10:28.92,1:10:32.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u4E86 \u6211\u4EEC\u6CE8\u610F\u5230\
- \u4F60\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All\
- \ right. You've got our attention.{\\r}\r\nDialogue: 0,1:10:32.12,1:10:33.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u60F3\u600E\u4E48\u6837\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What is it you want?{\\\
- r}\r\nDialogue: 0,1:10:33.39,1:10:35.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u8981\u548C\u9732\u6613\u4E1D\u2022\u83B2\u6069\
- \u8C08\u8BDD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I would\
- \ like to speak to Lois Lane.{\\r}\r\nDialogue: 0,1:10:35.43,1:10:37.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u51ED\u4EC0\u4E48\u8BA4\u4E3A\u5979\
- \u5728\u8FD9\u91CC\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What makes you think she's here?{\\r}\r\nDialogue: 0,1:10:37.63,1:10:39.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u522B\u6D6A\u8D39\u65F6\u95F4 \u5C06\u519B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Don't play games\
- \ with me, general.{\\r}\r\nDialogue: 0,1:10:39.93,1:10:43.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EA\u8981\u4F60\u4EEC\u80FD\u4FDD\u8BC1\
- \u9732\u6613\u4E1D\u7684\u81EA\u7531 \u6211\u5C31\u6295\u964D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'll surrender, but only if you guarantee\
- \ Lois's freedom.{\\r}\r\nDialogue: 0,1:10:54.05,1:10:55.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E3A\u4EC0\u4E48\u5411\u4F50\u5FB7\
- \u6295\u964D\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why\
- \ are you surrendering to Zod?{\\r}\r\nDialogue: 0,1:10:57.22,1:11:00.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u5411\u4EBA\u7C7B\u5C48\u670D\
- \ \u8FD9\u5E76\u4E0D\u4E00\u6837{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'm surrendering to mankind. There's a difference.{\\r}\r\nDialogue:\
- \ 0,1:11:01.95,1:11:03.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u8BA9\u4ED6\u4EEC\u628A\u4F60\u94D0\u8D77\u6765\u4E86\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You let them\
- \ handcuff you?{\\r}\r\nDialogue: 0,1:11:04.62,1:11:07.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u662F\u62B5\u6297 \u5C31\u4E0D\
- \u7B97\u662F\u6295\u964D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Wouldn't be much of a surrender if I resisted.{\\r}\r\nDialogue: 0,1:11:08.56,1:11:10.60,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4ED6\u4EEC\u8FD9\u6837\u505A\
- \u611F\u5230\u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}And if it makes them feel more secure...{\\r}\r\nDialogue: 0,1:11:11.66,1:11:13.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E48 \u5982\u4ED6\u4EEC\u6240\u613F\
- \u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...then all\
- \ the better for it.{\\r}\r\nDialogue: 0,1:11:17.94,1:11:19.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}S\u8FD9\u4E2A\u5B57\u6BCD\u6709\u542B\u4E49\
- \u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's\
- \ the S stand for?{\\r}\r\nDialogue: 0,1:11:22.74,1:11:24.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E0D\u662FS{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's not an S.{\\r}\r\nDialogue: 0,1:11:25.78,1:11:27.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6211\u7684\u661F\u7403 \u90A3\u4EE3\
- \u8868\u5E0C\u671B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On\
- \ my world it means hope.{\\r}\r\nDialogue: 0,1:11:29.31,1:11:33.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u5427 \u5728\u5730\u7403\u8FD9\u5C31\
- \u662F\u4E2AS{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Well,\
- \ here, it's an S.{\\r}\r\nDialogue: 0,1:11:34.85,1:11:36.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u60F3{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}How about...{\\r}\r\nDialogue: 0,1:11:41.99,1:11:43.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5148\u751F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Sir?{\\r}\r\nDialogue: 0,1:11:43.29,1:11:46.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u55E8 \u6211\u662F\u2026\u535A\u58EB\
- \ - \u57C3\u7C73\u5C14\u2022\u6C49\u5BC6\u5C14\u987F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Hi, my name is Dr. E... -\
- \ Emil Hamilton.{\\r}\r\nDialogue: 0,1:11:46.86,1:11:49.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053 \u6211\u53EF\u4EE5\u770B\
- \u5230\u4F60\u4E0A\u8863\u53E3\u888B\u91CC\u7684\u8EAB\u4EFD\u5361{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know, I can see your\
- \ ID tag in your breast pocket.{\\r}\r\nDialogue: 0,1:11:50.10,1:11:52.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD8\u6709\u4E00\u888B\u5403\u4E86\u4E00\
- \u534A\u7684\u7CD6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Along\
- \ with a half-eaten roll of Lifesavers.{\\r}\r\nDialogue: 0,1:11:53.30,1:11:55.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u80FD\u770B\u5230\u9694\u58C1\
- \u623F\u95F4\u7684\u4E00\u961F\u58EB\u5175{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I can also see the soldiers in the next room...{\\\
- r}\r\nDialogue: 0,1:11:55.87,1:11:58.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD8\u6709\u4F60\u7684\u9547\u538B\u7528\u7279\u5DE5\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...preparing that\
- \ tranquilizing agent of yours.{\\r}\r\nDialogue: 0,1:11:58.44,1:11:59.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u5FC5\u8981\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You won't need it.{\\r}\r\nDialogue:\
- \ 0,1:12:00.14,1:12:03.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5148\u751F \u6211\u4EEC\u4E0D\u53EF\u80FD\u6BEB\u65E0\u51C6\u5907\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Sir, you can't expect\
- \ us to not take precautions.{\\r}\r\nDialogue: 0,1:12:03.45,1:12:05.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5F88\u53EF\u80FD\u643A\u5E26\u4E86\
- \u5916\u661F\u75C5\u539F\u4F53{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You could be carrying some kind of alien pathogen.{\\r}\r\nDialogue:\
- \ 0,1:12:06.12,1:12:07.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5DF2\u7ECF\u5728\u8FD9\u91CC\u751F\u6D3B\u4E8633\u5E74\u4E86\
- \ \u535A\u58EB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Been\
- \ here for 33 years, doctor.{\\r}\r\nDialogue: 0,1:12:07.82,1:12:10.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u8FD8\u6CA1\u611F\u67D3\u4EFB\u4F55\u4EBA\
- \ - \u4E00\u9762\u4E4B\u8F9E\u800C\u5DF2{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- Haven't infected anyone yet. - That you know\
- \ of. {\\r}\r\nDialogue: 0,1:12:10.83,1:12:12.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u6709\u5B89\u5168\u65B9\u9762\
- \u7684\u8003\u8651{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ have legitimate security concerns.{\\r}\r\nDialogue: 0,1:12:12.68,1:12:15.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65E2\u7136\u4F60\u5411\u83B2\u6069\u5C0F\
- \u59D0\u900F\u9732\u4E86\u8EAB\u4EFD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}You revealed your identity to Miss Lane over there.{\\\
- r}\r\nDialogue: 0,1:12:16.36,1:12:18.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E3A\u4EC0\u4E48\u6CA1\u544A\u8BC9\u6211\u4EEC\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Why won't you do\
- \ the same with us?{\\r}\r\nDialogue: 0,1:12:19.53,1:12:21.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u628A\u8BDD\u8BF4\u5F00\u4E86\
- \u5427 \u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Let's\
- \ put our cards on the table here, general.{\\r}\r\nDialogue: 0,1:12:23.33,1:12:25.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u6015\u6211\u662F\u56E0\u4E3A\
- \u4F60\u4EEC\u65E0\u6CD5\u63A7\u5236\u6211{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You're scared because you can't control me.{\\r}\r\
- \nDialogue: 0,1:12:25.64,1:12:28.17,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u73B0\u5728\u4E0D\u80FD \u4EE5\u540E\u4E5F\u4E0D\u80FD\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You don't, and you\
- \ never will.{\\r}\r\nDialogue: 0,1:12:29.01,1:12:30.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u90A3\u5E76\u4E0D\u610F\u5473\u7740\
- \u6211\u662F\u654C\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But that doesn't' mean I'm your enemy.{\\r}\r\nDialogue: 0,1:12:31.21,1:12:32.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u8C01\u662F\u654C\u4EBA\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then who is?{\\r}\r\
- \nDialogue: 0,1:12:32.98,1:12:34.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Zod?{\\r}\r\nDialogue: 0,1:12:35.01,1:12:36.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6B63\u662F\u62C5\u5FC3\u8FD9\u4E00\
- \u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's what\
- \ I'm worried about.{\\r}\r\nDialogue: 0,1:12:37.01,1:12:38.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u662F\u8FD9\u6837{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Be that as it may...{\\r}\r\
- \nDialogue: 0,1:12:38.98,1:12:42.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E5F\u6536\u5230\u4E86\u547D\u4EE4\u8981\u628A\
- \u4F60\u4EA4\u7ED9\u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...I've been given orders to hand you over to him.{\\r}\r\nDialogue:\
- \ 0,1:12:42.99,1:12:44.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u505A\u4F60\u5FC5\u987B\u505A\u7684\u5427 \u5C06\u519B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do what you have to do, general.{\\\
- r}\r\nDialogue: 0,1:12:49.66,1:12:50.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8C22\u8C22{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Thank you.{\\r}\r\nDialogue: 0,1:12:51.56,1:12:52.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C22\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For what?{\\r}\r\nDialogue: 0,1:12:53.70,1:12:55.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C22\u8C22\u4F60\u4FE1\u4EFB\u6211{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}For believing in me.{\\\
- r}\r\nDialogue: 0,1:12:58.34,1:13:00.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5230\u6700\u540E\u4E5F\u6CA1\u6539\u53D8\u4EC0\u4E48\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Didn't make much\
- \ difference in the end.{\\r}\r\nDialogue: 0,1:13:01.21,1:13:02.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u53D8\u4E86\u6211{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It did to me.{\\r}\r\nDialogue: 0,1:13:23.36,1:13:24.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u6765\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They're coming.{\\r}\r\nDialogue:\
- \ 0,1:13:25.70,1:13:27.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u8BE5\u8D70\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You should leave now.{\\r}\r\nDialogue: 0,1:13:30.30,1:13:31.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u8D70 \u9732\u6613\u4E1D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go, Lois.{\\r}\r\nDialogue:\
- \ 0,1:14:42.77,1:14:44.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u5C14\u2022\u827E\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Kal-El.{\\r}\r\nDialogue: 0,1:14:44.68,1:14:46.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u526F\u6307\u6325\u5B98\u8299\
- \u62C9\u2022\u5965{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ sub-commander Faora-UI.{\\r}\r\nDialogue: 0,1:14:47.38,1:14:51.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EE3\u8868\u4F50\u5FB7\u5C06\u519B \u5411\
- \u4F60\u95EE\u5019{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On\
- \ behalf of General Zod, I extend you his greetings.{\\r}\r\nDialogue: 0,1:14:56.69,1:14:59.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u662F\u6307\u6325\u5B98\u5417\uFF1F\
- \ - \u6211\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Are you the ranking officer here? - I am.{\\r}\r\nDialogue: 0,1:15:00.02,1:15:04.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u5C06\u519B\u5E0C\u671B\u8FD9\
- \u4E2A\u5973\u4EBA\u966A\u6211\u8D70{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}General Zod would like this woman to accompany me.{\\r}\r\
- \nDialogue: 0,1:15:04.83,1:15:06.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u8981\u7684\u53EA\u662F\u4F60\u7684\u65CF\u4EBA\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You asked for the\
- \ alien.{\\r}\r\nDialogue: 0,1:15:07.40,1:15:10.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5E76\u6CA1\u6709\u8BF4\u8981\u5E26\
- \u8D70\u6211\u4EEC\u7684\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You didn't say anything about one of our own.{\\r}\r\nDialogue: 0,1:15:10.57,1:15:13.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9700\u8981\u6211\u544A\u8BC9\u5C06\u519B\
- \u4F60\u4E0D\u7B54\u5E94\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Shall I tell the general you're unwilling to comply?{\\\
- r}\r\nDialogue: 0,1:15:13.97,1:15:15.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4E0D\u5728\u4E4E\u4F60\u600E\u4E48\u544A\u8BC9\
- \u4ED6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't care\
- \ what you tell him.{\\r}\r\nDialogue: 0,1:15:18.84,1:15:20.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6CA1\u5173\u7CFB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's all right.{\\r}\r\nDialogue: 0,1:15:21.35,1:15:22.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53BB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I'll go.{\\r}\r\nDialogue: 0,1:16:05.39,1:16:09.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EBA\u7C7B\u65E0\u6CD5\u9002\u5E94\u6211\
- \u4EEC\u98DE\u8239\u4E2D\u7684\u5927\u6C14\u6210\u5206{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The atmospheric composition on our\
- \ ship is not compatible with humans.{\\r}\r\nDialogue: 0,1:16:09.46,1:16:10.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FC7\u53BB\u4EE5\u540E \u4F60\u5FC5\u987B\
- \u5E26\u4E0A\u547C\u5438\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}You need to wear a breather...{\\r}\r\nDialogue: 0,1:16:11.10,1:16:12.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981\u9760\u8FD1{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...beyond this point.{\\r}\r\nDialogue:\
- \ 0,1:16:37.92,1:16:38.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5361\u5C14\u2022\u827E\u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Kal-El.{\\r}\r\nDialogue: 0,1:16:40.79,1:16:42.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u90FD\u4E0D\u77E5\u9053{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You have no idea how long...{\\\
- r}\r\nDialogue: 0,1:16:42.66,1:16:44.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u627E\u4E86\u4F60\u591A\u4E45{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we've been searching for\
- \ you.{\\r}\r\nDialogue: 0,1:16:45.16,1:16:46.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u60F3\u4F60\u5C31\u662F\u4F50\u5FB7\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I take it you're\
- \ Zod?{\\r}\r\nDialogue: 0,1:16:46.43,1:16:47.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u4F50\u5FB7\u5C06\u519B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General Zod.{\\r}\r\nDialogue:\
- \ 0,1:16:47.80,1:16:49.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u6211\u4EEC\u7684\u7EDF\u9886 - \u6CA1\u5173\u7CFB \u8299\u62C9\
- \u2022\u5965{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Our\
- \ commander. - It's all right, Faora.{\\r}\r\nDialogue: 0,1:16:49.83,1:16:52.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u539F\u8C05\u5361\u5C14\u7684\u65E0\u793C\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can forgive Kal\
- \ any lapses in decorum.{\\r}\r\nDialogue: 0,1:16:52.77,1:16:54.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u8FD8\u4E0D\u719F\u6089\u6211\u4EEC\
- \u7684\u793C\u4EEA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He's\
- \ a stranger to our ways.{\\r}\r\nDialogue: 0,1:16:54.94,1:16:58.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5E94\u8BE5\u597D\u597D\u5E86\
- \u795D\u4E00\u4E0B \u800C\u4E0D\u8BE5\u4E89\u5435{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}This should be cause for celebration, not conflict.{\\\
- r}\r\nDialogue: 0,1:16:59.51,1:17:01.68,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u522B\u51B2\u7A81{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Not conflict.{\\r}\r\nDialogue: 0,1:17:04.12,1:17:05.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I...{\\r}\r\nDialogue: 0,1:17:05.42,1:17:06.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u611F\u89C9\u4E0D\u8212\u670D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...feel strange.{\\r}\r\nDialogue:\
- \ 0,1:17:09.35,1:17:10.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5F88\u865A\u5F31{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Weak.{\\r}\r\nDialogue: 0,1:17:12.86,1:17:14.06,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u600E\u4E48\u4E86\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's happening to him?{\\\
- r}\r\nDialogue: 0,1:17:14.26,1:17:16.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u7684\u8EAB\u4F53\u5BF9\u8239\u4E0A\u7684\u5927\
- \u6C14\u6709\u6392\u65A5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}He's rejecting our ship's atmospherics.{\\r}\r\nDialogue: 0,1:17:17.03,1:17:17.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:17:17.86,1:17:20.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7528\u4E86\u4E00\u8F88\u5B50\u6765\
- \u9002\u5E94\u5730\u7403\u7684\u73AF\u5883{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You've spent a lifetime adapting to Earth's ecology...{\\\
- r}\r\nDialogue: 0,1:17:20.70,1:17:21.64,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5374\u9002\u5E94\u4E0D\u4E86\u6211\u4EEC\u81EA\u5DF1\
- \u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but never\
- \ adapted to ours.{\\r}\r\nDialogue: 0,1:17:21.80,1:17:22.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u5E2E\u5E2E\u4ED6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:24.87,1:17:27.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:17:28.47,1:17:29.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E2E\u5E2E\u4ED6{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:31.54,1:17:32.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5FEB\u5E2E\u5E2E\u4ED6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Help him.{\\r}\r\nDialogue: 0,1:17:44.36,1:17:45.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u597D \u5361\u5C14{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Hello, Kal.{\\r}\r\nDialogue: 0,1:17:47.56,1:17:49.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD8\u662F\u4F60\u66F4\u559C\u6B22\u6211\
- \u53EB\u4F60\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Or do you prefer Clark?{\\r}\r\nDialogue: 0,1:17:50.36,1:17:51.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u662F\u4ED6\u4EEC\u7ED9\u4F60\u8D77\
- \u7684\u540D\u5B57{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's\
- \ the name they gave you.{\\r}\r\nDialogue: 0,1:17:52.00,1:17:53.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u662F\u5417\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Isn't it?{\\r}\r\nDialogue: 0,1:17:54.57,1:17:56.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u66FE\u662F\u6C2A\u661F\u7684\u519B\
- \u4E8B\u7EDF\u9886{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ was Krypton's military leader...{\\r}\r\nDialogue: 0,1:17:56.53,1:17:58.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4F60\u7236\u4EB2\u662F\u6211\u4EEC\
- \u7684\u9996\u5E2D\u79D1\u5B66\u5BB6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...your father our foremost scientist.{\\r}\r\nDialogue:\
- \ 0,1:17:59.20,1:18:00.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u552F\u4E00\u8FBE\u6210\u5171\u8BC6\u7684\u4E00\u70B9\
- \u5C31\u662F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ only thing we agreed on...{\\r}\r\nDialogue: 0,1:18:00.87,1:18:02.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6C2A\u661F\u5C31\u8981\u6BC1\u706D\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...was that Krypton\
- \ was dying. {\\r}\r\nDialogue: 0,1:18:02.75,1:18:06.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u62FC\u547D\u4FDD\u62A4\u6211\u4EEC\
- \u7684\u6587\u5316{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}In\
- \ return for my efforts to protect our civilization...{\\r}\r\nDialogue: 0,1:18:06.68,1:18:08.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FDD\u536B\u6211\u4EEC\u7684\u661F\u7403\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and save our\
- \ planet...{\\r}\r\nDialogue: 0,1:18:09.01,1:18:13.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F97\u5230\u7684\u56DE\u62A5\u5374\u662F\
- \u6211\u4EEC\u90FD\u88AB\u653E\u9010\u5230\u5E7D\u7075\u533A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I and my fellow officers were sentenced\
- \ to the Phantom Zone.{\\r}\r\nDialogue: 0,1:18:15.99,1:18:21.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u6211\u4EEC\u661F\u7403\u7684\u6BC1\
- \u706D\u5374\u8BA9\u6211\u4EEC\u91CD\u83B7\u81EA\u7531{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And then the destruction of our world\
- \ freed us.{\\r}\r\nDialogue: 0,1:18:26.16,1:18:27.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u56DB\u5904\u6F02\u6CCA{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We were adrift, {\\\
- r}\r\nDialogue: 0,1:18:27.92,1:18:31.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6CE8\u5B9A\u6F02\u6D41\u5728\u6211\u4EEC\u661F\u7403\
- \u7684\u6B8B\u9AB8\u4E4B\u4E2D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}destined to float amongst the ruins of our planet...{\\r}\r\nDialogue:\
- \ 0,1:18:32.07,1:18:33.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u76F4\u81F3\u6B7B\u4EA1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...until we starved.{\\r}\r\nDialogue: 0,1:18:34.84,1:18:36.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4EEC\u662F\u600E\u4E48\u627E\u5230\
- \u5730\u7403\u6765\u7684\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}How did you find your way to Earth?{\\r}\r\nDialogue: 0,1:18:37.21,1:18:41.21,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u628A\u5E7D\u7075\u63A8\u8FDB\
- \u5668\u6539\u9020\u6210\u4E86\u9AD8\u901F\u98DE\u884C\u5668{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We managed to retrofit the phantom\
- \ projector into a hyperdrive.{\\r}\r\nDialogue: 0,1:18:41.71,1:18:45.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7236\u4EB2\u4E5F\u662F\u5BF9\u98DE\
- \u8239\u505A\u4E86\u7C7B\u4F3C\u7684\u4FEE\u6539 \u628A\u4F60\u9001\u5230\u4E86\
- \u8FD9\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Your\
- \ father made a similar modification to the craft that brought you here.{\\\
- r}\r\nDialogue: 0,1:18:46.92,1:18:50.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6240\u4EE5\u56DA\u7981\u6211\u4EEC\u7684\u5DE5\u5177\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And so the instrument\
- \ of our damnation...{\\r}\r\nDialogue: 0,1:18:52.06,1:18:53.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u540C\u65F6\u4E5F\u62EF\u6551\u4E86\u6211\
- \u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...became\
- \ our salvation.{\\r}\r\nDialogue: 0,1:18:58.80,1:19:01.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u627E\u904D\u4E86\u65E7\u6B96\
- \u6C11\u5730\u7684\u524D\u54E8\u7AD9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We sought out the old colonial outposts...{\\r}\r\nDialogue:\
- \ 0,1:19:01.57,1:19:03.77,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u60F3\u8981\u5BFB\u627E\u751F\u547D\u7684\u8FF9\u8C61{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...looking for signs of life.{\\\
- r}\r\nDialogue: 0,1:19:06.24,1:19:09.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u627E\u5230\u7684\u53EA\u6709\u6B7B\u4EA1{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But all we found was death.{\\\
- r}\r\nDialogue: 0,1:19:10.04,1:19:12.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u4E9B\u524D\u54E8\u7AD9\u65E9\u548C\u6C2A\u661F\
- \u5931\u53BB\u8054\u7EDC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Cut off from Krypton, these outposts...{\\r}\r\nDialogue: 0,1:19:12.88,1:19:15.08,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EE5\u540E\u5C31\u5E9F\u5F03\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...withered and died\
- \ long ago.{\\r}\r\nDialogue: 0,1:19:15.58,1:19:17.56,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u628A\u80FD\u7528\u7684\u90FD\
- \u5E26\u8D70\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We\
- \ salvaged what we could...{\\r}\r\nDialogue: 0,1:19:17.78,1:19:19.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76D4\u7532 \u6B66\u5668{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...armor, weapons...{\\r}\r\nDialogue:\
- \ 0,1:19:19.75,1:19:21.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD8\u6709\u4E00\u4E2A\u4E16\u754C\u5F15\u64CE{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...even a world engine.{\\r}\r\nDialogue:\
- \ 0,1:19:23.42,1:19:25.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u51C6\u5907\u4E8633\u5E74{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}For 33 years we prepared...{\\r}\r\nDialogue: 0,1:19:26.79,1:19:29.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u76F4\u5230\u6211\u4EEC\u4FA6\u6D4B\u5230\
- \u4E00\u4E2A\u6C42\u6551\u4FE1\u53F7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...until finally we detected a distress beacon...{\\r}\r\
- \nDialogue: 0,1:19:29.79,1:19:34.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4F60\u5728\u8001\u4FA6\u5BDF\u673A\u91CC\u53D1\
- \u51FA\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...which\
- \ you triggered when you accessed the ancient scout ship.{\\r}\r\nDialogue:\
- \ 0,1:19:35.47,1:19:38.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u662F\u4F60\u628A\u6211\u4EEC\u5E26\u5230\u8FD9\u91CC\u7684 \u5361\
- \u5C14{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You led us\
- \ here, Kal.{\\r}\r\nDialogue: 0,1:19:39.14,1:19:44.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73B0\u5728\u4F60\u6709\u80FD\u529B\u62EF\
- \u6551\u6211\u4EEC\u7684\u79CD\u65CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Now it's within your power to save what remains of your\
- \ race.{\\r}\r\nDialogue: 0,1:19:49.11,1:19:50.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6C2A\u661F\u4E0A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}On Krypton...{\\r}\r\nDialogue: 0,1:19:50.61,1:19:53.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u6709\u672A\u51FA\u751F\u5B69\u5B50\
- \u7684\u9057\u4F20\u57FA\u56E0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the genetic template for every being yet to be born...{\\r}\r\nDialogue:\
- \ 0,1:19:53.48,1:19:56.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90FD\u88AB\u7F16\u5199\u5728\u516C\u6C11\u6863\u6848\u91CC{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is encoded in the registry\
- \ of citizens.{\\r}\r\nDialogue: 0,1:19:56.69,1:19:58.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7236\u4EB2\u5077\u8D70\u4E86\u6863\
- \u6848\u7684\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your father stole the registry's Codex...{\\r}\r\nDialogue: 0,1:19:59.09,1:20:01.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u85CF\u5728\u4E86\u5E26\u4F60\u6765\u7684\
- \u592A\u7A7A\u8231\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...and stored it in the capsule that brought you here.{\\r}\r\nDialogue:\
- \ 0,1:20:02.63,1:20:03.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E3A\u4EC0\u4E48\u5462\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}For what purpose?{\\r}\r\nDialogue: 0,1:20:04.53,1:20:09.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u6837\u6C2A\u661F\u5C31\u80FD\u5728\
- \u5730\u7403\u4E0A\u91CD\u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}So that Krypton can live again on Earth.{\\r}\r\nDialogue: 0,1:20:29.52,1:20:31.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u5728\u54EA\u91CC \u5361\u5C14\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where is the\
- \ Codex, Kal?{\\r}\r\nDialogue: 0,1:20:33.29,1:20:35.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u6C2A\u661F\u91CD\u751F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If Krypton lives again...{\\\
- r}\r\nDialogue: 0,1:20:36.29,1:20:37.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5730\u7403\u4F1A\u600E\u4E48\u6837\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...what happens to Earth?{\\\
- r}\r\nDialogue: 0,1:20:38.70,1:20:42.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u91CD\u751F\u603B\u9700\u8981\u5EFA\u7ACB\u5728\u6BC1\
- \u706D\u4E4B\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ foundation has to be built on something.{\\r}\r\nDialogue: 0,1:20:42.47,1:20:45.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FDE\u4F60\u7236\u4EB2\u90FD\u77E5\u9053\
- \u8FD9\u4E00\u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Even\
- \ your father recognized that.{\\r}\r\nDialogue: 0,1:20:51.71,1:20:54.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}No, Zod.{\\r}\r\nDialogue: 0,1:20:55.18,1:20:56.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u4F1A\u5E2E\u4F60\u7684{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can't be a part of\
- \ this.{\\r}\r\nDialogue: 0,1:20:57.21,1:20:58.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E48\u4F60\u4F1A\u5E2E\u8C01\u5462\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then what\
- \ can you be a part of?{\\r}\r\nDialogue: 0,1:20:59.52,1:21:00.72,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:01.92,1:21:02.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Zod!{\\r}\r\nDialogue: 0,1:21:04.02,1:21:04.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:05.89,1:21:07.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No!{\\r}\r\nDialogue: 0,1:21:13.56,1:21:17.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u7684\u7236\u4EB2\u4E3A\u8363\u8A89\
- \u732E\u51FA\u4E86\u81EA\u5DF1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Your father acquitted himself with honor, Kal.{\\r}\r\nDialogue: 0,1:21:19.84,1:21:21.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u4F60\u6740\u4E86\u4ED6\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You killed him?{\\\
- r}\r\nDialogue: 0,1:21:22.17,1:21:23.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I did.{\\r}\r\nDialogue: 0,1:21:24.11,1:21:27.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6C38\u8FDC\u90FD\u6446\u8131\u4E0D\
- \u4E86\u8FD9\u4EF6\u4E8B\u7684\u9634\u5F71{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And not a day goes by where it doesn't haunt me.{\\\
- r}\r\nDialogue: 0,1:21:28.88,1:21:31.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u5982\u679C\u91CD\u6765\u4E00\u6B21 \u6211\u8FD8\
- \u662F\u4F1A\u8FD9\u4E48\u505A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}But if I had to do it again, I would.{\\r}\r\nDialogue: 0,1:21:31.45,1:21:34.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u5BF9\u6211\u7684\u4EBA\u6C11\
- \u8D1F\u8D23{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have\
- \ a duty to my people...{\\r}\r\nDialogue: 0,1:21:35.19,1:21:39.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u4F1A\u8BA9\u4EFB\u4F55\u4EBA\
- \u963B\u6B62\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and\
- \ I will not allow anyone to prevent me from carrying it out.{\\r}\r\nDialogue:\
- \ 0,1:21:55.64,1:21:57.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u662F\u4EC0\u4E48 \u5C11\u6821\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's the sit-rep, major?{\\r}\r\nDialogue:\
- \ 0,1:21:57.91,1:22:00.29,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4FA6\u6D4B\u5230\u4E24\u67B6\u654C\u673A\u4ECE\u5916\u661F\u98DE\
- \u8239\u4E2D\u53D1\u5C04{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}DSP pinged two bogeys launching from the alien ship.{\\r}\r\nDialogue:\
- \ 0,1:22:00.54,1:22:02.65,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u8367\u5E55\u663E\u793A - \u597D\u7684 \u957F\u5B98{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Put it up. - Yes, sir.{\\\
- r}\r\nDialogue: 0,1:22:03.08,1:22:04.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u662F\u8FD9\u4E2A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}There it is.{\\r}\r\nDialogue: 0,1:22:04.42,1:22:05.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u63A5\u65E0\u7EBF\u75354\u53F7{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Re-task IKon-4...{\\r}\r\n\
- Dialogue: 0,1:22:05.45,1:22:07.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}- \u518D\u62C9\u8FD1\u70B9 - \u597D\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- ...and get me a closer look. \
- \ - Yes, sir.{\\r}\r\nDialogue: 0,1:22:08.22,1:22:09.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6307\u6325\u90E8{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Command, the word...{\\r}\r\nDialogue:\
- \ 0,1:22:09.39,1:22:10.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ECA\u5929\u7684\u6697\u53F7\u662F\u4E09\u53C9\u621F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...of the day is trident.{\\\
- r}\r\nDialogue: 0,1:22:10.79,1:22:12.89,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6709\u4E24\u67B6\u5916\u661F\u98DE\u8239\u6B63\u5728\
- \u63A5\u8FD1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have\
- \ two alien craft on aggressive approach.{\\r}\r\nDialogue: 0,1:22:13.12,1:22:14.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65E0\u7EBF\u75354\u53F7\u5DF2\u63A5\u901A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Ikon-4 coming online.{\\\
- r}\r\nDialogue: 0,1:22:14.99,1:22:15.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u901F\u5EA6\u6709\u591A\u5FEB\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Air speed?{\\r}\r\nDialogue: 0,1:22:16.06,1:22:17.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}380\u6D77\u91CC \u6B63\u5728\u8FDB\u5165\
- \u582A\u8428\u65AF\u5DDE\u4E0A\u7A7A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}380 knots, entering Kansas...{\\r}\r\nDialogue: 0,1:22:17.73,1:22:19.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4E0D\u56DE\u5E94\u6211\u4EEC\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...airspace. Not\
- \ responding to our hails.{\\r}\r\nDialogue: 0,1:22:19.96,1:22:22.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u8981\u6D6A\u8D39\u4F53\u529B\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You're wasting\
- \ your efforts.{\\r}\r\nDialogue: 0,1:22:23.10,1:22:25.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4ECE\u5730\u7403\u7684\u592A\u9633\
- \u5F97\u5230\u7684\u529B\u91CF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}The strength you derived from the Earth's sun...{\\r}\r\nDialogue: 0,1:22:25.67,1:22:27.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u6211\u4EEC\u7684\u8239\u4E0A\u5B8C\
- \u5168\u6CA1\u6709\u7528{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...has been neutralized aboard our ship.{\\r}\r\nDialogue: 0,1:22:28.44,1:22:29.58,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u8FD9\u91CC{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Here...{\\r}\r\nDialogue: 0,1:22:29.81,1:22:31.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u6837\u7684\u73AF\u5883\u4E0B{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...in this environment...{\\\
- r}\r\nDialogue: 0,1:22:32.18,1:22:33.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C31\u8DDF\u4EBA\u7C7B\u4E00\u6837\u8106\u5F31\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you are as weak\
- \ as a human.{\\r}\r\nDialogue: 0,1:23:32.20,1:23:34.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4ECE\u54EA\u5192\u51FA\u6765\u7684\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where did\
- \ you come from?{\\r}\r\nDialogue: 0,1:23:34.57,1:23:36.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u63A7\u94A5\u5319\u91CC \u83B2\u6069\
- \u5C0F\u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The\
- \ command key, Miss Lane.{\\r}\r\nDialogue: 0,1:23:36.24,1:23:39.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u591A\u4E8F\u4E86\u4F60 \u6211\u6B63\u5728\
- \u88AB\u4E0A\u4F20\u5230\u8FD9\u8258\u8239\u7684\u4E3B\u7A0B\u5E8F\u91CC{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thanks to you, I'm\
- \ uploading to the ship's mainframe.{\\r}\r\nDialogue: 0,1:23:39.91,1:23:40.89,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u662F\u8C01\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Who are you?{\\r}\r\nDialogue: 0,1:23:41.85,1:23:43.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u662F\u5361\u5C14\u7684\u7236\u4EB2\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I am Kai's father.{\\\
- r}\r\nDialogue: 0,1:23:44.82,1:23:45.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u80FD\u5E2E\u6211\u4EEC\u5417\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can you help us?{\\r}\r\nDialogue:\
- \ 0,1:23:47.52,1:23:49.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u8258\u8239\u662F\u6211\u8BBE\u8BA1\u7684{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I designed this ship.{\\r}\r\nDialogue:\
- \ 0,1:23:49.59,1:23:51.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u80FD\u6539\u9020\u5B83\u7684\u5927\u6C14\u7ED3\u6784{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can modify its atmospheric\
- \ composition...{\\r}\r\nDialogue: 0,1:23:52.02,1:23:53.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F7F\u4EBA\u7C7B\u9002\u5E94{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to human compatibility.{\\\
- r}\r\nDialogue: 0,1:23:54.02,1:23:54.87,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u80FD\u963B\u6B62\u4ED6\u4EEC{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can stop them.{\\r}\r\n\
- Dialogue: 0,1:23:55.09,1:23:57.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u4EEC\u80FD\u628A\u4ED6\u4EEC\u9001\u56DE\u5E7D\u7075\
- \u533A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We can send\
- \ them back to the Phantom Zone.{\\r}\r\nDialogue: 0,1:23:58.53,1:23:59.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u600E\u4E48\u505A\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How?{\\r}\r\nDialogue: 0,1:23:59.40,1:24:00.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6765\u6559\u4F60{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can teach you.{\\r}\r\nDialogue:\
- \ 0,1:24:01.20,1:24:03.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7136\u540E\u4F60\u518D\u6559\u7ED9\u5361\u5C14{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And in turn, you can teach Kal.{\\\
- r}\r\nDialogue: 0,1:24:03.23,1:24:04.94,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u4F1A\u5E2E\u6211\u5417\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Will you help me?{\\r}\r\nDialogue:\
- \ 0,1:24:18.78,1:24:20.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8239\u4E0A\u7684\u8B66\u62A5\u54CD\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship's crew are alerted.{\\r}\r\n\
- Dialogue: 0,1:24:20.35,1:24:21.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u4EEC\u5F97\u5FEB\u70B9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We need to move quickly.{\\r}\r\nDialogue: 0,1:24:21.62,1:24:23.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u4E3B\u63A7\u94A5\u5319\u62FF\u4E0A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Retrieve the command\
- \ key.{\\r}\r\nDialogue: 0,1:24:30.93,1:24:33.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u662F\u4F60\u505A\u7684\u5417\uFF1F -\
- \ \u662F\u7684 \u628A\u5979\u7684\u6B66\u5668\u62FF\u4E0A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Did you do that? - Yes. Pick\
- \ up her sidearm.{\\r}\r\nDialogue: 0,1:24:43.37,1:24:44.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D1\u751F\u4E86\u4EC0\u4E48\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's happening?{\\\
- r}\r\nDialogue: 0,1:25:05.73,1:25:06.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53F3\u8FB9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}To your right.{\\r}\r\nDialogue: 0,1:25:06.63,1:25:07.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F00\u706B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Fire.{\\r}\r\nDialogue: 0,1:25:08.83,1:25:09.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u540E\u9762{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Behind you.{\\r}\r\nDialogue: 0,1:25:23.08,1:25:25.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B89\u5168\u5F85\u5728\u6551\u751F\u8231\
- \u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Secure yourself\
- \ inside the open pod.{\\r}\r\nDialogue: 0,1:25:26.15,1:25:28.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u65C5\u9014\u5E73\u5B89 \u83B2\u6069\u5C0F\
- \u59D0{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Safe travels,\
- \ Miss Lane. It's unlikely...{\\r}\r\nDialogue: 0,1:25:28.65,1:25:30.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5E94\u8BE5\u4E0D\u53EF\u80FD\
- \u518D\u89C1\u9762\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...we'll see each other again.{\\r}\r\nDialogue: 0,1:25:31.82,1:25:34.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BB0\u4F4F \u5E7D\u7075\u5F15\u64CE\u662F\
- \u963B\u6B62\u4ED6\u4EEC\u7684\u5173\u952E{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Remember, the phantom drives are essential in stopping\
- \ them.{\\r}\r\nDialogue: 0,1:25:35.79,1:25:37.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u628A\u5934\u504F\u5411\u5DE6\u8FB9{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Move your head to the\
- \ left.{\\r}\r\nDialogue: 0,1:26:04.62,1:26:07.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F50\u5FB7\u8BF4\u7684\u5173\u4E8E\u5BC6\
- \u5178\u7684\u4E8B\u662F\u771F\u7684\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Is it true what Zod said about the Codex?{\\r}\r\n\
- Dialogue: 0,1:26:07.66,1:26:09.04,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u628A\u8239\u58C1\u6253\u7834{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Strike that panel.{\\r}\r\nDialogue: 0,1:26:12.70,1:26:16.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u60F3\u8981\u4F60\u5B66\u4E60\
- \u4EBA\u7C7B\u6700\u91CD\u8981\u7684\u662F\u4EC0\u4E48{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We wanted you to learn what it meant\
- \ to be human first...{\\r}\r\nDialogue: 0,1:26:16.87,1:26:18.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u5982\u679C\u6709\u4E00\u5929\
- \ \u65F6\u673A\u6210\u719F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...so that one day, when the time was right, {\\r}\r\nDialogue: 0,1:26:18.90,1:26:22.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4F1A\u6210\u4E3A\u4E24\u4E2A\u79CD\
- \u65CF\u6C9F\u901A\u7684\u6865\u6881{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}you could be the bridge between two peoples.{\\r}\r\nDialogue:\
- \ 0,1:26:25.24,1:26:26.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look.{\\\
- r}\r\nDialogue: 0,1:26:29.18,1:26:30.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u9732\u6613\u4E1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Lois.{\\r}\r\nDialogue: 0,1:26:31.01,1:26:32.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u80FD\u6551\u5979 \u5361\u5C14{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You can save her, Kal.{\\\
- r}\r\nDialogue: 0,1:26:35.19,1:26:37.06,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u80FD\u62EF\u6551\u6240\u6709\u4EBA{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You can save all of them.{\\\
- r}\r\nDialogue: 0,1:27:55.97,1:27:57.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5B89\u5168\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}You'll be safe here.{\\r}\r\nDialogue: 0,1:27:59.84,1:28:02.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u6CA1\u4E8B\u5427\uFF1F - \u6CA1\
- \u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Are you\
- \ all right? - Yeah.{\\r}\r\nDialogue: 0,1:28:05.64,1:28:07.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u4E0D\u8D77{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm sorry.{\\r}\r\nDialogue: 0,1:28:07.84,1:28:10.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u662F\u6545\u610F\u544A\u8BC9\
- \u4ED6\u4EEC\u4F60\u7684\u4E8B \u4ED6\u4EEC\u5BF9\u6211\u52A8\u4E86\u624B\u811A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I didn't wanna tell\
- \ them anything, but they did something to me.{\\r}\r\nDialogue: 0,1:28:11.08,1:28:13.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u4EEC\u770B\u7A7F\u4E86\u6211\u7684\
- \u5FC3\u601D - \u6CA1\u5173\u7CFB \u9732\u6613\u4E1D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- They looked inside my mind... \
- \ - It's okay, Lois.{\\r}\r\nDialogue: 0,1:28:13.48,1:28:15.26,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u4E5F\u5BF9\u6211\u505A\u4E86\
- \u540C\u6837\u7684\u4E8B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They did the same thing to me.{\\r}\r\nDialogue: 0,1:28:28.33,1:28:29.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark!{\\r}\r\nDialogue: 0,1:28:38.68,1:28:40.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E26\u4ED6\u6765\u7684\u90A3\u8258\u8239\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The craft he arrived\
- \ in...{\\r}\r\nDialogue: 0,1:28:40.98,1:28:42.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B83\u5728\u54EA\u91CC\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...where is it?{\\r}\r\nDialogue:\
- \ 0,1:28:44.05,1:28:45.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u53BB\u6B7B\u5427{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Go to hell.{\\r}\r\nDialogue: 0,1:28:56.53,1:28:57.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u90A3\u8FB9{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}There.{\\r}\r\nDialogue: 0,1:29:20.52,1:29:22.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u4E0D\u5728\u8FD9\u91CC{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The Codex is not here.{\\\
- r}\r\nDialogue: 0,1:29:29.39,1:29:30.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u85CF\u5728\u54EA\u4E86\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where has he hidden it?{\\r}\r\nDialogue:\
- \ 0,1:29:30.69,1:29:31.33,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4E0D\u77E5\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I don't know.{\\r}\r\nDialogue: 0,1:29:31.56,1:29:32.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BC6\u5178\u5728\u54EA\u91CC\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where is the Codex?!{\\\
- r}\r\nDialogue: 0,1:29:48.68,1:29:50.62,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5C45\u7136\u6562\u5A01\u80C1\u6211\u5988\u5988\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You think you can\
- \ threaten my mother?!{\\r}\r\nDialogue: 0,1:30:32.42,1:30:33.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5BF9\u6211\u505A\u4E86\u4EC0\u4E48\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What have\
- \ you done to me?{\\r}\r\nDialogue: 0,1:30:34.12,1:30:38.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7236\u6BCD\u6559\u6211\u8981\u78E8\
- \u7EC3\u6211\u7684\u611F\u5B98 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}My parents taught me to hone my senses, Zod.{\\r}\r\
- \nDialogue: 0,1:30:39.96,1:30:41.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4E13\u6CE8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Focus...{\\r}\r\nDialogue: 0,1:30:42.13,1:30:43.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5728\u81EA\u5DF1\u60F3\u770B\u7684\u4E1C\
- \u897F\u4E0A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...on\
- \ just what I wanted to see.{\\r}\r\nDialogue: 0,1:30:44.10,1:30:45.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6CA1\u4E86\u5934\u76D4{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Without your helmet...{\\r}\r\
- \nDialogue: 0,1:30:45.40,1:30:46.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53EF\u4EE5\u611F\u53D7\u5230\u66F4\u591A\u4E1C\u897F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you're getting\
- \ everything.{\\r}\r\nDialogue: 0,1:30:48.24,1:30:49.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F88\u96BE\u53D7{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And it hurts...{\\r}\r\nDialogue: 0,1:30:50.24,1:30:51.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u5427\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...doesn't it?{\\r}\r\nDialogue: 0,1:31:36.45,1:31:37.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u522B\u7AD9\u5728\u7A97\u6237\u8FB9\u4E0A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get away from the\
- \ window.{\\r}\r\nDialogue: 0,1:31:40.69,1:31:42.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90FD\u8FDB\u53BB \u8FD9\u91CC\u4E0D\u5B89\
- \u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Get inside.\
- \ It's not safe.{\\r}\r\nDialogue: 0,1:31:47.83,1:31:50.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5168\u4F53\u542C\u547D \u8FD9\u91CC\u662F\
- \u5B88\u62A4\u8005 \u6211\u662F\u7A7A\u4E2D\u6307\u6325\u5B98{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All players, this is Guardian. I am\
- \ airborne mission commander.{\\r}\r\nDialogue: 0,1:31:50.97,1:31:53.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5DF2\u7ECF\u4E8B\u5148\u63A5\u89E6\
- \u8FC7\u5E76\u89C2\u5BDF\u8FC7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I have previously encountered and observed...{\\r}\r\nDialogue: 0,1:31:53.24,1:31:55.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u5C06\u8981\u63A5\u8FD1\u7684\
- \u76EE\u6807{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the\
- \ beings we're about to engage.{\\r}\r\nDialogue: 0,1:31:55.64,1:31:58.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u975E\u5E38\u5371\u9669 \u6211\
- \u4EEC\u53EF\u4EE5...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}They are extremely dangerous and we have been authorized...{\\r}\r\n\
- Dialogue: 0,1:31:58.58,1:32:00.08,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F7F\u7528\u81F4\u547D\u6B66\u5668{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to use deadly force.{\\r}\r\nDialogue:\
- \ 0,1:32:02.05,1:32:04.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6536\u5230 \u5B88\u62A4\u8005 \u6211\u4EEC\u6B63\u63A5\u8FD1\u76EE\
- \u6807{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Roger, Guardian,\
- \ we are inbound to target.{\\r}\r\nDialogue: 0,1:32:09.69,1:32:11.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F00\u706B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Cleared hot. Weapons free.{\\r}\r\nDialogue: 0,1:32:11.15,1:32:12.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}11\u53F7 \u5F00\u706B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Copy, 11. Weapons free.{\\r}\r\nDialogue:\
- \ 0,1:32:15.56,1:32:16.44,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8FD9\u91CC\u662F\u96F7\u753511\u53F7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thunder 11...{\\r}\r\nDialogue: 0,1:32:16.56,1:32:17.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9501\u5B9A\u4E09\u4E2A\u76EE\u6807{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...tally three targets.{\\\
- r}\r\nDialogue: 0,1:32:35.21,1:32:36.02,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u96F7\u753511\u53F7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Thunder 11...{\\r}\r\nDialogue: 0,1:32:36.25,1:32:38.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5E72\u5F97\u6F02\u4EAE \u8BF7\u6C42\u7ACB\
- \u5373\u518D\u6B21\u653B\u51FB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...good hit. Request immediate re-attack.{\\r}\r\nDialogue: 0,1:32:38.92,1:32:41.12,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6536\u5230 \u5B88\u62A4\u8005 \u51C6\u5907\
- \u4E8C\u6B21\u653B\u51FB{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Roger, Guardian. We'll make a second gun run...{\\r}\r\nDialogue: 0,1:32:41.28,1:32:43.39,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u822A\u5411212\u5EA6{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...on a heading of 212 degrees.{\\\
- r}\r\nDialogue: 0,1:32:50.39,1:32:51.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u96F7\u753511\u53F7 \u5FEB\u5F39\u51FA\u9003\u751F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 11, eject!{\\\
- r}\r\nDialogue: 0,1:32:51.59,1:32:52.97,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5FEB\u5F39\u51FA\u9003\u751F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Eject!{\\r}\r\nDialogue: 0,1:32:53.30,1:32:54.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96F7\u753511\u53F7 \u5FEB\u5F39\u51FA\u9003\
- \u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 11,\
- \ eject!{\\r}\r\nDialogue: 0,1:33:05.08,1:33:06.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u654C\u4EBA\u5411\u6211\u51B2\u6765\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I have a bogey incoming!{\\\
- r}\r\nDialogue: 0,1:33:07.48,1:33:08.92,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8BE5\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Oh, shit.{\\r}\r\nDialogue: 0,1:33:27.10,1:33:27.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u592A\u5F31\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You are weak...{\\r}\r\nDialogue:\
- \ 0,1:33:28.23,1:33:29.34,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u827E\u5C14\u4E4B\u5B50{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...son of El.{\\r}\r\nDialogue: 0,1:33:29.60,1:33:30.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5BF9\u81EA\u5DF1\u6CA1\u4FE1\u5FC3{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Unsure of yourself.{\\\
- r}\r\nDialogue: 0,1:33:35.97,1:33:38.95,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u5E76\u4E0D\u50CF\u4F60{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The fact that you possess a sense\
- \ of morality...{\\r}\r\nDialogue: 0,1:33:39.18,1:33:40.95,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D7\u9053\u5FB7\u51C6\u5219\u7684\u675F\
- \u7F1A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and we\
- \ do not...{\\r}\r\nDialogue: 0,1:33:41.18,1:33:43.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u8FD9\u6B63\u662F\u6211\u4EEC\u8FDB\
- \u5316\u7684\u4F18\u52BF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...gives us an evolutionary advantage.{\\r}\r\nDialogue: 0,1:33:47.25,1:33:49.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u8BF4\u5386\u53F2\u8BC1\u660E\
- \u4E86\u4EC0\u4E48{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ if history has proven anything...{\\r}\r\nDialogue: 0,1:33:59.63,1:34:03.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5C31\u662F\u8FDB\u5316\u8005\u6C38\
- \u8FDC\u66F4\u5F3A\u5927{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...it is that evolution always wins.{\\r}\r\nDialogue: 0,1:34:24.52,1:34:26.02,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u6765\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}CCT, we're approaching...{\\r}\r\n\
- Dialogue: 0,1:34:26.29,1:34:28.13,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u7740\u9646 \u5168\u529B\u4E0B\u964D{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}...LZ Jayhawk. Get down in five.{\\r}\r\
- \nDialogue: 0,1:34:28.36,1:34:30.20,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8D70\u5427 \u524D\u8FDB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Let's go. Go to the LZ.{\\r}\r\nDialogue: 0,1:34:30.99,1:34:32.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6536\u5230 \u4E2D\u58EB \u51FA\u53D1{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Roger, sarge. let's\
- \ go!{\\r}\r\nDialogue: 0,1:35:09.77,1:35:11.09,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u516C\u725B\u6D41\u6D6A\u8005\u53F7{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All rangers, I need you...{\\\
- r}\r\nDialogue: 0,1:35:11.33,1:35:12.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7784\u51C6\u6240\u6709\u76EE\u6807{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...to engage the targets.{\\r}\r\n\
- Dialogue: 0,1:35:13.00,1:35:14.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5B88\u62A4\u8005 \u8FD9\u91CC\u662F\u4E00\u53F7\u6218\u573A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian, this is\
- \ Badger 01.{\\r}\r\nDialogue: 0,1:35:14.34,1:35:15.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E2A\u7A7F\u84DD\u8863\u670D\u7684\
- \u5BB6\u4F19\u600E\u4E48\u529E\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}What about the guy in blue?{\\r}\r\nDialogue: 0,1:35:15.87,1:35:16.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8BF4\u4E86{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I said engage...{\\r}\r\nDialogue: 0,1:35:17.17,1:35:18.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u653B\u51FB\u6240\u6709\u76EE\u6807{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...all targets.{\\\
- r}\r\nDialogue: 0,1:35:29.52,1:35:30.56,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6218\u6597 \u6218\u6597{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Contact. Contact.{\\r}\r\nDialogue: 0,1:35:40.73,1:35:41.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6CA1\u4E8B\u5427\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You okay?{\\r}\r\nDialogue:\
- \ 0,1:35:47.30,1:35:49.41,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u88AB\u51FB\u4E2D\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}We're auto-rotating, going in hard.{\\r}\r\nDialogue:\
- \ 0,1:35:50.14,1:35:51.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u53D7\u5230\u4E86\u649E\u51FB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Brace for impact.{\\r}\r\nDialogue: 0,1:35:52.11,1:35:53.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u53D7\u649E\u51FB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Brace for impact.{\\r}\r\n\
- Dialogue: 0,1:35:53.48,1:35:54.45,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6B63\u5728\u5760\u843D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}We're going in hard!{\\r}\r\nDialogue: 0,1:35:59.55,1:36:03.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u62A4\u8005\u5DF2\u5760\u6BC1 \u91CD\
- \u590D\u4E00\u6B21 \u5B88\u62A4\u8005\u5DF2\u5760\u6BC1{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Fallen angel. Fallen angel. Guardian\
- \ is down. I repeat, Guardian is down.{\\r}\r\nDialogue: 0,1:36:25.48,1:36:26.98,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u62A4\u8005 \u542C\u5230\u8BF7\u56DE\
- \u7B54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian,\
- \ do you read?{\\r}\r\nDialogue: 0,1:36:27.24,1:36:28.59,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u96F7\u753512\u53F7\u547C\u53EB\u5B88\u62A4\
- \u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thunder 12,\
- \ calling Guardian.{\\r}\r\nDialogue: 0,1:36:28.81,1:36:30.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u80FD\u6536\u5230\u5417\uFF1F - \u96F7\
- \u753512\u53F7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Do you read? - Thunder 12...{\\r}\r\nDialogue: 0,1:36:30.41,1:36:31.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u91CC\u662F\u5B88\u62A4\u8005{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...this is Guardian.{\\\
- r}\r\nDialogue: 0,1:36:31.58,1:36:33.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u706B\u529B\u5168\u90E8\u5BF9\u51C6\u8FD9\u91CC \u4E0D\
- \u7528\u7BA1\u6211\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Put down everything you've got north of my position.{\\r}\r\nDialogue:\
- \ 0,1:36:34.18,1:36:36.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u8FD9\u91CC\u662F\u5371\u9669\u533A\u57DF - \u6536\u5230 \u5371\
- \u9669\u533A\u57DF{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ This will be danger-close. - Copy, danger-close.{\\r}\r\nDialogue:\
- \ 0,1:36:36.62,1:36:37.86,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u795D\u4F60\u597D\u8FD0 \u957F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Good luck, sir.{\\r}\r\nDialogue: 0,1:37:17.73,1:37:20.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B7B\u5F97\u5149\u8363\u5C31\u662F\u6B7B\
- \u5F97\u5176\u6240{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A\
- \ good death is its own reward.{\\r}\r\nDialogue: 0,1:37:34.18,1:37:35.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u8D62\u4E0D\u4E86\u7684{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You will not win.{\\r}\r\n\
- Dialogue: 0,1:37:36.98,1:37:38.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u4F60\u6BCF\u6551\u4E00\u4E2A\u4EBA{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}For every human you save...{\\r}\r\nDialogue:\
- \ 0,1:37:38.75,1:37:41.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u4F1A\u591A\u6740\u4E00\u767E\u4E07{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we will kill a million more. Unh!{\\\
- r}\r\nDialogue: 0,1:38:32.74,1:38:35.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD8\u6709\u654C\u4EBA\u5417\uFF1F\u8FD8\u6709\u654C\
- \u4EBA\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Do\
- \ we have an all clear? Do we have an all clear?{\\r}\r\nDialogue: 0,1:38:36.14,1:38:38.42,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}A\u5C0F\u961F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Alpha team, sit-rep. Alpha team.{\\r}\r\nDialogue:\
- \ 0,1:38:38.64,1:38:40.25,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6536\u5230\u8BF7\u56DE\u7B54{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Do you copy? Alpha team.{\\r}\r\nDialogue: 0,1:39:29.76,1:39:31.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E2A\u4EBA\u4E0D\u662F\u6211\u4EEC\
- \u7684\u654C\u4EBA{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This\
- \ man is not our enemy.{\\r}\r\nDialogue: 0,1:39:34.43,1:39:35.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8C22\u8C22\u4F60 \u4E0A\u6821{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Thank you, colonel.{\\r}\r\n\
- Dialogue: 0,1:39:53.82,1:39:54.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5988\u5988{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mom?{\\r}\r\nDialogue: 0,1:39:55.95,1:39:57.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6CA1\u4E8B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm all right.{\\r}\r\nDialogue: 0,1:40:09.67,1:40:11.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8863\u670D\u5F88\u6F02\u4EAE \u513F\u5B50\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Nice suit, son.{\\\
- r}\r\nDialogue: 0,1:40:12.70,1:40:14.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5BF9\u4E0D\u8D77{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm so sorry.{\\r}\r\nDialogue: 0,1:40:15.04,1:40:17.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E9B\u53EA\u662F\u8EAB\u5916\u4E4B\
- \u7269 \u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's only stuff, Clark.{\\r}\r\nDialogue: 0,1:40:18.51,1:40:20.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u603B\u662F\u4F1A\u88AB\u53D6\u4EE3\u7684\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It can always be\
- \ replaced.{\\r}\r\nDialogue: 0,1:40:23.38,1:40:24.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u4F60\u4E0D\u80FD\u88AB\u53D6\u4EE3\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you can't be.{\\\
- r}\r\nDialogue: 0,1:40:25.98,1:40:28.39,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5988\u5988 \u4F50\u5FB7\u8BF4\u4ED6\u8981\u627E\u7684\
- \u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Mom,\
- \ Zod said this Codex...{\\r}\r\nDialogue: 0,1:40:28.65,1:40:30.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u4EE5\u8BA9\u6211\u7684\u79CD\u65CF\
- \u91CD\u751F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...he's\
- \ looking for can bring my people back.{\\r}\r\nDialogue: 0,1:40:31.25,1:40:32.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u4E0D\u662F\u5F88\u597D\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Isn't that a good\
- \ thing?{\\r}\r\nDialogue: 0,1:40:37.16,1:40:39.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u8BA4\u4E3A\u4ED6\u4EEC\u60F3\
- \u8981\u5206\u4EAB\u8FD9\u4E2A\u4E16\u754C{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I don't think they're interested in sharing this\
- \ world.{\\r}\r\nDialogue: 0,1:40:40.26,1:40:41.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:40:42.23,1:40:43.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u514B\u62C9\u514B{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Clark.{\\r}\r\nDialogue: 0,1:40:45.00,1:40:46.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053\u600E\u4E48\u963B\u6B62\
- \u4ED6\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know\
- \ how to stop them.{\\r}\r\nDialogue: 0,1:40:48.94,1:40:50.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53D1\u751F\u4E86\u4EC0\u4E48\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What happened down\
- \ there?{\\r}\r\nDialogue: 0,1:40:50.61,1:40:53.45,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u53D1\u73B0\u4E86\u6211\u4EEC\u4E00\
- \u4E2A\u6682\u65F6\u7684\u5F31\u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}He exposed a temporary weakness.{\\r}\r\nDialogue: 0,1:40:54.34,1:40:56.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u5DF2\u7ECF\u4E0D\u91CD\u8981\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It is of little\
- \ consequence...{\\r}\r\nDialogue: 0,1:40:57.55,1:41:00.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u56E0\u4E3A\u6211\u77E5\u9053\u5BC6\u5178\
- \u5728\u54EA\u513F\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...because I have located the Codex.{\\r}\r\nDialogue: 0,1:41:01.25,1:41:03.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6839\u672C\u5C31\u4E0D\u5728\u592A\u7A7A\
- \u8231\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was\
- \ never in the capsule.{\\r}\r\nDialogue: 0,1:41:04.12,1:41:05.79,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E54\u2022\u827E\u5C14\u62FF\u8D70\u4E86\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Jor-el took the\
- \ Codex...{\\r}\r\nDialogue: 0,1:41:06.06,1:41:08.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BB0\u5F55\u7740\u6570\u5341\u4EBF\u4EBA\
- \u57FA\u56E0\u7684\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...the DNA of a billion people, then he bonded it...{\\r}\r\nDialogue:\
- \ 0,1:41:08.76,1:41:11.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u628A\u5B83\u85CF\u5728\u4ED6\u513F\u5B50\u7684\u6BCF\u4E00\u4E2A\
- \u7EC6\u80DE\u5F53\u4E2D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...within his son's individual cells.{\\r}\r\nDialogue: 0,1:41:11.96,1:41:13.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u6709\u6C2A\u661F\u4EBA\u7684\u540E\
- \u4EE3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All of Krypton's\
- \ heirs...{\\r}\r\nDialogue: 0,1:41:13.80,1:41:17.24,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u85CF\u5728\u4E00\u4E2A\u5916\u661F\
- \u96BE\u6C11\u7684\u8EAB\u4F53\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...living hidden in one refugee's body.{\\r}\r\nDialogue:\
- \ 0,1:41:21.30,1:41:23.28,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8981\u4ECE\u5361\u5C14\u2022\u827E\u5C14\u7684\u7EC6\u80DE\u91CC\
- \u62FF\u5230\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Does Kal-El need to be alive...{\\r}\r\nDialogue: 0,1:41:23.54,1:41:26.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9700\u8981\u4ED6\u6D3B\u7740\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...for us to extract\
- \ the Codex from his cells?{\\r}\r\nDialogue: 0,1:41:28.08,1:41:29.25,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u7528{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}No.{\\r}\r\nDialogue: 0,1:41:35.15,1:41:37.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542F\u52A8\u4E16\u754C\u5F15\u64CE{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Release the world engine.{\\\
- r}\r\nDialogue: 0,1:42:09.65,1:42:10.60,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u53D1\u751F\u4E86\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What just happened?{\\r}\r\nDialogue:\
- \ 0,1:42:10.75,1:42:11.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u90A3\u8258\u8239\u4E00\u5206\u4E3A\u4E8C{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}The ship just split in two.{\\r}\r\nDialogue:\
- \ 0,1:42:12.15,1:42:15.26,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E00\u8258\u5F80\u4E1C\u98DE\u53BB\u4E86 \u53E6\u4E00\u8258\u5411\
- \u5357\u534A\u7403\u53BB\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Track one is heading east, track two to the southern hemisphere.{\\\
- r}\r\nDialogue: 0,1:42:15.49,1:42:18.16,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u901F\u5EA6\u6709\u591A\u5FEB\uFF1F - \u63A5\u8FD1\
- ...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- How fast is\
- \ that bogey moving? - Approaching...{\\r}\r\nDialogue: 0,1:42:18.16,1:42:19.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}24\u9A6C\u8D6B \u5E76\u4E14\u8FD8\u5728\u52A0\
- \u901F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...Mach 24\
- \ and accelerating.{\\r}\r\nDialogue: 0,1:42:19.83,1:42:22.90,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u8D77\u6765\u50CF\u662F\u8981\u964D\
- \u843D\u5728\u5357\u5370\u5EA6\u6D0B\u7684\u67D0\u4E2A\u5730\u65B9{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's gonna impact somewhere\
- \ in the Indian Ocean.{\\r}\r\nDialogue: 0,1:42:41.22,1:42:42.86,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53E6\u4E00\u8258\u8239\u4E5F\u5728\u964D\
- \u843D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The rest of\
- \ the ship is descending.{\\r}\r\nDialogue: 0,1:42:43.85,1:42:45.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8367\u5E55\u663E\u793A{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Put it on the board now.{\\r}\r\n\
- Dialogue: 0,1:42:45.22,1:42:46.29,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u9075\u547D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Yes, sir.{\\r}\r\nDialogue: 0,1:42:47.32,1:42:48.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u554A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:43:29.00,1:43:31.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BA9\u5E7D\u7075\u5F15\u64CE\u5F85\u547D\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Bring the phantom\
- \ drive online.{\\r}\r\nDialogue: 0,1:43:53.39,1:43:55.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5DF2\u7ECF\u4E0E\u4E16\u754C\u5F15\u64CE\
- \u5EFA\u7ACB\u8FDE\u63A5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We are now slave to the world engine.{\\r}\r\nDialogue: 0,1:43:56.96,1:43:58.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u542F\u52A8{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Initiate.{\\r}\r\nDialogue: 0,1:44:31.63,1:44:33.67,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u53D1\u5C04\u8FC7\u6765\u7684\
- \u662F\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}What have they hit us with?{\\r}\r\nDialogue: 0,1:44:33.67,1:44:35.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3} \u770B\u4E0A\u53BB\u50CF\u662F\u67D0\u79CD\
- \u91CD\u529B\u6B66\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Looks like some kind of gravity...{\\r}\r\nDialogue: 0,1:44:36.10,1:44:39.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u548C\u4ED6\u4EEC\u7684\u98DE\u8239\u540C\
- \u6B65\u5DE5\u4F5C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...weapon.\
- \ It's working in tandem with their ship.{\\r}\r\nDialogue: 0,1:44:40.07,1:44:43.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E00\u79CD\u53EF\u4EE5\u589E\u52A0\u5730\
- \u7403\u8D28\u91CF\u7684\u4E1C\u897F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Somehow they're increasing the Earth's mass...{\\r}\r\n\
- Dialogue: 0,1:44:43.41,1:44:45.51,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5229\u7528\u5FAE\u5C18\u6C61\u6D4A\u5927\u6C14{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...clouding the atmosphere\
- \ with particulates.{\\r}\r\nDialogue: 0,1:44:47.24,1:44:48.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u54EA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:44:50.18,1:44:51.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u5728\u8FDB\u884C\u73AF\u5883\
- \u6539\u9020{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}They're\
- \ terraforming.{\\r}\r\nDialogue: 0,1:44:51.95,1:44:52.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u662F\u4EC0\u4E48\uFF1F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's that?{\\r}\r\nDialogue:\
- \ 0,1:44:53.58,1:44:54.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u884C\u661F\u5DE5\u7A0B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Planetary engineering...{\\r}\r\nDialogue: 0,1:44:54.95,1:44:58.16,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4FEE\u6539\u5730\u7403\u4E0A\u7684\u5927\
- \u6C14\u548C\u5730\u5F62{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...modifying the Earth's atmosphere and topography.{\\r}\r\nDialogue:\
- \ 0,1:44:58.42,1:44:59.66,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ED6\u4EEC\u8981\u628A\u5730\u7403\u8F6C\u5316\u6210\u6C2A\u661F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Turning Earth into\
- \ Krypton.{\\r}\r\nDialogue: 0,1:45:00.36,1:45:03.50,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F46\u662F\u6211\u4EEC\u4F1A\u600E\u4E48\
- \u6837\uFF1F - \u7406\u8BBA\u4E0A\u8BF4...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- But what happens to us? - Based on these\
- \ readings...{\\r}\r\nDialogue: 0,1:45:03.76,1:45:06.76,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4E0D\u518D\u6709\"\u6211\u4EEC\"\u4E86\
- \ - \u65AF\u65FA\u5A01\u514B\u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- ...there won't be an \"us.\" - General Swanwick,\
- \ sir.{\\r}\r\nDialogue: 0,1:45:07.16,1:45:08.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u63A7\u5236\u5854\u6765\u7535{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm on with the control tower.{\\\
- r}\r\nDialogue: 0,1:45:08.80,1:45:11.64,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u54C8\u8FEA\u4E0A\u6821\u6B63\u5728\u8DEF\u4E0A \u548C\
- \u4ED6\u5728\u4E00\u8D77\u7684\u8FD8\u6709\u8D85\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Colonel Hardy's on his way and he's\
- \ got Superman in tow.{\\r}\r\nDialogue: 0,1:45:11.77,1:45:12.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D85\u4EBA\uFF1F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Superman?{\\r}\r\nDialogue: 0,1:45:13.37,1:45:14.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u4E2A\u5916\u661F\u4EBA \u5148\u751F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The alien, sir.{\\\
- r}\r\nDialogue: 0,1:45:14.80,1:45:17.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u4EEC\u53EB\u4ED6\u8D85\u4EBA{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's what they're calling him. Superman.{\\\
- r}\r\nDialogue: 0,1:45:22.68,1:45:23.88,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u6709\u4E2A\u8BA1\u5212 \u5C06\u519B{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We have a plan, general.{\\\
- r}\r\nDialogue: 0,1:45:24.15,1:45:26.23,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u548C\u6211\u60F3\u7684\u4E00\u6837\u5417\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Is that what I think it\
- \ is?{\\r}\r\nDialogue: 0,1:45:26.78,1:45:28.56,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u4ED6\u5750\u7684\u98DE\u8239{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's the ship he arrived\
- \ in.{\\r}\r\nDialogue: 0,1:45:30.22,1:45:32.86,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u8FD9\u8258\u98DE\u8239\u7531\u67D0\u79CD\u53EB\
- \u5E7D\u7075\u5F15\u64CE\u7684\u7269\u8D28\u9A71\u52A8{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This ship is powered by something\
- \ called a phantom drive.{\\r}\r\nDialogue: 0,1:45:33.12,1:45:34.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B83\u80FD\u591F\u626D\u66F2\u65F6\u7A7A\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It bends space.{\\\
- r}\r\nDialogue: 0,1:45:34.82,1:45:38.80,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F50\u5FB7\u7684\u98DE\u8239\u8FD0\u7528\u4E86\u540C\
- \u6837\u7684\u539F\u7406 \u5982\u679C\u6211\u4EEC\u80FD\u8BA9\u4E24\u8005\u5BF9\
- \u649E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Zod's ship\
- \ uses the same technology, and if we can make the two drives collide...{\\\
- r}\r\nDialogue: 0,1:45:39.03,1:45:40.87,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5C31\u80FD\u521B\u9020\u51FA\u4E00\u4E2A\u5947\u5F02\
- \u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A singularity\
- \ can be created.{\\r}\r\nDialogue: 0,1:45:41.13,1:45:42.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5C31\u50CF\u9ED1\u6D1E - \u5BF9{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Like a black hole.\
- \ - Yes.{\\r}\r\nDialogue: 0,1:45:42.70,1:45:44.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6240\u4EE5\u5982\u679C\u6211\u4EEC\u6253\
- \u5F00\u901A\u9053{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So\
- \ if we open up this doorway...{\\r}\r\nDialogue: 0,1:45:44.47,1:45:46.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7406\u8BBA\u4E0A\u6765\u8BF4\u4ED6\u4EEC\
- \u5C31\u5E94\u8BE5\u88AB\u5438\u8FDB\u53BB{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...they should be pulled back in.{\\r}\r\nDialogue:\
- \ 0,1:45:46.34,1:45:48.84,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6240\u4EE5\u4F60\u60F3\u6211\u4EEC\u7528\u90A3\u4E2A\u70B8\u6389\
- \u4ED6\u4EEC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So you\
- \ want us to bomb them with that?{\\r}\r\nDialogue: 0,1:45:49.07,1:45:51.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C06\u519B \u5982\u679C\u592A\u7A7A\u8239\
- \u8FBE\u5230{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}General,\
- \ that craft maxes out...{\\r}\r\nDialogue: 0,1:45:51.31,1:45:54.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}17000\u78C5 \u53EF\u4EE5\u4ECEC-17\u6295\
- \u63B7\u4E0B\u6765{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...17,000\
- \ pounds, we can drop it from a C-17.{\\r}\r\nDialogue: 0,1:45:54.91,1:45:56.05,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u53EF\u884C\u7684{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's a viable plan.{\\r}\r\n\
- Dialogue: 0,1:45:56.31,1:45:58.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5982\u679C\u6211\u4E0D\u963B\u6B62\u5370\u5EA6\u6D0B\u4E0A\
- \u7684\u673A\u5668{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If\
- \ I don't stop that machine over the Indian Ocean...{\\r}\r\nDialogue: 0,1:45:58.68,1:46:02.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u91CD\u529B\u573A\u8FD8\u4F1A\u7EE7\u7EED\
- \u6269\u5927{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...the\
- \ gravity field will continue to expand.{\\r}\r\nDialogue: 0,1:46:07.76,1:46:10.53,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u90A3\u4E2A\u4E1C\u897F\u662F\
- \u4F7F\u5730\u7403\u6C2A\u661F\u5316{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}If that thing is making Earth more like Krypton...{\\r}\r\
- \nDialogue: 0,1:46:10.89,1:46:12.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u5728\u5B83\u9644\u8FD1\u4E0D\u4F1A\u66F4\u8106\
- \u5F31\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...won't\
- \ you be weaker around it?{\\r}\r\nDialogue: 0,1:46:14.23,1:46:15.54,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6709\u53EF\u80FD{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Maybe.{\\r}\r\nDialogue: 0,1:46:16.40,1:46:18.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u6211\u4E0D\u4F1A\u8BA9\u5B83\u963B\
- \u6B62\u6211\u8BD5\u4E00\u8BD5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I'm not about to let that stop me from trying.{\\r}\r\nDialogue: 0,1:46:19.84,1:46:22.04,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EF\u80FD\u60F3\u540E\u9000\u4E00\
- \u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You might\
- \ want to step back a little bit.{\\r}\r\nDialogue: 0,1:46:24.11,1:46:25.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u80FD\u8981\u518D\u9000\u4E00\u70B9\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Maybe a little bit\
- \ more.{\\r}\r\nDialogue: 0,1:46:57.71,1:46:58.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8299\u62C9{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Faora.{\\r}\r\nDialogue: 0,1:46:59.31,1:47:00.41,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6765\u6307\u6325{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Take command.{\\r}\r\nDialogue: 0,1:47:00.64,1:47:03.78,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u9075\u547D - \u6211\u8981\u4FDD\u8BC1\
- \u59CB\u6E90\u5BA4\u7684\u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Yes, sir. - I need to secure the genesis chamber...{\\\
- r}\r\nDialogue: 0,1:47:04.21,1:47:06.96,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD8\u8981\u5411\u4E00\u4E2A\u8001\u670B\u53CB\u81F4\
- \u610F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and pay\
- \ my respects to an old friend.{\\r}\r\nDialogue: 0,1:47:14.72,1:47:16.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5B88\u62A4\u8005\u524D\u5F80\u5927\u90FD\
- \u4F1A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guardian en\
- \ route to Metropolis...{\\r}\r\nDialogue: 0,1:47:17.63,1:47:18.83,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u643A\u5E26\u5305\u88F9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...package in tow.{\\r}\r\nDialogue:\
- \ 0,1:47:24.10,1:47:27.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u88AB\u544A\u77E5\u4E86F-35\u6218\u673A\u5165\u5883\u7684\u4F1A\u5408\
- \u70B9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Be advised,\
- \ F-35s inbound to rendezvous point.{\\r}\r\nDialogue: 0,1:47:27.27,1:47:29.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u73B0\u5728\u5E94\u8BE5\u5728\u89C6\
- \u89C9\u63A5\u89E6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ should have visual contact now.{\\r}\r\nDialogue: 0,1:48:14.45,1:48:18.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E3B\u63A7\u94A5\u5319\u8BC6\u522B\u6B63\
- \u786E \u59CB\u6E90\u5BA4\u5F85\u547D \u5148\u751F{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Command key accepted. Genesis chamber\
- \ coming online, sir.{\\r}\r\nDialogue: 0,1:48:18.52,1:48:19.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F4F\u624B \u4F50\u5FB7{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Stop this, Zod...{\\r}\r\nDialogue:\
- \ 0,1:48:19.69,1:48:21.83,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u8D81\u8FD8\u6709\u65F6\u95F4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...while there's still time.{\\r}\r\nDialogue: 0,1:48:23.06,1:48:26.37,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD8\u6CA1\u653E\u5F03\u5BF9\u6211\u8BF4\
- \u6559\u5462 \u662F\u5427 \u54EA\u6015\u662F\u6B7B\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Haven't given up lecturing me, have\
- \ you, even in death?{\\r}\r\nDialogue: 0,1:48:26.73,1:48:28.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u4F1A\u8BA9\u4F60\u7528\u5BC6\
- \u5178\u505A\u8FD9\u4E9B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I will not let you use the Codex like this.{\\r}\r\nDialogue: 0,1:48:29.00,1:48:30.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6CA1\u6743\u529B\u963B\u6B62\u6211\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You don't have the\
- \ power to stop me.{\\r}\r\nDialogue: 0,1:48:30.97,1:48:34.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u63D2\u5165\u7684\u4E3B\u63A7\u94A5\
- \u5319\u5DF2\u7ECF\u5E9F\u9664\u4E86\u4F60\u7684\u6743\u9650{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}The command key I have entered is\
- \ revoking your authority.{\\r}\r\nDialogue: 0,1:48:34.24,1:48:37.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u98DE\u8239\u5728\u6211\u638C\u63A7\u4E4B\
- \u4E0B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}This\
- \ ship is now under my control.{\\r}\r\nDialogue: 0,1:49:08.67,1:49:10.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u8FD9\u91CC\
- \u662F\u95EA\u75351\u53F7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Northcom, Lightning 1, request...{\\r}\r\nDialogue: 0,1:49:10.51,1:49:12.03,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8BF7\u6C42\u91CA\u653E\u5BFC\u5F39{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...permission to unleash\
- \ the hounds.{\\r}\r\nDialogue: 0,1:49:12.03,1:49:16.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5468\u56F4\u5B89\u5168 \u53EF\u4EE5\u88AD\
- \u51FB \u53EF\u80FD\u7684\u8BDD\u53D1\u751F\u4F5C\u6218\u635F\u574F\u8BC4\u4F30\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lightning 1, you\
- \ are clear to engage. Send battle damage assessment when able. Out.{\\r}\r\
- \nDialogue: 0,1:49:30.19,1:49:32.57,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7535\u5B50\u8BBE\u5907\u9677\u5165\u6DF7\u4E71{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Avionics are going haywire.\
- \ The gravity field...{\\r}\r\nDialogue: 0,1:49:32.80,1:49:35.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u91CD\u529B\u573A\u7275\u5F15\u6211\u4EEC\
- \u7684\u5BFC\u5F39\u4E0B\u5760 \u6211\u4EEC\u9700\u8981\u66F4\u52A0\u63A5\u8FD1\
- \u76EE\u6807{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is\
- \ pulling our missiles down. We gotta get closer.{\\r}\r\nDialogue: 0,1:49:40.24,1:49:41.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u4E86\u5404\u4F4D{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}All right, everybody...{\\r}\r\nDialogue:\
- \ 0,1:49:41.54,1:49:44.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4EEC\u79BB\u5F00\u4E86 \u73B0\u5728\u5C31\u79BB\u5F00\u5927\
- \u697C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...we're leaving.\
- \ We're leaving the building now.{\\r}\r\nDialogue: 0,1:50:07.56,1:50:09.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5931\u53BB\u4E86\u6211\u7684\u50DA\
- \u673A\u9A7E\u9A76\u5458{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}I just lost my wingman.{\\r}\r\nDialogue: 0,1:50:11.80,1:50:12.94,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u98DE\u673A\u5931\u63A7 \u98DE\u673A\u5931\
- \u63A7 \u98DE\u673A\u5931\u63A7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Mayday! Mayday! Mayday!{\\r}\r\nDialogue: 0,1:50:24.51,1:50:26.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5404\u4F4D \u8FD9\u8FB9{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Everybody, this way! Come on!{\\r}\r\
- \nDialogue: 0,1:50:26.75,1:50:29.82,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5404\u4F4D \u5FEB\u70B9 \u5FEB \u5FEB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Everybody, come on! Keep moving, keep\
- \ moving.{\\r}\r\nDialogue: 0,1:50:36.66,1:50:37.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A79\u59AE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Jenny!{\\r}\r\nDialogue: 0,1:50:41.66,1:50:42.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5929\u54EA{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Oh, my God.{\\r}\r\nDialogue: 0,1:50:42.76,1:50:43.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u739B\u4E3D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Perry!{\\r}\r\nDialogue: 0,1:50:48.20,1:50:50.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8D70\u8FD9\u8FB9 \u5FEB{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Go! There! Go!{\\r}\r\nDialogue: 0,1:50:56.01,1:50:57.51,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u53EF\u4EE5\u5171\u5B58{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Our people can co-exist.{\\\
- r}\r\nDialogue: 0,1:50:58.15,1:51:00.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8FD9\u6837\u6211\u4EEC\u5C31\u50CF\u4F60\u513F\u5B50\
- \u90A3\u6837{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}So we\
- \ can suffer through years of pain{\\r}\r\nDialogue: 0,1:51:00.12,1:51:02.65,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6491\u8FC7\u6570\u5E74\u7684\u4F24\u75DB\
- \u6765\u9002\u5E94\u73AF\u5883\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}trying to adapt like your son has?{\\r}\r\nDialogue: 0,1:51:02.99,1:51:04.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u8BF4\u7684\u662F\u79CD\u65CF\u5C60\
- \u6740 - \u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- You're talking about genocide. - Yes.{\\r}\r\nDialogue: 0,1:51:04.89,1:51:07.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u800C\u4E14\u6211\u6B63\u548C\u4E00\u4E2A\
- \u9B3C\u9B42\u4E89\u8BBA\u5176\u529F\u8FC7{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And I'm arguing its merits with a ghost.{\\r}\r\n\
- Dialogue: 0,1:51:08.86,1:51:10.67,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u4EEC\u90FD\u662F\u9B3C\u9B42 \u4F50\u5FB7{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're both ghosts, Zod.{\\\
- r}\r\nDialogue: 0,1:51:10.89,1:51:14.40,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u4E0D\u660E\u767D\u5417\uFF1F\u4F60\u4E0D\u613F\
- \u653E\u5F03\u7684\u6C2A\u661F\u5DF2\u7ECF\u6CA1\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Can't you see that? The Krypton you're\
- \ clinging onto is gone.{\\r}\r\nDialogue: 0,1:51:14.66,1:51:17.23,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u68C0\u67E5\u597D\u5165\u4FB5\u7684\
- \u60C5\u62A5\u4E86\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Ship, have you managed to quarantine this invasive intelligence?{\\\
- r}\r\nDialogue: 0,1:51:17.50,1:51:18.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u5931\u8D25\u4E86 - \u597D\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- You'll fail. - I have.{\\\
- r}\r\nDialogue: 0,1:51:18.63,1:51:20.05,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u51C6\u5907\u597D\u7EC8\u7ED3\u8FD9\u4E00\u5207{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Then prepare to terminate\
- \ it.{\\r}\r\nDialogue: 0,1:51:20.30,1:51:22.08,chs,,0000,0000,0000,,{\\fn\u534E\
- \u6587\u6977\u4F53\\blur3}\u6211\u4E0D\u60F3\u4E89\u5435\u4E86 \u8BA9\u6211\
- \u95ED\u5634{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ tired of this debate. Silencing me...{\\r}\r\nDialogue: 0,1:51:22.34,1:51:23.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6539\u53D8\u4E0D\u4E86\u4EFB\u4F55\u4E8B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...won't change\
- \ anything.{\\r}\r\nDialogue: 0,1:51:26.01,1:51:27.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u513F\u5B50...{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My son...{\\r}\r\nDialogue: 0,1:51:28.14,1:51:29.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6BD4\u4F60\u5F3A\u4E24\u500D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is twice the man you were.{\\\
- r}\r\nDialogue: 0,1:51:32.48,1:51:34.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4ED6\u4F1A\u7ED3\u675F\u6211\u4EEC\u53D1\u8D77\u7684\
- \u79CD\u79CD{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And\
- \ he will finish what we started.{\\r}\r\nDialogue: 0,1:51:35.08,1:51:36.32,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4FDD\u8BC1{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I can promise you that.{\\r}\r\nDialogue:\
- \ 0,1:51:41.52,1:51:42.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u544A\u8BC9\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Tell me...{\\r}\r\nDialogue: 0,1:51:43.16,1:51:46.73,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u4E54\u2022\u827E\u5C14\u7684\
- \u8BB0\u5FC6\u548C\u826F\u77E5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...you have Jor-El's memories, his conscience.{\\r}\r\nDialogue: 0,1:51:47.43,1:51:50.20,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u4F60\u7ECF\u5386\u8FC7\u4ED6\u7684\
- \u75DB\u82E6\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Can you experience his pain?{\\r}\r\nDialogue: 0,1:51:51.87,1:51:55.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4F1A\u4ECE\u4F60\u513F\u5B50\u7684\
- \u5C38\u4F53\u91CC\u63D0\u53D6\u5BC6\u5178{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I will harvest the Codex from your son's corpse...{\\\
- r}\r\nDialogue: 0,1:51:55.90,1:52:01.21,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5728\u4ED6\u7684\u5C38\u9AA8\u4E4B\u4E0A\u91CD\u5EFA\
- \u6C2A\u661F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...and\
- \ I will rebuild Krypton atop his bones.{\\r}\r\nDialogue: 0,1:52:58.63,1:52:59.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8A79\u59AE{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Jenny.{\\r}\r\nDialogue: 0,1:52:59.60,1:53:02.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u8A79\u59AE \u8A79\u59AE \u4F60\u5728\
- \u54EA\uFF1F - \u6211\u5728\u8FD9\u91CC{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Jenny. Jenny, where are you? - I'm here!{\\r}\r\
- \nDialogue: 0,1:53:02.60,1:53:03.90,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u8FD9\u91CC \u8FD9\u91CC - \u8A79\u59AE{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- I'm here. Here. - Jenny.{\\\
- r}\r\nDialogue: 0,1:53:03.91,1:53:05.41,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6491\u4F4F \u6491\u4F4F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hold on, hold on.{\\r}\r\nDialogue: 0,1:53:05.64,1:53:06.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5361\u4F4F\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm stuck.{\\r}\r\nDialogue: 0,1:53:06.84,1:53:08.52,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6211\u52A8\u4E0D\u4E86 \u5361\u4F4F\u4E86\
- \ - \u597D\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ I can't get free. I'm stuck. - Okay.{\\r}\r\nDialogue: 0,1:53:08.78,1:53:11.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u4F1A\u628A\u4F60\u6551\u51FA\
- \u53BB \u4F60\u522B\u52A8{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We'll get you out of there, all right? Just sit tight.{\\r}\r\nDialogue:\
- \ 0,1:53:11.58,1:53:12.15,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E0D\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}No,\
- \ no, no!{\\r}\r\nDialogue: 0,1:53:12.41,1:53:14.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u522B\u79BB\u5F00\u6211 - \u6211\u4E0D\
- \u4F1A\u79BB\u5F00\u4F60{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Don't leave me. - We're not gonna leave you.{\\r}\r\nDialogue:\
- \ 0,1:53:14.35,1:53:15.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u597D - \u4F26\u5DF4\u7B2C{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- Okay. - Lombard!{\\r}\r\nDialogue: 0,1:53:15.78,1:53:19.13,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4ED6\u5988\u7684\u5FEB\u8FC7\u6765\u5E2E\
- \u5FD9 - \u8BE5\u6B7B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- Get your ass over here and help me. - Damn it.{\\r}\r\nDialogue:\
- \ 0,1:53:21.12,1:53:23.10,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u7528\u8FD9\u4E2A\u64AC - \u7ED9\u4F60{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}- We just gotta move this. - Here.{\\\
- r}\r\nDialogue: 0,1:53:23.33,1:53:25.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7528\u529B\u8BD5\u8BD5\u770B \u597D\u4E86\u5417\uFF1F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Slide that in. You\
- \ push, I'll pull, okay?{\\r}\r\nDialogue: 0,1:53:25.63,1:53:26.66,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6765\u5427{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Go.{\\r}\r\nDialogue: 0,1:53:30.87,1:53:32.17,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u7528\u529B - \u5929\u554A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Push! - Oh, my God.{\\\
- r}\r\nDialogue: 0,1:53:32.43,1:53:34.27,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u8D8A\u6765\u8D8A\u8FD1\u4E86 \u7528\u529B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's getting closer! Come on,\
- \ push!{\\r}\r\nDialogue: 0,1:53:36.10,1:53:38.31,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u8FD9\u91CC\
- \u662F\u5B88\u62A4\u8005 \u53EF\u4EE5\u6295\u63B7\u5417\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Northcom, this is Guardian. Are we\
- \ cleared?{\\r}\r\nDialogue: 0,1:53:38.84,1:53:39.84,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u884C \u5B88\u62A4\u8005{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Negative, Guardian.{\\r}\r\n\
- Dialogue: 0,1:54:04.57,1:54:07.01,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u5FEB \u7528\u529B\u554A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Come on! Push!{\\r}\r\nDialogue: 0,1:54:59.02,1:55:00.36,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u505A\u5230\u4E86{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He did it.{\\r}\r\nDialogue: 0,1:55:02.56,1:55:03.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5317\u65B9\u53F8\u4EE4\u90E8 \u8FD9\u91CC\
- \u662F\u5B88\u62A4\u8005{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Northcom, this is Guardian.{\\r}\r\nDialogue: 0,1:55:04.06,1:55:06.30,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u6B63\u7ECF\u8FC7\u8C03\u6574\
- \u7EBF \u4E00\u5207\u826F\u597D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}We're passing through phase line red. Good to go.{\\r}\r\nDialogue:\
- \ 0,1:55:06.56,1:55:07.73,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4E00\u8DEF\u5E73\u5B89 \u5B88\u62A4\u8005{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Godspeed, Guardian.{\\r}\r\nDialogue:\
- \ 0,1:55:07.73,1:55:10.14,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6574\u7406\u5305\u88F9 \u51C6\u5907\u6295\u63B7{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Arm the package. You are cleared hot.{\\\
- r}\r\nDialogue: 0,1:55:10.40,1:55:12.47,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u51C6\u5907\u53D1\u51FA\u6700\u540E\u4E00\u51FB{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We're lining up for the\
- \ final run.{\\r}\r\nDialogue: 0,1:55:13.27,1:55:15.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73B0\u5728\u770B\u4F60\u548C\u6C49\u5BC6\
- \u5C14\u987F\u7684\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}It's up to you and Hamilton now.{\\r}\r\nDialogue: 0,1:55:55.44,1:55:56.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u641E\u4EC0\u4E48{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}You gotta be kidding me.{\\r}\r\nDialogue:\
- \ 0,1:55:56.45,1:55:59.30,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7406\u8D27\u5458 \u5305\u88F9\u662F\u5426\u6B66\u88C5\u5B8C\u6BD5\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Loadmaster,\
- \ is the package ready to drop?{\\r}\r\nDialogue: 0,1:55:59.35,1:56:00.62,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u884C \u5B88\u62A4\u8005{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Negative, Guardian.{\\r}\r\n\
- Dialogue: 0,1:56:00.85,1:56:02.42,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u51FA\u95EE\u9898\u4E86 \u4E0D\u8BE5\u8FD9\u6837\u7684{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}There's something wrong.\
- \ It's not supposed to do this.{\\r}\r\nDialogue: 0,1:56:02.65,1:56:04.43,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u90A3\u5E94\u8BE5\u600E\u6837\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}What's it supposed\
- \ to do?{\\r}\r\nDialogue: 0,1:56:04.65,1:56:07.69,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5E94\u8BE5\u5B8C\u5168\u63D2\u8FDB\u53BB\
- \ - \u6211\u770B\u770B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- It's supposed to go in all the way. - Let me take a look.{\\\
- r}\r\nDialogue: 0,1:56:07.96,1:56:09.53,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u526F\u9A7E\u9A76\u63A5\u7BA1\u98DE\u673A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Co-pilot's aircraft.{\\r}\r\
- \nDialogue: 0,1:56:10.26,1:56:11.76,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u526F\u9A7E\u9A76\u63A5\u7BA1\u98DE\u673A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Co-pilot's aircraft.{\\r}\r\
- \nDialogue: 0,1:56:18.50,1:56:21.17,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u5DF2\u7ECF\u6392\u5217\u597D\u51C6\u5907\
- \u6295\u63B7\u4E86 \u8FD8\u5728\u7B49\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We are lined up for the drop. What's\
- \ the hold up?{\\r}\r\nDialogue: 0,1:56:21.44,1:56:22.44,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u51FA\u73B0\u4E86\u70B9\u95EE\u9898{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We've had a setback.{\\\
- r}\r\nDialogue: 0,1:56:38.19,1:56:39.69,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u7784\u51C6\u98DE\u673A{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Target that aircraft.{\\r}\r\nDialogue: 0,1:56:43.56,1:56:45.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u9501\u5B9A\u76EE\u6807{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Target locked.{\\r}\r\nDialogue: 0,1:56:54.80,1:56:55.68,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,1:56:55.90,1:56:58.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4F60\u6BC1\u4E86\u8FD9\u8258\
- \u98DE\u8239{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If you\
- \ destroy this ship...{\\r}\r\nDialogue: 0,1:56:58.24,1:57:00.91,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u662F\u6BC1\u4E86\u6C2A\u661F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you destroy Krypton!{\\\
- r}\r\nDialogue: 0,1:57:03.71,1:57:05.89,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6C2A\u661F\u672C\u6765\u8FD8\u6709\u673A\u4F1A\u7684\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Krypton had its\
- \ chance.{\\r}\r\nDialogue: 0,1:57:59.87,1:58:01.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B2\u6069\u5C0F\u59D0 \u8FD9\u513F\u4E0D\
- \u5B89\u5168{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss\
- \ Lane! It's not safe for you...{\\r}\r\nDialogue: 0,1:58:01.97,1:58:02.88,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u79BB\u5F00\u90A3\u513F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...over there!{\\r}\r\nDialogue: 0,1:58:03.10,1:58:03.71,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u83B2\u6069\u5C0F\u59D0{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Miss Lane!{\\r}\r\nDialogue: 0,1:58:33.60,1:58:35.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u79BB\u5F00 \u5FEB{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Move now! Go!{\\r}\r\nDialogue: 0,1:58:56.19,1:58:57.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6B7B\u5F97\u5149\u8363{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}A good death...{\\r}\r\nDialogue:\
- \ 0,1:58:57.46,1:58:59.03,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u662F\u6B7B\u5F97\u5176\u6240{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...is its own reward.{\\r}\r\nDialogue: 0,2:00:01.49,2:00:02.93,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4EEC\u8D70\u4E86\u5417\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are they gone?{\\r}\r\
- \nDialogue: 0,2:00:04.09,2:00:05.50,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u60F3\u662F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I think so.{\\r}\r\nDialogue: 0,2:00:07.40,2:00:08.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u6551\u4E86\u6211\u4EEC{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He saved us.{\\r}\r\nDialogue:\
- \ 0,2:00:34.22,2:00:37.43,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4ED6\u4EEC\u8BF4\u521D\u543B\u4E4B\u540E\u5C31\u6BCF\u51B5\u6108\
- \u4E0B\u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ know, they say it's all downhill after the first kiss.{\\r}\r\nDialogue:\
- \ 0,2:00:40.90,2:00:43.93,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u5F88\u786E\u5B9A \u4ED6\u4EEC\u53EA\u7EDF\u8BA1\u4E86\u4EB2\
- \u543B\u4EBA\u7C7B\u7684\u6570\u636E{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I'm pretty sure that only counts when you're kissing a\
- \ human.{\\r}\r\nDialogue: 0,2:01:13.29,2:01:14.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u8FD9\u4E2A{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Look at this.{\\r}\r\nDialogue: 0,2:01:17.07,2:01:21.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4EEC\u672C\u53EF\u4EE5\u5728\u8FD9\
- \u7247\u5E9F\u589F\u4E0A\u5EFA\u7ACB\u8D77\u4E00\u4E2A\u65B0\u7684\u6C2A\u661F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}We could have built\
- \ a new Krypton in this squalor.{\\r}\r\nDialogue: 0,2:01:21.24,2:01:24.34,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F46\u662F\u5728\u6211\u4EEC\u548C\u4EBA\
- \u7C7B\u4E4B\u95F4 \u4F60\u9009\u62E9\u4E86\u540E\u8005{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}But you chose the humans over us.{\\\
- r}\r\nDialogue: 0,2:01:25.77,2:01:27.31,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u7684\u5B58\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}I exist...{\\r}\r\nDialogue: 0,2:01:27.58,2:01:29.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4EC5\u662F\u4E3A\u4E86\u5B88\u62A4\u6C2A\
- \u661F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...only to\
- \ protect Krypton.{\\r}\r\nDialogue: 0,2:01:31.75,2:01:35.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u662F\u81EA\u6211\u51FA\u751F\u4EE5\
- \u6765\u7684\u552F\u4E00\u76EE\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}That is the sole purpose for which I was born.{\\r}\r\n\
- Dialogue: 0,2:01:36.99,2:01:39.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\
- \u4F53\\blur3}\u6211\u6240\u505A\u7684\u4E00\u5207{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}And every action I take...{\\r}\r\nDialogue:\
- \ 0,2:01:39.35,2:01:41.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u65E0\u8BBA\u591A\u66B4\u529B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}...no matter how violent...{\\r}\r\nDialogue: 0,2:01:41.62,2:01:43.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u591A\u4E48\u6B8B\u5FCD{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...or how cruel...{\\r}\r\nDialogue:\
- \ 0,2:01:44.53,2:01:49.11,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u7686\u662F\u4E3A\u4E86\u6211\u7684\u4EBA\u6C11\u7684\u798F\u7949\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...is for the greater\
- \ good of my people.{\\r}\r\nDialogue: 0,2:01:53.43,2:01:54.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u73B0\u5728{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}And now...{\\r}\r\nDialogue: 0,2:01:55.10,2:01:57.38,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u6CA1\u6709\u4EBA\u6C11\u4E86{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I have no people.{\\\
- r}\r\nDialogue: 0,2:02:00.81,2:02:10.00,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u662F\u4F60\u593A\u8D70\u4E86\u6211\u7684\u7075\u9B42\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}My soul that is\
- \ what you have taken from me.{\\r}\r\nDialogue: 0,2:02:16.79,2:02:19.29,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u8981\u8BA9\u4ED6\u4EEC\u627F\u62C5\
- \u75DB\u82E6{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm\
- \ going to make them suffer, Kal.{\\r}\r\nDialogue: 0,2:02:19.53,2:02:22.97,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6551\u4E0B\u7684\u4EBA\u7C7B \u6211\
- \u8981\u4ECE\u4F60\u624B\u91CC...{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}These humans you've adopted, I will take them all from you...{\\r}\r\
- \nDialogue: 0,2:02:23.20,2:02:26.18,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E00\u4E2A\u4E00\u4E2A\u593A\u8D70 - \u4F60\u8FD9\
- \u4E2A\u602A\u7269 \u4F50\u5FB7{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}- ...one by one. - You're a monster, Zod...{\\r}\r\nDialogue:\
- \ 0,2:02:28.80,2:02:30.61,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u4F1A\u963B\u6B62\u4F60\u7684{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...and I'm gonna stop you.{\\r}\r\nDialogue: 0,2:04:11.61,2:04:14.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u7ED3\u675F\u8FD9\u4E00\u5207\u53EA\u6709\
- \u4E00\u4E2A\u529E\u6CD5{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}There's only one way this ends, Kal.{\\r}\r\nDialogue: 0,2:04:14.14,2:04:15.99,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u662F\u4F60\u6B7B{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Either you die...{\\r}\r\nDialogue:\
- \ 0,2:04:16.24,2:04:17.52,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u5C31\u662F\u6211\u4EA1{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}...or I do.{\\r}\r\nDialogue: 0,2:04:48.68,2:04:50.82,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u88AB\u5F53\u505A\u4E00\u4E2A\u6218\
- \u58EB\u8BAD\u7EC3{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ was bred to be a warrior, Kal.{\\r}\r\nDialogue: 0,2:04:51.68,2:04:55.70,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u7EC8\u751F\u90FD\u5728\u53D7\u8BAD\
- \u63A7\u5236\u611F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Trained my entire life to master my senses.{\\r}\r\nDialogue: 0,2:04:55.88,2:04:59.49,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u5728\u54EA\u53D7\u8BAD\u7684\uFF1F\
- \u519C\u573A\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\\
- blur3}Where did you train? On a farm?{\\r}\r\nDialogue: 0,2:07:08.42,2:07:12.80,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5982\u679C\u4F60\u6DF1\u7231\u7740\u8FD9\
- \u7FA4\u4EBA\u7C7B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}If\
- \ you love these people so much...{\\r}\r\nDialogue: 0,2:07:13.19,2:07:15.46,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u4E3A\u4ED6\u4EEC\u8FFD\u60BC\u5427\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you can mourn\
- \ for them.{\\r}\r\nDialogue: 0,2:07:19.93,2:07:21.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u8981{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Don't do this!{\\r}\r\nDialogue: 0,2:07:24.20,2:07:25.01,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F4F\u624B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,2:07:31.37,2:07:32.35,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Stop!{\\r}\r\nDialogue: 0,2:07:34.71,2:07:35.85,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u53EF\u80FD{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}Never.{\\r}\r\nDialogue: 0,2:09:10.54,2:09:11.92,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4ED6\u5988\u662F\u8822\u86CB\u5417\
- \uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Are you effing\
- \ stupid?{\\r}\r\nDialogue: 0,2:09:12.14,2:09:14.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u6709\u90A3\u4E48\u591A\u7A7A\u4E2D\
- \u4FA6\u5BDF\u673A{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}It's\
- \ one of your surveillance drones.{\\r}\r\nDialogue: 0,2:09:14.11,2:09:16.61,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u8FD9\u73A9\u610F\u503C1200\u4E07{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}That's a $12,000,000 piece\
- \ of hardware.{\\r}\r\nDialogue: 0,2:09:16.78,2:09:17.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u66FE\u7ECF\u503C{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}It was.{\\r}\r\nDialogue: 0,2:09:18.61,2:09:21.15,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u77E5\u9053\u4F60\u60F3\u8FFD\u8E2A\
- \u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I know you're\
- \ trying to find out where I hang my cape.{\\r}\r\nDialogue: 0,2:09:21.75,2:09:25.00,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F46\u662F\u6CA1\u95E8 - \u90A3\u6211\
- \u660E\u786E\u95EE\u4F60\u4E00\u4E2A\u95EE\u9898{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- You won't. - Then I'll ask the obvious question:{\\\
- r}\r\nDialogue: 0,2:09:25.22,2:09:28.82,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4EEC\u600E\u4E48\u77E5\u9053\u6709\u4E00\u5929\
- \ \u4F60\u4E0D\u4F1A\u635F\u5BB3\u7F8E\u56FD\u7684\u5229\u76CA\uFF1F{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}How do we know you won't\
- \ one day act against America's interests?{\\r}\r\nDialogue: 0,2:09:28.92,2:09:30.77,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u5728\u582A\u8428\u65AF\u957F\u5927\
- \ \u5C06\u519B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I\
- \ grew up in Kansas, general.{\\r}\r\nDialogue: 0,2:09:31.23,2:09:33.40,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u4E5F\u7B97\u662F\u7F8E\u56FD\u4EBA\
- \u4E86{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I'm about\
- \ as American as it gets.{\\r}\r\nDialogue: 0,2:09:33.66,2:09:34.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Look...{\\r}\r\nDialogue: 0,2:09:34.80,2:09:36.27,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u613F\u610F\u5E2E\u5FD9{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...I'm here to help...{\\r}\r\
- \nDialogue: 0,2:09:36.50,2:09:38.74,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u5FC5\u987B\u662F\u6211\u5FC3\u7518\u60C5\u613F\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...but it has to\
- \ be on my own terms.{\\r}\r\nDialogue: 0,2:09:38.97,2:09:40.81,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u53EF\u4EE5\u8FD9\u6837\u8BF4\u670D\
- \u534E\u76DB\u987F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You\
- \ have to convince Washington of that.{\\r}\r\nDialogue: 0,2:09:41.07,2:09:45.57,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5C31\u7B97\u6211\u613F\u610F\u8BF4 \u4F60\
- \u8BA4\u4E3A\u4ED6\u4EEC\u4F1A\u542C\u5417\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Even if I were willing to try, what makes you think\
- \ they'd listen?{\\r}\r\nDialogue: 0,2:09:46.14,2:09:47.74,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4E0D\u77E5\u9053 \u5C06\u519B{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I don't know, general.{\\r}\r\
- \nDialogue: 0,2:09:49.14,2:09:50.85,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F46\u662F\u6211\u53EA\u80FD\u76F8\u4FE1\u4F60{\\r}\\\
- N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Guess I'll just have to\
- \ trust you.{\\r}\r\nDialogue: 0,2:10:00.42,2:10:03.87,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u4F60\u7B11\u4EC0\u4E48 \u4E0A\u5C09\uFF1F\
- \ - \u6CA1\u4EC0\u4E48 \u957F\u5B98{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}- What are you smiling about? - Nothing, Sir.{\\\
- r}\r\nDialogue: 0,2:10:07.13,2:10:09.71,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u89C9\u5F97\u4ED6\u5E05\u7206\u4E86{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}I just think he's kind of hot.{\\\
- r}\r\nDialogue: 0,2:10:11.27,2:10:13.37,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}- \u4E0A\u8F66 \u4E0A\u5C09 - \u9075\u547D{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Get in the car, captain.\
- \ - Mm-hm. Yes, sir.{\\r}\r\nDialogue: 0,2:10:23.34,2:10:26.55,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u4E00\u76F4\u575A\u4FE1\u4F60\u751F\
- \u6765\u8981\u505A\u5927\u4E8B\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}He always believed you were meant for greater things.{\\\
- r}\r\nDialogue: 0,2:10:26.81,2:10:28.32,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u5F53\u8FD9\u4E00\u5929\u6765\u4E34\u65F6{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}And that when the day came...{\\\
- r}\r\nDialogue: 0,2:10:28.55,2:10:31.36,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u7684\u80A9\u8180\u8981\u80FD\u625B\u8D77\u5343\
- \u65A4{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...your shoulders\
- \ would be able to bear the weight.{\\r}\r\nDialogue: 0,2:10:31.62,2:10:35.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u662F\u554A \u6211\u5E0C\u671B\u4ED6\u80FD\
- \u591F\u770B\u5230\u8FD9\u4E00\u5207{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Yeah, I just wish he could have been here to see it finally\
- \ happen.{\\r}\r\nDialogue: 0,2:10:35.89,2:10:38.47,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ED6\u770B\u5230\u4E86 \u514B\u62C9\u514B\
- \ \u76F8\u4FE1\u6211{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}He\
- \ saw it, Clark, believe me.{\\r}\r\nDialogue: 0,2:11:25.37,2:11:28.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F60\u4E0D\u62EF\u6551\u5730\u7403\u7684\
- \u65F6\u5019 \u60F3\u5E72\u70B9\u4EC0\u4E48\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}What are you going to do when you're not saving the\
- \ world?{\\r}\r\nDialogue: 0,2:11:28.44,2:11:32.19,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u6709\u60F3\u8FC7\u5417\uFF1F - \u60F3\
- \u8FC7 \u771F\u7684{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}-\
- \ Have you given any thought to that? - I have, actually. Heh, heh.{\\\
- r}\r\nDialogue: 0,2:11:33.78,2:11:37.79,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6211\u4F1A\u627E\u4E00\u4EFD\u5DE5\u4F5C \u80FD\u591F\
- \u4FDD\u6301\u9AD8\u5EA6\u8B66\u89C9{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}I gotta find a job where I can keep my ear to the ground.{\\\
- r}\r\nDialogue: 0,2:11:43.02,2:11:45.09,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4EBA\u4EEC\u4E0D\u4F1A\u591A\u770B\u6211\u4E24\u773C\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Where people won't\
- \ look twice...{\\r}\r\nDialogue: 0,2:11:45.36,2:11:49.14,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F53\u6211\u8981\u53BB\u5371\u9669\u7684\
- \u5730\u65B9 \u4E0D\u4F1A\u95EE\u6211\u95EE\u9898{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}...when I want to go somewhere dangerous and start\
- \ asking questions...{\\r}\r\nDialogue: 0,2:12:03.24,2:12:06.28,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u884C\u884C\u597D \u9732\u6613\u4E1D \u4F60\
- \u4EC0\u4E48\u65F6\u5019\u80FD\u53EF\u601C\u6211\u4E00\u4E0B\u5462\uFF1F{\\\
- r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Come on, Lois. When\
- \ are you gonna throw me a bone?{\\r}\r\nDialogue: 0,2:12:07.55,2:12:09.22,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4ECA\u665A\u6BD4\u8D5B\u7684\u7EDD\u4F73\
- \u4F4D\u5B50 \u600E\u4E48\u6837\uFF1F{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Courtside seats to the game tonight.{\\r}\r\nDialogue:\
- \ 0,2:12:09.65,2:12:11.22,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}- \u4EC0\u4E48\uFF1F - \u6211\u8BF4...{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}- What do you say? - I say...{\\r}\r\nDialogue:\
- \ 0,2:12:11.45,2:12:13.99,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u4F60\u5E94\u8BE5\u53BB\u9493\u9493\u5B9E\u4E60\u751F{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}...you should go back to trolling\
- \ the intern pool.{\\r}\r\nDialogue: 0,2:12:14.26,2:12:17.63,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u53EF\u80FD\u4F1A\u6709\u597D\u8FD0 \u62B1\
- \u6B49{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}You'll probably\
- \ have more luck. Sorry.{\\r}\r\nDialogue: 0,2:12:19.43,2:12:20.10,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u770B\u6BD4\u8D5B\uFF1F{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Courtside?{\\r}\r\nDialogue: 0,2:12:20.33,2:12:22.07,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u522B\u53BB - \u4E0D\u53BB{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Don't. Ha, ha, ha. \
- \ - No.{\\r}\r\nDialogue: 0,2:12:22.30,2:12:25.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u4F26\u5DF4\u7B2C \u83B2\u6069 \u6765\u89C1\
- \u89C1\u65B0\u7684\u7279\u7EA6\u901A\u8BAF\u5458{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Lombard, Lane, I want you to meet our new stringer.{\\\
- r}\r\nDialogue: 0,2:12:25.33,2:12:28.58,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u4F60\u7ED9\u4ED6\u4F20\u6388\u4F20\u6388\u7A8D\u95E8\
- \ \u4ED6\u53EB\u5361\u62C9\u514B\u2022\u80AF\u7279{\\r}\\N{\\fnCronos Pro\
- \ Subhead\\fs14\\1c&H3CF1F3&\\blur3}I want you to show him the ropes. This\
- \ is Clark Kent.{\\r}\r\nDialogue: 0,2:12:28.80,2:12:30.11,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u597D\u8FD0 \u5B69\u5B50{\\r}\\N{\\fnCronos\
- \ Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Good luck, kid.{\\r}\r\nDialogue:\
- \ 0,2:12:31.64,2:12:32.91,chs,,0000,0000,0000,,{\\fn\u534E\u6587\u6977\u4F53\
- \\blur3}\u6211\u53EB\u65AF\u8482\u592B{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\\
- 1c&H3CF1F3&\\blur3}Hey. Steve.{\\r}\r\nDialogue: 0,2:12:33.14,2:12:34.64,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}- \u5E78\u4F1A - \u5E78\u4F1A{\\r}\\N{\\\
- fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}- Nice to meet you. -\
- \ You too.{\\r}\r\nDialogue: 0,2:12:34.64,2:12:35.48,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u55E8{\\r}\\N{\\fnCronos Pro Subhead\\\
- fs14\\1c&H3CF1F3&\\blur3}Hi.{\\r}\r\nDialogue: 0,2:12:36.41,2:12:37.75,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u6211\u53EB\u9732\u6613\u4E1D\u2022\u83B2\
- \u6069{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Lois Lane.{\\\
- r}\r\nDialogue: 0,2:12:38.58,2:12:40.12,chs,,0000,0000,0000,,{\\fn\u534E\u6587\
- \u6977\u4F53\\blur3}\u6B22\u8FCE\u6765\u300A\u661F\u7403\u65E5\u62A5\u300B\
- {\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Welcome to the \
- \ Planet.{\\r}\r\nDialogue: 0,2:12:43.85,2:12:46.33,chs,,0000,0000,0000,,{\\\
- fn\u534E\u6587\u6977\u4F53\\blur3}\u5F88\u9AD8\u5174\u6765\u8FD9 \u9732\u6613\
- \u4E1D{\\r}\\N{\\fnCronos Pro Subhead\\fs14\\1c&H3CF1F3&\\blur3}Glad to be\
- \ here, Lois.{\\r}\r\n"
- headers:
- cache-control:
- - max-age=2678400
- connection:
- - keep-alive
- # content-disposition:
- # - !!python/str "subtitle; filename=\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- # \u4F53&\u82F1\u6587.ass\""
- content-length:
- - '239576'
- content-type:
- - application/octet-stream
- date:
- - Sat, 30 Nov 2019 14:08:00 GMT
- expires:
- - Tue, 31 Dec 2019 14:08:00 GMT
- master:
- - Windu
- server:
- - nginx
- x-cache:
- - HIT
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_query_episode.yaml b/tests/cassettes/assrt/test_query_episode.yaml
deleted file mode 100644
index 4c3f71e19..000000000
--- a/tests/cassettes/assrt/test_query_episode.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27The+Big+Bang+Theory+S07E05%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"The Big Bang Theory S07E05\",\"\
- result\":\"succeed\",\"subs\":[{\"subtype\":\"Subrip(srt)\",\"id\":618200,\"\
- lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"langchs\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2018-01-26 19:23:52\",\"release_site\":\"\u4F0A\u7538\
- \u56ED\",\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\u7B2C7\u5B63\u5168\
- 24\u96C6The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\",\"videoname\":\"\
- The.Big.Bang.Theory.S07.1080p.WEB-DL.DD5.1.H.264\",\"revision\":0},{\"subtype\"\
- :\"Subrip(srt)\",\"id\":316965,\"vote_score\":0,\"upload_time\":\"2014-12-06\
- \ 04:13:43\",\"native_name\":\"\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\
- \u5B63 \u7B2C 5 \u96C6\",\"videoname\":\"The Big Bang Theory S07E05 720p HDTV\
- \ X264-DIMENSION\",\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":316966,\"\
- vote_score\":0,\"upload_time\":\"2014-12-06 04:13:43\",\"native_name\":\"\u751F\
- \u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\u5B63 \u7B2C 5 \u96C6\",\"videoname\"\
- :\"The Big Bang Theory S07E05 720p HDTV X264-DIMENSION\",\"revision\":0},{\"\
- subtype\":\"SSA\",\"id\":264973,\"lang\":{\"desc\":\"\u53CC\u8BED\",\"langlist\"\
- :{\"langdou\":true}},\"vote_score\":80,\"upload_time\":\"2014-11-02 10:41:05\"\
- ,\"native_name\":\"The Big Bang Theory S07\\/\u751F\u6D3B\u5927\u7206\u70B8\
- \ \u7B2C\u4E03\u5B63\\/The Big Bang Theory Season 07\",\"videoname\":\"The.Big.Bang.Theory.S07E05.720p.BluRay.x264-DEMAND\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":261680,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2014-08-30 05:11:21\",\"native_name\":\"\u751F\u6D3B\u5927\u7206\u70B8\
- \ \u7B2C\u4E03\u5B63\\/\u5929\u624D\u7406\u8BBA\u4F20\",\"videoname\":\"The.Big.Bang.Theory.S07.720p.BluRay.x264-DEMAND\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":244659,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langchs\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-19 03:34:04\"\
- ,\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\\/\u751F\u6D3B\u5927\u7206\
- \u70B8 \u7B2C\u4E03\u5B63\u7B2C\u4E94\u96C6\",\"videoname\":\"The Big Bang\
- \ Theory S07E05 the.big.bang.theory.705.hdtv-lol\",\"revision\":0},{\"subtype\"\
- :\"Subrip(srt)\",\"id\":244640,\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langchs\":true,\"langeng\":true,\"langdou\":true,\"\
- langcht\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-18 23:33:24\"\
- ,\"native_name\":\"\",\"videoname\":\"\u751F\u6D3B\u5927\u7206\u70B8\\/The\
- \ Big Bang Theory S07E05\\/\u7B2C\u4E03\u5B63\u7B2C5\u96C6\\/\u5723\u57CE\u5BB6\
- \u56ED\u53CC\u8BED\u5B57\u5E55 the.big.bang.theory.705.hdtv-lol\",\"revision\"\
- :0},{\"subtype\":\"SSA\",\"id\":244632,\"lang\":{\"desc\":\"\u82F1 \u7B80\"\
- ,\"langlist\":{\"langeng\":true,\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2013-10-18 22:15:16\",\"native_name\":\"\u5929\u624D\u7406\u8BBA\u4F20\\\
- /The Big Bang Theory S07E05\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C\u4E03\u5B63\
- \u7B2C\u4E94\u96C6\u3010\u8C22\u8033\u6735\u5B57\u5E55\u7EC4\u3011\",\"videoname\"\
- :\"The.Big.Bang.Theory.S07E05.720p.HDTV.X264-DIMENSION\",\"revision\":0},{\"\
- subtype\":\"\u5176\u4ED6\",\"id\":244630,\"lang\":{\"desc\":\"\",\"langlist\"\
- :{}},\"vote_score\":0,\"upload_time\":\"2013-10-18 21:31:21\",\"native_name\"\
- :\"\",\"videoname\":\"\u751F\u6D3B\u5927\u7206\u70B8 \u7B2C7\u96C6\u7B2C5\u96C6\
- \ 720P\",\"revision\":0},{\"subtype\":\"\u5176\u4ED6\",\"id\":244624,\"lang\"\
- :{\"desc\":\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\"\
- :true,\"langchs\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-18 20:46:57\"\
- ,\"native_name\":\"The Big Bang Theory S07E05\",\"videoname\":\"\u751F\u6D3B\
- \u5927\u7206\u70B8\u7B2C\u4E03\u5B63\u7B2C5\u96C6\",\"revision\":0},{\"subtype\"\
- :\"Subrip(srt)\",\"id\":585062,\"lang\":{\"desc\":\"\u82F1 \u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langchs\":true,\"langeng\":true,\"langdou\":true,\"\
- langcht\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-17 17:31:00\"\
- ,\"release_site\":\"\u4EBA\u4EBA\u5F71\u89C6YYeTs\",\"native_name\":\"\u751F\
- \u6D3B\u5927\u7206\u70B8 \u7B2C7\u96C6\u7B2C5\u96C6\",\"videoname\":\"The\
- \ Big Bang Theory S07E05\",\"revision\":0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:39 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_query_list_subtitles.yaml b/tests/cassettes/assrt/test_query_list_subtitles.yaml
deleted file mode 100644
index 3eedcc705..000000000
--- a/tests/cassettes/assrt/test_query_list_subtitles.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true,\"langdou\":true,\"langcht\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"release_site\":\"CMCT\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\
- \u7E41\u82F1\u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"revision\":0},{\"subtype\":\"SSA\",\"id\":316973,\"vote_score\":0,\"upload_time\"\
- :\"2014-12-06 04:13:44\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\":\"Man\
- \ of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0},{\"subtype\":\"\
- Subrip(srt)\",\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"vote_score\":0,\"upload_time\":\"2014-03-17 15:30:19\"\
- ,\"native_name\":\"\",\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4\
- ]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\",\"revision\":0},{\"subtype\"\
- :\"SSA\",\"id\":252930,\"lang\":{\"desc\":\"\u82F1 \u7E41 \u53CC\u8BED\",\"\
- langlist\":{\"langeng\":true,\"langdou\":true,\"langcht\":true}},\"vote_score\"\
- :45,\"upload_time\":\"2014-03-05 18:10:39\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"videoname\":\"Man of Steel\",\"revision\"\
- :0},{\"subtype\":\"Subrip(srt)\",\"id\":246016,\"lang\":{\"desc\":\"\u82F1\
- \ \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"langchs\"\
- :true}},\"vote_score\":0,\"upload_time\":\"2013-11-09 10:43:13\",\"native_name\"\
- :\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\
- \u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\",\"videoname\"\
- :\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\",\"revision\":0},{\"subtype\"\
- :\"SSA\",\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\u8BED\",\"\
- langlist\":{\"langchs\":true,\"langdou\":true,\"langcht\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2013-11-02 05:56:40\",\"native_name\":\"\u8D85\u4EBA\uFF1A\
- \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u7279\
- \u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"videoname\":\"Man of Steel\
- \ 1080p.bluray.x264-sector7\",\"revision\":0},{\"subtype\":\"\u5176\u4ED6\"\
- ,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"langchs\":true}},\"\
- vote_score\":0,\"upload_time\":\"2013-10-31 23:41:07\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"videoname\":\"Man.of.Steel.2013\",\"revision\":0},{\"subtype\":\"VobSub\"\
- ,\"id\":245259,\"vote_score\":100,\"upload_time\":\"2013-10-27 07:04:18\"\
- ,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"vote_score\":80,\"upload_time\"\
- :\"2013-10-25 04:50:37\",\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\
- \u8EAF\",\"videoname\":\"Man.Of.Steel\",\"revision\":0},{\"subtype\":\"SSA\"\
- ,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- vote_score\":0,\"upload_time\":\"2013-10-24 07:52:31\",\"native_name\":\"\"\
- ,\"videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013)\
- \ 1080p.cht\",\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":244971,\"\
- lang\":{\"desc\":\"\u7B80 \u7E41\",\"langlist\":{\"langchs\":true,\"langcht\"\
- :true}},\"vote_score\":10,\"upload_time\":\"2013-10-23 00:46:40\",\"native_name\"\
- :\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"videoname\":\"\u8D85\u4EBA: \u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4(\u6E2F\\/\u53F0\
- ).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\u76D8\",\"revision\"\
- :0},{\"subtype\":\"Subrip(srt)\",\"id\":244969,\"lang\":{\"desc\":\"\",\"\
- langlist\":{}},\"vote_score\":0,\"upload_time\":\"2013-10-22 23:39:00\",\"\
- native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"SSA\",\"id\":244960,\"lang\":{\"desc\":\"\u82F1\
- \ \u7B80\",\"langlist\":{\"langeng\":true,\"langchs\":true}},\"vote_score\"\
- :0,\"upload_time\":\"2013-10-22 22:06:42\",\"native_name\":\"\u8D85\u4EBA\
- :\u94A2\u94C1\u4E4B\u8EAF\",\"videoname\":\"Superman: Man of Steel BD\",\"\
- revision\":0},{\"subtype\":\"\u5176\u4ED6\",\"id\":244939,\"lang\":{\"desc\"\
- :\"\",\"langlist\":{}},\"vote_score\":0,\"upload_time\":\"2013-10-22 17:42:45\"\
- ,\"native_name\":\"\",\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"revision\":0},{\"subtype\":\"Subrip(srt)\",\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langchs\":true}},\"vote_score\":0,\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"man.of.steel.2013.720p.bluray.x264-felony.mkv\",\"revision\":0}],\"action\"\
- :\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 08:28:00 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_query_movie_zh.yaml b/tests/cassettes/assrt/test_query_movie_zh.yaml
deleted file mode 100644
index 14ba6c5c0..000000000
--- a/tests/cassettes/assrt/test_query_movie_zh.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langcht\":true,\"langeng\"\
- :true,\"langdou\":true,\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u7E41\u82F1\
- \u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"release_site\":\"CMCT\",\"revision\":0},{\"upload_time\":\"2014-12-06 04:13:44\"\
- ,\"subtype\":\"SSA\",\"id\":316973,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"Man of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0,\"vote_score\"\
- :0},{\"upload_time\":\"2014-03-17 15:30:19\",\"subtype\":\"Subrip(srt)\",\"\
- revision\":0,\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2014-03-05 18:10:39\"\
- ,\"subtype\":\"SSA\",\"revision\":0,\"id\":252930,\"lang\":{\"desc\":\"\u82F1\
- \ \u7E41 \u53CC\u8BED\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langdou\":true}},\"videoname\":\"Man of Steel\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"vote_score\":45},{\"upload_time\":\"2013-11-09\
- \ 10:43:13\",\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":246016,\"lang\"\
- :{\"desc\":\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\"\
- :true,\"langcht\":true}},\"videoname\":\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-11-02 05:56:40\",\"subtype\":\"\
- SSA\",\"revision\":0,\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langcht\":true,\"langchs\":true,\"langdou\":true}},\"\
- videoname\":\"Man of Steel 1080p.bluray.x264-sector7\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\
- \u96C4\\/\u7279\u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-31 23:41:07\",\"subtype\":\"\u5176\u4ED6\"\
- ,\"revision\":0,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"\
- langchs\":true}},\"videoname\":\"Man.of.Steel.2013\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-10-27 07:04:18\",\"subtype\":\"\
- VobSub\",\"id\":245259,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0,\"vote_score\":100},{\"upload_time\":\"2013-10-25 04:50:37\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"videoname\":\"Man.Of.Steel\"\
- ,\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\"\
- :80},{\"upload_time\":\"2013-10-24 07:52:31\",\"subtype\":\"SSA\",\"revision\"\
- :0,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013) 1080p.cht\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-23 00:46:40\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244971,\"lang\":{\"desc\"\
- :\"\u7B80 \u7E41\",\"langlist\":{\"langcht\":true,\"langchs\":true}},\"videoname\"\
- :\"\u8D85\u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\
- \u96C4(\u6E2F\\/\u53F0).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\
- \u76D8\",\"native_name\":\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"vote_score\"\
- :10},{\"upload_time\":\"2013-10-22 23:39:00\",\"subtype\":\"Subrip(srt)\"\
- ,\"revision\":0,\"id\":244969,\"lang\":{\"desc\":\"\",\"langlist\":{}},\"\
- videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"vote_score\":0},{\"upload_time\"\
- :\"2013-10-22 22:06:42\",\"subtype\":\"SSA\",\"revision\":0,\"id\":244960,\"\
- lang\":{\"desc\":\"\u82F1 \u7B80\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true}},\"videoname\":\"Superman: Man of Steel BD\",\"native_name\":\"\u8D85\
- \u4EBA:\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\":0},{\"upload_time\":\"2013-10-22\
- \ 17:42:45\",\"subtype\":\"\u5176\u4ED6\",\"revision\":0,\"id\":244939,\"\
- lang\":{\"desc\":\"\",\"langlist\":{}},\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\":true,\"\
- langcht\":true}},\"videoname\":\"man.of.steel.2013.720p.bluray.x264-felony.mkv\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"vote_score\"\
- :0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:39 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_query_movie_zh_Hans.yaml b/tests/cassettes/assrt/test_query_movie_zh_Hans.yaml
deleted file mode 100644
index 14ba6c5c0..000000000
--- a/tests/cassettes/assrt/test_query_movie_zh_Hans.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langcht\":true,\"langeng\"\
- :true,\"langdou\":true,\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u7E41\u82F1\
- \u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"release_site\":\"CMCT\",\"revision\":0},{\"upload_time\":\"2014-12-06 04:13:44\"\
- ,\"subtype\":\"SSA\",\"id\":316973,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"Man of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0,\"vote_score\"\
- :0},{\"upload_time\":\"2014-03-17 15:30:19\",\"subtype\":\"Subrip(srt)\",\"\
- revision\":0,\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2014-03-05 18:10:39\"\
- ,\"subtype\":\"SSA\",\"revision\":0,\"id\":252930,\"lang\":{\"desc\":\"\u82F1\
- \ \u7E41 \u53CC\u8BED\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langdou\":true}},\"videoname\":\"Man of Steel\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"vote_score\":45},{\"upload_time\":\"2013-11-09\
- \ 10:43:13\",\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":246016,\"lang\"\
- :{\"desc\":\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\"\
- :true,\"langcht\":true}},\"videoname\":\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-11-02 05:56:40\",\"subtype\":\"\
- SSA\",\"revision\":0,\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langcht\":true,\"langchs\":true,\"langdou\":true}},\"\
- videoname\":\"Man of Steel 1080p.bluray.x264-sector7\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\
- \u96C4\\/\u7279\u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-31 23:41:07\",\"subtype\":\"\u5176\u4ED6\"\
- ,\"revision\":0,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"\
- langchs\":true}},\"videoname\":\"Man.of.Steel.2013\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-10-27 07:04:18\",\"subtype\":\"\
- VobSub\",\"id\":245259,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0,\"vote_score\":100},{\"upload_time\":\"2013-10-25 04:50:37\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"videoname\":\"Man.Of.Steel\"\
- ,\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\"\
- :80},{\"upload_time\":\"2013-10-24 07:52:31\",\"subtype\":\"SSA\",\"revision\"\
- :0,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013) 1080p.cht\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-23 00:46:40\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244971,\"lang\":{\"desc\"\
- :\"\u7B80 \u7E41\",\"langlist\":{\"langcht\":true,\"langchs\":true}},\"videoname\"\
- :\"\u8D85\u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\
- \u96C4(\u6E2F\\/\u53F0).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\
- \u76D8\",\"native_name\":\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"vote_score\"\
- :10},{\"upload_time\":\"2013-10-22 23:39:00\",\"subtype\":\"Subrip(srt)\"\
- ,\"revision\":0,\"id\":244969,\"lang\":{\"desc\":\"\",\"langlist\":{}},\"\
- videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"vote_score\":0},{\"upload_time\"\
- :\"2013-10-22 22:06:42\",\"subtype\":\"SSA\",\"revision\":0,\"id\":244960,\"\
- lang\":{\"desc\":\"\u82F1 \u7B80\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true}},\"videoname\":\"Superman: Man of Steel BD\",\"native_name\":\"\u8D85\
- \u4EBA:\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\":0},{\"upload_time\":\"2013-10-22\
- \ 17:42:45\",\"subtype\":\"\u5176\u4ED6\",\"revision\":0,\"id\":244939,\"\
- lang\":{\"desc\":\"\",\"langlist\":{}},\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\":true,\"\
- langcht\":true}},\"videoname\":\"man.of.steel.2013.720p.bluray.x264-felony.mkv\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"vote_score\"\
- :0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:14:39 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/cassettes/assrt/test_query_movie_zh_Hant.yaml b/tests/cassettes/assrt/test_query_movie_zh_Hant.yaml
deleted file mode 100644
index 6ae8d38c0..000000000
--- a/tests/cassettes/assrt/test_query_movie_zh_Hant.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-interactions:
-- request:
- body: null
- headers:
- User-Agent:
- - Sub-Zero/2
- method: GET
- uri: https://api.assrt.net/v1/sub/search?q=%5B%27Man+of+Steel+2013%27%5D&token=SECRET&is_file=%5B%271%27%5D
- response:
- body:
- string: "{\"status\":0,\"sub\":{\"keyword\":\"Man of Steel 2013\",\"result\"\
- :\"succeed\",\"subs\":[{\"subtype\":\"SSA\",\"id\":618185,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41 \u53CC\u8BED\",\"langlist\":{\"langcht\":true,\"langeng\"\
- :true,\"langdou\":true,\"langchs\":true}},\"vote_score\":0,\"upload_time\"\
- :\"2018-01-26 12:19:27\",\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\
- \u8EAF.Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT.\u7B80\u7E41\u82F1\
- \u53CC\u8BED\u5B57\u5E55\",\"videoname\":\"Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT\"\
- ,\"release_site\":\"CMCT\",\"revision\":0},{\"upload_time\":\"2014-12-06 04:13:44\"\
- ,\"subtype\":\"SSA\",\"id\":316973,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\u96C4\",\"videoname\"\
- :\"Man of Steel 2013 720p BluRay x264 DTS-WiKi\",\"revision\":0,\"vote_score\"\
- :0},{\"upload_time\":\"2014-03-17 15:30:19\",\"subtype\":\"Subrip(srt)\",\"\
- revision\":0,\"id\":253629,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"\
- langcht\":true}},\"videoname\":\"[\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4]Man.of.Steel.(2013).BDRip.720p.DTS.X264-Felony\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2014-03-05 18:10:39\"\
- ,\"subtype\":\"SSA\",\"revision\":0,\"id\":252930,\"lang\":{\"desc\":\"\u82F1\
- \ \u7E41 \u53CC\u8BED\",\"langlist\":{\"langeng\":true,\"langcht\":true,\"\
- langdou\":true}},\"videoname\":\"Man of Steel\",\"native_name\":\"\u8D85\u4EBA\
- \uFF1A\u92FC\u9435\u82F1\u96C4\",\"vote_score\":45},{\"upload_time\":\"2013-11-09\
- \ 10:43:13\",\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":246016,\"lang\"\
- :{\"desc\":\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\"\
- :true,\"langcht\":true}},\"videoname\":\"Man.of.Steel.2013.720p.BluRay.x264.YIFY\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/\u3010TLF\u5B57\u5E55\u7EC4\u3011Man of Steel\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-11-02 05:56:40\",\"subtype\":\"\
- SSA\",\"revision\":0,\"id\":245602,\"lang\":{\"desc\":\"\u7B80 \u7E41 \u53CC\
- \u8BED\",\"langlist\":{\"langcht\":true,\"langchs\":true,\"langdou\":true}},\"\
- videoname\":\"Man of Steel 1080p.bluray.x264-sector7\",\"native_name\":\"\u8D85\
- \u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA\uFF1A\u94A2\u94C1\u82F1\
- \u96C4\\/\u7279\u6548\u53CC\u8BED\\/\u84DD\u5149\u5B57\u5E55\",\"vote_score\"\
- :0},{\"upload_time\":\"2013-10-31 23:41:07\",\"subtype\":\"\u5176\u4ED6\"\
- ,\"revision\":0,\"id\":245568,\"lang\":{\"desc\":\"\u7B80\",\"langlist\":{\"\
- langchs\":true}},\"videoname\":\"Man.of.Steel.2013\",\"native_name\":\"\u8D85\
- \u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\u96C4\"\
- ,\"vote_score\":0},{\"upload_time\":\"2013-10-27 07:04:18\",\"subtype\":\"\
- VobSub\",\"id\":245259,\"native_name\":\"\",\"videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"revision\":0,\"vote_score\":100},{\"upload_time\":\"2013-10-25 04:50:37\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":245131,\"lang\":{\"desc\"\
- :\"\u7B80\",\"langlist\":{\"langchs\":true}},\"videoname\":\"Man.Of.Steel\"\
- ,\"native_name\":\"\u8D85\u4EBA-\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\"\
- :80},{\"upload_time\":\"2013-10-24 07:52:31\",\"subtype\":\"SSA\",\"revision\"\
- :0,\"id\":245056,\"lang\":{\"desc\":\"\u7E41\",\"langlist\":{\"langcht\":true}},\"\
- videoname\":\"\u8D85\u4EBA \u92FC\u9435\u82F1\u96C4 Man of Steel (2013) 1080p.cht\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-23 00:46:40\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244971,\"lang\":{\"desc\"\
- :\"\u7B80 \u7E41\",\"langlist\":{\"langcht\":true,\"langchs\":true}},\"videoname\"\
- :\"\u8D85\u4EBA: \u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA: \u94A2\u94C1\u82F1\
- \u96C4(\u6E2F\\/\u53F0).Man.of.Steel.2013.BluRay CEE\u7248\u84DD\u5149\u539F\
- \u76D8\",\"native_name\":\"\u84DD\u5149\u539F\u76D8\u5B57\u5E55\",\"vote_score\"\
- :10},{\"upload_time\":\"2013-10-22 23:39:00\",\"subtype\":\"Subrip(srt)\"\
- ,\"revision\":0,\"id\":244969,\"lang\":{\"desc\":\"\",\"langlist\":{}},\"\
- videoname\":\"Man.Of.Steel.3D.2013.1080p.BluRay.Half-SBS.DTS.x264-PublicHD\"\
- ,\"native_name\":\"\u8D85\u4EBA\uFF1A\u94A2\u94C1\u4E4B\u8EAF 3D\\/\u8D85\u4EBA\
- \uFF1A\u94A2\u94C1\u82F1\u96C4\\/Man of Steel 3D\",\"vote_score\":0},{\"upload_time\"\
- :\"2013-10-22 22:06:42\",\"subtype\":\"SSA\",\"revision\":0,\"id\":244960,\"\
- lang\":{\"desc\":\"\u82F1 \u7B80\",\"langlist\":{\"langchs\":true,\"langeng\"\
- :true}},\"videoname\":\"Superman: Man of Steel BD\",\"native_name\":\"\u8D85\
- \u4EBA:\u94A2\u94C1\u4E4B\u8EAF\",\"vote_score\":0},{\"upload_time\":\"2013-10-22\
- \ 17:42:45\",\"subtype\":\"\u5176\u4ED6\",\"revision\":0,\"id\":244939,\"\
- lang\":{\"desc\":\"\",\"langlist\":{}},\"videoname\":\"\u8D85\u4EBA\uFF1A\u94A2\
- \u94C1\u4E4B\u8EAF.Man.of.Steel.2013.1080p-PublicHD 2D.1080p\u62163D.1080p.HSBS-PublicHD\"\
- ,\"native_name\":\"\",\"vote_score\":0},{\"upload_time\":\"2013-10-21 16:52:23\"\
- ,\"subtype\":\"Subrip(srt)\",\"revision\":0,\"id\":244863,\"lang\":{\"desc\"\
- :\"\u82F1 \u7B80 \u7E41\",\"langlist\":{\"langeng\":true,\"langchs\":true,\"\
- langcht\":true}},\"videoname\":\"man.of.steel.2013.720p.bluray.x264-felony.mkv\"\
- ,\"native_name\":\"\\/Man of Steel \\/\u8D85\u4EBA:\u94A2\u94C1\u4E4B\u8EAF\
- \\/\u94A2\u94C1\u4E4B\u8EAF\\/\u8D85\u4EBA:\u94A2\u94C1\u82F1\u96C4\",\"vote_score\"\
- :0}],\"action\":\"search\"}}\n"
- headers:
- access-control-allow-origin:
- - '*'
- connection:
- - keep-alive
- content-type:
- - application/json
- date:
- - Sat, 30 Nov 2019 07:27:41 GMT
- server:
- - nginx
- transfer-encoding:
- - chunked
- vary:
- - Accept-Encoding
- status:
- code: 200
- message: OK
-version: 1
diff --git a/tests/conftest.py b/tests/conftest.py
index 3666e501c..72f228e89 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,117 +1,5 @@
# -*- coding: utf-8 -*-
-import libs
-from io import BytesIO
import os
-from zipfile import ZipFile
+import sys
-import pytest
-import requests
-try:
- from unittest.mock import Mock
-except ImportError:
- from mock import Mock
-
-from subliminal import Episode, Movie
-from subliminal.cache import region
-
-@pytest.fixture(autouse=True, scope='session')
-def configure_region():
- region.configure('dogpile.cache.null')
- region.configure = Mock()
-
-
-@pytest.fixture
-def movies():
- return {'man_of_steel':
- Movie(os.path.join('Man of Steel (2013)', 'man.of.steel.2013.720p.bluray.x264-felony.mkv'), 'Man of Steel',
- format='BluRay', release_group='felony', resolution='720p', video_codec='h264', audio_codec='DTS',
- imdb_id='tt0770828', size=7033732714, year=2013,
- hashes={'napiprojekt': '6303e7ee6a835e9fcede9fb2fb00cb36',
- 'opensubtitles': '5b8f8f4e41ccb21e',
- 'shooter': '314f454ab464775498ae6f1f5ad813a9;fdaa8b702d8936feba2122e93ba5c44f;'
- '0a6935e3436aa7db5597ef67a2c494e3;4d269733f36ddd49f71e92732a462fe5',
- 'thesubdb': 'ad32876133355929d814457537e12dc2'}),
- 'enders_game':
- Movie('enders.game.2013.720p.bluray.x264-sparks.mkv', 'Ender\'s Game',
- format='BluRay', release_group='sparks', resolution='720p', video_codec='h264', year=2013),
- 'interstellar':
- Movie('Interstellar.2014.2014.1080p.BluRay.x264.YIFY.rar', 'Interstellar',
- format='BluRay', release_group='YIFY', resolution='1080p', video_codec='h264', year=2014)}
-
-
-@pytest.fixture
-def episodes():
- return {'bbt_s07e05':
- Episode(os.path.join('The Big Bang Theory', 'Season 07',
- 'The.Big.Bang.Theory.S07E05.720p.HDTV.X264-DIMENSION.mkv'),
- 'The Big Bang Theory', 7, 5, title='The Workplace Proximity', year=2007, tvdb_id=4668379,
- series_tvdb_id=80379, series_imdb_id='tt0898266', format='HDTV', release_group='DIMENSION',
- resolution='720p', video_codec='h264', audio_codec='AC3', imdb_id='tt3229392', size=501910737,
- hashes={'napiprojekt': '6303e7ee6a835e9fcede9fb2fb00cb36',
- 'opensubtitles': '6878b3ef7c1bd19e',
- 'shooter': 'c13e0e5243c56d280064d344676fff94;cd4184d1c0c623735f6db90841ce15fc;'
- '3faefd72f92b63f2504269b4f484a377;8c68d1ef873afb8ba0cc9f97cbac41c1',
- 'thesubdb': '9dbbfb7ba81c9a6237237dae8589fccc'}),
- 'got_s03e10':
- Episode(os.path.join('Game of Thrones', 'Season 03',
- 'Game.of.Thrones.S03E10.Mhysa.720p.WEB-DL.DD5.1.H.264-NTb.mkv'),
- 'Game of Thrones', 3, 10, title='Mhysa', tvdb_id=4517466, series_tvdb_id=121361,
- series_imdb_id='tt0944947', format='WEB-DL', release_group='NTb', resolution='720p',
- video_codec='h264', audio_codec='AC3', imdb_id='tt2178796', size=2142810931,
- hashes={'napiprojekt': '6303e7ee6a835e9fcede9fb2fb00cb36',
- 'opensubtitles': 'b850baa096976c22',
- 'shooter': 'b02d992c04ad74b31c252bd5a097a036;ef1b32f873b2acf8f166fc266bdf011a;'
- '82ce34a3bcee0c66ed3b26d900d31cca;78113770551f3efd1e2d4ec45898c59c',
- 'thesubdb': 'b1f899c77f4c960b84b8dbf840d4e42d'}),
- 'dallas_s01e03':
- Episode('Dallas.S01E03.mkv', 'Dallas', 1, 3, title='Spy in the House', year=1978, tvdb_id=228224,
- series_tvdb_id=77092, series_imdb_id='tt0077000'),
- 'dallas_2012_s01e03':
- Episode('Dallas.2012.S01E03.mkv', 'Dallas', 1, 3, title='The Price You Pay', year=2012,
- original_series=False, tvdb_id=4199511, series_tvdb_id=242521, series_imdb_id='tt1723760',
- imdb_id='tt2205526'),
- 'marvels_agents_of_shield_s02e06':
- Episode('Marvels.Agents.of.S.H.I.E.L.D.S02E06.720p.HDTV.x264-KILLERS.mkv',
- 'Marvel\'s Agents of S.H.I.E.L.D.', 2, 6, year=2013, format='HDTV', release_group='KILLERS',
- resolution='720p', video_codec='h264'),
- 'csi_cyber_s02e03':
- Episode('CSI.Cyber.S02E03.hdtv-lol.mp4', 'CSI: Cyber', 2, 3, format='HDTV', release_group='lol'),
- 'the_x_files_s10e02':
- Episode('The.X-Files.S10E02.HDTV.x264-KILLERS.mp4', 'The X-Files', 10, 2, format='HDTV',
- release_group='KILLERS', video_codec='h264'),
- 'colony_s01e09':
- Episode('Colony.S01E09.720p.HDTV.x264-KILLERS.mkv', 'Colony', 1, 9, title='Zero Day', year=2016,
- tvdb_id=5463229, series_tvdb_id=284210, series_imdb_id='tt4209256', format='HDTV',
- release_group='KILLERS', resolution='720p', video_codec='h264', imdb_id='tt4926022'),
- 'the_jinx_e05':
- Episode('The.Jinx-The.Life.and.Deaths.of.Robert.Durst.E05.BDRip.x264-ROVERS.mkv',
- 'The Jinx: The Life and Deaths of Robert Durst', 1, 5, year=2015, original_series=True,
- format='BluRay', release_group='ROVERS', video_codec='h264'),
- 'the_100_s03e09':
- Episode('The.100.S03E09.720p.HDTV.x264-AVS.mkv', 'The 100', 3, 9, title='Stealing Fire', year=2014,
- tvdb_id=5544536, series_tvdb_id=268592, series_imdb_id='tt2661044', format='HDTV',
- release_group='AVS', resolution='720p', video_codec='h264', imdb_id='tt4799896'),
- 'csi_s15e18':
- Episode('CSI.S15E18.720p.HDTV.X264.DIMENSION.mkv', 'CSI: Crime Scene Investigation', 15, 18,
- title='The End Game', year=2000, tvdb_id=5104359, series_tvdb_id=72546, series_imdb_id='tt0247082',
- format='HDTV', release_group='DIMENSION', resolution='720p', video_codec='h264',
- imdb_id='tt4145952')}
-
-
-@pytest.fixture(scope='session')
-def mkv():
- data_path = os.path.join('tests', 'data', 'mkv')
-
- # download matroska test suite
- if not os.path.exists(data_path) or len(os.listdir(data_path)) != 8:
- r = requests.get('http://downloads.sourceforge.net/project/matroska/test_files/matroska_test_w1_1.zip')
- with ZipFile(BytesIO(r.content), 'r') as f:
- f.extractall(data_path, [m for m in f.namelist() if os.path.splitext(m)[1] == '.mkv'])
-
- # populate a dict with mkv files
- files = {}
- for path in os.listdir(data_path):
- name, _ = os.path.splitext(path)
- files[name] = os.path.join(data_path, path)
-
- return files
+sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../libs/"))
diff --git a/tests/libs.py b/tests/libs.py
deleted file mode 100644
index 37b8809ac..000000000
--- a/tests/libs.py
+++ /dev/null
@@ -1,11 +0,0 @@
-# coding=utf-8
-
-import os
-import sys
-
-
-def set_libs():
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../libs/'))
-
-
-set_libs()
diff --git a/tests/subliminal_patch/cassettes/test_argenteam/test_download_subtitle.yaml b/tests/subliminal_patch/cassettes/test_argenteam/test_download_subtitle.yaml
new file mode 100644
index 000000000..01d73f5e9
--- /dev/null
+++ b/tests/subliminal_patch/cassettes/test_argenteam/test_download_subtitle.yaml
@@ -0,0 +1,546 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/search?q=Breaking+Bad+S01E01
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAAyxSvU4cMRB+lZErkJbTkTRoO1AiFJRIKBQUiGLWnuPm8HqW8fiiC+JhrqSgQHmE
+ fbHIvussfTPffD9+dUq5RMuuf3h1HFz/dblcXnTO2CK53l0p4TOnJ7jCACdflsuLU4CHu+X59+X5
+ I5zBLUcx1znbTXWcJs4SyHUul3FE3bne3WM0Urhfs1EHpAglwQpHyQKctpSNnzCIwkuZP0b2AoHq
+ yKQN4jr3EwdRNFGuaIRrGZg0SQcvhQAhzB9Y19aygzVC5iCgFKkSAwKlTPMnKiDgNO+NvWSgbCUw
+ JqN8vPgjZWMrJkAJLuNQXgrpS6EF3KIiTBJIIVbWyrTiVPdGymA4Djy/JzCm1KhMccBNvT1SYISN
+ aMJQlVQ04hYDaXPqxa8pL+Ay0Djvcwfze4Qd5AKUJ8nYwd3zLpLCyWVKCNclpQ6+EYY/IuG0g5IQ
+ xrIhbVFkqv5XopvqvGESKBuCR9UaPtXz4GWcFM+2lKwFh2rzhy9RMkyiQFe462pC8z6BV8bUcjxU
+ 2cGNLuDk9+JmAb/YLFKTARvZUoskMHnOTEaA86fkDrykJuZJMcGqkP5tV7cSSzIMhxoP4U2o8z5y
+ 5gyelAbFCFHaQP0RTXBJldE4lVqzSV3CamuFI0fGBdzWdE0Ctp4xQ+AV+xINA2WYMHIgT6mmoRTR
+ 8/yvcQJFSIW2tZrsy6A8MiVrTR3c90edft4nT3q0BpNKmv9lO/7fIPngvdnkgAvXOR7D4HrnOjdJ
+ NtL6fnvsnIlhdP1552S1ymSuX779BwAA//8DAOpgiQCaAwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743ae9fcd7523-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:43 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=PxlJNR0AxqyB8FPFuHChYEXuwVNJ9Fy9z23lPUnvuHiZY9aRqeJ22Rs2o1lg2c7n6KA0E9h2xU0tcT%2FgzTO0J17LLKT3FFWqeBB161WjmjrZg9FZc%2FtVuJ4YGvDToYPqI7uMzTVKZYBWI095"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/episode?id=30008
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA6xUW2/jthL+KwSBFD2AI1N3WUBQyJacrHNd57LZLRbFSBrHTGRSS1HOZuv9MXns
+ wz4U/Qn+YweU3W56mrRFe17J4cx8N/5IeUljlzEW9aheljmNqesNHNehPdogNFLQ2O5R0S5yVDSm
+ zKY9qrmukMb0jFdSm8J2sQD1QGP6BiqNiryZc409ggpIK8gMFrKRhIslNprfQCkV+dCuvyx4IUmJ
+ pqRW3RU3dUeQSwVaKm5uK7Ivc45KyB750CIBUq6/gHk2lw9kDqThpSQKKzSNCRAUDa5/BkWAQL1+
+ 1LyQDcFGtyUHobHZTnwlGs11qyVBQZIqbz+0qD60aJEzUEBqWaIilelqOs24MO8W2BANi5yvfxJE
+ cxRdK60gh1sze4ElB3IrlYDSbGJuK1hCiapDWshijo1FkhIX68emR9Y/VeSBNC3BppYN9Mj53UOF
+ inybCAFkvxWiR1KE8l7K8j890gogi/YWVUdFgwb/TKpbg7y7kyU2GkgBShny0YwnhVzUCnaXKHRH
+ HCi9/lK0lWxILRXBITz0DEPrR0EKxUF0PG6k7JGJssi3U2tikWOudYXdGuRWLrGjpORY8IajRgLr
+ n2XTI4UU3TI3CgSZtag+dVOXsmqFhnIj44a8GtT6seINb0iBCnMFFalkV2Ac0S3cCtNRc9EambU0
+ j8DAmsGCVxwscmbY1bKETmdoSMlnvGgrDSU2pIaKl1igMGworKDg61+6ngQrIlpcGmmaos0VX3AU
+ ulNqgz7e7lmsH0WBaguN1EqK9S+N3vq3lM0GeweTl2DRHjWOhAYbGn//I21kqwqTmPQqnfKa9mgh
+ SyxoTK+XPDWJQljQmJ5Ozw6yy3NzADcNjakJF/9kXro+I8dDcyOVQqFN4/c9ihUXd5shreI0plg6
+ d3G/v5rxCldDhXDHxY01hNI6Z3bGbKsLrbVZxDLjd7dTLVjylRtELHC8wFsxP4mSyPNCxryBz2w2
+ ysLhOEwS5maJ6yar+d711en+0dnFKBmNvbeuN3l7/epoenqZHgwP3dF+4Kz69PN78z3k3Y/xdM25
+ 1nUT9/ugblAY9JZA3f+tsu+4A4/1f7f/jhM5jEU7zmALZfdFKB3BrdA0jnw3sj+//9x7IsKwaqfw
+ 8ESEj07gfRVhmr1JpulXDUKH1V91cKzAJ/v/PyFMd2uzkXXtBN7uZry1uFuunMhjLnNs31kFzHYS
+ fzz0w7GbhmMnDVyfjbOE+SwNR5Gzmu9l715l08w9vLp+e3A5yg6T1+noLEyCizcH77zzyeW/UcNj
+ zPl7amyhGEo7bLu/0fknipyPpi9mgl1c/d08PIUT9/v39/dWrneLOWirkIt+Ke9FJaG06nn9HRcz
+ +cMcmvleDh6Ejg3MZZ5dBH6OYena9gDsKCpsDAd+HszKvKA9CpWmMV3AjUAdf/dR77VKxLnm8/h6
+ Mj7I9l+nyesuEv5+duyko/2hFxy6J+GJ900p9p4zQXo+3TiXXVx9o9XednX8pJdWU0HJxR1nLDR6
+ xAHzGeuDELIVBXZi/uP4Pxn7a+79aOD4wYp5UTYORuPUHvheFgz8NPAj5o0cOw2TKGOr+d7h8N3R
+ iX/phqevTifXSXp8MjkIzxJ3dJSMsteX7jNO+73eB2kn6vP5G/LkpfDZFhv8IXz/o3qt5McHq+YK
+ NIoalOa3lqj6m4McHn59aRkH9L2BG0a+3X+Oqi6aZtXOzbtDnljbcuvibGhtG/2pLWbMcQuviCK3
+ cAboM/ADCNyiwAiDQTQYzDx/Vvhu+JI9/riCMUlb1jtusuOMd5yxVlDcobJkjSLneruU8fuOm0Ts
+ pfK6zSte5H9dWBSFVWJX8g8d9wyN5nOz7dAZsCCy7VU48D3P9bLQy8LIyYI0Hboj5trMD1lgJ8Zy
+ afj2ZJKdXh9P/P8CAAD//wp18fYPNTcKdTNzDTd2CzSOCPUODMCa5GJrAQAAAP//AwB+ZFl64AoA
+ AA==
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743b0fc487523-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:44 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=wAS4IfAlvPbIWOaiVRMMsvQyHjHeWJHg4DXEppWEOIWVyUcfyHACr9s0g5RBj%2Fxx6QDVNq3tP9xwho%2BocKR%2BjjHi%2B72%2B67nzX80tDqz7h6qXT9BT%2FLK1WuIsY%2BUsSXWCzxIwjw4bTFYx1U2T"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/subtitles/23940/Breaking.Bad.%282008%29.S01E01-Pilot.DVDRip.XviD-ORPHEUS
+ response:
+ body:
+ string: ''
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743b348877523-SCL
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '0'
+ Date:
+ - Tue, 30 Nov 2021 21:45:44 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=3rN8IWuQQ1NCihTEeSmgpHtZRkKEwab5k36GYfg7oPgpo9NNZ3d0POAg4yeDdAg8fKkwpnitmaSVFIeOkV3tFCuSFM%2BbA0M4vOAXlmKTd5YBrtbsvG58QoR%2FAvvY1ZBlhiylJo8cR8qt3JkJ"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ location:
+ - https://subs.argenteam.net/Breaking.Bad(101)(2008)-aRGENTeaM-16601.zip
+ status:
+ code: 302
+ message: Found
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://subs.argenteam.net/Breaking.Bad(101)(2008)-aRGENTeaM-16601.zip
+ response:
+ body:
+ string: !!binary |
+ UEsDBBQACAAIANKUnUAAAAAAAAAAAAAAAAAxABAAQnJlYWtpbmcuQmFkLlMwMUUwMS5QaWxvdC5E
+ VkRSaXAuWHZpRC1PUlBIRVVTLnNydFVYDACUbp1PjG6dT/UBFACNfc2S3EiO5l1megeWrPcW0gZJ
+ d/6UjXVZViq7q7r1N5JKY3VkRjAzqWYEY8iI7Eq9jZ4kbY992NM8Qd42D3ko002nxQfAnYiqGrMx
+ 251WMQmE0x0OB/AB8PTxo+Xy22X67bJeLIs6efr0z4k8SJeLerl8/Ojzyc0ied4NU7J5GL55/Ojx
+ oyzQpOkiXTpLky2KrCKad812PySrru2FJI8kflGV3pKUi6Ikjs+75rwfpmd424W3M7eo0sq8nZWL
+ tHJ4e5hkVEzgI0G5yKvSEORLIvBC8Cx507XbqVkkO/5fJi2ENPt2Sb/l59+iB+VimdaPH31oNqCV
+ /wFJGUnKhctKS0KT6F0gwbtVeDfNF3Vh302LxbKmd1+2Sd/T+8l/NP2+HZMfniX/cdXtWyavI3mx
+ yJeZIc/SRVnQtH7oroek3SavuuayGZvk7XDT9MmLZtsm+bJaPH500p8fxv88tPj/i+TVoaX3X97/
+ 0q2GpCpp+fh30mX4IeJbmwWiB7RiSxrHSdI3E/3Svls363ZKdkPfrbqmb6dvHz96RWOY9sNN0qw3
+ 3Z5md02rP3YbGljTXx62g/xKGn+FPj49+pxqUaf0OS9aZXRF4tCATZNsuuSi2XR9JyuWZoFL7hdF
+ ZZcsJ2HytKLv/nHTt+OzZ/J+Ht8vF1WdmvfdktaL2NGb7Ujf1PYJrcSYrFv86DV9qXBwgQMRZMXS
+ csgWGST+bNq145DQHCf9kEztrpH1T30kzRdFfkRKo/f0Z133vx223RDHHMWS3qrq2pKVizpzPOb9
+ 14SHTWPdHFZXzepqULlJo4y6apHnztD7jBgS+x+a8/GOmGCm+R9MF+XV57S3C0vnF2Uuv7saJhIF
+ fCsJwupwPnbj3fbxo2k4H2niHgKvKLxEWju72p7WaZnLvG9pwkiaxi+/dLRpkvWDzlwWRZLertJ5
+ 5nL6f7QZaObeDT2mvAszj2mnceCfO1rFi1ZHObXJddtsdVyZSiHz8WlhGReLFFuB3oSwX3WrNlkN
+ W8jFahibT1+I++4AAcWWO0z7liZAmGaBKenAtM4MU9r5VUXrcbLuvujLKpEOCqOs5pcdqPMlvfz+
+ 7dm75N3Zy5NXJ++Sk1fvz94xoQqip2khQZxF30N9uZpW783bs5c/vk5evf7+7AX91+u3yduT5z++
+ /uvbk7/835Pk+Vny5u3r969fKT8f+NEgi2pp+JGiLjHH/9b9mWZj3W0xyRcj7f+WtnRCE932jx81
+ tHDddtXtcD6see/Sn38dnv3b/+7+zL9QxF8gIUi9/QXoapq2v7R99ylZHTa7viVSnaIy0tVEVxs6
+ 0lBLRyN72ZG6aydRLVkV3ocCq+zM0CGSV/TnJ2fT8GSRNIctZGI7YKOuRpIRUpK0ifbDij5y35Co
+ XNL/9MK2jmzdwtd2gkiF5VhWUn3NRbsiQpaSHlMwDr0KW76MDApikFkG9SJV5XOD4UzQrePdRHo2
+ WXcXtLNpYkUB5WngQufZssgNl5zOgZq43J6QqN8nVySmerwRo76lM4Ge3XzHXLLIheaotnOU026H
+ cJ0OdBBNXbvZjaJI8jzS0KbLj37ZL3L88qujPUg/lpAMtL/selJGW2ESxRYae5laJvXCFTTJ72nL
+ 0gG2JW000VRi99FyrAZam/3YnDcfG/1LOzXykTxnmzsRlzwKMmnourTDJA3tHK3CD0OvkxlFklRy
+ Vhb2XfqkJc310+QPhPJp8texoRXRX4wCSkQ+td9EGjp3GX/T2NLoaSlILZOmpQ2yxfkrDKLE0vv+
+ aO95MlowZJpZUs4PTdJcHppk1fQdth9L1jGrKKVEmfsjVqSNqpTHQqtxOSSHbZNc3K26PpmG/rDq
+ vmy/ZZMryilR5JXdp74g7V0yi769JsOO1mYPCWm2WJ6bJBydOxz4I6vG8+bXZtSzyEXhJUWeejvf
+ vlqUjubh58GMrlu3slBO5bX4drmkM2te1ALaLoXskbySpJIq3mJ6aHaaNSn+eWZcHlmQeZenlgVt
+ v4LE5vbfadvQfmfJwm8vRI6xeLuWrJ3h8SMyPtpJrIK+H7by7+t21U68sZwLv0IWcZGX5ldSGih0
+ 09Pk9v2wgSBge7e0YbZ3q7b5Dn959yBj9ZELaSy3tFwKElRsz7GVXSY20qb9SBYD0xaRtlg4I9P0
+ gCwrDJC/c2xuSFFjuYiBjL2MlDQhzhvKbCnH7NPk8+ub9hv84/0fKUlXBRZE4VO7ThkpjYpE691h
+ N2B9aex0gsJOXR3Iuhq3fGwc6U3mWEeOdC6l9nPIws9K+vO/i8qhyYyKm9dkJOtUfIJl5EFmemUX
+ hTTvEjxesK4jT+VZcvpl0+5b1RA+DaRwHzL7QblblDBsniZnsAKuDm1PBx59zdjtG9ES/y3XKM5s
+ RdqPciQlUJIkJT8nqy/Qwa0wUfPouqOlnlhabk//4O9Tc95dDWQui0D6KPaknJalFXtXLArYCS8P
+ N8l5pwraRwGGueiO3qfjt6D35VPsfAulCm0pDuRMWcKBLGGM05BprnCudSJ0kPiFivA8hCIwguNp
+ jriSDaia99D39PYCx8t1y2qmh1ZkR47X447ZLRJI1XUbXDBfRs6kaMul5VzTQngI08OmW+kXVfF1
+ OpvKzLyekTLFXND3QN/RFxzW3UByB5VxLzNfB2qSXO/sZ5AjtcRxevuqWXctv10s49u0bV1h3y4X
+ ZUkj/17np0jjq+QAVPYrSEhLWK1PE/kOPa3MfxB5Fsjp7TotLTmdglWO00bezOObOe0bOyY6vWuY
+ 5S8a+l6eMZoDNXQKF8nIiM7stLmUfgAHyP1qSzQbiO0CazczIQvMzif+uGlIH6j9U0QpI16udpY5
+ 2WWw7t5AG9wMdAi1F6wZSBX0zeNHK1g0v2FO4kHDOA/RgyKKHjErazs3OMprmvmTLR2+K5I4SC0f
+ mEWUKgdnxq4HbRk2pl5A1fZkGo44MsI8RfGi1/LcGzo6vCvIDzwsDC96LEUUKk/ny9J+PrlpS5gi
+ 9OZ0SLbdNX0q7HAy1y8fZPLKKGT0cpbXltojgIMFJSdy6O9XBzK89EfLKHAeVlFlySpSKpkdaDId
+ EBvom5X6Q2WUN5zxxjyq2HsrfZweiAM0GDwt4rWFB3eD/yTLaTtdDOOG2NPM01/F9dIfUDFlfoWr
+ 7Q/gtCzhkyMqAVmCJ09n97Shw/1Wzgjef6WLTIojWa9YneFUPWMG5ASS8clyi9OqW/UiBaWPDEiV
+ eG8Y0CG+rJfspLKZtSCjPphcZDbB0rlJBvpIktRP8klFYEa0mbF3KlZUUOo0GnJZVt2GD5gF+980
+ L8PUKdubpD+0l/SXefbwF+FfBv4IHpmgQAXdlEHDEH/yiHreoslFM62wHmrHlVUgh8Ip7WTl5I3C
+ 1Pp8etWsOeBX1vFlnOD2W0iLVHj59v2BLBgyuhAvglN5+XULwxaRFDhUYp9Uy8iooiWygyZd4DEo
+ ORWwq1UCE/pi1nwiyVUaWNAO84UdCxm7ruCxtOOGvpVsEPnVLJKQSjBxuwrynCFud3b8WzT3p83u
+ YX8gr/LDj/K7KqL1b938Orr5P22xiIhl7mFET8M2oeMPy5gu+b+ypbBygRVRehMSrXE6erA6IW2q
+ U0maAEJyLgq98pE2h/FiaYvFEsbOc1gxHNYgO5hjWM31F7BpDnswCY5P8oHsneuGoysN/Z7wLyJ/
+ 2njVEX9espmeXy/D62SG1XlhXs+hzMTvucaHPEueIwKDAZGRf4jucFUFFkRRLo9YkEZDdIs8Cjo/
+ tut2vBcr4aOS1pHUk++RWtJqkWI/fz9crhu2Ioji50YikZsQ35A5rZeRDRlMZWnYkHFXIdD5Ehuo
+ J7OUxJlWsukXGuF9prb4NcKlxH3VjixzdRp4kl9aOjuPZMU5nPDKQMS6zuL7xaKq7CyQFVfhoP7j
+ 3xGxTCHN5BrEKaAH5L5kcCbhKy+Sd+NRKNoFMhLBZVlZMoR2Mrb0fqCF5ujv+UiuUjPCq0Iggt1G
+ tv0ClCBMfWSK0Ju3TCs66goRBmLRQPG1I0IN91sEbMjaIynlEDHCtiSoWCAoIOFcRM40Gd5+JXkp
+ BTb4b76vDAT0dzOdeJDJWfC8TaylWFeBwtELSzsjtIJ1XQMIGUaySKaGlWJdRwJHSnFpCWgnIsr+
+ +beBh28kPL+MlDVR2nmiQz3H4MSNHWkOrkLoZ61h92UaqOll7zNLTTsUAdEzOsLJ3CJtJLFz0kHb
+ QdTJlGybNXtX5804dpcaE19mkSmtVBYVc5rCXc9TCepcIzxN/t41HOcpkKoE8ps+Kywpub4ZOw2v
+ 2MnpEamjTYQh2LObfIj5j+T97wYSjH34Xhf508YpjoZGpgsHDppxg1Oj7eGOT8nLZuzaBTx98vxh
+ coSh+siKNvps5qUMkDmEKZ8mP9Hv4zAY2e6OgaZ0WQRixAVmNwwPyGzFMP/aD6t/PCMBe/zoXsJb
+ YhgDFAJSg1AgDS18WBkZ0rG0LC1D8m0w2BM6U+H/aJTgfopICgeNzhuE1shGHsZPNKXhiEyXVeRc
+ wpuwnGtAT2ztDf31w5r0qpjoU1JvNkpeR/KazqfMkNO35dBdP23Z0iHNzlGesT2npRt5UFg/khFS
+ GVOATRSQEnpvBJ5BQYcAwZsBkFYCEIRm7pyGQwYW+GyD3CveBBoP3NAyIWUPg+pdp9oF003qioZC
+ ktEg7MhHqcAHI8nXvg2GUKoIlLDJveWLgAHAl1PyF4CGPHNLpYkyDwesthNM1pN3lfiwdGZsyVfe
+ i44hhfqBJV7G8fCdsIriTZTljFniAbx7p0Gl5E2zu1vQpNM3wR3iE565/tywVdyGeYpCTvRVbfdj
+ ToZnzfvxM4OaZKh82ZAMSTSI/ynnmnKKEg+nr7ACSmdYho3PX7kjlbiWL6RlxLEKE5tsVjKycViR
+ JzC2QRSi0LvCOuR4QK4whJ7PCCCFA+m/MS5TlGk6D9Oj3QI/Cp4Yh51HBPKI+u9tt79K3narK1Kj
+ E1xHDiySfIjb2K6uWo06kIIIcxclH65YWdsf8YsCp+nn16Q0t7wQiHDvh3VQ61mUcg+j2K6kJz0P
+ oZBpp9HR7tium5FtL9JSq8OvpN+JzQcs7+pOoVGV+AyaNZ1tvZTx7bRSG2IRNDvipi1tRY7akrOg
+ M6dollDlRlgzOEol/sz+toAo+4E0PMItdCzT5x10KZVVHlmRhiqOWLHLNG/keUiCtRH78z6MyEU2
+ 9cLV3rBJAfgU/wM27zHxiB4BDY/hoVRBMHACdFdZ1qRl8QGf37W/DiSQC559zCBN/OdX5C6Mw3XX
+ 6GIWkU8NsTR8YEAUPESWALiQdML0Sa4jKANlllvPKmX0fYlz4sdXpyc/vT85/fG/XgHEe3Hy/eu3
+ J+9fv/3xtXCoIgfaZrO7jQcIJKUM5D1v94frTsSJ/Q2SqI584wOW7kZw2MPEL5w3H2lLHkhh0PkT
+ 0bxU8bCUAfvl7NbRA1JrHpgG/c7LlqXp8kBKdYXDYtWNAssySjBctFMHi5gc8oFOlchdwTJhVnor
+ Kzl50+kMRyISP3FIoPmVBHHSmNHriw4eKw6VngxNWp5OzEKbBHH0i3G/0A9k2dEvwqjOwi/u4B/u
+ uy9AdLqxGcMJuGroG6cjlnHv5OViWdktSL6CR5xTWOIUvKTTCrLASRV8Fm5aUoEX9H/gjhqucRsR
+ E6vzOSfBe5kaGOCH80EPQg0YvyKjboL8WnZxOxF1ebQryZYtK2GHCA02NwQCgj+pMWv4xL1DFu8y
+ OxqWl8AcWVrNDYf79uRlXndTBxR9euAjjdHihj57dWhoLyX/6EIOUJrH7YQUiNyKNJ0DNbbl7amh
+ krMxj1uJzoY0twJKlnOJnfaOHAg6zMm4fAIf9omEDtbxd+NWQug7t9vYAzbl0/XzD832H3wGsou1
+ a6ZGfz9uEJ+R9rcT4t2iKiRSuSbpX8ByEQVKkxLOLBe3AKJuzn61L2iDeZjqEBgAXUoSZZjeKOc8
+ izTHIVAu0yBwK/LHAnzENthAUs3hIVbcqwP5qQsOoSe0eZttBwvRirYCcsK4NrufUylcLjjX6eEO
+ yV9XDbmdVw/fiYFMM/ynpCT7edP1Ouw8MjsK4OEBzRSCVX85tDzO80PLFuO6iQk5LhKTgjSWXY5j
+ pvbyzWd8DKwf2Hm56GAmKvr03+kDxeDABgai5QtYwkd9QEY1GVT9QBuYHNBNy75uMz1wIHs/3l0g
+ v4ps+4bDsetxuCTLdv6ZIvwMUuh8aX+G9BAsHj5fER0L2oHDD4iLddcDJyzshhWsps1XMi1utxIt
+ SxXOAyOaGLOxc5xKFfxtjWh2FyPsmBva1x1J1GGPyYVtJrkejx8xSvws+YFhd0lsooODDvZdzG5L
+ Ffoj7uQ0u9zKHh1lKVAHiVmQCuokTSBGwlNF+eTdvLASQKdYUUhYe3dAkg2Mp45mWH2HtXqkBxLd
+ vjkn3bYfRonuHynQkIS1jL+E/MPU/pIejyekkXrkDcF42EmAFSYlmTNzHpgCgyCrkFVg+NCJVWB3
+ /hQFbo5Vpz5uHOQ7ePv7ZCezWYZtA5RCltHHzUF/NxmNeIC0MYSC++Qj+eMDeQyHX56+oNOUwVUs
+ FM7F8R6m6rsDbfGn7/7Z7HQgcd94Gm9hdzBMYoxT8MVr1Wc+bgj6e1XYDUHaZokF/p525xDwvDVN
+ 2zgwpktG4WXLwfwNm1xrOupggNG6HOaZ0Z3goAVSE0NxgtiXGsSaNazCeXiBJNw5S1EucgTRn3cb
+ +IWLGEYhedafqyIxKfc5JJty5lUJxy7+XMj8mu7OaY/rj9eBPiWFZ+xrx8FPbNwXzTVUAgmABk8l
+ nkjbSkOZNLYtPI5OIdRUUUDh4TI7KNpVbG1zZE32oeT4fJfcvmzX3UCyxhr2zTick5/fSuQ+U8Zp
+ YEx8ahNncbzjYLDe/gwMYXe4D+FN+U6FC/GiozOvtJQFoj0cDLsij2iIGYt5JKFlKOyP5SQ6mu4H
+ nUvbg7cyzIuTXpXJe5jtjK81kaMLHHPE1+xKA0OAWUyb4DRIXPKhw5xOwXWHpmh/uerOGRvRcy/y
+ 9pF3cRS7c2xg6VEWY4+7jrTBGM0pCanKQ+UX5Zh2uJ/TKOgB7WDGO84Q3+9j/sb8mVGgEUZ0dq7J
+ hnGQqXd02ky8xY4+CafasIfxjv32shmnp+SPtDDUtpF7lHhiVlZ2WWhHL8H9DGfUHoYsDANAXR15
+ 0Q0iRh3Sa9hYj8GPIm4Bos/m5Ag8yBFpffzobYSQVNAHTcqkCUPuyVbAHnLXGfwTvmXcBWQoLb3d
+ WqRpUnh4L6GUR2CVd8gYJS+TT0IO0dPK85wg5sWZBnF+y7gLiE9e26XxSEF0kghyr29Hyac/ehML
+ 8TB6CgT+X8C4gRTfDAFU5OTf/VcOmrK244MukYxYjjAiPSn4xIpdCsvaBBU9tGBWcLzlDUvX/XFu
+ g9K7SI+0cG/pa/rEOhqmAxl1I7C1/i5BFt0QRXjeCophCnFhtoKHdcL24+07smEO5AF9EfWgSCXe
+ IK1ZHpGQ2YrdQ1uHleiWzYp/cbpZ1BWKRMrr3oi857A/RvT+K5JaaJTJe3HoxV0g00RShyCdqqDP
+ 2/P75CbyriLvijw4Z3gjfyOVcBHJJkk2Tc+uFd9G+XAu6J5xYzYU951yrQNXxDOz1HItJI+Vs5F7
+ ToS/Q9RVgRBIBW/c7bC60j2koKYQl3NWaMpZoQVOmVOSIPz+YUqGjxHKTBXLlBfr2i49KcnCi800
+ tv3dR8RpcSB/ZOstMsgCgxyxcTv1OWLjnO/12x//AxmsogzDq13aaSaXkvXrUYpRWkWhdelR7Jrz
+ MB0izCdXDxxP4gVXqiicDIrZmeJkzaVYbvH1KJgO8N7RqEo5hCQrQF+PcogIoXFoOJOyZFiVuE8t
+ w2dKE+XLwwmyCoJcvnrJHuYlCSt5A0oRZQdYjTEaPJw8B6PjNxR1lA+kzld2fzFg8wcUUS7ohdrE
+ BwpWKbB7mAJpqJ/fPXxDS7xdHdjGRbJFpxOimCJRQZebaGYBdZhBbs90e9A5czlsPw2MiJ7FZK7F
+ b9Lw0gA3FhhZaoI6BWKcDJWGkxHB1m48yF5vtmsFmq/CN6oElVCbSzOPJdLhc4jKG01BvThwBQdZ
+ NgPqfTgnAg+uuo+Ss9pIDrGePQGGZEbezHcJDVtVVRwj5q+dh0tK/mLsItAWQMeSi4fMvi7hT1Yc
+ 7IQ7E5TZZcP+YkzbaT59XZEfCUWtDMvI8Ci9jh4ghaAQsHw/bO4xGvjJMOeamwOdQ1fDzbMZ2FN+
+ VeCHPAJjzpfQxA4nx+ublvxJOsTU8WLgGNwvmusBJtAtf0LUSAHULKVk4GiIJR2YghxBDY2bdj77
+ +8NlI3h0FsBNycdb2kHBbi04yX7BdTVdtBeyAGqWnM1ifLESNiufkdbi2mqK8eNHG6glzNTUXh7G
+ wC2L3BycCMuNrA+c2LJyHOxOmm5s5YDYPCiDPDAAKJNaESJFuwQwcvtKoiJb5P8lDVsJW1hGpG3Z
+ 2yATZh8nJQo7kdvIZIm4opNj7FkihXDb8BVRjlEJZWyzEmZpBUDkx+2qfyD1qsNvyHKEbScFM1hh
+ 5RQlmYzSorZrQoo0qznd8DYi6AvacZsmGhfI1WiUUZRgRxKcW0akPxlbugUEBMeGTuTLgyYKgFSF
+ lROO0uW83ysuYMAQZwhfa3sCEMk5SdYyqRDhLRhij0RSzRigRslMSp0lKRY1BOn2nUBvWUAUORsp
+ q3LzLp16nPVPjlrCiblrTh1X8WtWzTk7KRwM71tllwV2nCNZWHYKCmpyeBbwQ/5L6e0oEWmF5356
+ t8VWXWPr9htknHVbDvEFFCULyGEliY2ZYYJMKMBREp1sg0nbatY2+x7j40eyZxJVYfqdX+ZjPgtY
+ InOsTdi2gvmdFZw5BWuLk9fndMyJU6hg0dF+2HTDnsa964IRnwVgkbm4wq4rDjzFp3fDGnb5dUfH
+ CKksCeuiHmmKlSJZgBNrnCIWTqz5FBETwVhMWYAR+e/e2Mc1IhCp/vTsc26a7eqqkWD+QLP2CfIQ
+ mdWRGR0s6dGvA/HzhlmgxgEIcvo/9E92OXS/B/yQiS1+WMN0d9ghfztwWpeeoVkACGvO1TdeVg3D
+ 1sHyfNnRsXYJ8ISOTGRcjiH8hxKdw334lAASMmVhzqaaw3c+19KmOaFwywVXWgWwbs8F2UR9KM3a
+ gXOlYgVkFoDDGvGEwkTya+z+JQ6NaGAmH+iIu+jo7LyHHuVD9ZyWYSDjhryvQWAh4j7Fwq4AKDI3
+ 0t6WPWLZOZcYfLqD8UdbAULehkLAsQ3z7yMTVHfa2QQSX3C0dTabyXEcgYA0M/qYBdSQKUxpNB6U
+ cvjZ7Lksi+LrUAdXmPcdIw6m0inLoujS347lwzmRD/NyFE1XHplXtZQVQbf9NIUSlpf4xygbeWJX
+ T2NkWR6FEumW3o4Q6UdQard/RTALnP6UoCK84ljlvtn1LVfjWaYLjsMBPmrGjyjzkF/W34riTLak
+ n7VNtvx2SRsAf34lIYg7kbZds0PdIp99xFPiG4M65plid6BGqn9p2dFWx+4Q+DxOAEfiNWOHT73k
+ MMXweKaoHchJ981oEB5AqMtj+QCFixR0wMyFbPQAyXkwtm5/5sMSJUtI0pWaO50OH6hh3s3uDx44
+ yTglK2biasO4jxVowztkAs6VBXhAloYTZ366XyCycTHrRYXaMk6YS1P7cWSR+UpUmfm0KrzvkBJu
+ B4dIFHwLtj1jliRo6kCDYFNlp8PDzCpiTiS/ruiZ/LU+GhLQMzjPn+X9b5Lf5Wc+Q030KjzVLFhG
+ yqClYsg6U7xNeJbV0Y+QjwlsB7EXWREXJQpJ8/NmyDj3bQm45n/2oypJTJbNehsPaKnh/t1+kEAJ
+ sH2umCThRAIZDMt2s+NkzF56MujYXORJcznbeBmn4XEeUWhkoLk/kpejI/KRmqa28JaaPhVb6Y+o
+ ikhF8j1r9Yw7UJTQ6h9aKTFec0eIRSLxcyUvIzlyLFJDDomX2k2d/afJ5+fdRzijlt83iTCqAqM0
+ s8kaGafW5YgjfP6ZAyAr8lwm2m2b8+5+KxajAld4FzCQ/QjUzCG69RkwAGMiQqIIVMYNForZW8ED
+ oJ1pSLoFsIzo3JxUlSnqlHFyR5oe0ZaCOklES3Ln9/czHpgp8iSvVvNxkXGOBeOoiBPCH9IzTaEn
+ eSGfcVk8QEygEG9sa+N7wWRC1SQMxXWI9GUKOGWcYGESkjLOPOBoHGdXbCfJ5OX8oeGCvqIRa5nd
+ xsePGsn1aEZJ8zcwoP6OD7+DhIbMfieOxWIZcM+v/b7bSNlYwkfAuh1bsteIze0L5MSp86HAlNBX
+ s3WDB+gUIoXPvYwSB0snFqyeBZyfTELXh9hAprhVxvkMpoY741QFbsmgavY2VACiL0gTQZlMwauM
+ mzqY3AZ6gGiVhO44YbCVDNmmv+7C/NSBFoq0sOtAqtLjoHxyKwTfPWGKIkosNK05uzg1YQmz9/a9
+ KBpekTfDnvTqTfJ9M27p5//WTl9VdxVRfj1yAEvLCVARvBwZanI2hRTYXdM35+FcLqIUIyg/e+cZ
+ ZyJ4eGXcgUQS4/pd0KTJVxScBV4CQnBUWQNYa9VKil0Ju3K2yjNOTijhiz85GQHikyp98gxnx3QP
+ dP5ZqB8OeYSyUopcZZzK4NKj8cLsl1zy/bAGltFsydVhdEcqjXpk2oSlE5ncKlsf2ZZoXGLZAnXK
+ A3qLb9xqxhXnQDwxIPkTZVZEZqR459KljJMSGBh6xdY/sRt2vdYQZYpWyVsG/smk0QV0VSDrtlK9
+ xZY/8go+DjELDNbLihy8/d02OR2GfwR9oXBVxokQBgXKOKGhAHs055CALJ0sWwQIUamy5UOGE1kk
+ a2JqvhWOdeTojzayZERUHBnlhgfA/yUbiRXDpv20QgXhASmb0uwkWV11PQexdkOvJeaZAlcZ50As
+ 5/xBPMikDAAi0v5yOKeFBgKGVilSSkjL3/5CIrqNbS/SyCynvWJHm6HfgmpfTFnChhy+mnPze/g7
+ yiSLTLytF8QDJAijPiampay7VQiplXEb0Gv2UOR8hwp/RiQkeU+kHbla5LoFyijwXFttf5HcK89m
+ q1I22kDlT3Bem8TI6MVIEtK34/BEmUZxB4Bszr2cDxOYVierdrePKraMIo1K1cpOHoMURTRJrtmu
+ UZkro0iTS1V7K9JcXUpL8qaZvoQyk/OvUB+0Txn7fXH4ZDVJGeWXa0ntmJ3iRP/W/fl02HHQOHZJ
+ KaOQAvws7MxzvINm4vX5dD9eQ1I0JMvZ3PoJCihljq1Ks3IOfhCn738+2a5xxi44sr5dq2GigFLG
+ CRAmPJ9xikOpdZRQTVGBSJ3auu1JcEPaXKa4kpDVlR0BMiNgMr3rdE9B6fULKLk2ueTSUw50KKM8
+ MqIv90eMUE5GX0reY3IxTBcPqLxTKhepkLGeGioyuJzPpPRIUNtnsQb9lyYKvyJNQlAUdiIyzg1V
+ /33adYCgucvJpuEcjpDCzjUEW4SaVuRfholRoWSs1M+lYngAy09SLU9hj/TkjrLW/2lLU0y23Opq
+ 4NzzfbvtrLgobpUxfro0LpsXl61AZ4xdxCUyxazkzybXLuP2OhUioLdnvf3NqR1RX7XvgiGpIBZR
+ QMsZ14oR0Rojos941yK2T+qYq6VXHZtH5ICsDyvNM5ySM7TyGpK/Dzdk3czfpJgX+OWLtDr6ATRw
+ 4IyMzydTd7enVf8meXN32XC++tOE3cZoLwl/+XCFxYRHMQc8M8ZPuUhJ8gSbXutm/PJ/HWmieXxZ
+ ZEVnbWbHl2eSTIOORNKegPND1u01nRK0U/+ULnU4eeABUzq3wyGNVsPAO+nvL2mf0Qc1my6oV0W+
+ MgZt0zm3Bg9gQaXSm2PdXJN89wKWr5vkb09fiKzDqQiqQrGujIFbNwe+MgZuHUyt2zcSR+VsixiQ
+ q6Mg03tFaQfPJrbE+7TSpLcKQySojkJLmtCkyOBBDWyXg92JTCItxbAf2danMRhlXUdRRnqus8uA
+ 9FyYVnAoFAe80YBbjMjUUYzRGSe1uxH5ufAvTy4PzUizh+RgnEuSr8bkuUJVGfdoKU14hhuvcPLI
+ 51N42FLgkStIRX8mHWI3XoGjmQFm5EdvzkOgO1cgil5AXwajyLj3iPf5H3VXVPAJ76DLlLdElWTp
+ 3b7ptv8gY0w6QSm6lBVStVIZAq9K6exFcnry5sf3/+eVUPhIcaxyCg6tuFLVGJt0cdfkiiNlJUZv
+ EubwoFoUULqye2nH3GC9rhlxYKhVGJSBAQ7UzDIAxI/gvNi8DC5y5ckX/cYqUpI1MLfew4NKwhth
+ yyCvBNFB8j3bX3btmjursC3JOa8jmX3XKkG5IkwZN2OoS8sW7RQQ8nt/SPYPwZFZH9pfBQ3gLBAY
+ prN/niv4JMSm6Q8e4OCXUmbMDhBiYqXTokBUVvGBbxawwoFflCGYxrAne6OAh+lcCsVxuWJPQlCZ
+ BZWOCvhM7Sl23cXR5pGG9NdclZdxA4UlPgZnIbrhDFMXUgByhZ3krWJOf824bQKXUL3rgF1pb5DH
+ jySUCk3aSY0E19+h3WTYJ4ozCQuTIkEPUBBU1hpYICVwe5QSrF9SBHJYOZn9ErgJEKu/NUgzmzhh
+ k/Ooui/602WkLRdpbWm5tJhrQp833JNx0HTqsORS13ovANo9WHN5pjKuAmOUIM9dH/FAO6tyUqLw
+ 6eZOWbnCSngR/QqOKAtpDIgD/g88rlwxJLxZHpmOlRj90g6R5Igz2vZftZVclL/cHcWVGDQtYYH8
+ zAu4RgiOo+OMetMTFkP97SiDQForKxjcx81pTITniuu/7yTMBOcP+nnx2yruPIsiypnVdmAOzahS
+ Ta2fOpbrROv7OcgU4X0u0Nrgz/RIIhlhtqIoEzd/JHaoSqlqzXbgcwvd9zZtJI0Si9IUY4twX4ql
+ r0U6+HUc2fSJIkHie37kRgZTuzqgDDAio3kWJRl4emHnEL0rslRhOO5WCX0gzdo2jTjpY4uU7QEF
+ 340W5YRy73U3oSakC0HoPIuCT5xrE4BiVJb9SqS/R7KEfNPrsC5Rtj2J2QzgZozD5lCbP5CWY6iN
+ m0hCGU/DqpMJOY6JqQyq0NfQYH5uA4EHOTxxOsTEFtSpUmQKfycva8baslpi2EUgSDoSNA4CrO7G
+ VdsreRrJj7LFsloSJSvujPT87ETG2V5/wTeEcoob/IcxipRnFngiDm3skVpKxGuJ7c51+EqWRzJn
+ e3pk0oQDXtsHsj1lJvtkd9hKHdyuGfddZOIik9K2bMKDWtoGvpG8Vpjww0oEZ9te8qoICx9YkMbK
+ MjujrLE8Ig03g+32pIRFJPRksdjvRqBaetGgqjsJseG4iGWkhGljVz3HGMqQZ45Egk93SAf/mrBx
+ IdkBjDlDsLj7nPKsAk+H6LzlibJlmEM/Yfsg++tWknvVCV+NSDXu2+n3xXsipHkUUnReS63co3oZ
+ 3u4t85bXXRRRxHgrOxIUaHAjP36dP0lpolyiRsMf0Wj/PZMjmbsocsirnhVGvuRgKjbJa6kC4zgp
+ 8uXEiGCNNiTSnRORkFFaQStbEUnigkqpOVMTDxRQ16RkAWJsG0I+FSXXZD7TFJ4S+mL2F3IGKjlF
+ /8XAHZDG7pwroTglj9a3IQeR1wM9KJOLoV/1X8YQKsgVuBI29Zx8jAcVeehe+/AhMaFjE1AKar7E
+ 1nWICHY7Ritedttt26AXdpiGInKvFuWMWNKDDAdSDoufpg51sV/o3Gklm73dXnNLFE33yRXoEqp8
+ lgM8cIvcc6cH7ra7a1C1R0Pxy2RIiiWnuyBRB61kx7jhFPACPW247Ghc5M9Wbu4teM2abztct31I
+ 6QoVg/KQczxt8UeuiJgwM1AiPchp/Gylvwqp0bJinB0tfbDiT6GR6zJwQuBwtvfxIJeK0qeIv5Nd
+ wdpNGiM807MzOT1IO7HVMMZjS/Ez4VDOAVo8KBZsMTwPVgqZBaiRRn7cdEDaSCsB25XyZaAsWgOK
+ rgkjnx99NtpEBV0EPZSg+AEp/Q/x6PZxy+T1Ip9dCXoA86cOBXDniLSN0iwMnTJXsaVX7uMmQQbZ
+ 0soJGo7XIXy3RUO87Rqd8QJl3AYO7UbtfkWlSMmVqlu2vVqz9ixZ5NxAaKWPLOf7otOS8o0bAPqt
+ tAtIBoqDYHNiTVicKOgAplL7AQiFwnV4FysHBdZpG448o0eHZKmSFmi4KcKw67bz1ESJhyeVWT0H
+ nD5bxpaHuY/iizSSuZdNnkqP8NJ0uJdus4JykpIZtmsZRFxVBc6E1qTo40EpIXyWVW2FEVKJh4u5
+ sZsySiMjlCTlhlGKtvM+atS+jZUejBt/F/8SJo7TDr/7TRJ/rriaMHRz49pcUHActajcwALHr8sj
+ Cdknc8oTHqA9Rx7chen+WfLyTirkG+0+Q1/arIZpf9icjyE4mStYlnPrmby08wUzBDGVU9TxdSNU
+ HPTl4QaJO7TDY1VSrtCY0JiGXPQg48LCkKPOCYxNSGDcht7Vjx9ps+yGXX7t2pIrSJZz1xnv7Ndm
+ APLE2ZcasYnTpBvu1dpw7a/yKAMPZJrNxzMewHhzKgighTnRSafhlo5JVLCJFy3a7V89V2jJjCr3
+ KnJHd0774aSCKpE20euMSaOgsf1FDl1pesSpv/EqjVzxspx7v+S1ZYjWZvlxN189tTcdR8YPXNfG
+ bBQVy7mnhZ8RoVwSHhg+juV1zc1hrYnPuSJgOacb5HOwIJf7HtK583vYJwp3yQvVnCqNB2jhWofI
+ LJLYx2ZasSlMu+1g6t+nfUfS+fePbb9urlipVahWV9NfkTHhWM5NHXLON3Beyqqxgruu/dQE2WrO
+ 4awpCxdYIHw6V2jkkqFQcTcaCUPRGnVb8s4OCIc0/eNHXN92mIMfiowJqT1u5VaJVLxQNK5hWdpB
+ s5DnD7SGW08CuBibT/jb2di32017E9vK5Yqi5dp4wU4n6hHrdI6sXIkXnuBYeLLr/h83+0jG+wlG
+ 8XbVPvlWOJaRI50sc9g759wCdg1/sktzgU7G8Ezxv6zmxw2yLsFWmseirom0gV2hKvwGAmlzZBYP
+ kC1RciBthd7FcnmDOPftpFMycJxJYbxc8TgQ14vCqJMcvibXHtw+1xJvEVtF4OQFUzmTc4sC7mcV
+ Kmfm+W8uBuhBabYWSs54jFpXmis8J1xyczzm0pBMmqf3KCy4DH3ls0hC5mxqR5KiMVshlQNnpNZ1
+ yulfhym0RhC/RoG6IBMKygkLb85Svu8i12sMLlGeB2dI0m733T5srzXMKZaJ2D9fETvh4L2dYtQQ
+ eslqWrfI1mh2bAHRMUe6bxiBG/9uEpWrj1y9bTeEB7itBxU4jdwbEfWhzMLvxUw5FpEjaioqyxG9
+ sZeiyBr0oZfQBcdPyGMGfsNBZG0aqIJSBn5Im5xLcHJpmVAvBeHfcP95VHVPHBG9lUhuQ4bouG6C
+ 0FWRF0ro7LJwBwW2EF58uRTf52ny47obgoJWQC/Xngh2pgCNYVP+LAG88T6YnpOkeu0HjSMdufR1
+ 3AFwKJxlCFNejmBpsBbmto7SjWssllZUgX7g5HxyKtvhie4cQxzlHAnbpV0Ytsb5A7i4IPjorJZv
+ ZK8Aw+ZsrfNhc86Ak1gCnMw0tb82oRlWXkfZR2SzspOM7mg4kF40x66/pLlccX/YFs2UpsMYZimK
+ Pc6m1Io9eltD+X7oOPEQR0DT0wZCS4pvk7fd+kH6MwufKOgIWVRWMcCeh1XxXuMeW65XbqWtkxlJ
+ FGxkOczhHzwoF1z28GYc1gcyHJkWXfr4v6Wcm1de8vp3B4bauA1fHy3FOgq6451n+ddy9RG6Vne0
+ pusDcnL1UyN9FG563STu0AOfo+BAWhIi23WzQwIVGXfEjFN0xLjuQ74OJ4ZNbR9ApTrKPsocCzs0
+ oFvQEp9/hsfD8JpbRslGBXlutywdD5x1rU0wbhj+jNn9bhkFnF60BjbnZdTL2YT/7c0MT5PvG9y0
+ wcf3sDc+n1OIEDwye0lTzi0xfCEuE4ZDy34nqcXiaB+2sZPMpkV3jtBR1ymCKCxMrg0eACZ2su/D
+ lh+g4tHz+7rZoTGaZDTtv/wSG847hRiFgekATQ/oDOFU7bMtF/4YYxw1focdb0Pl4gMXtNuc4d7c
+ aVSIv3X/NTg6i+T6gRSmtKjcNBr/+Dm0qruSinowLiJjFMzaSSRdyjgyA2jo1ietkZHxyiWAWgrF
+ lg/cYHpELiMKSsOgy8A74+s/LG9ycSTSL9avNGOjswNn79gL6jzX0f23r+gPVfGHSpuDTQ+4HRst
+ wb+0qygyI+WqBHiy24m2tVTEDpdqazhFNoW4zI+4OdTuzVcw3K6/wO8NgwsJ59rgl7uvCE/FN4WF
+ qYDAA8R5OT6ByDjH/RJay3ClVyg9hfX7qQ+pwfoN4JxGzpW98iTnjhulS+UcJYXMjZLksqeHQBy3
+ EGrPj8QK2b2wunhHqy5yadweXGxntwd6LTspy5i6pOlp8NIuGq2n2t0XACFy00oadwRKIb3dERy4
+ TbkfeLBKE1zn9xHGzxY9TT+q8X4TJptnXsu6XBq3CRnUyyNpRmdJMSqeJaccxpcMyb3cxqD9Fegs
+ JIt+1Maxci3LHrdajQ+ae+/SuGNwfVsxnxde2vgyVCGLpuUM7NEisYmOjeiqO4VPQZYCdLF8cumZ
+ f0vuwH8gsnpOJ7VOXhWpaAXmtJWcm2BwAWC4R0fBUPwFzSTsq2kuFX6YiE+rgftJiR+rUX2JZHEJ
+ 0nS4oSl7MZBt/EUsc+5a06xw3OiWUfBUOJtboHK97yxAKEx+2CZ/0KtqESJq/WAv9FGAFYzQGdtZ
+ zqiSxukc8YwOUAbfxqYyQw4fbVBG7lSCFWrNJX+rsvxQraOJtTISieu11w3ZflMbOeSRg0cjFMsB
+ Fclws8/endDOOXl1+hpdKk/f/uv5j+9fC7UL1Lgew0TdOROn4NbFUKhbrZHu0C9Ou8XRQc7xdl2j
+ P1U+tpFziqoKmyo94ouE4SVUIJsAosl7BeTm4IXmDCOd7xCyI5yiqrl2YDhiW2l3a719kfYjSg+3
+ cuZIqzdcick4WbjJKsq8R9uOWU4KnOH8EdqURLvR0pDgRtCaho6ZXCPN5isiF6jSVda6MZhTYQJA
+ BXe/BuuXnJGmr9fxdW8vpMSDkkyfmu+yvEcKmhAoaIq/V7bFWy63XfHtCaGA+7etT8LZ+Z325OKm
+ w7E1hFNAFZwQfiwsa9yOKudkYM7H9yrkIGjj4D7mV0ivHfykMs8ic5JOE1YsGFIpOUsDHUdiu5Gn
+ yWecGLESXow/hVqFzBvHnnO6lmku6ooFFN2LR1xdIWgUHYK6dxRqFZosPRqMl0a/Clpy2wvtPLxr
+ +tCX9/GjDd9FxqMj1TzexZ2tGKywqrxdUVgFaap3dm5Y5ay4OyPZSYoULdg5l2ZKCASgFibhori1
+ Flk6xWqFn0ntzeV+LOn8/25gBCrelfcZV4k0o1rQCtoKhWmfgwe09AhZvMAtWtyQBGeg7ps8Cje6
+ 29T229AWATEECe0Bt5HO99eHtt9z78V4eudR5tHzZr5YBQ+QLZyrJ6LyC9JFgtlCGmEXoWfn4laA
+ 71bbrQYnTG9lvbENQjjuHumjvCNst7RfAxesEI8IHpu2zeJCjlG9FueiRLujJJ+cb/WqYfffxgD/
+ d4n2Q6ZtJ/dTKpMozlxAaceAzD8pf5dOfhMM8X348SjBng0eS0fuGRYqVj26ALGWnCc2Z8nggcPt
+ VXpzH9+ZCXepR729kBaRFOrIWdJaegCfom3YJz74Ns2voVW/C5BpKchEZihTTaWTODjSyhodaBVp
+ CltPiAeInkuja56+TQwJuYB28p1eqbO/hB3npIvgjFgxcv74EZmvu2Z3lwwBuXcB7CwRMnHGRyol
+ ZIKW0UQhvxpgTLmVKrdjRf5Qbe8y3GvHxXBJWrfdk98viFlDUk12h44gC0xR4300AagLK9S/ilQL
+ daSQ3qLIvwswJpOUJpLESY11oVXO6IGQnN+N5+hMrJQuUnKTFUtJ089hVr5elExT2pgDtyQY1m3s
+ JOZ8lDSPC5tmDpwYWYZbqqD8EAr62DZbMps/Hhi+09sbA2LJJLUJJHGaIweS3rUxuR8pWc+4d+Hq
+ Ct6u6E9kyqM4HT9ymILJHMDNiruvuyPOtIaplKu+4TM/ND1iTyfw++73nbdcwDWZhzcAScXBWWzw
+ l82mw1qRf7dDr+B+IE9/Lxjctvs1xrrDJNaBI4K5mZ1EviHICUdpC7Ti3mBy4Sfz1viu4SvTGnBQ
+ uW7K2PmczVhlzuCgs+oIoGclrc8zS1VKm7BI9Vk7sYMsC2RIApprDHNuBLPUfo68PXDc/y6D0gVc
+ ky+sspY8t4XxgLPo/anTbj09NzINdxS4gGHyy+WcTJtzoxgWQzkiua6725zfr3ClKH/FKdoyKxsf
+ 2LjMZv/k3OSFq3zMFaCxmT3ai87yUURxxrVBBquq4Ktyfe/Pel5eckx+QbJ9f91I5+3fCFsRJZho
+ nbfMyGfNpa4W5uJGoKBnuFsCR3C4gLWI0upTm5qec4MYzjv5fv61KIi4fjy308jdGJdBEEMbEcn6
+ Htu19v1AV/gg8XJL6x+Ie4AmOQ3QXHafc0MXOUchKbA29Y7UNFJAT5WWolpw1+i5DBT53R/bi5Yd
+ O7FKgIt1Fw/wqmDfqV0VcMtagJrMcEUFJhcT/PvhYd9O7aaVW/1W3UZuG3ABkeQMQFfZj4DnCb3+
+ gatQkIKJtJNweAUckjMFUxOF4Ou6GOl5T9Y79C38dzJk0Ch8GPcSPESeKFmL1/dkJ2resgtwZC13
+ LRWGJXKefDBMENwE5MqJP+x/HZCZct3xjcKMAmupqwsgJHPIjdzVnP8Ep+d506NKBoNpueEOKsfn
+ gT5LPuMNna0ysvNHWUW19LNNw0Ub+noVXy/tlRA5X1rGVUXhQpRv5J93m2EbqetAnR+7NdwmhhGj
+ F4NmoznFDd1Sum9G0XJLuWfL6zXQNxxqxKRdN6sQaFR0UN41V1k7zm3jVLYfiDLGYdZKvdAdsdD7
+ MZskRxN9XPE6ziEDBRKFmVFqjnPbuFQ1AMGcXgQ+nOWt5HkkJ/Geey3Tgyyns1raGuNaoCdHg3sS
+ 8+wkuea6u479k5yihsIjm9tguaXcCySOFBIU7TT5SORxoYclQu3zMsbveTYmPhPCvSsWjnUKBhIh
+ SlJnOcKDHJlDAKyOPiYOvIyUDpfOWkovjZfOtDsHm+zYC0pZBUrcNDqfTI5TpriGSI82do/VZOCU
+ jGFnigrBqg6soHtTKy/I6K4k315SqmI+DBbn8aOhF5/eJF64OsouCvtTOxu+lDtpT+OdA9JOUILx
+ 4D3E5pWujmLMV4nNksIpVPxnJLHBfhQUlK9E5swR3PrVjIKPiuZQWNDxpVvV7CW5OadJlhZV6Cj8
+ poGQYaflp07RPryN5l7ekpNDArVryq+UxgUaVHmlloavqy7nq9BsS1SnGJ68ZnS4S/UCFA4ySdry
+ pPlF4QZbOuvQu594PrkioX0iLdfnAJaie8Kq9ke80fs7Rb+4vpcmsc3N13WjeKdT3E5erGYPzPH1
+ UMtKmtLRWkwPQbgVqpM3zM2lTnKGMtaXJxNt6W2L3nKNkqKgc9dcMhwvulOROZdJh7qoeR1fx1HA
+ zAtpFHL1goK7PA6vQJ3jhhgmH9NxVkgNSIqDjFCnx5nbtMe5W9iAgosVHZgPqguFbxr5FhZxc9yQ
+ gu/TDqNStoyJKnEWiWvbLcZxqkjB0NoY0kJ6BG0Bcnchk8orNIfXScnPZoLj7hI1IsGfw6/jmDcX
+ N34jDFxk4HF1mmVQKjC/1cDcwsD65KxN8VZsBeKExvS3dLkicxLp5pMFSR4L1M1MfKUeShDaS+0i
+ NyF7k6v2Q1dCr1CccCqMTs+lyz5CCyeB5DtNxY9lLDJjP45kXJ9etRfKsowsUd51xLKQ9j64DSqR
+ 7gfcehVy0STvyTY/rNCzWZzOhFMwxlnpecXcHOeDVLNB67jdQ5XzsfY+9k0U+l7uOhNMT3eNV7zN
+ afbG0nLy8JgYUJEyWI6c0mm44YjddgiXEh82XbznXLE2x5damFvfHbdvYCm9fd5OGgTUdm1ecTQn
+ aRulFU94TohZ/dDwFTWYp00zoayc5h4Nb9ad+r9PXnZklycfulX7RAeTBbZ8ObCVWu6vp+1uUNEV
+ zgGfRknPEbi0q4bumrB2kJfPrXvjhetplG7ymTJvf4ixvRj2QeanXH6lPU+VPgo2jtfMrifKkmFI
+ v+QoU4BgN6abpE+j7OL27toOGcEQjr6HrvVIV42Ln0YJhatT2GlHU+hasyPuk4/cwFEbY95vtVxN
+ mURZJDWULu2K49ptaMuTyzty1/Wk8gqNObldY+5l6fjyjDoPqPcVugKi2IVnDj4LxO7vY/OJgwpc
+ mi7TpwiYE1TfrJnj4xaWNHEELy1i4iAOY40LbLJ77RqNrFkdpEJfwsGqGm4J4au5zY0tB/OKcOGt
+ EuklhgwdHTgj5nAtt03i5yF3aDb4C1SL+tQSkVzjwjgoBZMS6BX+Em5VdsQ+12savu5wVSTyi8fQ
+ z8Ir8CWvGXzGMWjPzpFk8Gna0QPC792IvKuWU22k3mZ7aMPd6l4xL6dXbdg5RxwRI53P9s3hHi08
+ N+0MliiXInKpbYNNxxd28MV9fBEz7uaWCpjYC8ArnuX4ao50dnHwADUWZcjtGZLGVgd4RascX3Zh
+ qo7xoFhwhJyRIs0HQQm1wqIhp2pSXST5APFuHp9F0Ua60RwWcwy3l5CaE934C9rKh/vz4L/6PMow
+ egpUdolgJ3OTPm7OBrnpcO+6lCMyXCDCl0eZRcmVP2KBHu9yk/z52GhcxOdRWrkKy04EGtpCarhP
+ ++0HmQO9LQ3ltPqLUR7JrCiNAmFcnc3g41iOVxBKXijm8mLHwDuH0J4YAOGJtd71XgNl5CMjJGKV
+ llFBWiTjjke4rtfUIGrdoA6+iBzIQM4tB9gAebQxb1jzTe1ay0wu1VInX+nN3UeMDq50Ml/Wyr1/
+ dZhl+BHiWc13qTlB6+G/vj8kwHgGPVS28pWLeJuEVwDKcbOWfO6o6biVyhKIkABQQSsu9C419hHY
+ sI2s6sgKnQ8yw4qjJFJozZEeVOZ++qKXOTU7xO5HvhjV9DbxikYJeWW8B+6gUvEdUQhAcaXaFOvj
+ 5HrjwCONPJxtuuIY0196yU+LMrHg/ccn0FrOpPtevXXll0V+MN/tlKMODN/IV7qDFHOkfuYXmDPP
+ z04WXKwZrvNtV1cwU7gYmAsrWnji+kN5+CEAJYWdTC4C4Hgvq/vpgBth9Y5hkaKVRl61357pT+ld
+ 3CPwZIxNxp1WSmzLo5pi7+JeQIf10hLAHsmlH8l9z+XrsotpM1y3n/hTey3LCvf/eRc3BvSj8TT4
+ RosKNuFnPqElgVlSL6U4TYx9F4We9KnB9xzfcVEiwgpo1tAtEpzrN0mlDKLEI0sptTOLClQY65+f
+ t+ft3CAGbdOAWOA+6ceP5KJINItG4e7Yh3FF6feZrfNy3Hil4Ft4YGJ9+QXtGXFRtKj7c/bQIC/H
+ 8+6j9AO2PJJ+7kci875+mBBQ4ftCufhZp1mxNFcwSmT8A74ugz3v50JKixQabr/gviT7Bq7GFa67
+ wB2pF12MHXgF04RJPWes4kFBi4eArkQt77dyJMd5k0lSJM1JLsYMMDtOvvCIIYkxJW+78DbKz02k
+ o2CvB34jihQkVW9CNEpagagOVugMb6NLXGHJNeXzZ22+0Ia7Kpvkqlt1kpHezcnkXiE0InWlvQ2G
+ HoSrluUE1b1GOgUu7/YA0Vf7TcEyxz1pTM2F4w4zNSLCPzSTVt5pWE5LSGNisqTLovdPGFgVmZYo
+ abdMgTBWAWHsQi4PJzKGux10ZCq7fPFIMecYOca3uRPu+zbs5XYu8PQKgcl7ZXVEiH7SoWv9KBfj
+ tsjJJO+ENKOGcbzCYY4BaquPGKDmtp4SWWf/Fftubi7jFRRzpaT4F4YYtwdpTcye1THS4Z5xuZ+o
+ 36CeIaR852MoHPWKlBET7iBrP4qNwXCTuVzJS1o9pNaIjCtUJm9Xc4G045suuEzq57AOcgUfxNa0
+ oPSKkglBZcKOfO0F30H++XQYcSr/JhKi0JhjCN20C3dyOwUcjxD2RWs3bjbbHF0P6xUQcwxZm6YT
+ jiFrDp7dzvefiZTKvkND/+3+y1bXRgWTQefCGBYMOvPFunqs0mSOsfZhDgspVob3cb+ItwwQoUlN
+ WWGPG+U3EoM4YwhGeCgSJiSmX7bjrjrc6OaneE3bQtEbJU0DKRlXy7noDg+c5N2dTauvqytSc3Mv
+ s/dtcHPuTU6zlA+u2vBpCowJq8rbYaXcml7hNlypCPs7Jls8WYViEbZ2NM3CK1bmuK+OKWl0jERz
+ 7SgyV3dyMa8EW7p1Y5Ze97NiZ6BDiyT70Qj0ZrUmAN1ow4Qp9GvyCpE57pRiankd31/Bl6xpJBQg
+ wGVDfkaoVvCKhTntczKvNN9IwVHNN/H2ljDSMtCgPtGIF7e44MTUv/zXu7+8fvs6efv6b6+Fpoo0
+ iJHllgZdApHgebhHO+2FdmbRrEVtnhXyKx/CMtaBH7yoGRZ03JeiztLfeSgKhvmMk/LnDHR6gPtl
+ uY0lKlVJM6s2UQTMc91CNmO5eFBIfnm40FPagnlFtTxfAWry+bx0wMRsasDilrMOkYcuZ57S54Ee
+ HWrnRFrPcYcSAyLn5OLLdDGgvc7wUboz4J6B0BHx8aOrwwaFvQi9r9qeL1sMt9BxhVtYRoW7PFcp
+ LOe8Oc9XeuZ6x4acfsgeuXpYj8gSRHdMaXkRGPnACO0wMztqXAWqtzSRyYYaDrm+VD8B3T/QpPNN
+ tvTKq4i84OvnlhdqkH/TKTOiyDDqomOleBjRIFQ/H43eiYHo5nLY+S4Wr1iY50siM39EVS44BATA
+ kz1Wxr1s5FbRL+85x38OfnnpSFhyUScbS+qByIIryuXZ0jRK0ouliagr92rXISqY5TnVN53DUL5g
+ t1vDKtrTShMGHj+StuTS/oyv3onsVFyZ2oSd8MDJxe+v5Jru5JbddqHKIxVSBVNLRTsLf5ZoPcLx
+ Gl2gf4bbDznQcDl8K7xc5FXbfH3Pabsc63nFdgJnk3Dbpq6HqOu0K8rluWeiud7Lc2YuX631At6C
+ Jjjba8e4XygZzHJ3GNpzdcpTRVAMsDmJwUuCIXyYOTnIK6LlOafQCn/JGCE2ma5gcmu7nHnFtTxf
+ l2ZCZL6U5AnE/A7n+4f9AQcFX1b39q9nr963zcvHj/75z38+4yuQ922zebZt92D5/wFQSwcIloU3
+ BfVDAABwowAAUEsDBAoAAAAAAPOUnUAAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgMAMlunU/J
+ bp1P9QEUAFBLAwQUAAgACADSlJ1AAAAAAAAAAAAAAAAAPAAQAF9fTUFDT1NYLy5fQnJlYWtpbmcu
+ QmFkLlMwMUUwMS5QaWxvdC5EVkRSaXAuWHZpRC1PUlBIRVVTLnNydFVYDACUbp1PjG6dT/UBFABj
+ YBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAfFkIAbxjzIQBRxDQoKgTJCOGUCsi6aEESEumpyfq5dY
+ UJCTqldYmliUmFeSmZfKUKhvYGBgaG2SZplilmqRbO2WWZSall9hXZNflK6Xm1+VmZOTqJcGEWQA
+ AFBLBwilfDPjdAAAAMUAAABQSwECFQMUAAgACADSlJ1AloU3BfVDAABwowAAMQAMAAAAAAAAAABA
+ pIEAAAAAQnJlYWtpbmcuQmFkLlMwMUUwMS5QaWxvdC5EVkRSaXAuWHZpRC1PUlBIRVVTLnNydFVY
+ CACUbp1PjG6dT1BLAQIVAwoAAAAAAPOUnUAAAAAAAAAAAAAAAAAJAAwAAAAAAAAAAED9QWREAABf
+ X01BQ09TWC9VWAgAyW6dT8lunU9QSwECFQMUAAgACADSlJ1ApXwz43QAAADFAAAAPAAMAAAAAAAA
+ AABApIGbRAAAX19NQUNPU1gvLl9CcmVha2luZy5CYWQuUzAxRTAxLlBpbG90LkRWRFJpcC5YdmlE
+ LU9SUEhFVVMuc3J0VVgIAJRunU+Mbp1PUEsFBgAAAAADAAMAJAEAAIlFAAAAAA==
+ headers:
+ Accept-Ranges:
+ - bytes
+ Age:
+ - '703'
+ CF-Cache-Status:
+ - HIT
+ CF-RAY:
+ - 6b6743b72ac3e51a-ARI
+ Cache-Control:
+ - max-age=14400
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '18115'
+ Content-Type:
+ - application/zip
+ Date:
+ - Tue, 30 Nov 2021 21:45:44 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Clmze%2FTQasv7IHNXRzD09cj0q3UVcXbLCJrgz5RB4CFS7HhylBeuaQpCnZeRmeJg%2FyAC1I63ekzBZc465j1AmEfvz2jNFh8myAxmYiOpHqYa7sNy2CmTGIW5RLdpRwxLFdy%2BLHV67W45YXWkYkjgrRQ%3D"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Vary:
+ - Accept-Encoding
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ etag:
+ - '"4f9d6e2f-46c3"'
+ last-modified:
+ - Sun, 29 Apr 2012 16:37:03 GMT
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_episode.yaml b/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_episode.yaml
new file mode 100644
index 000000000..1fec411d6
--- /dev/null
+++ b/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_episode.yaml
@@ -0,0 +1,129 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/search?q=Breaking+Bad+S01E01
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAAyxSvU4cMRB+lZErkJbTkTRoO1AiFJRIKBQUiGLWnuPm8HqW8fiiC+JhrqSgQHmE
+ fbHIvussfTPffD9+dUq5RMuuf3h1HFz/dblcXnTO2CK53l0p4TOnJ7jCACdflsuLU4CHu+X59+X5
+ I5zBLUcx1znbTXWcJs4SyHUul3FE3bne3WM0Urhfs1EHpAglwQpHyQKctpSNnzCIwkuZP0b2AoHq
+ yKQN4jr3EwdRNFGuaIRrGZg0SQcvhQAhzB9Y19aygzVC5iCgFKkSAwKlTPMnKiDgNO+NvWSgbCUw
+ JqN8vPgjZWMrJkAJLuNQXgrpS6EF3KIiTBJIIVbWyrTiVPdGymA4Djy/JzCm1KhMccBNvT1SYISN
+ aMJQlVQ04hYDaXPqxa8pL+Ay0Djvcwfze4Qd5AKUJ8nYwd3zLpLCyWVKCNclpQ6+EYY/IuG0g5IQ
+ xrIhbVFkqv5XopvqvGESKBuCR9UaPtXz4GWcFM+2lKwFh2rzhy9RMkyiQFe462pC8z6BV8bUcjxU
+ 2cGNLuDk9+JmAb/YLFKTARvZUoskMHnOTEaA86fkDrykJuZJMcGqkP5tV7cSSzIMhxoP4U2o8z5y
+ 5gyelAbFCFHaQP0RTXBJldE4lVqzSV3CamuFI0fGBdzWdE0Ctp4xQ+AV+xINA2WYMHIgT6mmoRTR
+ 8/yvcQJFSIW2tZrsy6A8MiVrTR3c90edft4nT3q0BpNKmv9lO/7fIPngvdnkgAvXOR7D4HrnOjdJ
+ NtL6fnvsnIlhdP1552S1ymSuX779BwAA//8DAOpgiQCaAwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743a65fbde532-ARI
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:42 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=fINpgSr6RpM33TGdh1m%2BF74xZy7MmkNtBwLKyP5cXcseIaB2FzprBhWzr3VG2jBUQR%2BBoMDNt2U51nL1BtJls0u13HhErbwC4j3mMevtJJlNJQ7BOq5kD9bVUrxVekFn24slQYBEMRQpFPyc"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/episode?id=30008
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA6xU3W7jthJ+FYJAih7Akal/WUBQyJacrPPnOHHi3WJRjCg6ZiKTWopyNlvvw+Sy
+ F3tR9BH8YgeU3W56mrRFe27J4cx8f/wR8wLHLiEk6mC9KnIcY9frOa6DO7hmUEuBY7uDRbPMmcIx
+ JjbuYM11yXCMx7yU2hQ2yyWoRxzjGyg1U+hmwTXrIKYANQLNYSlribhYsVrzWyikQh+azZclpxIV
+ zJRUqr3ipu4EcqlAS8XNbYkOZc6ZErKDPjQMASo2X8A8W8hHtABU80IixUpmGiNATNRs8zMoBAiq
+ zZPmVNaI1bopOAjN6t3EN6LWXDdaIiZQUubNh4apDw2z0BgUoEoWTKHSdDWd5lyYd0tWIw3LnG9+
+ EkhzJtpWWkEOd2b2khUc0J1UAgqzibktYQUFUy1SKumC1RZKCrbcPNUdtPmpRI+obhCrK1lDB13e
+ P5ZMoW8TIQAdNkJ0UMqgeJCy+E8HNQLQsrljqqWiZgb/XKo7g7y9kwWrNSAKShnymRmPqFxWCvZX
+ TOiWOFB684U2paxRJRVifXjsGIY2TwJRxUG0PG6l7KCRstC3E2tkoVOudcnaNdCdXLGWkoIzymvO
+ NEOw+VnWHUSlaJe5VSDQvGHqUzt1JctGaCi2Mm7Jq0Btnkpe8xpRpliuoESlbAuMI9qFG2E6ai4a
+ I7OW5hEYWHNY8pKDhcaGXS0LaHWGGhV8zmlTaihYjSooecEoE4YNxUqgfPNL2xOxEomGrYw0NW1y
+ xZecCd0qtUUf7/akmydBmdpBQ5WSYvNLrXf+LWS9xd7C5AVYuIONI6FmNY6//xHXslHUJCa9Tie8
+ wh1MZcEojvFsxVOTKAZLHOPzyfgom16aA7itcYxNuPgn89L1CTrtmxupFBPaNH7fwazk4n47pFEc
+ x5gVzn3c7a7nvGTrvmJwz8Wt1YfCuiR2RmyrDa21XcQy4/d3Uy1Y8bUbRCRwvMBbEz+JksjzQkK8
+ nk9sMsjC/jBMEuJmiesm68XB7Pr88GR8NUgGQ++t643ezt6cTM6n6VH/2B0cBs66iz+/N99D3v4Y
+ z9dcaF3VcbcL6pYJg94STHd/q+w6bs8j3d/tv+dEDiHRntPbQdl/FUpLcCM0jiPfjezP7z93nonQ
+ L5sJPD4T4aMTeF9FmGQ3yST9qkHokOqrDo4V+Ojw/yeE6W5tN7JmTuDtb8dby/vV2ok84hLH9p11
+ QGwn8Yd9Pxy6aTh00sD1yTBLiE/ScBA568VB9u5NNsnc4+vZ26PpIDtOLtLBOEyCq5ujd97laPpv
+ 1PAIcf6eGjsohtIW2/5vdP6JIpeDyauZIFfXfzcPz+HE3e7Dw4OV6326AG1RuewW8kGUEgqrWlTf
+ cTGXPyygXhzk4EHo2EBc4tk08HMWFq5t98COImqzsOfnwbzIKe5gKDWO8RJuBdPxdx/1QaNEnGu+
+ iGej4VF2eJEmF20k/MPs1EkHh30vOHbPwjPvm0IcvGSC9HKydS65uv5Gq4Pd6uyTXll1CQUX95yQ
+ 0OgRB8QnpAtCyEZQ1or5j+P/bOyvufejnuMHa+JF2TAYDFO753tZ0PPTwI+IN3DsNEyijKwXB8f9
+ dydn/tQNz9+cj2ZJeno2OgrHiTs4SQbZxdR9wWm/1/sobUV9OX99nrwWPtsivT+E739Ur5T8+GhV
+ XIFmogKl+Z0lyu72IIfHX19axgFdr+eGkW93X6KqjaZZtXXzfp8n1q7cuhr3rV2jP7XFnDgu9WgU
+ udTpMZ+AH0DgUsoiFvSiXm/u+XPqu+Fr9vjjCsYkTVHtucmeM9xzhloBvWfKkhUTOde7pYzf99wk
+ Iq+VV01ecpr/dSGl1CpYW/IPHfcCjeZzs+3Q6ZEgsu112PM9z/Wy0MvCyMmCNO27A+LaxA9JYCfG
+ cmn49myUnc9OR/40PT6fhs50GGQ37vDCnU2PL8YvWu795/8CAAD//wMAfmRZeuAKAAA=
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743aa4ff6e532-ARI
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:43 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=6889nScfx6LNh5a9UuL4xYY7q%2F46Je690M1FC3gyzpHpFkd56IT%2B4tnMmn2I8CLaCc97OCGESa89i9lc4%2F48VHaCkseJxlb2XURNVbEprhTMeEccV4cikl8gVK35irBC%2FhEw4dw63QyW9%2FHI"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_movie.yaml b/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_movie.yaml
new file mode 100644
index 000000000..99d9a88bb
--- /dev/null
+++ b/tests/subliminal_patch/cassettes/test_argenteam/test_list_subtitles_movie.yaml
@@ -0,0 +1,366 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/search?q=Dune
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA3yTv44bRwzGX4WYJgmwkHTSCSepO9g544BzkCKNkYo7Q62ozJ8NOaNEMfIwLlO4
+ cpdWLxZwpcB2inS7gxny+z7++N4JaYtV3e7n946D262W952rXCO5nXt14BiEMpQ9vG6ZXOfOhOJ2
+ y8Vi1bl6Hu1WPemh/OY6py0llLPbObvcQUTAXHloCKOUPfnLR+xACQ4IvqUxcig7oAgJc8BaIFCE
+ SAPlgMIF3jYM3ygE7u1FFcy6L5IwFEgccZCimChXgogKlUkEFUaSwAF1Bj+SFPAlFVCmNAp1QBle
+ EN4IZniFilPH5zSStVMeGmXQJgNTDgWkpSKkEAh8yTqyoOfLp9xZ0TGWqnA2Wey5ZNIZvAPf0F5+
+ ofyMkIuJy2RWxxJIYERBoCOJJ7HyZBIwFOlAGxzLiTIc+FjghWqBsx0e+Ijw5oCZE1qGlPdCuWIG
+ hJYRxqLcR+rgDIEUtVo6HQzNUgHPJ47m/lEEf2HtIBb4tdHkpEhFuXxE0+exTIYjwoARf2eczWbw
+ 7dPzy9vHp6fnH55/eved6xyn0LudWyw3D5vV1nWunqaDh+16vXSdG4tWErdzh1pH3c3nKINNCtMs
+ U50LaWniSee+nEh0Xg8t9Trfrxer1Rb3q4fVeuPX233ol1u/DXd4v91vN/3sOA4GGqGWrG5392d3
+ xfZ+tbrbfAb3v7Au/g9WAPgcS8XU8+WvbBMvnsMNoCvQNr+ImaqBo0xSi6XzfYTL37FyKhDbgAIY
+ p2wzBib7kildFjh3oJyBUo8ylK8KpssHBb4Ow5A2MltmS6dMqzQ2kopwQM828ZvAxJRrAW0TwwJn
+ u7pvdC1hP4o9h2YKZvAIIylOyGlTwGDlUa1WuFEMPnK6fKjsUa/VPCpfiTed2JSySQgEODRb6Mun
+ WIwtC+mKpjcBMgHVM+WrOV+sB9rORwTSkazMLWe85pwoYh5oBq8JOHuMvkXsI8EJ4+TuxBXjbX+i
+ vSHxbN2r0L9ZagcnFDZfaO5y6SOZmcA3v0UGzPwH/gMAAP//pJa/bttADMZfhcjUwRBkWbXlbEXQ
+ JWjRoEOnLNQd5V5wunN5kgH7bTJmyFDkEfRiBSn5X4F2aEfbZ0r8yO/33dSyulOcD61jtKp16vDY
+ k3gKQxpeMYj8xEmBoBKy+9HTQWhzN1pf5MfWeYfwoWNyVgFS0/mfMnpR72xFhJ0oICMfvf+AvRcl
+ d8TDM1genpMMZIQdNmQ6tJjBZ5EVvZczIwStyKr4k9nFBEymJ7Yx6bKN1U+FUYDZCXimtUq9VOhc
+ iDNAYBxeD1JZ+JKIna6UCx27zbg0MuPhxU/PSv0+JhldrdVTrJm2MWjX+xOw5BPq+S3LYFpM6hZP
+ IA0eMKhN5M/QRRtnwJS2MQg3UTNlrJNdYGheFvmiuMbQ/N8xVBIuzGrd0LIuFlX1nirbFHXTrMva
+ YEH0RwwVZVWsrjEE7+brqhRmTgRq487RFYA+BpmNpTS8cOdMvIDMeUlOPDoRahsZTkHLtCOW4IQW
+ LRN8xRa9F3qFp57HiNg5erqI4lt4vPlGweom+E0vRrUEbb8HT09xCjcdpaTBGCQJQ4e6S/fuO9qZ
+ jm7bs2ucQTl6gS3YQ5C1wPEXe8zp4Kj2mLIse7yBsXmmNnZXjd9FjxbDDD6h3cM9peQMzkSlWJMl
+ IxKo3RIMb2wpjEEtSUmsFwo7Bbeh2jGk6Cf/SJKmGaDBWp9kURerPwi3NXV3yMNb0NZSD9iOpLa9
+ fKGJfHS25EXQi0sirDG7ellIPQ0/UTjm+6SjOJbUp6jJvadNL4YwMeyIO8cKUAF8S4KcJEeCAkPv
+ DpSEphtnxNIGtzg51LG8YycXHRGevBBWAJdll07Jq9W8+o+EpmJR4apcLalcmvk6zzFvls16uS7z
+ moyxao2jHeaLIq9+i+VbeEDu4Is4o8iL+V+dcdr+i6D8BQAA//+clz1uwkAQha+ycgWSC1s2DqSh
+ iISSKlKUNsXYHv8o9g7aXSMSKYdJyTm4WDSzayApUyKbsZl9732P2ntF6BurBqeaAunm3H0E805a
+ i5xt7ZNXtajRhMAX1daS7yPoS+EJjVCy6Sa77X46n+QePj1e7NzWVMVTOAKZFgy1I9dC3xJnvRu0
+ aA6SzTP0YrFjuD6CQ4HV3vSchcLKAww9WfhTxdiRs/tlgqEWriIArtTiQ8E26ar3qP5QeHQoCRpY
+ I6XlRtCLZ8tfe7IA1VICpYYRLkpevCCfLqgdmnaypJdeYqJjeXLJchRFXza3eO1Hct35hOqhA3af
+ 49EDtlxarwfKvgiFwID+lMUwtvij8eGgaWQceH8z1GOu+cRZJu0nAE0r1IcJB0fWe0j+NYwy8drT
+ hUUtbGnmjliMPf/NZbpi9vekwcjDSDe9vJWvGMz8MWAXW6glJsHXE58jZH0LxC1JzbZqZ3BE7Q+d
+ Z5u9/JQOyl66nv2ladlHuNVg1XG2D0FSN6uq+lsCpmmR5Onm/75OyjIHbIpVnWXrPFunSYlZUaVY
+ 3FUlblbe129x5MjBEN3ncURNY9FF98nXDwAAAP//AwCyccXNRw4AAA==
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743805800751b-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:36 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=Yn6t4SwaaAd9gFu7CdcUfuG7sL4OIk%2BUlzt%2FiSOj00efVFPV5%2Botf%2BLwl8egR0g5tIU8V33OlhnF9TKWWImtVl8yPo80jTtytM7ELcnayyMkjEyj%2BCgZMBN2ptAqHyimW3e%2FNkBpWaeaJVuP"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/movie?id=324
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA7RW227bSBL9lUIDg2QAmqJIURT5JltW1os4E2y8c8EmEErNolg22c3tbsrRxP6X
+ +YF5mj/Y/NigSdnjLOLFYjH7Rval6pzDOlX8JLgURRLPAuH25VYUIsvTNBaBcOwaEoU4q7kpDSnQ
+ Fax6RfAyjqLkWxEI27ctmoMohF8PoEFA5XjXI3RGVyQ//4oBWIIaQfZt13CpC6AGWlQlOg0lNdDQ
+ jlSJhjVc9li+sFDy1t9wBpWttGmx1NBygzujLbakHEGDFhyTMWihI1NyiTaEt2Q0SN1qsExtZygA
+ UvAa4ZVBBWdocch40Xbk01ne9aTA9mbHpEoNpm+1IQslgdTKdmxQ8uffVOCDdo12Fg4eFkvWimwI
+ P4Hs0d98gvyAoLQHp8hT7XRJBjo0CHRNRpLx4clDwFKbAGwP13pPCmq+1vCanIaDX6z5GuFVjYpb
+ 9BqSqgwphwoQeoXQacvbhgI4QEkWrfPqBLDrvSogec+NZ780Bm/YBtBo+GdPAxNtHJrPv6LHJ1EP
+ hBuEHTb4kTEMQ3i5vnh9uVyvL95cXP3kPzWrSovi07NF4Y+0Q/lE8SJbJLkIxIHQiMIXSyAMOlY7
+ UWThPBCmV45bEkWcpIHAxpFR6HhPV8foIhBS98oNtfWKTIvq8K9f7uC9+vu7pQhEp60jIwpRO9fZ
+ YjJBs/N1gW2oyE0MWd0bSXYi9Z6MnVRplCQ5VkmWpAuZ5lW5jXOZl1Oc5VW+2IbX3U4EomRD0mkz
+ IkD/aEUhlg1JeEO3LaoA/to3THCmPwZwgQou5RtiSeI+EJbQamVF8Y9Px2dRTANBHVtd0rjuvZZO
+ 8zR6cJvqmyZ4elz17XagFj2x4LuOJGNTwFVN8Lo3BN9V8K7ziZ+4cIxlqCG0x3yjDt6g36/+xt2g
+ a0lSFOLHPa98BsLWJ5B1v2X/jjs70rf8s784zVK4PPU72vj683E/BIIaVjdjjt6wKASV8U0xmdxV
+ 3NCdr4jNyeYI225ONlc1bTzwzXfVZgAevlx9v/o2HBOHH/dchrjnu+liFmXxNI/vsnSdn+VnyXS9
+ yKJpMo+S01kaLZez9er0PFmldxNx/8Gz3w4qDbjuP9wHjyLP8v9C5K+qfIk3rHZDXb+w8FDq/3+p
+ 4z9F6hH9xm/YzQP45+SO00U+z6LZXZSepmmUJ4tZtIpXWZ7P8+zsfHkeLWbZWZ6f/me5k3j+OD+S
+ aZzMZ+IZwadPBPfVfEnWMtZfTJOrmi0cfQPWoXEWpjH4fmIBK0cGXE1QsbFuHEktK7Zk2DflVX9D
+ 8Bb7BpbOEJdkoUYLW5K6PXZebfwx4z+y76fOobyBmoAtbBtWJZWw7R30jhv+2d9nC+/Fni1rZX3L
+ G9L3rjf0XoDTYIlCOPPNejgrtZL9lhUNmXc8tvcW3C0rCydjl7+4AFTlQ4sP4Yd6OGVBPvRWNHQE
+ R2UwUuot2eH6Cwt0IHtMPkTCPRk3QCtR7cgEAwlWw1JntCRrodH2SKizB1mzhJHWEGHUyI7jjhw1
+ h1GPEC4UoJTalKgkwS27GtaGWlIge+t0G3j5brG5scDK6REFWQ/IB24I98e0j+yOwKRnqathz7Lv
+ 6wEsG8ZQ/OkGy6LofzbY2qC62fyFzJaM+8NXG10NTttcsuKTsQQ3b9G4zfQZy2XJLI3T2Sy6Wyzn
+ y0W8Wq3y8/k6Xq/y9XK6mOen2SyLs3QVf8VyDwi/PvceT07iRTJ5tL6uQg8x/CZe+GH8TZyH76Lp
+ eTQ9uaopPBowHFUNvZYnjxIOU1gUizRZTO+/8Hv2pd/T5/we/5vfv9ZNxdI++eEai3qHrKDTDTuW
+ 6H+jbskAbnWvyt8BAAD//9SXbW/bNhDHvwrfuMEAT5BIPQYIBtu10+3NhhQd+vYkniWhFBlQVBwD
+ /fDDUZbjJHW9rMCAwi8ECCfzeP/73cOIwlV/eFlC78lFawjcrTWdT9B2zGnKq6atG7Vn0JWta83w
+ PNHoWzrNV4OTI7fGuMYoGbClsZrBbkpUckRX2DsLinXYGRL96b/oJq1Ei9IXl9J0LU03RrNy7zN+
+ SaPhLfaULS7wLR3knv1BQlQw9wd0xtHDohus9gEZR+/DOPcLvSFwnbeuLWh5BOt8dTEaaRR1bTUo
+ mG5hLCuxbsdT7k3fU5mgy8yf+eVLGZENX5BZ3A41Bt86ikl8aHukUCrQzJkdWMl6UA8+CD871vw8
+ 1mEYRQn/GqfR+6IIRUyQr3hSJDwr1jwukijkabz+Iazjy1hzj/XR7I1c58+5Ts9xLV5wfWuURM3+
+ Ate8RNuDMbUWZxwotZ8SDSXrG2SgejMlmERQY4exWKI69Jlgyq852zWGlraH9uGA2Ni/jfYslHv2
+ wQw9zejWttrMiUltdgx1DTVKOmIDFuSVnkwC9knj4z1WDqXaz49ZPdHnS8pJRyuRakWJqkVyQSJI
+ AqxVODW1gyHVntLIvb8alL2xJV2Y5pAetHTWDG7OemV2as+6wfklyU8KvomCt9oZ2wVjEC1S4eqn
+ 4J3UlBKs0WznffjdDkSexEq1GvsJ4CuaXLY0O5nDzcYoN+OrFSiQ8NPzKc7zmaVJmKRfV4tlvFyL
+ zSJMRZZE63CxCTcpz7M0XaxW4eaH+Ewu8yk8nyMvAfHyNkQjwcM0vbzafP58SijS1g8SptEO/u02
+ s1TDHexPVH/kfrg/qH7359/ru49Pqmc8vD/ZaEQQsdsX0k/B7KDW6K5/e3Q3g9XXpWubawGiqKpQ
+ FgKhrGS2jZIUcxlW0TZNIMkxyRFFnryT+uZVoCnKFOKAnAhGxwNy99fRy3fO3pCCM7GY8c2Mb5yl
+ 0doGh+e2fQwq083EIg9nfANam0FXSJ8N8umrIrBgyzrocCYWPEvDcwbOeIP4lcHxXFDqHnU9tDow
+ tp6JRZRk2VlzqhNVg+igmczjLA59th5herWjzf+7mFGYP1OzCLI3qbmVJYi44JhDXkaYloJzWWBc
+ yFgkIFMoKp7lofy+mt6L/0vOPLwkJz+rzxbcl8aAgkkd8R3jb4qZXxJz/P0DAAD//wMAtc7KXrQV
+ AAA=
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743828b81751b-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:36 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=6sWVI63HrWSWdlINe3fSYawBVQfavfKNksSfSbBSIW6Fh8YSxwqMlDHb5EP37r1WrL0w5i01ybpYeOJ1zG84rRBtfe6J1y550wu9PNeZbzB8vmwhwSHhXz19bBr23yYqCXR03wsghed1mTOt"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/movie?id=43318
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA9RWTZPjthH9K1242K7CcihypJF406c3KW+yFTvOViVbU02iJcEDAnQD1ESzs/8l
+ e/RhT7nlGP2xFEDNlyubnH0DQeCh+73XDXwQWonqsixHUynCQdWiElez8XgkpAg6GBKVWPWW4Osi
+ z/NvhBS+b1vko6gEAMCcGW+0lxCwrfXpFwuNs67RykHjWgdxrwQy0Bm0FBAUeU0cXJZlsDZw+pcJ
+ unVg+h0yoIGfewKLSlMcMZ8+I2iGowSvLVBbI+/cC8D29MmDbjvHAW0gUGSgt/pA7J0Eg9D1xAFh
+ j41G6B8CbDXZ4MD3HbF2DMe4dNvTABE/PNZa9TGCDObQkUeOf3zvAVWERx+xlG60s+ShMbo9fQq6
+ QT+gNeh1ZKEzMU7sPdkYgiLAXY8S/OmfxgHZRBJ4ArJNDIAx5ldrskNyjYtnoHJVRCXfUYQ584wD
+ zy0ZtDvKYEWgbYOm6Q3WhuCAJmV30AENdDiAN64lbnQ8PTA9cOklHJB1zAtjdtbVhmIySp/zdbxD
+ q+/wnHLQZMmC76HVjCpx7QM+5CThCGj96TPaSD+xpxh2opD1zz3doc9g2aNVLtGPrTYaYR6YtCIP
+ imp62hmlj+w9es4gHCIDUfKf3IEsvMXeRCYPxKdPoPj0yUdB2iQrbqkJqDCDN5FWNCauiVrHk3xH
+ SqtBO+eBqemJlfPJbAP6IzAyow+Myp1t5fuIELR1EhAYT5/vInJvETyxTpbSNrDeDaaJGp9+Meez
+ fH90PkpXJ3TvaqbO2ZT1EchumWzA+IVpfcdRmBZ9qhZDEBO8Q5vKJG6G4JSTwOQ7ZxVx3IeAA04m
+ pNB260T14UWJx+k2NYB8dFnkZSGkOBKyqGLpS8EYtN2JapLNpODeBt2SqIpZIQWaQGwx6AP9cEYU
+ UjSutyF1ij9/P//3P+7hb3aJFhUO42+JW7TH4eN3Ac1RSNE5H4hFJfYhdL66uEDeRfGwzSyFCybv
+ em7IXzQuWvLikrBsrmZbmtRFOZ2Oaaq2Rb3dzi7rBgui7KduJ6RQmqkJjofAMA69qMRftDEaW3jd
+ c5AwN9TAH+i2RSvhW422QTYujay2WnyUwhN6Z72o/vrhPBbVSArqtHeKhvlzQy3yx4ZajopyEjvq
+ sy22b+uUaP7rVvuix/7RQtgTUNsRO/4qVqAilrDqbwi+o+CeiqV1B/KwZdfCXnvYu/ahsCUs0aCK
+ ad3qsE+/U60dITgwhCodMix+Ki803sGNdbcW0KeCzubbEN1kAUPA5gZcCk8z+MDO7vbOKJngvbMy
+ VaMEtCpN3eotSfgO1RF+T97rBiVsDaXCcCkARZ44ZFl0KJMh9GdKB9EjPz+u/qS75C1FjajEu4Ne
+ Rf4IW1GJ75t9X+v4jTs/aO31Xdx4lefwZhH/OI5VEHHfS0FG25vhjJ61qASp4qa6uLjfakP3MeXr
+ V9cbRntz/Zq4Jg7+Os2+0Va/SqXtr19dv0UO16Ps69WPq2+yIYjs7wetMjzo+6vycjydTKf5/WZV
+ Xq03q2KxnF1NN5N8mhdFURabxWZUXubr2f2F+Pg+ql8nP6QYP77/KJ88NXrpqeJLniqeeepNj+qr
+ la5f+OqHPb2QYlCJ+Em4R2NJaNHiLjaV1LqwCUmtod6Hy6tzXW8w6Lj50TEbppbsb1PM4sti5qNR
+ OSvu17PxbJ0vynI5m8yuFpPp9Gq5mM8m+WS0WI42q/8vZvFSzPJLYpbPxIy6vWXX7Sm80PNXit3u
+ 483koaZ40z9JkpY9GEKm0vfxwqKajNHOAu5QWz8I/Br5xllL9gHvQGneU8MU4tMpPrrAbZ+3qN+m
+ 3OWX5Z6NLseT/H4+Ga/ns9WkmK3z9bLM16OymM6Xm/FyvVhPF/P/LfeoLPLJ+EFv2xvz37V+9+65
+ 1hRftTg88dIj8rnkA8gT1f8BAAD//wMAU3/zfcoLAAA=
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743847e35751b-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:36 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=roopZ7rq4zoUh8HmwGGxVKeqTkLo4oTjKQais8ptS3gkHgwlMMTqBYkDaxwKTpKxO35BOLVkkmPEafRs1dWLLO9P10SkErIx04SdNuBn8mopoL858lvHHYUM75ZhPDx%2BO5k%2FJaAv%2Bm0dy3w5"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/movie?id=24827
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAA2xUy24jRwz8FYLAAgnQGY3eowFysC07wK4c+JE1jGR9oLopqe2e7kk/BMiWP2aP
+ e9hDsJ+gHwt6lA1iIMdhNVnFGpIvqBXWg1E1mAqMOhrGGufJMvzQn1WjH1GgtiuH9csbNIcbtcQa
+ y7Ka9qsBCtwxeaxzlkBPUds11pNiLNAnG3XDWPeHU4FkIntLUW/5t38qokDpko1+hzV+vD1Bga0L
+ kT3WuImxDXWvR37NNjI1heXY8xxc8pJDT7ot+9DjwbCi6Wg64dFE9mdlSeVqsppNZqNyyVKq4rFd
+ o0ClPcvocuE5bbWCxc7KDQqkHA1Y44edYbgkuSC5MWQF3Gm/1lYTXJIKbAVceLKSgyQ4sVYHfBUY
+ UtNQp/7cAhtQHA5ffNTSQWvIciRQDCfe05MOAqSzTmrlIFKz1IcvFlrnIfsqwBB43rJnqwgaUp7h
+ hhoyxuW0x+QJkiXYan4kaL1bsTx8pRo+4R1b5Q+fgcw6abaZsUk7MPzoAuwgeuIMG4J1Yu8JAtlI
+ Iut9rzekBPyZGNrk9UpLyk/ZQLI6++tgB9YFCHREFIOhAFFbzUtDoSiKTwjH5j03Lr5p/MwZUtnL
+ BakdvOcQtCSRXXJLViyzBcp1FQ/fvGLLIaeFBBv2DVlFKn9LZyUvtYfgDDV5GmCjHykIIEnLjkmR
+ BwKTnoFMBh1syR++2a61kIAa1zWsUg4sODo4iZ614iAgko0uq2JaUvFGLITEh78ItJUmhe5XfC/Z
+ sVxRMmAMrxMDZXTLPmofGNhCstBwOHylkJ/YTAGtU+w5QHP4vNbS5aGglp4zlKz2WWPU3LTZeDbA
+ oSWpXVEUKNCzYQocsP7jBY97kOf5bn6j226VFMsc0Nt7FJh3Bmv81f1yc5U/aR2OKxf0c86bliVc
+ nmbEec825rIPAtlo+3SkSF5jjawGT3Wvt19pw/s8q8XxQhRH4iLT/TS8uCxoq/fTYTksq0lZ7c8m
+ 81l/Phyczaez8Ww2mFxUo+qkGs/Phxfz8WS03/x8ev/x98V4fDe8vDk9/XA7WNyMpvP76fXV9fvb
+ s/H1+b6Hrw95yZbdCfqvqP+/Dv++7PVn49Gk16l9N6iy3neD2RvF333pDhDW1XhY9V8fXh9e/wYA
+ AP//AwAQgSiXGgUAAA==
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743871ab0751b-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:37 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=f1%2FtVUaDLDW9XLjFghRHPaon1nuMq2Umv6OSR%2F5TGwYh2Pd4H1RGDiql3jFX05VN7oSywM%2FNyLKtDscx%2BXhXlHdLOmB%2BOILMvGUMfsjWE3wAXN%2BCOrR7ELOK%2F3tGj6Qk8jYjUX48q9NsD8j2"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: https://argenteam.net/api/v1/movie?id=132088
+ response:
+ body:
+ string: !!binary |
+ H4sIAAAAAAAAAwAAAP//vFXbbtw2EP0VgsAGDqBoddvVBQiCTRzXaXNDcyta+GFEjrSMpaFCUls7
+ gT8mj37uJ/jHCmrt2GnqpC7SPkkEz5yZOXM0+sCV5FWcJlFRBNwp1yGv+O5IWLHnYBx7Rsh2kiiJ
+ b/OAK2o0rz5cg/OAXta84nG8jLK45AE/RjC88vEBN+AUtbwqwjTgZiSneuRVvFgEHDqHhsCpDb48
+ 5+YBF3okZ455xV+RcijZCwcObcAeAIGEgO2P1II5DthTbX6H44A9IqmAB3zQ1qHhFV87N9hqPgfT
+ IjmEPiR0c4NWj0agnQu9QWPnUV1ngM1yIdO0yNIijmpMlyLGZS5qLBfh26HlAZfKoHDaE+8iKcte
+ q65DwnHjmwd/ZXnFX6peu/XZKbIHa+igRxewn7FGIYDtoWlHqylgvyJJOAZ+EnA79j1Mja6MgUNl
+ A4YdGzogdMAkdkyiVWicDliDo9RMIuuANdCrTgHbB3OoiZA8TiJbg0DWIqEBoTR5yd6NKIEhsR5I
+ 2/P4B2BhetWWrZxBJdFf2WE8O50w70b0lWA/oAGpDROeBdjZqXXgGfBo6LQDoc7+oC2pZQYtmg1M
+ BGgHFAoCNhJc3Pfg0CiwbDCq9+ezj5ZtoFPawkVlLXRwpIAdMwd9rc5OactgdAtMwADvPRD6oVON
+ EmB8jNAkFJKYwvDIIUmcLjZKQsgedkyOvqHH6DTbeWZ92CMLIG4HHiWhB/YjWqsEsJ2/zuu25+zY
+ Wr3V28y1tgF7DmN3qdzOl4P31B22QAwuByo0TdpZryq9n4QxKEZ/ND6LQdJ9bdBf2JEJsBCwAY1m
+ g9HkNLPINmjOPhJD2ozYOW39bL1Ezvg+JPoXtZ2+L51auKftNNAOrS9qAxMBMDGidUoTmCmZpkZN
+ VSE54/OfTwimRqT2dODnpX21MJmnG1sweM9L4o97Bnuk7dA9txmmVtZQKwfkJpNdenrS4xxqUKyB
+ GezOLXVFKqEg5AE32CFYtLz67QPffsa84m8e3p8WhkTBK76fLDMecP+984o/XT168cofofVfZ55E
+ Aw+4Ve99YBYu2A8+1mljkNyWdzSKV7yHltBV947c3dFQVTu1rmqsJZZLKLK6iXOEJCuwWUaYyHxZ
+ Yp76S5HE2S1Jd/16DP3uC33O8M3D+6Gv7M5U0C1n7vrtNEtXs2Rvluw5A+IQTXj+bNRRKHQ/S1dF
+ NEv2gEiPJNCHjfIyqgwNmLoNe5ylqyTPo+sATntAkX4B+JR3rQg7HNZALtSmnaWrOMm/goeuG5Da
+ UdEFfJHnET85CDh2ig69lAd+udXT/+Kqsn+/lj8h58UyStL5pJ//u4TPCMNZUngtZ0n5SclJ1zsX
+ 851+F7wqFmkRnxycBP/OHnFUXPVHGRY38kdSJxLTqJG4hCRPiygSSdNETVbnUVkuyqxImqaM48/9
+ MSX9PwxSZN8ySHSzgSc381MRfT+DZP/AIJOwN3fIUbJcXOuQJF5edUgS3XCF5NgUCdYLEZUC6xRl
+ Vogig2UTJ2VaJlG5gKxe5unnFpmyhvtPVr/47u7sPg53d58vwjhcuV7bcPd1+OSn16Ev/D+0T5l+
+ wz754ob75Xr/NOAO1xo6uACnefz9zLP4unm8jlvJrzPPwcmfAAAA//8DAF+Mars8CwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b6743963ac0751b-SCL
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json;charset=UTF-8
+ Date:
+ - Tue, 30 Nov 2021 21:45:39 GMT
+ Expect-CT:
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=OOTMjfi961ChESCSv1lx8pV7e4fOzfcUwY%2FGNUVjmQb7GZ5jDSRK51fRZwZlAxGzIXWonIGdvrRtnVF4dvJ%2FbANIAd0LPcbDR1w2JbzE8Z%2B%2BvHg7waks8MDGnggzHmjXyUTPHAySBa8Vo0DM"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/subliminal_patch/conftest.py b/tests/subliminal_patch/conftest.py
new file mode 100644
index 000000000..3ffefab68
--- /dev/null
+++ b/tests/subliminal_patch/conftest.py
@@ -0,0 +1,116 @@
+# -*- coding: utf-8 -*-
+
+import pytest
+import os
+
+# import sys
+# sys.path.append("libs")
+
+from subliminal_patch.core import Movie, Episode
+
+
+@pytest.fixture(scope="module")
+def vcr_cassette_dir(request):
+ return os.path.join("tests/subliminal_patch/cassettes", request.module.__name__)
+
+
+@pytest.fixture
+def movies():
+ return {
+ "dune": Movie(
+ "Dune.2021.1080p.WEBRip.DD5.1.x264-SHITBOX",
+ "Dune",
+ year=2021,
+ resolution="1080p",
+ source="Web",
+ # other="Rip",
+ audio_codec="Dolby Digital",
+ video_codec="H.264",
+ release_group="SHITBOX",
+ ),
+ "man_of_steel": Movie(
+ os.path.join(
+ "Man of Steel (2013)", "man.of.steel.2013.720p.bluray.x264-felony.mkv"
+ ),
+ "Man of Steel",
+ source="Blu-Ray",
+ release_group="felony",
+ resolution="720p",
+ video_codec="H.264",
+ audio_codec="DTS",
+ imdb_id="tt0770828",
+ size=7033732714,
+ year=2013,
+ hashes={
+ "napiprojekt": "6303e7ee6a835e9fcede9fb2fb00cb36",
+ "opensubtitles": "5b8f8f4e41ccb21e",
+ "shooter": "314f454ab464775498ae6f1f5ad813a9;fdaa8b702d8936feba2122e93ba5c44f;"
+ "0a6935e3436aa7db5597ef67a2c494e3;4d269733f36ddd49f71e92732a462fe5",
+ "thesubdb": "ad32876133355929d814457537e12dc2",
+ },
+ ),
+ "enders_game": Movie(
+ "enders.game.2013.720p.bluray.x264-sparks.mkv",
+ "Ender's Game",
+ source="Blu-Ray",
+ release_group="sparks",
+ resolution="720p",
+ video_codec="H.264",
+ year=2013,
+ ),
+ "blade_runner": Movie(
+ "Alien (1979) Theatrical HDR 1080p UHD BluRay x265 HEVC EAC3-SARTRE",
+ "Alien",
+ source="Ultra HD Blu-ray",
+ release_group="SARTRE",
+ resolution="1080p",
+ video_codec="H.265",
+ audio_codec="Dolby Digital Plus",
+ imdb_id="tt0078748",
+ year=1979,
+ ),
+ }
+
+
+@pytest.fixture
+def episodes():
+ return {
+ "got_s03e10": Episode(
+ os.path.join(
+ "Game of Thrones",
+ "Season 03",
+ "Game.of.Thrones.S03E10.Mhysa.720p.WEB-DL.DD5.1.H.264-NTb.mkv",
+ ),
+ "Game of Thrones",
+ 3,
+ 10,
+ title="Mhysa",
+ tvdb_id=4517466,
+ series_tvdb_id=121361,
+ series_imdb_id="tt0944947",
+ source="Web",
+ release_group="NTb",
+ resolution="720p",
+ video_codec="H.264",
+ audio_codec="AC3",
+ imdb_id="tt2178796",
+ size=2142810931,
+ hashes={
+ "napiprojekt": "6303e7ee6a835e9fcede9fb2fb00cb36",
+ "opensubtitles": "b850baa096976c22",
+ "shooter": "b02d992c04ad74b31c252bd5a097a036;ef1b32f873b2acf8f166fc266bdf011a;"
+ "82ce34a3bcee0c66ed3b26d900d31cca;78113770551f3efd1e2d4ec45898c59c",
+ "thesubdb": "b1f899c77f4c960b84b8dbf840d4e42d",
+ },
+ ),
+ "breaking_bad_s01e01": Episode(
+ "Breaking.Bad.S01E01.720p.BluRay.X264-REWARD.mkv",
+ "Breaking Bad",
+ 1,
+ 1,
+ source="Blu-Ray",
+ release_group="REWARD",
+ resolution="720p",
+ video_codec="H.264",
+ ),
+ }
diff --git a/tests/subliminal_patch/test_argenteam.py b/tests/subliminal_patch/test_argenteam.py
new file mode 100644
index 000000000..fc6ff511b
--- /dev/null
+++ b/tests/subliminal_patch/test_argenteam.py
@@ -0,0 +1,91 @@
+# -*- coding: utf-8 -*-
+
+import pytest
+import os
+from subliminal_patch.providers.argenteam import ArgenteamProvider
+from subliminal_patch.providers.argenteam import ArgenteamSubtitle
+from subzero.language import Language
+
+
+def test_get_matches_episode(episodes):
+ episode = episodes["breaking_bad_s01e01"]
+ subtitle = ArgenteamSubtitle(
+ Language.fromalpha2("es"),
+ None,
+ "https://argenteam.net/subtitles/24002/Breaking.Bad.%282008%29.S01E01-Pilot.BluRay.x264.720p-REWARD",
+ "BluRay x264 720p",
+ {"title", "season", "episode", "imdb_id"},
+ )
+ matches = subtitle.get_matches(episode)
+ assert matches == {
+ "title",
+ "season",
+ "episode",
+ "imdb_id",
+ "source",
+ "video_codec",
+ "resolution",
+ "edition",
+ "streaming_service",
+ "release_group",
+ "series",
+ "year",
+ }
+
+
+def test_get_matches_movie(movies):
+ movie = movies["dune"]
+ subtitle = ArgenteamSubtitle(
+ Language.fromalpha2("es"),
+ None,
+ "https://argenteam.net/subtitles/86024/Dune.Part.One.%282021%29.WEB.H264.1080p-NAISU",
+ "WEB H264 1080p",
+ {"title", "year", "imdb_id"},
+ )
+ matches = subtitle.get_matches(movie)
+ assert matches == {
+ "title",
+ "year",
+ "imdb_id",
+ "source",
+ "resolution",
+ "edition",
+ "video_codec",
+ }
+
+
+@pytest.mark.vcr
+def test_list_subtitles_movie(movies):
+ item = movies["dune"]
+ with ArgenteamProvider() as provider:
+ subtitles = provider.list_subtitles(item, {Language("spa", "MX")})
+
+ for expected in (
+ "https://argenteam.net/subtitles/86023/Dune.Part.One.%282021%29.WEB.H264.720p-NAISU",
+ "https://argenteam.net/subtitles/86024/Dune.Part.One.%282021%29.WEB.H264.1080p-NAISU",
+ "https://argenteam.net/subtitles/86025/Dune.Part.One.%282021%29.WEB.x265.2160p-NAISU",
+ ):
+ assert any(expected == sub.download_link for sub in subtitles)
+
+
+@pytest.mark.vcr
+def test_list_subtitles_episode(episodes):
+ item = episodes["breaking_bad_s01e01"]
+ with ArgenteamProvider() as provider:
+ subtitles = provider.list_subtitles(item, {Language("spa", "MX")})
+
+ for expected in (
+ "https://argenteam.net/subtitles/24002/Breaking.Bad.%282008%29.S01E01-Pilot.BluRay.x264.720p-REWARD",
+ "https://argenteam.net/subtitles/23940/Breaking.Bad.%282008%29.S01E01-Pilot.DVDRip.XviD-ORPHEUS",
+ ):
+ assert any(expected == sub.download_link for sub in subtitles)
+
+
+@pytest.mark.vcr
+def test_download_subtitle(episodes):
+ item = episodes["breaking_bad_s01e01"]
+ with ArgenteamProvider() as provider:
+ subtitles = provider.list_subtitles(item, {Language("spa", "MX")})
+ subtitle = subtitles[0]
+ provider.download_subtitle(subtitle)
+ assert subtitle.content is not None
diff --git a/tests/test_assrt.py b/tests/test_assrt.py
deleted file mode 100644
index 903bb5ebb..000000000
--- a/tests/test_assrt.py
+++ /dev/null
@@ -1,172 +0,0 @@
-# -*- coding: utf-8 -*-
-import os
-
-from babelfish import language_converters
-from subzero.language import Language
-import pytest
-from vcr import VCR
-from urlparse import urlparse, parse_qs
-from urllib import urlencode
-
-from subliminal_patch.providers.assrt import AssrtSubtitle, AssrtProvider, \
-language_contains, search_language_in_list, supported_languages
-
-def remove_auth_token(request):
- parsed_uri = urlparse(request.uri)
- parsed_query = parse_qs(parsed_uri.query)
- if 'token' in parsed_query:
- parsed_query['token'] = 'SECRET'
- parsed_uri = parsed_uri._replace(query=urlencode(parsed_query))
- request.uri = parsed_uri.geturl()
- return request
-
-vcr = VCR(path_transformer=lambda path: path + '.yaml',
- before_record_request=remove_auth_token,
- record_mode=os.environ.get('VCR_RECORD_MODE', 'once'),
- match_on=['method', 'scheme', 'host', 'port', 'path', 'body'],
- cassette_library_dir=os.path.realpath(os.path.join('cassettes', 'assrt')))
-
-TOKEN=os.environ.get('ASSRT_TOKEN', 'NO_TOKEN_PROVIDED')
-
-def test_supported_languages():
- assert set(supported_languages) == set([('zho', None, None),
- ('eng', None, None),
- ('zho', None, 'Hans'),
- ('zho', None, 'Hant')])
-
-def test_language_contains():
- assert language_contains(Language('zho'), Language('zho'))
- assert language_contains(Language('zho', 'TW', None), Language('zho'))
- assert language_contains(Language('zho', 'CN', None), Language('zho'))
- assert language_contains(Language('zho', None, 'Hant'), Language('zho'))
- assert language_contains(Language('zho', None, 'Hans'), Language('zho'))
- assert language_contains(Language('zho', 'TW', 'Hant'), Language('zho'))
- assert language_contains(Language('zho', 'CN', 'Hans'), Language('zho'))
- assert language_contains(Language('zho', None, 'Hant'), Language('zho', None, 'Hant'))
- assert language_contains(Language('zho', None, 'Hans'), Language('zho', None, 'Hans'))
-
-
-def test_search_language_in_list():
- assert search_language_in_list(Language('zho', None, 'Hant'), [Language('zho', None, 'Hant')])
- assert search_language_in_list(Language('zho', None, 'Hans'), [Language('zho', None, 'Hans')])
- assert search_language_in_list(Language('zho', None, 'Hant'), [Language('zho')])
- assert search_language_in_list(Language('zho', None, 'Hans'), [Language('zho')])
- assert search_language_in_list(Language('zho', None, 'Hant'), [Language('eng'), Language('zho')])
- assert not search_language_in_list(Language('zho', None, 'Hans'), [Language('zho', None, 'Hant')])
- assert search_language_in_list(Language('zho', None, 'Hans'), [Language('zho', None, 'Hant'), Language('zho')])
-
-
-def test_get_matches_exact_movie_name(movies):
- subtitle = AssrtSubtitle(Language('zho'), 253629,
- 'man.of.steel.2013.720p.bluray.x264-felony.mkv',
- None, None)
- matches = subtitle.get_matches(movies['man_of_steel'])
- assert matches == {'title', 'format', 'release_group', 'year',
- 'video_codec', 'resolution'}
-
-
-def test_get_matches_movie_name(movies):
- subtitle = AssrtSubtitle(Language('zho'), 618185,
- 'Man.Of.Steel.2013.BluRay.720p.x264.AC3.2Audios-CMCT',
- None, None)
- matches = subtitle.get_matches(movies['man_of_steel'])
- assert matches == {'title', 'format', 'year', 'video_codec', 'resolution'}
-
-
-@pytest.mark.converter
-def test_converter_convert_alpha3():
- assert language_converters['assrt'].convert('zho', None, 'Hans') == 'chi'
- assert language_converters['assrt'].convert('zho', None, 'Hant') == 'zht'
- assert language_converters['assrt'].convert('eng') == 'eng'
-
-
-@pytest.mark.converter
-def test_converter_reverse():
- assert language_converters['assrt'].reverse('chi') == ('zho', None, 'Hans')
- assert language_converters['assrt'].reverse('zht') == ('zho', None, 'Hant')
- assert language_converters['assrt'].reverse(u'簡體') == ('zho', None, 'Hans')
- assert language_converters['assrt'].reverse(u'繁體') == ('zho', None, 'Hant')
- assert language_converters['assrt'].reverse(u'简体') == ('zho', None, 'Hans')
- assert language_converters['assrt'].reverse(u'繁体') == ('zho', None, 'Hant')
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_query_movie_zh_Hans(movies):
- languages = [Language('zho', None, 'Hant')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.query(languages, video)
- assert len(subtitles) == 8
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_query_movie_zh_Hant(movies):
- languages = [Language('zho', None, 'Hans')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.query(languages, video)
- assert len(subtitles) == 8
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_query_movie_zh(movies):
- languages = [Language('zho')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.query(languages, video)
- assert len(subtitles) == 16
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_query_episode(episodes):
- video = episodes['bbt_s07e05']
- languages = [Language('zho', None, 'Hant'), Language('zho', None, 'Hans')]
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.query(languages, video)
- assert len(subtitles) == 11
-
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_query_list_subtitles(movies):
- languages = [Language('zho', None, 'Hant'), Language('zho', None, 'Hans')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.list_subtitles(video, languages)
- assert len(subtitles) == 16
-
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_download_subtitle(movies):
- languages = [Language('zho', None, 'Hant')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.list_subtitles(video, languages)
- provider.download_subtitle(subtitles[0])
- assert subtitles[0].content is not None
- assert subtitles[0].language == Language('zho', None, 'Hant')
-
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_download_subtitle_zh(movies):
- languages = [Language('zho')]
- video = movies['man_of_steel']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.list_subtitles(video, languages)
- provider.download_subtitle(subtitles[0])
- assert subtitles[0].content is not None
- assert subtitles[0].language == Language('zho')
-
-
-@pytest.mark.integration
-@vcr.use_cassette
-def test_download_episode_subtitle(episodes):
- languages = [Language('zho', None, 'Hant'), Language('zho', None, 'Hans')]
- video = episodes['bbt_s07e05']
- with AssrtProvider(TOKEN) as provider:
- subtitles = provider.list_subtitles(video, languages)
- provider.download_subtitle(subtitles[0])
- assert subtitles[0].content is not None
- assert subtitles[0].language == Language('zho', None, 'Hans')
From 92a60ef7bbd02513d5d995ff81102a8e64e02621 Mon Sep 17 00:00:00 2001
From: Vitiko
Date: Tue, 30 Nov 2021 18:01:29 -0400
Subject: [PATCH 32/41] Update bad import (dev environment issue)
---
libs/subliminal_patch/providers/argenteam.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/subliminal_patch/providers/argenteam.py b/libs/subliminal_patch/providers/argenteam.py
index 53f06859f..a24d8dbda 100644
--- a/libs/subliminal_patch/providers/argenteam.py
+++ b/libs/subliminal_patch/providers/argenteam.py
@@ -7,7 +7,7 @@ import io
import time
import urllib.parse
-from simplejson.errors import JSONDecodeError
+from json import JSONDecodeError
from zipfile import ZipFile
from guessit import guessit
from requests import Session
From d25fa00a1a7a51ac101bc94b62d3024f27e46a53 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 30 Nov 2021 17:12:59 -0500
Subject: [PATCH 33/41] no log: Bump socket.io-client from 4.1.3 to 4.4.0 in
/frontend (#1612)
Bumps [socket.io-client](https://github.com/socketio/socket.io-client) from 4.1.3 to 4.4.0.
- [Release notes](https://github.com/socketio/socket.io-client/releases)
- [Changelog](https://github.com/socketio/socket.io-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io-client/compare/4.1.3...4.4.0)
---
updated-dependencies:
- dependency-name: socket.io-client
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 165 ++++++++++++++++++++++---------------
1 file changed, 100 insertions(+), 65 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 879175837..5e672796c 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -3156,6 +3156,11 @@
"@sinonjs/commons": "^1.7.0"
}
},
+ "node_modules/@socket.io/component-emitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz",
+ "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q=="
+ },
"node_modules/@surma/rollup-plugin-off-main-thread": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz",
@@ -3427,11 +3432,6 @@
"@types/jquery": "*"
}
},
- "node_modules/@types/component-emitter": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz",
- "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
- },
"node_modules/@types/d3-path": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz",
@@ -5353,9 +5353,9 @@
}
},
"node_modules/base64-arraybuffer": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
- "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA==",
"engines": {
"node": ">= 0.6.0"
}
@@ -7837,18 +7837,18 @@
}
},
"node_modules/engine.io-client": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz",
- "integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz",
+ "integrity": "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==",
"dependencies": {
- "base64-arraybuffer": "0.1.4",
- "component-emitter": "~1.3.0",
+ "@socket.io/component-emitter": "~3.0.0",
"debug": "~4.3.1",
- "engine.io-parser": "~4.0.1",
+ "engine.io-parser": "~5.0.0",
"has-cors": "1.1.0",
"parseqs": "0.0.6",
"parseuri": "0.0.6",
- "ws": "~7.4.2",
+ "ws": "~8.2.3",
+ "xmlhttprequest-ssl": "~2.0.0",
"yeast": "0.1.2"
}
},
@@ -7873,15 +7873,35 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
+ "node_modules/engine.io-client/node_modules/ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/engine.io-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz",
- "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz",
+ "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==",
"dependencies": {
- "base64-arraybuffer": "0.1.4"
+ "base64-arraybuffer": "~1.0.1"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=10.0.0"
}
},
"node_modules/enhanced-resolve": {
@@ -19244,17 +19264,16 @@
}
},
"node_modules/socket.io-client": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz",
- "integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.0.tgz",
+ "integrity": "sha512-g7riSEJXi7qCFImPow98oT8X++MSsHz6MMFRXkWNJ6uEROSHOa3kxdrsYWMq85dO+09CFMkcqlpjvbVXQl4z6g==",
"dependencies": {
- "@types/component-emitter": "^1.2.10",
+ "@socket.io/component-emitter": "~3.0.0",
"backo2": "~1.0.2",
- "component-emitter": "~1.3.0",
- "debug": "~4.3.1",
- "engine.io-client": "~5.1.2",
+ "debug": "~4.3.2",
+ "engine.io-client": "~6.1.1",
"parseuri": "0.0.6",
- "socket.io-parser": "~4.0.4"
+ "socket.io-parser": "~4.1.1"
},
"engines": {
"node": ">=10.0.0"
@@ -19282,12 +19301,11 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/socket.io-parser": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
- "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz",
+ "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==",
"dependencies": {
- "@types/component-emitter": "^1.2.10",
- "component-emitter": "~1.3.0",
+ "@socket.io/component-emitter": "~3.0.0",
"debug": "~4.3.1"
},
"engines": {
@@ -22680,6 +22698,14 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
+ "node_modules/xmlhttprequest-ssl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
@@ -24990,6 +25016,11 @@
"@sinonjs/commons": "^1.7.0"
}
},
+ "@socket.io/component-emitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.0.0.tgz",
+ "integrity": "sha512-2pTGuibAXJswAPJjaKisthqS/NOK5ypG4LYT6tEAV0S/mxW0zOIvYvGK0V8w8+SHxAm6vRMSjqSalFXeBAqs+Q=="
+ },
"@surma/rollup-plugin-off-main-thread": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-1.4.2.tgz",
@@ -25160,11 +25191,6 @@
"@types/jquery": "*"
}
},
- "@types/component-emitter": {
- "version": "1.2.10",
- "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz",
- "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg=="
- },
"@types/d3-path": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.1.tgz",
@@ -26735,9 +26761,9 @@
}
},
"base64-arraybuffer": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz",
- "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-vFIUq7FdLtjZMhATwDul5RZWv2jpXQ09Pd6jcVEOvIsqCWTRFD/ONHNfyOS8dA/Ippi5dsIgpyKWKZaAKZltbA=="
},
"base64-js": {
"version": "1.5.1",
@@ -28721,18 +28747,18 @@
}
},
"engine.io-client": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-5.1.2.tgz",
- "integrity": "sha512-blRrgXIE0A/eurWXRzvfCLG7uUFJqfTGFsyJzXSK71srMMGJ2VraBLg8Mdw28uUxSpVicepBN9X7asqpD1mZcQ==",
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.1.1.tgz",
+ "integrity": "sha512-V05mmDo4gjimYW+FGujoGmmmxRaDsrVr7AXA3ZIfa04MWM1jOfZfUwou0oNqhNwy/votUDvGDt4JA4QF4e0b4g==",
"requires": {
- "base64-arraybuffer": "0.1.4",
- "component-emitter": "~1.3.0",
+ "@socket.io/component-emitter": "~3.0.0",
"debug": "~4.3.1",
- "engine.io-parser": "~4.0.1",
+ "engine.io-parser": "~5.0.0",
"has-cors": "1.1.0",
"parseqs": "0.0.6",
"parseuri": "0.0.6",
- "ws": "~7.4.2",
+ "ws": "~8.2.3",
+ "xmlhttprequest-ssl": "~2.0.0",
"yeast": "0.1.2"
},
"dependencies": {
@@ -28748,15 +28774,21 @@
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "ws": {
+ "version": "8.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz",
+ "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==",
+ "requires": {}
}
}
},
"engine.io-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz",
- "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.2.tgz",
+ "integrity": "sha512-wuiO7qO/OEkPJSFueuATIXtrxF7/6GTbAO9QLv7nnbjwZ5tYhLm9zxvLwxstRs0dcT0KUlWTjtIOs1T86jt12g==",
"requires": {
- "base64-arraybuffer": "0.1.4"
+ "base64-arraybuffer": "~1.0.1"
}
},
"enhanced-resolve": {
@@ -37499,17 +37531,16 @@
}
},
"socket.io-client": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.1.3.tgz",
- "integrity": "sha512-hISFn6PDpgDifVUiNklLHVPTMv1LAk8poHArfIUdXa+gKgbr0MZbAlquDFqCqsF30yBqa+jg42wgos2FK50BHA==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.4.0.tgz",
+ "integrity": "sha512-g7riSEJXi7qCFImPow98oT8X++MSsHz6MMFRXkWNJ6uEROSHOa3kxdrsYWMq85dO+09CFMkcqlpjvbVXQl4z6g==",
"requires": {
- "@types/component-emitter": "^1.2.10",
+ "@socket.io/component-emitter": "~3.0.0",
"backo2": "~1.0.2",
- "component-emitter": "~1.3.0",
- "debug": "~4.3.1",
- "engine.io-client": "~5.1.2",
+ "debug": "~4.3.2",
+ "engine.io-client": "~6.1.1",
"parseuri": "0.0.6",
- "socket.io-parser": "~4.0.4"
+ "socket.io-parser": "~4.1.1"
},
"dependencies": {
"debug": {
@@ -37528,12 +37559,11 @@
}
},
"socket.io-parser": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz",
- "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.1.1.tgz",
+ "integrity": "sha512-USQVLSkDWE5nbcY760ExdKaJxCE65kcsG/8k5FDGZVVxpD1pA7hABYXYkCUvxUuYYh/+uQw0N/fvBzfT8o07KA==",
"requires": {
- "@types/component-emitter": "^1.2.10",
- "component-emitter": "~1.3.0",
+ "@socket.io/component-emitter": "~3.0.0",
"debug": "~4.3.1"
},
"dependencies": {
@@ -40225,6 +40255,11 @@
"resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="
},
+ "xmlhttprequest-ssl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz",
+ "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A=="
+ },
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
From cce68570f2758f0c3632420e6904ca5b013a0842 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 30 Nov 2021 17:17:27 -0500
Subject: [PATCH 34/41] no log: Bump @types/react-dom from 17.0.9 to 17.0.11 in
/frontend (#1626)
Bumps [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom) from 17.0.9 to 17.0.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)
---
updated-dependencies:
- dependency-name: "@types/react-dom"
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
frontend/package-lock.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 5e672796c..1f062865a 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -3620,9 +3620,9 @@
}
},
"node_modules/@types/react-dom": {
- "version": "17.0.9",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz",
- "integrity": "sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg==",
+ "version": "17.0.11",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz",
+ "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==",
"dev": true,
"dependencies": {
"@types/react": "*"
@@ -25379,9 +25379,9 @@
}
},
"@types/react-dom": {
- "version": "17.0.9",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.9.tgz",
- "integrity": "sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg==",
+ "version": "17.0.11",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz",
+ "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==",
"dev": true,
"requires": {
"@types/react": "*"
From 247f69c210531048186c699de240f5e860ef0b3f Mon Sep 17 00:00:00 2001
From: Vitiko
Date: Tue, 30 Nov 2021 19:28:25 -0400
Subject: [PATCH 35/41] Fix Hosszupuska provider not returning results
---
.../subliminal_patch/providers/hosszupuska.py | 38 +-
.../test_download_subtitle_episode.yaml | 1275 +++++++++++++++++
.../test_list_subtitles_episode.yaml | 891 ++++++++++++
tests/subliminal_patch/test_hosszupuska.py | 38 +
4 files changed, 2227 insertions(+), 15 deletions(-)
create mode 100644 tests/subliminal_patch/cassettes/test_hosszupuska/test_download_subtitle_episode.yaml
create mode 100644 tests/subliminal_patch/cassettes/test_hosszupuska/test_list_subtitles_episode.yaml
create mode 100644 tests/subliminal_patch/test_hosszupuska.py
diff --git a/libs/subliminal_patch/providers/hosszupuska.py b/libs/subliminal_patch/providers/hosszupuska.py
index 28283e46d..9c17ca16b 100644
--- a/libs/subliminal_patch/providers/hosszupuska.py
+++ b/libs/subliminal_patch/providers/hosszupuska.py
@@ -43,6 +43,9 @@ logger = logging.getLogger(__name__)
language_converters.register('hosszupuska = subliminal_patch.converters.hosszupuska:HosszupuskaConverter')
+_SUB_ENGLISH_NAME_RE = re.compile(r's(\d{1,2})e(\d{1,2})')
+_SUB_YEAR_RE = re.compile(r"(?<=\()(\d{4})(?=\))")
+
class HosszupuskaSubtitle(Subtitle):
"""Hosszupuska Subtitle."""
@@ -141,11 +144,10 @@ class HosszupuskaProvider(Provider, ProviderSubtitleArchiveMixin):
return None
def query(self, series, season, episode, year=None, video=None):
-
# Search for s01e03 instead of s1e3
seasona = "%02d" % season
episodea = "%02d" % episode
- series = fix_inconsistent_naming(series)
+ seriesa = fix_inconsistent_naming(series)
seriesa = series.replace(' ', '+')
# get the episode page
@@ -156,16 +158,22 @@ class HosszupuskaProvider(Provider, ProviderSubtitleArchiveMixin):
r = self.session.get(url, timeout=10).content
- i = 0
soup = ParserBeautifulSoup(r, ['lxml'])
- table = soup.find_all("table")[9]
-
subtitles = []
- # loop over subtitles rows
+
+ for num, temp in enumerate(soup.find_all("table")):
+ if "this.style.backgroundImage='url(css/over2.jpg)" in str(temp) and "css/infooldal.png" in str(temp):
+ logger.debug("Found valid table (%d index)", num)
+ subtitles += self._loop_over_table(temp, season, episode, video)
+
+ return subtitles
+
+ def _loop_over_table(self, table, season, episode, video):
+ i = 0
for row in table.find_all("tr"):
i = i + 1
- if "this.style.backgroundImage='url(css/over2.jpg)" in str(row) and i > 5:
+ if "this.style.backgroundImage='url(css/over2.jpg)" in str(row): #and i > 5:
datas = row.find_all("td")
# Currently subliminal not use these params, but maybe later will come in handy
@@ -177,18 +185,20 @@ class HosszupuskaProvider(Provider, ProviderSubtitleArchiveMixin):
sub_year = sub_english_name = sub_version = None
# Handle the case when '(' in subtitle
+
+
if datas[1].getText().count('(') == 1:
- sub_english_name = re.split('s(\d{1,2})e(\d{1,2})', datas[1].getText())[3]
+ sub_english_name = _SUB_ENGLISH_NAME_RE.split(datas[1].getText())[3]
if datas[1].getText().count('(') == 2:
- sub_year = re.findall(r"(?<=\()(\d{4})(?=\))", datas[1].getText().strip())[0]
- sub_english_name = re.split('s(\d{1,2})e(\d{1,2})', datas[1].getText().split('(')[0])[0]
+ sub_year = _SUB_YEAR_RE.findall(datas[1].getText().strip())[0]
+ sub_english_name = _SUB_ENGLISH_NAME_RE.split(datas[1].getText().split('(')[0])[0]
if not sub_english_name:
continue
- sub_season = int((re.findall('s(\d{1,2})', datas[1].find_all('b')[0].getText(), re.VERBOSE)[0])
+ sub_season = int((re.findall(r's(\d{1,2})', datas[1].find_all('b')[0].getText(), re.VERBOSE)[0])
.lstrip('0'))
- sub_episode = int((re.findall('e(\d{1,2})', datas[1].find_all('b')[0].getText(), re.VERBOSE)[0])
+ sub_episode = int((re.findall(r'e(\d{1,2})', datas[1].find_all('b')[0].getText(), re.VERBOSE)[0])
.lstrip('0'))
if sub_season == season and sub_episode == episode:
@@ -209,9 +219,7 @@ class HosszupuskaProvider(Provider, ProviderSubtitleArchiveMixin):
asked_for_episode=episode)
logger.debug('Found subtitle: %r', subtitle)
- subtitles.append(subtitle)
-
- return subtitles
+ yield subtitle
def list_subtitles(self, video, languages):
titles = [video.series] + video.alternative_series
diff --git a/tests/subliminal_patch/cassettes/test_hosszupuska/test_download_subtitle_episode.yaml b/tests/subliminal_patch/cassettes/test_hosszupuska/test_download_subtitle_episode.yaml
new file mode 100644
index 000000000..bbc3bd383
--- /dev/null
+++ b/tests/subliminal_patch/cassettes/test_hosszupuska/test_download_subtitle_episode.yaml
@@ -0,0 +1,1275 @@
+interactions:
+- request:
+ body: null
+ headers:
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: http://hosszupuskasub.com/sorozatok.php?cim=American+Horror+Story&evad=10&resz=01&nyelvtipus=%25&x=24&y=8
+ response:
+ body:
+ string: !!binary |
+ PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cHM6
+ Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cHM6Ly93
+ d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9Imh1LUhVIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1
+ aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIiBjaGFyc2V0PSJpc28tODg1OS0y
+ IiAvPgo8dGl0bGU+LSBIb3NzenVQdXNrYSBTdWJ0aXRsZXMgLSBGZWxpcmF0b2sgbGV09mx06XNl
+ IG1pbmRlbiBtZW5ueWlz6WdiZW4hIC0gU29yb3phdG9rLCBmaWxtZWsgZm9yZO104XNhIC08L3Rp
+ dGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSG9zc3p1UHVza2EgU3VidGl0
+ bGVzIC0gRmVsaXJhdG9rIGxldPZsdOlzZSBtaW5kZW4gbWVubnlpc+lnYmVuISAtIFNvcm96YXRv
+ aywgZmlsbWVrIGZvcmTtdOFzYSIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJIb3Nz
+ enVwdXNrYSwgaHR0cHM6Ly93d3cuaG9zc3p1cHVza2FzdWIuY29tIiAvPgo8bWV0YSBuYW1lPSJs
+ YW5ndWFnZSIgY29udGVudD0iaHVuZ2FyaWFuIiAvPgo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29u
+ dGVudD0iRmVsaXJhdG9rLCBGZWxpcmF0LCBmZWxpcmF0b2sgaHUsIEZlbGlyYXRvayBGaWxtZWto
+ ZXosIEZlbGlyYXRvayBTb3JvemF0LCBGZWxpcmF0b2sgRmlsbWVrLCBGZWxpcmF0b2sgRmlsbWVr
+ aGV6LCBGZWxpcmF0b2sgU29yb3phdG9raG96LCBTb3JvemF0IGZlbGlyYXRvaywgRmlsbWZlbGly
+ YXRvaywgRmVsaXJhdG9rIEZpbG1la25laywgRmVsaXJhdG9rIFNvcm96YXRva25haywgRmVsaXJh
+ dG9rIExldPZsdOlzZSwgU3VidGl0bGUsIFN1YnRpdGxlcyI+CjxtZXRhIG5hbWU9Ik1TU21hcnRU
+ YWdzUHJldmVudFBhcnNpbmciIGNvbnRlbnQ9InRydWUiIC8+CjxtZXRhIG5hbWU9IlJvYm90cyIg
+ Y29udGVudD0iaW5kZXgsIGZvbGxvdyIgLz4KPG1ldGEgbmFtZT0iRG9jdW1lbnQtc3RhdGUiIGNv
+ bnRlbnQ9IkR5bmFtaWMiIC8+CjxtZXRhIG5hbWU9InJldml6aXQtYWZ0ZXIiIGNvbnRlbnQ9IjEg
+ ZGF5IiAvPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImZhdmljb24uaWNvIiB0eXBl
+ PSJpbWFnZS94LWljb24iPgo8bGluayByZWw9Imljb24iIGhyZWY9ImZhdmljb24uaWNvIiB0eXBl
+ PSJpbWFnZS94LWljb24iPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9ocC5jc3Mi
+ IHR5cGU9InRleHQvY3NzIiAvPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0
+ ZXh0L2phdmFzY3JpcHQiIHNyYz0iYWpheC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgbGFuZ3VhZ2U9
+ ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjb2xsYXBzZS5qcyI+PC9z
+ Y3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVy
+ eS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2FqYXguZ29v
+ Z2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuNC9qcXVlcnktdWkubWluLmpzIj48
+ L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkEjbWVudXVqOmxpbmsge3RleHQtZGVj
+ b3JhdGlvbjogbm9uZTsgY29sb3I6ICAjRkZGRkZGOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2Vp
+ Z2h0OiBib2xkOyB9DQpBI21lbnV1ajp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNv
+ bG9yOiAgI0ZGRkZGRjsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogYm9sZDsgfQ0KQSNt
+ ZW51dWo6YWN0aXZlIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiAgI0ZGRkZGRjsgZm9u
+ dC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogYm9sZDsgfQ0KQSNtZW51dWo6aG92ZXIge3RleHQt
+ ZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6ICNGRkZGRkY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13
+ ZWlnaHQ6IGJvbGQ7IH0NCmltZy5taWRkbGUgeyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9DQo8
+ L3N0eWxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJocHJvdGF0ZS5qcyI+
+ PC9zY3JpcHQ+CjxzY3JpcHQ+IA0KICAgICQoZnVuY3Rpb24oKXsNCiAgICAgICQoIiNpbmNsdWRl
+ ZENvbnRlbnQiKS5sb2FkKCJodHRwczovL2xhbmRjb21wdXRlci5odS9sYW5kY29tcHV0ZXJocC5o
+ dG1sIik7IA0KICAgIH0pOw0KICAgIDwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
+ cmlwdCIgc3JjPSJodHRwczovL2hvc3N6dXB1c2thc3ViLmNvbS9iYW5uZXJzLm1pbi5qcyI+PC9z
+ Y3JpcHQ+CjxzY3JpcHQgc3JjPSdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGku
+ anMnPjwvc2NyaXB0Pgo8bGluayBocmVmPSJjc3MvcmF0aW5nX3N0eWxlLmNzcyIgcmVsPSJzdHls
+ ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCI+CjwvaGVhZD4KPGJvZHk+CjxkaXYg
+ aWQ9ImZiLXJvb3QiPjwvZGl2Pgo8c2NyaXB0PihmdW5jdGlvbihkLCBzLCBpZCkgew0KICB2YXIg
+ anMsIGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07DQogIGlmIChkLmdldEVsZW1l
+ bnRCeUlkKGlkKSkgcmV0dXJuOw0KICBqcyA9IGQuY3JlYXRlRWxlbWVudChzKTsganMuaWQgPSBp
+ ZDsNCiAganMuc3JjID0gJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvaHVfSFUvc2RrLmpz
+ I3hmYm1sPTEmdmVyc2lvbj12Mi4xMSZhcHBJZD0xODA2OTgyOTg2MTkxOTkxJzsNCiAgZmpzLnBh
+ cmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOw0KfShkb2N1bWVudCwgJ3NjcmlwdCcsICdm
+ YWNlYm9vay1qc3NkaycpKTs8L3NjcmlwdD4KPGNlbnRlcj48c2NyaXB0IGxhbmd1YWdlPSJKYXZh
+ U2NyaXB0IiBzcmM9ImJhbm5lcmVrMi5qcyI+PC9zY3JpcHQ+PC9jZW50ZXI+CjxzY3JpcHQ+DQoN
+ CiQoJ2JvZHknKS5jbGljayhmdW5jdGlvbihlKXsNCiAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMp
+ IHsNCiAgICAgICAgd2luZG93Lm9wZW4oImh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vaGlyZGV0
+ ZXMucGhwIiwgIl9ibGFuayIpDQogICAgfQ0KfSk7DQo8L3NjcmlwdD4KPHRhYmxlIGFsaWduPSJj
+ ZW50ZXIiIGJhY2tncm91bmQ9ImNzcy9tZW51YmcucG5nIiB3aWR0aD0iOTQwIj4KPHRyPgo8dGQg
+ YWxpZ249ImNlbnRlciI+PGltZyBjbGFzcz0ibWlkZGxlIiBzcmM9ImNzcy9tZW51aWNvbi9Ib21l
+ LWljb24ucG5nIiB3aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiIHZlcnRpY2FsLWFsaWduPSJtaWRk
+ bGUiPjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vaW5kZXgucGhwIiBzdHlsZT0i
+ dGV4dC1kZWNvcmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+RvVv
+ bGRhbDwvYj48L2E+PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiPjxpbWcgY2xhc3M9Im1pZGRsZSIg
+ c3JjPSJjc3MvbWVudWljb24vZm9ydW0ucG5nIiB3aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiPjxh
+ IGhyZWY9Imh0dHBzOi8vZm9ydW0uaG9zc3p1cHVza2FzdWIuY29tIiBzdHlsZT0idGV4dC1kZWNv
+ cmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+RvNydW08L2I+PC9h
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21l
+ bnVpY29uL2hpcmVrLnBuZyIgd2lkdGg9IjMyIiBhbGlnbj0ibWlkZGxlIj48YSBocmVmPSJodHRw
+ czovL3dlYm1vb3ZpZXMuY29tL2Jsb2ciIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0idGV4dC1kZWNv
+ cmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+SO1yZWs8L2I+PC9h
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21l
+ bnVpY29uL3dlYm1vb3ZpZXNpY29uLnBuZyIgd2lkdGg9IjMyIiBhbGlnbj0ibWlkZGxlIj48YSBo
+ cmVmPSJodHRwczovL3dlYm1vb3ZpZXMuY29tL3R2LXNob3dzIiBzdHlsZT0idGV4dC1kZWNvcmF0
+ aW9uIDogbm9uZTsiIHRhcmdldD0iX2JsYW5rIiBhbHQ9Ik9ubGluZSBmaWxtZWssIG9ubGluZSBz
+ b3JvemF0b2ssIHNvcm96YXRvayBu6Xrpc2UsIGZpbG1la27peulzZSI+PGZvbnQgY29sb3I9Indo
+ aXRlIj4mbmJzcDs8Yj5Tb3JvemF0b2sgT25saW5lPC9iPjwvYT48L3RkPgo8dGQgYWxpZ249ImNl
+ bnRlciI+PGltZyBjbGFzcz0ibWlkZGxlIiBzcmM9ImNzcy9tZW51aWNvbi91cGxvYWQucG5nIiB3
+ aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiPjxhIGhyZWY9Imh0dHBzOi8vaG9zc3p1cHVza2FzdWIu
+ Y29tL2ZlbHRvbHRlcy5waHAiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb24gOiBub25lOyI+PGZvbnQg
+ Y29sb3I9IndoaXRlIj4mbmJzcDs8Yj5GZWx09mx06XM8L2I+PC9hPjwvdGQ+Cjx0ZCBhbGlnbj0i
+ Y2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21lbnVpY29uL2hpcmRldG5lbC5w
+ bmciIHdpZHRoPSIzMiIgYWxpZ249Im1pZGRsZSI+PGEgaHJlZj0iaHR0cHM6Ly9ob3NzenVwdXNr
+ YXN1Yi5jb20vaGlyZGV0ZXMucGhwIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uIDogbm9uZTsiPjxm
+ b250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+SGlyZGV0bulsPzwvYj48L2E+PC90ZD4KPHRkIGFs
+ aWduPSJjZW50ZXIiPjxpbWcgY2xhc3M9Im1pZGRsZSIgc3JjPSJjc3MvbWVudWljb24vY2hhdC5w
+ bmciIHdpZHRoPSIzMiIgYWxpZ249Im1pZGRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJv
+ b2suY29tL3BnL2hvc3N6dXB1c2thc3ViL2Fib3V0LyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbiA6
+ IG5vbmU7IiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgY29sb3I9IndoaXRlIj4mbmJzcDs8Yj5LYXBj
+ c29sYXQ8L2I+PC9hPjwvdGQ+CjwvZm9udD4KPC90cj4KPC90YWJsZT4KPC9jZW50ZXI+CjxkaXYg
+ aWQ9InN0cmFua2EiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IC8qPCFbQ0RBVEFb
+ Ki8galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtqUXVlcnkoIi50aGVibG9nd2lk
+ Z2V0cyIpLmhvdmVyKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5zdG9wKCkuYW5pbWF0ZSh7cmln
+ aHQ6ICIwIn0sICJtZWRpdW0iKTt9LCBmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuc3RvcCgpLmFu
+ aW1hdGUoe3JpZ2h0OiAiLTMwMCJ9LCAibWVkaXVtIik7fSwgNTAwKTt9KTsgLypdXT4qLyA8L3Nj
+ cmlwdD4gPHN0eWxlIHR5cGU9InRleHQvY3NzIj4gLnRoZWJsb2d3aWRnZXRze2JhY2tncm91bmQ6
+ IHVybCgiaHR0cHM6Ly8zLmJwLmJsb2dzcG90LmNvbS8tVGFaUkx2NjZmOGcvVW9NblR5VGJGNkkv
+ QUFBQUFBQUFBR1kvVTRxY2YtU1A2ZDAvVGhlQmxvZ1dpZGdldHNfZmFjZWJvb2tfd2lkZ2V0LnBu
+ ZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsg
+ ZmxvYXQ6IHJpZ2h0O2hlaWdodDogMjcwcHg7cGFkZGluZzogMCA1cHggMCA0NnB4O3dpZHRoOiAy
+ OTVweDt6LWluZGV4OiAgOTk5OTk7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6LTMwMHB4O3RvcDoxNSU7
+ fSAudGhlYmxvZ3dpZGdldHMgZGl2eyBwYWRkaW5nOiAwOyBtYXJnaW4tcmlnaHQ6LThweDsgYm9y
+ ZGVyOjRweCBzb2xpZCAgIzNiNTk5ODsgYmFja2dyb3VuZDojZmFmYWZhO30gLnRoZWJsb2d3aWRn
+ ZXRzIHNwYW57Ym90dG9tOiA0cHg7Zm9udDogOHB4ICJsdWNpZGEgZ3JhbmRlIix0YWhvbWEsdmVy
+ ZGFuYSxhcmlhbCxzYW5zLXNlcmlmO3Bvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogNnB4O3RleHQt
+ YWxpZ246IHJpZ2h0O3otaW5kZXg6IDk5OTk5O30gLnRoZWJsb2d3aWRnZXRzIHNwYW4gYXtjb2xv
+ cjogZ3JheTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC50aGVibG9nd2lkZ2V0cyBzcGFuIGE6aG92
+ ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IH0gPC9zdHlsZT4KPGRpdiBjbGFzcz0idGhl
+ YmxvZ3dpZGdldHMiIHN0eWxlPSIiPgo8ZGl2Pgo8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZmFj
+ ZWJvb2suY29tL3BsdWdpbnMvbGlrZWJveC5waHA/aHJlZj1odHRwcyUzQSUyRiUyRmZhY2Vib29r
+ LmNvbSUyRmhvc3N6dXB1c2thc3ViJndpZHRoPTI5NSZjb2xvcnNjaGVtZT1saWdodCZzaG93X2Zh
+ Y2VzPXRydWUmYm9yZGVyX2NvbG9yPXdoaXRlJmNvbm5lY3Rpb25zPTkmc3RyZWFtPWZhbHNlJmhl
+ YWRlcj1mYWxzZSZoZWlnaHQ9MjcwIiBzY3JvbGxpbmc9Im5vIiBmcmFtZWJvcmRlcj0iMCIgc2Ny
+ b2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjogd2hpdGU7IG92ZXJmbG93OiBoaWRkZW47IGhlaWdo
+ dDogMjcwcHg7IHdpZHRoOiAyOTVweDtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6MDAwOyI+PC9p
+ ZnJhbWU+CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAvKjwh
+ W0NEQVRBWyovIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7alF1ZXJ5KCIudGhl
+ YmxvZ3dpZGdldHMyIikuaG92ZXIoZnVuY3Rpb24oKSB7alF1ZXJ5KHRoaXMpLnN0b3AoKS5hbmlt
+ YXRlKHtyaWdodDogIjAifSwgIm1lZGl1bSIpO30sIGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5z
+ dG9wKCkuYW5pbWF0ZSh7cmlnaHQ6ICItNjUwIn0sICJtZWRpdW0iKTt9LCA1MDApO30pOyAvKl1d
+ PiovIDwvc2NyaXB0PiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiAudGhlYmxvZ3dpZGdldHMye2Jh
+ Y2tncm91bmQ6IHVybCgiaHR0cHM6Ly9ob3NzenVwdXNrYXN1Yi5jb20vY3NzL3R3aXR0ZXIucG5n
+ Iikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBm
+ bG9hdDogcmlnaHQ7aGVpZ2h0OiAyNzBweDtwYWRkaW5nOiAwIDVweCAwIDQ2cHg7d2lkdGg6IDY0
+ NXB4O3otaW5kZXg6ICA5OTk5OTtwb3NpdGlvbjpmaXhlZDtyaWdodDotNjUwcHg7dG9wOjQwJTt9
+ IC50aGVibG9nd2lkZ2V0czIgZGl2eyBwYWRkaW5nOiAwOyBtYXJnaW4tcmlnaHQ6LTE2cHg7IGJv
+ cmRlcjo0cHggc29saWQgICMzYjU5OTg7IGJhY2tncm91bmQ6I2ZhZmFmYTt9IC50aGVibG9nd2lk
+ Z2V0czIgc3Bhbntib3R0b206IDRweDtmb250OiA4cHggImx1Y2lkYSBncmFuZGUiLHRhaG9tYSx2
+ ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiA2cHg7dGV4
+ dC1hbGlnbjogcmlnaHQ7ei1pbmRleDogOTk5OTk7fSAudGhlYmxvZ3dpZGdldHMyIHNwYW4gYXtj
+ b2xvcjogZ3JheTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC50aGVibG9nd2lkZ2V0czIgc3BhbiBh
+ OmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB9IDwvc3R5bGU+CjxkaXYgY2xhc3M9
+ InRoZWJsb2d3aWRnZXRzMiIgc3R5bGU9IiI+CjxkaXY+CjxpZnJhbWUgc3JjPSJodHRwczovL2hv
+ c3N6dXB1c2thc3ViLmNvbS90d2l0dGVyLmh0bWwiIHNjcm9sbGluZz0ieWVzIiBmcmFtZWJvcmRl
+ cj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjogd2hpdGU7IG92ZXJmbG93OiBoaWRk
+ ZW47IGhlaWdodDogMzIwcHg7IHdpZHRoOiA2NTBweDtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6
+ MDAwOyI+PC9pZnJhbWU+CjxzY3JpcHQgYXN5bmMgc3JjPSdodHRwczovL2hvc3N6dXB1c2thc3Vi
+ LmNvbS93aWRnZXRzLmpzJyBjaGFyc2V0PSd1dGYtOCc+PC9zY3JpcHQ+CjwvZGl2Pgo8L2Rpdj4K
+ PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjaGFyc2V0PSJ1dGYtOCI+CjxociBjb2xv
+ cj0iI2NjY2NjYyIgc3R5bGU9ImJvcmRlcjogMXB4IGRvdHRlZCAjY2NjY2NjIj4KPHRhYmxlIHdp
+ ZHRoPSI5OSUiIGFsaWduPSJjZW50ZXIiPgo8dHI+Cjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQw
+ IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlcmxv
+ Z28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGV3YWxraW5nZGVhZCIgdGFyZ2V0
+ PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2tpc2tlcC90aGV3YWxraW5nZGVhZC5wbmciIGFsdD0i
+ IiB3aWR0aD0iODAiIGJvcmRlcj0iMCI+PC9hPjwvZGl2PjwvdGQ+PHRkIHdpZHRoPSIxMDMiIGhl
+ aWdodD0iNDAiIG9ubW91c2VvdmVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVybG9nby5wbmcpJzsiIG9ubW91c2VvdXQ9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdl
+ PSd1cmwoY3NzL292ZXIyLmpwZyknOyI+PGRpdiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRw
+ Oi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPWRleHRlciIgdGFyZ2V0
+ PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2tpc2tlcC9kZXh0ZXIucG5nIiBhbHQ9IiIgd2lkdGg9
+ IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQw
+ IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlcmxv
+ Z28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGV3YWxraW5nZGVhZHdvcmxkYmV5
+ b25kIiB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJjc3Mva2lza2VwL3RoZXdhbGtpbmdkZWFk
+ d29ybGRiZXlvbmQucG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48
+ L3RkPjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5i
+ YWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlz
+ LnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249
+ ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhw
+ P3NlcmlhbD1idWxsIiB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJjc3Mva2lza2VwL2J1bGwu
+ cG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0
+ aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tn
+ cm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEg
+ aHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD15b3Vu
+ Z3NoZWxkb24iIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAveW91bmdzaGVs
+ ZG9uLnBuZyIgYWx0PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48dGQg
+ d2lkdGg9IjEwMyIgaGVpZ2h0PSI0MCIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3Vu
+ ZEltYWdlPSd1cmwoY3NzL292ZXJsb2dvLnBuZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5i
+ YWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij48ZGl2IGFsaWduPSJjZW50ZXIi
+ PjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBocD9zZXJpYWw9
+ YmF0d29tYW4iIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvYmF0d29tYW4u
+ cG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0
+ aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tn
+ cm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEg
+ aHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD13YWxr
+ ZXIiIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvd2Fsa2VyLnBuZyIgYWx0
+ PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48dGQgd2lkdGg9IjEwMyIg
+ aGVpZ2h0PSI0MCIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwo
+ Y3NzL292ZXJsb2dvLnBuZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij48ZGl2IGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0
+ dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBocD9zZXJpYWw9YWxsYW1lcmljYW4i
+ IHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvYWxsYW1lcmljYW4ucG5nIiBh
+ bHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0aD0iMTAz
+ IiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3Vy
+ bChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJ
+ bWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0i
+ aHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1zdXBlcmdpcmwi
+ IHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvc3VwZXJnaXJsLnBuZyIgYWx0
+ PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgdmFs
+ aWduPSJ0b3AiPjxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczAyZTAzPC9zdHJvbmc+Jm5i
+ c3A7PGltZyBzcmM9ImZsYWdzLzEuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48
+ YnI+PHNwYW4gY2xhc3M9InN0eWxlMSI+KHJlcGFjayBhbXpuIHdlYnJpcC1udGIsIHJlcGFjayBh
+ bXpuIHdlYiBkbC1udGIpPC9zcGFuPjwvZGl2PjwvdGQ+PHRkIHZhbGlnbj0idG9wIj48ZGl2IGFs
+ aWduPSJjZW50ZXIiPjxzdHJvbmc+IHMwOWUwNDwvc3Ryb25nPiZuYnNwOzxpbWcgc3JjPSJmbGFn
+ cy8xLmdpZiIgYWx0PSIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMCI+PGJyPjxzcGFuIGNsYXNzPSJz
+ dHlsZTEiPihhbXpuIHdlYnJpcC1udGIsIGFtem4gd2ViIGRsLW50Yiwgd2ViLWdsaGYpPC9zcGFu
+ PjwvZGl2PjwvdGQ+PHRkIHZhbGlnbj0idG9wIj48ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+
+ IHMwMmUwOTwvc3Ryb25nPiZuYnNwOzxpbWcgc3JjPSJmbGFncy8yLmdpZiIgYWx0PSIiIHdpZHRo
+ PSIxOCIgaGVpZ2h0PSIxMCI+PGJyPjxzcGFuIGNsYXNzPSJzdHlsZTEiPih3ZWJyaXAtaW9uMTAs
+ IHdlYi1hZmcsIHdlYi1jYWtlcyk8L3NwYW4+PC9kaXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxk
+ aXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczA2ZTA2PC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9
+ ImZsYWdzLzIuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xh
+ c3M9InN0eWxlMSI+KHdlYnJpcC1pb24xMCwgd2ViLWFmZywgd2ViLWdvc3NpcCk8L3NwYW4+PC9k
+ aXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczA1
+ ZTA3PC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9ImZsYWdzLzEuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4
+ IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xhc3M9InN0eWxlMSI+KHdlYnJpcC1pb24xMCwgd2Vi
+ LWNha2VzKTwvc3Bhbj48L2Rpdj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2Vu
+ dGVyIj48c3Ryb25nPiBzMDNlMDc8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMi5naWYi
+ IGFsdD0iIiB3aWR0aD0iMTgiIGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4o
+ aGR0di1hZmcsIGhkdHYtcm14LCA3MjBwLXN5bmNvcHksIDcyMHAtcm10ZWFtKTwvc3Bhbj48L2Rp
+ dj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPiBzMDJl
+ MDI8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMS5naWYiIGFsdD0iIiB3aWR0aD0iMTgi
+ IGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4od2VicmlwLWlvbjEwLCBhbXpu
+ IHdlYnJpcC1mbHV4LCBhbXpuIHdlYiBkbC1mbHV4LCB3ZWItYWZnLCB3ZWItZ29zc2lwKTwvc3Bh
+ bj48L2Rpdj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25n
+ PiBzMDRlMDU8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMi5naWYiIGFsdD0iIiB3aWR0
+ aD0iMTgiIGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4oaGR0di1hZmcsIDcy
+ MHAtc3luY29weSk8L3NwYW4+PC9kaXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxkaXYgYWxpZ249
+ ImNlbnRlciI+PHN0cm9uZz4gczA2ZTIwPC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9ImZsYWdzLzEu
+ Z2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xhc3M9InN0eWxl
+ MSI+KHdlYnJpcC1pb24xMCwgYW16biB3ZWJyaXAtbnRiLCBhbXpuIHdlYiBkbC1udGIpPC9zcGFu
+ PjwvZGl2PjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxociBjb2xvcj0iI2NjY2NjYyIgc3R5bGU9ImJv
+ cmRlcjogMXB4IGRvdHRlZCAjY2NjY2NjIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3Bh
+ Y2luZz0iMCIgYm9yZGVyPSIwIiBiZ2NvbG9yPSJkYXJrZ3JheSIgd2lkdGg9Ijc4MCIgYWxpZ249
+ ImNlbnRlciI+Cjx0cj48dGQ+Cjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3Bh
+ Y2luZz0iMSIgY2VsbHBhZGRpbmc9IjUiPgo8dHIgYmdjb2xvcj0iI2U2ZTZlNiI+Cjx0ZCBoZWln
+ aHQ9IjUwIiBhbGlnbj0ibGVmdCI+CjxhIGhyZWY9Imh0dHA6Ly9pbmZvLmhvc3N6dXB1c2thc3Vi
+ LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPgo8aW1nIHNyYz0iY3NzL2luZm9iYW5uZXIzLnBuZyIgd2lk
+ dGg9IjQ0MCIgaGVpZ2h0PSI2MCIgYWx0PSdoaXJkZXNzIGl0dCcgYm9yZGVyPSIwIj48L2E+Cgo8
+ L2E+CjwvdGQ+PHRkPgo8YSBocmVmPSJodHRwczovL3BjLW1heC5odS90ZXJtZWsta2VyZXNlcy8/
+ c2VhcmNoPSsrKyIgdGFyZ2V0PSJfYmxhbmsiPgo8aW1nIHNyYz0iY3NzL2FuaW1hbHRfaGlyZGV0
+ ZXNfaG9zc3p1cHVza2FfMDEwX0IuZ2lmIiB3aWR0aD0iNDYwIiBoZWlnaHQ9IjYwIiBhbHQ9J2hh
+ c3pu4Wx0IHN64W3tdPNn6XBlayBvbGNz824nIGJvcmRlcj0iMCI+CjwvYT4KPC90ZD4KPC90cj4K
+ PC90YWJsZT4KPC90ZD48L3RyPgo8L3RhYmxlPgo8aHIgY29sb3I9IiNjY2NjY2MiIHN0eWxlPSJi
+ b3JkZXI6IDFweCBkb3R0ZWQgI2NjY2NjYyI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAg
+ IC5zZWFyY2gtYm94ew0KICAgICAgICB3aWR0aDogNjQwcHg7DQogICAgICAgIHBvc2l0aW9uOiBy
+ ZWxhdGl2ZTsNCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCQkNCgkNCiAgICB9DQog
+ ICAgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT0idGV4dCJdew0KICAgICAgICBib3JkZXI6IDJweCBz
+ b2xpZCAjQ0NDQ0NDOw0KCSAgICBib3JkZXItcmFkaXVzOiA4cHg7DQoJICAgIGZvbnQtc2l6ZTog
+ MjRweDsNCgkgICAgaGVpZ2h0OiA1MHB4Ow0KCSAgICBsaW5lLWhlaWdodDogMzBweDsNCgkgICAg
+ b3V0bGluZTogbWVkaXVtIG5vbmU7DQoJICAgIHBhZGRpbmc6IDhweCAxMnB4Ow0KCSAgICB3aWR0
+ aDogNTgwcHg7DQogICAgfQ0KICAgIC5yZXN1bHR7DQogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
+ ZTsgICAgICAgIA0KICAgICAgICB6LWluZGV4OiA5OTk7DQogICAgICAgIHRvcDogMTAwJTsNCiAg
+ ICAgICAgbGVmdDogMDsNCiAgICB9DQogICAgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT0idGV4dCJd
+ LCAucmVzdWx0ew0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgYm94LXNpemluZzogYm9y
+ ZGVyLWJveDsNCiAgICB9DQogICAgLyogRm9ybWF0dGluZyByZXN1bHQgaXRlbXMgKi8NCiAgICAu
+ cmVzdWx0IHB7DQoJCWJhY2tncm91bmQ6ICNmMmYyZjI7DQoJICAgIGJvcmRlcjogMnB4IHNvbGlk
+ ICNDQ0NDQ0M7DQogIAkgICAgbWFyZ2luOiAwOw0KCQlmb250LXNpemU6IDE2cHg7DQogICAgICAg
+ IHBhZGRpbmc6IDdweCAxMHB4Ow0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDOw0K
+ ICAgICAgICBib3JkZXItdG9wOiBub25lOw0KCQljdXJzb3I6IHBvaW50ZXI7DQogICAgICAgIA0K
+ CSAgICAgICANCiAgICB9DQoJLnJlc3VsdCB0YWJsZXsNCgkJd2lkdGg6IDYxNnB4Ow0KCQliYWNr
+ Z3JvdW5kOiAjZjJmMmYyOw0KCSAgICBib3JkZXI6IDJweCBzb2xpZCAjQ0NDQ0NDOw0KICAJICAg
+ IG1hcmdpbjogMDsNCgkJZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICBwYWRkaW5nOiA3cHggMTBw
+ eDsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQzsNCiAgICAgICAgYm9yZGVyLXRv
+ cDogbm9uZTsNCgkJY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICANCgkgICAgICAgDQogICAgfQ0K
+ ICAgIC5yZXN1bHQgcDpob3ZlcnsNCiAgICAgICAgYmFja2dyb3VuZDogI0NDQzsNCgkJYm9yZGVy
+ OiAycHggc29saWQgI0NDQ0NDQzsNCiAgCSAgICBtYXJnaW46IDA7DQoJCWZvbnQtc2l6ZTogMTZw
+ eDsNCiAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlk
+ ICNDQ0NDQ0M7DQogICAgICAgIGJvcmRlci10b3A6IG5vbmU7DQogICAgfQ0KCS5yZXN1bHQgdGFi
+ bGU6aG92ZXJ7DQoJCXdpZHRoOiA2MTZweDsNCiAgICAgICAgYmFja2dyb3VuZDogI0NDQzsNCgkJ
+ Ym9yZGVyOiAycHggc29saWQgI0NDQ0NDQzsNCiAgCSAgICBtYXJnaW46IDA7DQoJCWZvbnQtc2l6
+ ZTogMTRweDsNCiAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7DQogICAgICAgIGJvcmRlcjogMXB4
+ IHNvbGlkICNDQ0NDQ0M7DQogICAgICAgIGJvcmRlci10b3A6IG5vbmU7DQogICAgfQ0KPC9zdHls
+ ZT4KPHN0eWxlPg0KCQ0KCS5tZW51IHsNCglmb250LWZhbWlseTogYXJpYWwgYmxhY2s7DQoJY29s
+ b3I6ICMwMDAwMDA7DQoJZm9udC1zaXplOiAyMnB4Ow0KCUE6bGluayB7IHRleHQtZGVjb3JhdGlv
+ bjogbm9uZTt9DQogICAgQTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAg
+ ICAgICAgY29sb3I6ICMwMDAwMDA7IH0NCiAgICBBOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiBu
+ b25lOw0KICAgICAgICAgIGNvbG9yOiAjNjY5OUNDOyB9DQoJfQ0KCS5tZW51MXsNCglmb250LWZh
+ bWlseTogYXJpYWwgYmxhY2s7DQoJZm9udC1zaXplOiAxNnB4Ow0KCUE6bGluayB7IHRleHQtZGVj
+ b3JhdGlvbjogbm9uZTsgY29sb3I6ICNlZWVlZWU7fQ0KICAgIEE6dmlzaXRlZCB7IHRleHQtZGVj
+ b3JhdGlvbjogbm9uZTsNCiAgICAgICAgICAgIGNvbG9yOiAjOTk5OTk5OyB9DQogICAgQTpob3Zl
+ ciB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgICBjb2xvcjogIzY2OTlDQzsgfQ0K
+ CX0NCgkNCgkNCgkucGVyIHsNCglmb250LWZhbWlseTogYXJpYWwgYmxhY2s7DQoJY29sb3I6ICMw
+ MDAwMDA7DQoJZm9udC10eXBlOiBib2xkOw0KCWZvbnQtc2l6ZTogMjJweDsNCgl9DQoJDQoJLnRh
+ YmxlX2JvZHl7DQoJCWJhY2tncm91bmQtaW1hZ2U6dXJsKCdjc3Mva2VyZXNvYmFja3MuanBnJyk7
+ DQoJCWZpbHRlcjphbHBoYShvcGFjaXR5PTkwKTsgLW1vei1vcGFjaXR5OjAuNTsgb3BhY2l0eTog
+ MS41Ow0KCQkNCgl9DQoJCQ0KCQkNCn0NCg0KICAgCQ0KPC9zdHlsZT4KPHNjcmlwdCBzcmM9Imh0
+ dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KPHNj
+ cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24o
+ KXsNCiAgICAkKCcuc2VhcmNoLWJveCBpbnB1dFt0eXBlPSJ0ZXh0Il0nKS5vbigia2V5dXAgaW5w
+ dXQiLCBmdW5jdGlvbigpew0KICAgICAgICAvKiBHZXQgaW5wdXQgdmFsdWUgb24gY2hhbmdlICov
+ DQogICAgICAgIHZhciBpbnB1dFZhbCA9ICQodGhpcykudmFsKCk7DQogICAgICAgIHZhciByZXN1
+ bHREcm9wZG93biA9ICQodGhpcykuc2libGluZ3MoIi5yZXN1bHQiKTsNCiAgICAgICAgaWYoaW5w
+ dXRWYWwubGVuZ3RoKXsNCiAgICAgICAgICAgICQuZ2V0KCJiYWNrZW5kLXNlYXJjaC5waHAiLCB7
+ dGVybTogaW5wdXRWYWx9KS5kb25lKGZ1bmN0aW9uKGRhdGEpew0KICAgICAgICAgICAgICAgIC8v
+ IERpc3BsYXkgdGhlIHJldHVybmVkIGRhdGEgaW4gYnJvd3Nlcg0KICAgICAgICAgICAgICAgIHJl
+ c3VsdERyb3Bkb3duLmh0bWwoZGF0YSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSBlbHNl
+ ew0KICAgICAgICAgICAgcmVzdWx0RHJvcGRvd24uZW1wdHkoKTsNCiAgICAgICAgfQ0KICAgIH0p
+ Ow0KICAgIA0KICAgIC8vIFNldCBzZWFyY2ggaW5wdXQgdmFsdWUgb24gY2xpY2sgb2YgcmVzdWx0
+ IGl0ZW0NCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAiLnJlc3VsdCBwIiwgZnVuY3Rpb24o
+ KXsNCiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCIuc2VhcmNoLWJveCIpLmZpbmQoJ2lucHV0W3R5
+ cGU9InRleHQiXScpLnZhbCgkKHRoaXMpLnRleHQoKSk7DQogICAgICAgICQodGhpcykucGFyZW50
+ KCIucmVzdWx0IikuZW1wdHkoKTsNCiAgICB9KTsNCn0pOw0KPC9zY3JpcHQ+Cjx0YWJsZSB3aWR0
+ aD0iOTAwIiBjbGFzcz0idGFibGVfYm9keSIgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIj4KPHRy
+ Pjx0ZD4KPGNlbnRlcj4KPGltZyBzcmM9ImNzcy9iYWxueWlsLnBuZyIgd2lkdGg9IjIxIj48YSBo
+ cmVmPSJzb3JvemF0b2sucGhwIiBpZD0ibWVudTMiPjxzcGFuIGNsYXNzPSJtZW51Ij48Yj5Tb3Jv
+ emF0b2s8L2I+PC9zcGFuPjwvYT4mbmJzcDs8c3BhbiBjbGFzcz0icGVyIj4tPC9zcGFuPiZuYnNw
+ OzxhIGhyZWY9ImZpbG1lay5waHAiIGlkPSJtZW51MyI+PHNwYW4gY2xhc3M9Im1lbnUxIj5GaWxt
+ ZWs8L3NwYW4+PC9hPgombmJzcDsmbmJzcDsmbmJzcDsKPHRhYmxlPjx0cj48dGQ+Cjxmb3JtIGFj
+ dGlvbj0ic29yb3phdG9rLnBocCIgbmFtZT0icHJlcmVnIiBtZXRob2Q9ImdldCI+CjxzcGFuIGNs
+ YXNzPSJzdHlsZTIiPjxzdHJvbmc+PC9zdHJvbmc+PC9zcGFuPgo8L3RkPgo8dGQ+Cgo8ZGl2IGNs
+ YXNzPSJzZWFyY2gtYm94Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImNpbSIgYXV0b2NvbXBs
+ ZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSLNcmQgYmUgYSBrZXJlc2VuZPUgc29yb3phdCBj7W3pdC4u
+ LiIgLz4KPGRpdiBjbGFzcz0icmVzdWx0Ij48L2Rpdj4KPC9kaXY+CjwvdGQ+PC90cj48L3RhYmxl
+ Pgo8dGFibGU+PHRyPgo8dGQ+CiZuYnNwOwo8c2VsZWN0IG5hbWU9ImV2YWQiIGNsYXNzPSJpbnB1
+ dDIiPgo8b3B0aW9uIHZhbHVlPSIiPul2YWQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczAxIj4x
+ PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMwMiI+Mjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJz
+ MDMiPjM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczA0Ij40PC9vcHRpb24+CjxvcHRpb24gdmFs
+ dWU9InMwNSI+NTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMDYiPjY8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iczA3Ij43PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMwOCI+ODwvb3B0aW9uPgo8
+ b3B0aW9uIHZhbHVlPSJzMDkiPjk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczEwIj4xMDwvb3B0
+ aW9uPgo8b3B0aW9uIHZhbHVlPSJzMTEiPjExPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMxMiI+
+ MTI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczEzIj4xMzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVl
+ PSJzMTQiPjE0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMxNSI+MTU8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iczE2Ij4xNjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMTciPjE3PC9vcHRpb24+
+ CjxvcHRpb24gdmFsdWU9InMxOCI+MTg8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczE5Ij4xOTwv
+ b3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjAiPjIwPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMy
+ MSI+MjE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczIyIj4yMjwvb3B0aW9uPgo8b3B0aW9uIHZh
+ bHVlPSJzMjMiPjIzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMyNCI+MjQ8L29wdGlvbj4KPG9w
+ dGlvbiB2YWx1ZT0iczI1Ij4yNTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjYiPjI2PC9vcHRp
+ b24+CjxvcHRpb24gdmFsdWU9InMyNyI+Mjc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczI4Ij4y
+ ODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjkiPjI5PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9
+ InMzMCI+MzA8L29wdGlvbj4KPC9zZWxlY3Q+Ci0KPC90ZD4KPHRkPgo8c2VsZWN0IG5hbWU9InJl
+ c3oiIGNsYXNzPSJpbnB1dDIiPgo8b3B0aW9uIHZhbHVlPSIiPnLpc3o8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iZTAxIj4xPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUwMiI+Mjwvb3B0aW9uPgo8
+ b3B0aW9uIHZhbHVlPSJlMDMiPjM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTA0Ij40PC9vcHRp
+ b24+CjxvcHRpb24gdmFsdWU9ImUwNSI+NTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMDYiPjY8
+ L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTA3Ij43PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUw
+ OCI+ODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMDkiPjk8L29wdGlvbj4KPG9wdGlvbiB2YWx1
+ ZT0iZTEwIj4xMDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMTEiPjExPC9vcHRpb24+CjxvcHRp
+ b24gdmFsdWU9ImUxMiI+MTI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTEzIj4xMzwvb3B0aW9u
+ Pgo8b3B0aW9uIHZhbHVlPSJlMTQiPjE0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUxNSI+MTU8
+ L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTE2Ij4xNjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJl
+ MTciPjE3PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUxOCI+MTg8L29wdGlvbj4KPG9wdGlvbiB2
+ YWx1ZT0iZTE5Ij4xOTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjAiPjIwPC9vcHRpb24+Cjxv
+ cHRpb24gdmFsdWU9ImUyMSI+MjE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTIyIj4yMjwvb3B0
+ aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjMiPjIzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUyNCI+
+ MjQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTI1Ij4yNTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVl
+ PSJlMjYiPjI2PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUyNyI+Mjc8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iZTI4Ij4yODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjkiPjI5PC9vcHRpb24+
+ CjxvcHRpb24gdmFsdWU9ImUzMCI+MzA8L29wdGlvbj4KPC9zZWxlY3Q+Ci0KPC90ZD4KPHRkPgo8
+ c2VsZWN0IG5hbWU9Im55ZWx2dGlwdXMiIGNsYXNzPSJpbnB1dDIiPgo8b3B0aW9uIHZhbHVlPSIl
+ Ij5ueWVsdjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIlIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
+ ZTogdXJsKGZsYWdzL2FsbC5naWYpO2JhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7dGV4dC1h
+ bGlnbjpyaWdodDsNCmxlZnQtcGFkZGluZzoxNXB4OyI+bWluZDwvb3B0aW9uPgo8b3B0aW9uIHZh
+ bHVlPSIxIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKGZsYWdzLzEuZ2lmKTtiYWNrZ3Jv
+ dW5kLXJlcGVhdDogbm8tcmVwZWF0O3RleHQtYWxpZ246cmlnaHQ7DQpsZWZ0LXBhZGRpbmc6MTVw
+ eDsiPm1hZ3lhcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyIiBzdHlsZT0iYmFja2dyb3VuZC1p
+ bWFnZTogdXJsKGZsYWdzLzIuZ2lmKTtiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O3RleHQt
+ YWxpZ246cmlnaHQ7DQpsZWZ0LXBhZGRpbmc6MTVweDsiPmFuZ29sPC9vcHRpb24+Cjwvc2VsZWN0
+ Pgo8L3RkPgo8dGQ+CjxzcGFuIGNsYXNzPSJzdHlsZTEiPjxiPlRlbGplcyDpdmFkOjwvYj4gPGlu
+ cHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ0ZWxqZXNldmFkIiB2YWx1ZT0iZSIgc3R5bGU9ImN1
+ cnNvcjogdXJsKCdjc3MvbGluay5wbmcnKSwgZGVmYXVsdDsiIG9uY2hhbmdlPSJpZih0aGlzLmNo
+ ZWNrZWQpe3RoaXMuZm9ybS5lbGVtZW50c1snZXZhZCddLmRpc2FibGVkPXRydWU7IHRoaXMuZm9y
+ bS5lbGVtZW50c1sncmVzeiddLmRpc2FibGVkPXRydWU7fWVsc2V7dGhpcy5mb3JtLmVsZW1lbnRz
+ WydldmFkJ10uZGlzYWJsZWQ9ZmFsc2U7IHRoaXMuZm9ybS5lbGVtZW50c1sncmVzeiddLmRpc2Fi
+ bGVkPWZhbHNlfTsiPjwvc3R5bGU+CjwvdGQ+Cjx0ZD4KPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9
+ ImNzcy9sYXNzdWsuZ2lmIiBzdHlsZT0iY3Vyc29yOiB1cmwoJ2Nzcy9saW5rLnBuZycpLCBkZWZh
+ dWx0OyI+CjwvZm9ybT4KPC90cj48L3RkPjwvdGFibGU+CjwvdGQ+PC90cj48L3RhYmxlPgo8Y2Vu
+ dGVyPgo8aHIgY29sb3I9IiNjY2NjY2MiIHN0eWxlPSJib3JkZXI6IDFweCBkb3R0ZWQgI2NjY2Nj
+ YyI+CjxzY3JpcHQ+DQogIChmdW5jdGlvbihpLHMsbyxnLHIsYSxtKXtpWydHb29nbGVBbmFseXRp
+ Y3NPYmplY3QnXT1yO2lbcl09aVtyXXx8ZnVuY3Rpb24oKXsNCiAgKGlbcl0ucT1pW3JdLnF8fFtd
+ KS5wdXNoKGFyZ3VtZW50cyl9LGlbcl0ubD0xKm5ldyBEYXRlKCk7YT1zLmNyZWF0ZUVsZW1lbnQo
+ byksDQogIG09cy5nZXRFbGVtZW50c0J5VGFnTmFtZShvKVswXTthLmFzeW5jPTE7YS5zcmM9Zztt
+ LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsbSkNCiAgfSkod2luZG93LGRvY3VtZW50LCdzY3Jp
+ cHQnLCdodHRwczovL3d3dy5nb29nbGUtYW5hbHl0aWNzLmNvbS9hbmFseXRpY3MuanMnLCdnYScp
+ Ow0KDQogIGdhKCdjcmVhdGUnLCAnVUEtMzI4MDk2My0xMCcsICdhdXRvJyk7DQogIGdhKCdzZW5k
+ JywgJ3BhZ2V2aWV3Jyk7DQoNCjwvc2NyaXB0Pgo8aHIgY29sb3I9IiNjY2NjY2MiIHN0eWxlPSJi
+ b3JkZXI6IDFweCBkb3R0ZWQgI2NjY2NjYyI+CjxociB3aWR0aD0nMTUwJz4KPGNlbnRlcj4KPGZv
+ bnQgY29sb3I9ImdyYXkiIHNpemU9IjIiPjxiPjxpbWcgc3JjPSJjc3MvZWxvem8xLnBuZyIgd2lk
+ dGg9IjM1IiBib3JkZXI9IjAiPjwvYj48L2ZvbnQ+Jm5ic3A7Jm5ic3A7PGZvbnQgY29sb3I9IiMw
+ MDAwMDAiIHNpemU9IjMiPjxiPjE8L2I+Jm5ic3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5w
+ aHA/bGFwc3phbT0yIiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIjNjY2NjY2IiBzaXplPSIyIj4y
+ PC9mb250PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250Pjxh
+ IGhyZWY9InNvcm96YXRvay5waHA/bGFwc3phbT0zIiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIj
+ NjY2NjY2IiBzaXplPSIyIj4zPC9mb250PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0i
+ MiI+Jm5ic3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5waHA/bGFwc3phbT00IiBpZD0ibWVu
+ dTIiPjxmb250IGNvbG9yPSIjNjY2NjY2IiBzaXplPSIyIj40PC9mb250PjwvYT48Zm9udCBjb2xv
+ cj0iIzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5waHA/
+ bGFwc3phbT01IiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIjNjY2NjY2IiBzaXplPSIyIj41PC9m
+ b250PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250PjxhIGhy
+ ZWY9InNvcm96YXRvay5waHA/bGFwc3phbT02IiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIjNjY2
+ NjY2IiBzaXplPSIyIj42PC9mb250PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+
+ Jm5ic3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5waHA/bGFwc3phbT03IiBpZD0ibWVudTIi
+ Pjxmb250IGNvbG9yPSIjNjY2NjY2IiBzaXplPSIyIj43PC9mb250PjwvYT48Zm9udCBjb2xvcj0i
+ IzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5waHA/bGFw
+ c3phbT04IiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIjNjY2NjY2IiBzaXplPSIyIj44PC9mb250
+ PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250PjxhIGhyZWY9
+ InNvcm96YXRvay5waHA/bGFwc3phbT05IiBpZD0ibWVudTIiPjxmb250IGNvbG9yPSIjNjY2NjY2
+ IiBzaXplPSIyIj45PC9mb250PjwvYT48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+Jm5i
+ c3A7PC9mb250PjxhIGhyZWY9InNvcm96YXRvay5waHA/bGFwc3phbT0xMCIgaWQ9Im1lbnUyIj48
+ Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+MTA8L2ZvbnQ+PC9hPjxmb250IGNvbG9yPSIj
+ NjY2NjY2IiBzaXplPSIyIj4mbmJzcDs8L2ZvbnQ+Jm5ic3A7PGEgaHJlZj0ic29yb3phdG9rLnBo
+ cD9sYXBzemFtPTIiIGlkPSJtZW51MiI+PGltZyBzcmM9ImNzcy9rb3ZldGtlem8ucG5nIiB3aWR0
+ aD0iMzUiIGJvcmRlcj0iMCI+PC9mb250PjwvYT4mbmJzcDsmbmJzcDsmbmJzcDs8L2NlbnRlcj48
+ YnI+PGhyIHdpZHRoPScxNjAnPjxodG1sPgo8aGVhZD4KPHNjcmlwdCBzcmM9ImpxdWVyeS0yLjEu
+ MS5qcyI+PC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHk+CjxkaXYgaWQ9InZpdHJpbmUiPjwvZGl2Pgo8
+ c2NyaXB0Pg0KZnVuY3Rpb24gZ2V0UmFuZG9tVXJsKHVybHMpIHsNCiAgICB2YXIgbWluSW5kZXgg
+ PSAwOw0KICAgIHZhciBtYXhJbmRleCA9IHVybHMubGVuZ3RoIC0gMC41Ow0KICAgIHZhciByYW5k
+ b21JbmRleCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXhJbmRleCAtIG1pbkluZGV4
+ KSkgKyBtaW5JbmRleDsNCiAgICByZXR1cm4gdXJsc1tyYW5kb21JbmRleF07DQp9DQp2YXIgdXJs
+ cyA9IFsNCiAgICAiIiwNCiAgICAiaHR0cHM6Ly9wYy1tYXguaHUvdGVybWVrLWtlcmVzZXMvP3Nl
+ YXJjaD0rKysiXTsNCg0KdmFyIHJhbmRvbVNlbGVjdGVkVXJsID0gZ2V0UmFuZG9tVXJsKHVybHMp
+ Ow0KDQokKCIjdml0cmluZSIpLmh0bWwoDQoiPGlmcmFtZSBjbGFzcz0ncmFuZG9tLWlmcmFtZScg
+ c3JjPSciICsgcmFuZG9tU2VsZWN0ZWRVcmwgKyAiJyB3aWR0aD0nMCcgaGVpZ2h0PScwJyBmcmFt
+ ZWJvcmRlcj0nMCcgc2Nyb2xsaW5nPSdubycgc2VhbWxlc3M9J3NlYW1sZXNzJz48L2lmcmFtZT4i
+ KTsNCjwvc2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD48dGl0bGU+QW1lcmljYW4gSG9ycm9yIFN0b3J5
+ IGZlbGlyYXQ8L3RpdGxlPgo8cD48Yj4KPGRpdiBjbGFzcz0ia2VyZXNvIiBhbGlnbj0iY2VudGVy
+ Ij48Zm9udCBjb2xvcj0jMDAwMDAwPjxjZW50ZXI+VGFsJiMyMjU7bGF0b2sgZXJyZSBhIGtpZmVq
+ ZXomIzIzMztzcmU6ICI8L2ZvbnQ+PGZvbnQgY29sb3I9ImJsdWUiIHNpemU9IjIiPiZuYnNwO0Ft
+ ZXJpY2FuIEhvcnJvciBTdG9yeSZuYnNwOzEwMDE8L2ZvbnQ+PGZvbnQgY29sb3I9IzAwMDAwMD4i
+ PC9mb250PjwvY2VudGVyPjwvZGl2PjwvYj48L3A+Cjx0YWJsZSB3aWR0aD0iOTMwIiBib3JkZXI9
+ IjAiIGJnY29sb3I9IiNkZGRkZGQiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgdmFs
+ aWduPSJ0b3AiPgo8dHI+Cjx0ZCB2YWxpZ249dG9wPgo8dGFibGUgd2lkdGg9IjEzOCIgYm9yZGVy
+ PSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjgiIGNsYXNzPSJzYW1wbGUiPgo8dHIg
+ Ymdjb2xvcj0iI2NjY2NjYyI+Cjx0ZCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTIwIiBiYWNrZ3Jv
+ dW5kPSJjc3Mvb2xkYWx0b3AxLnBuZyI+PGI+T2xkYWxhauFubPM8L2I+PC90ZD4KPC90cj4KPHRy
+ IGJnY29sb3I9IiNlOWU5ZTkiPgo8dGQ+CjxjZW50ZXI+PGEgaHJlZj0iaHR0cHM6Ly96ZW5lLmhv
+ c3N6dXB1c2thc3ViLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJodHRwczovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9jc3MvemVuZXN6aWdldC5naWYiIHdpZHRoPSIxMjAiIGJvcmRlcj0iMCI+
+ PC9hPjwvY2VudGVyPgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2NjY2NjYyI+Cjx0ZCBhbGln
+ bj0iY2VudGVyIiB3aWR0aD0iMTIwIiBiYWNrZ3JvdW5kPSJjc3Mvb2xkYWx0b3AxLnBuZyI+PGI+
+ VHdpdHRlcjwvYj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2U5ZTllOSI+Cjx0ZD4KPGNlbnRl
+ cj4KPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9ob3NzenVwdXNrYXN1YnMiIHRhcmdldD0i
+ X2JsYW5rIj48aW1nIHNyYz0iY3NzL3R3aXR0ZXIyLnBuZyIgYm9yZGVyPSIwIiB3aWR0aD0iMTEw
+ Ij48L2E+CjwvY2VudGVyPgo8L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2NjY2NjYyI+PHRkIGFs
+ aWduPSJjZW50ZXIiIHdpZHRoPSIxMjAiIHN0eWxlPSdiYWNrZ3JvdW5kLWltYWdlOnVybChjc3Mv
+ b2xkYWx0b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Jz48Yj5Gb3JkJmlh
+ Y3V0ZTt0Jm9hY3V0ZTtpIGFrdGl2aXQmYWFjdXRlO3M6PC9iPjwvdGQ+PC90cj4KPHRyIGJnY29s
+ b3I9IiNlOWU5ZTkiPjx0ZCBhbGlnbj0ibGVmdCI+CjxpbWcgc3JjPWNzcy9hcmFueS5wbmcgd2lk
+ dGg9MTU+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5Bbm9ueW11czwvYj48Zm9udCBjb2xv
+ cj0jNjY2NjY2PigxMDE4KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEyMFwiPjxp
+ bWcgc3JjPWNzcy9lenVzdC5wbmcgd2lkdGg9MTU+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2
+ Nj5jYXNzb25lPC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDM3Myk8L2ZvbnQ+PGhyIGNvbG9yPSNj
+ OWM5Yzkgd2lkdGg9XCIxMjBcIj48aW1nIHNyYz1jc3MvYnJvbnoucG5nIHdpZHRoPTE1PiZuYnNw
+ OzxiPjxmb250IGNvbG9yPSM2NjY2NjY+U3ppZ29ueTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2Pigz
+ NTEpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPVwiMTIwXCI+PGltZyBzcmM9Y3NzL3Vz
+ ZXIucG5nIHdpZHRoPTEyPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+bWFnaTwvYj48Zm9u
+ dCBjb2xvcj0jNjY2NjY2PigzMTkpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPVwiMTIw
+ XCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdpZHRoPTEyPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2
+ NjY2NjY+Q2ljTWF4ICYgTWFac29sYTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigzMTUpPC9mb250
+ PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPVwiMTIwXCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdp
+ ZHRoPTEyPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+Z3Jla2E8L2I+PGZvbnQgY29sb3I9
+ IzY2NjY2Nj4oMzA3KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEyMFwiPjxpbWcg
+ c3JjPWNzcy91c2VyLnBuZyB3aWR0aD0xMj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PlBp
+ bG90PC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDI4Nik8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkg
+ d2lkdGg9XCIxMjBcIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9MTI+Jm5ic3A7PGI+PGZv
+ bnQgY29sb3I9IzY2NjY2Nj5TYW5kZXJzPC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDI3MCk8L2Zv
+ bnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9XCIxMjBcIj48aW1nIHNyYz1jc3MvdXNlci5wbmcg
+ d2lkdGg9MTI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5IdW5CYXVlcjwvYj48Zm9udCBj
+ b2xvcj0jNjY2NjY2PigyMzgpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPVwiMTIwXCI+
+ PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdpZHRoPTEyPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2
+ NjY+Q2FpbjwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigyMzIpPC9mb250PjxociBjb2xvcj0jYzlj
+ OWM5IHdpZHRoPVwiMTIwXCI+IDwvdGQ+PC90cj4KPHRyIGJnY29sb3I9IiNjY2NjY2MiPgo8dGQg
+ YWxpZ249ImNlbnRlciIgd2lkdGg9IjEyMCIgc3R5bGU9J2JhY2tncm91bmQtaW1hZ2U6dXJsKGNz
+ cy9vbGRhbHRvcDEucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsnPjxiPkxlZ2pv
+ YmIgZmVsdCYjMjQ2O2x0Jm90aWxkZTtrOjwvYj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2U5
+ ZTllOSI+Cjx0ZCBhbGlnbj0ibGVmdCI+CjxpbWcgc3JjPWNzcy9hcmFueS5wbmcgd2lkdGg9IjE1
+ Ij4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PkZyZWVkb208L2I+PGZvbnQgY29sb3I9IzY2
+ NjY2Nj4oMjg4NjQpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3Jj
+ PWNzcy9lenVzdC5wbmcgd2lkdGg9IjE1Ij4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PkNz
+ 6WNzaTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigxMTU1OSk8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5
+ Yzkgd2lkdGg9IjEwMCI+PGltZyBzcmM9Y3NzL2Jyb256LnBuZyB3aWR0aD0iMTUiPiZuYnNwOzxi
+ Pjxmb250IGNvbG9yPSM2NjY2NjY+UGlsb3Q8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oNzU5Myk8
+ L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9IjEwMCI+PGltZyBzcmM9Y3NzL3VzZXIucG5n
+ IHdpZHRoPSIxMiI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5hbm9ueW11czwvYj48Zm9u
+ dCBjb2xvcj0jNjY2NjY2Pig2ODQ0KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAw
+ Ij48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0j
+ NjY2NjY2PlN6YWtpPC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDI2NDApPC9mb250PjxociBjb2xv
+ cj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0iMTIiPiZu
+ YnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+QW5vbnltb3VzPC9iPjxmb250IGNvbG9yPSM2NjY2
+ NjY+KDI0MjMpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNz
+ cy91c2VyLnBuZyB3aWR0aD0iMTIiPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+U3ppZ29u
+ eTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigxMDEzKTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3
+ aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48Zm9u
+ dCBjb2xvcj0jNjY2NjY2PmNhc3NvbmU8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oOTEyKTwvZm9u
+ dD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lk
+ dGg9IjEyIj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PmVzenRpY3NpbGxhZzwvYj48Zm9u
+ dCBjb2xvcj0jNjY2NjY2Pig1NjApPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPSIxMDAi
+ PjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0iMTIiPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2
+ NjY2NjY+THVuYVNvbDwvYj48Zm9udCBjb2xvcj0jNjY2NjY2Pig0OTQpPC9mb250PjxociBjb2xv
+ cj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0iMTIiPiZu
+ YnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+Q2FzaDwvYj48Zm9udCBjb2xvcj0jNjY2NjY2Pig0
+ NzQpPC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy91c2Vy
+ LnBuZyB3aWR0aD0iMTIiPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+Q2ljTWF4ICYgTWFa
+ c29sYTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2Pig0NDgpPC9mb250PjxociBjb2xvcj0jYzljOWM5
+ IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0iMTIiPiZuYnNwOzxiPjxm
+ b250IGNvbG9yPSM2NjY2NjY+U3plcHk8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oNDQ3KTwvZm9u
+ dD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAwIj4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9
+ IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEyMCIgc3R5bGU9J2JhY2tncm91
+ bmQtaW1hZ2U6dXJsKGNzcy9vbGRhbHRvcDEucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl
+ cGVhdDsnPjxiPk1haSA1IGxlZ24mZWFjdXRlO3pldHRlYmI6PC9iPjwvdGQ+CjwvdHI+Cjx0ciBi
+ Z2NvbG9yPSIjZTllOWU5Ij4KPHRkPgo8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5n
+ PSIwIiBib3JkZXI9IjAiIGJnY29sb3I9IiM4RjlBOUUiIHZhbGlnbj0idG9wIiB3aWR0aD0iMTAw
+ JSI+PHRyIGJnY29sb3I9IiNFOUU5RTkiPjx0ZCBhbGlnbj0ibGVmdCI+PGltZyBzcmM9J2Nzcy9r
+ aXNrZXAvbWFydmVsc3RoZXB1bmlzaGVyLnBuZycgd2lkdGg9JzEwMCc+PGJyPjxiPjxhIGhyZWY9
+ ZG93bmxvYWQucGhwP2ZpbGU9MDA4NTE5NC56aXAgaWQ9bWVudXRvcGxldG9sdD48Zm9udCBjb2xv
+ cj0jNjY2NjY2Pk1hcnZlbCdzIFRoZSBQdW5pc2hlciBzMDFlMDkgKHdlYnJpcC1yYXJiZywgd2Vi
+ LXN0cmlmZSwgd2ViLWFmZywgd2ViLXJtdGVhbSwgbmYgd2VicmlwLW50Yiwgd2VicmlwLXBzYSwg
+ d2VicmlwLXJtdGVhbSwgbmYgd2ViIGRsLXJtdGVhbSwgd2ViIGRsLXJtdGVhbSk8L2ZvbnQ+PC9i
+ PjwvYT48aHIgY29sb3I9I2NjY2NjYz48YnI+PGltZyBzcmM9J2Nzcy9raXNrZXAvZGFyay5wbmcn
+ IHdpZHRoPScxMDAnPjxicj48Yj48YSBocmVmPWRvd25sb2FkLnBocD9maWxlPTAwODUxOTUuemlw
+ IGlkPW1lbnV0b3BsZXRvbHQ+PGZvbnQgY29sb3I9IzY2NjY2Nj5EYXJrIHMwMWUxMCAod2Vicmlw
+ LXJhcmJnLCB3ZWJyaXAtc3RyaWZlLCB3ZWJyaXAtYWZnLCB3ZWJyaXAtcm10ZWFtLCBpbnRlcm5h
+ bCB3ZWItc3RyaWZlLCBpbnRlcm5hbCB3ZWItcm10ZWFtKTwvZm9udD48L2I+PC9hPjxociBjb2xv
+ cj0jY2NjY2NjPjxicj48aW1nIHNyYz0nY3NzL2tpc2tlcC9zaGFtZWxlc3N1cy5wbmcnIHdpZHRo
+ PScxMDAnPjxicj48Yj48YSBocmVmPWRvd25sb2FkLnBocD9maWxlPTAwODUxNzkuemlwIGlkPW1l
+ bnV0b3BsZXRvbHQ+PGZvbnQgY29sb3I9IzY2NjY2Nj5TaGFtZWxlc3MgKFVTKSBzMDhlMDYgKHdl
+ YnJpcC1yYXJiZywgd2ViLXN0cmlmZSwgd2ViLWFmZywgd2ViLWNvbnZveSwgd2ViLXJtdGVhbSwg
+ YW16biB3ZWJyaXAtbnRiLCBhbXpuIHdlYiBkbC1udGIsIHdlYiBkbC1ybXRlYW0pPC9mb250Pjwv
+ Yj48L2E+PGhyIGNvbG9yPSNjY2NjY2M+PGJyPjxpbWcgc3JjPSdjc3Mva2lza2VwL25jaXMucG5n
+ JyB3aWR0aD0nMTAwJz48YnI+PGI+PGEgaHJlZj1kb3dubG9hZC5waHA/ZmlsZT0wMDg1MTk2Lnpp
+ cCBpZD1tZW51dG9wbGV0b2x0Pjxmb250IGNvbG9yPSM2NjY2NjY+TkNJUyBzMTVlMTAgKGhkdHYt
+ bG9sLCBoZHR2LWFmZywgaGR0di1ybXgsIDcyMHAtZGltZW5zaW9uLCA3MjBwLXBzYSwgNzIwcC1y
+ bXRlYW0sIDEwODBwLWRpbWVuc2lvbiwgMTA4MHAtcm10ZWFtKTwvZm9udD48L2I+PC9hPjxociBj
+ b2xvcj0jY2NjY2NjPjxicj48aW1nIHNyYz0nY3NzL2tpc2tlcC9oYXdhaWlmaXZlMC5wbmcnIHdp
+ ZHRoPScxMDAnPjxicj48Yj48YSBocmVmPWRvd25sb2FkLnBocD9maWxlPTAwODUyMDEuemlwIGlk
+ PW1lbnV0b3BsZXRvbHQ+PGZvbnQgY29sb3I9IzY2NjY2Nj5IYXdhaWkgRml2ZS0wIHMwOGUwNyAo
+ aGR0di1sb2wsIGhkdHYtYWZnLCBoZHR2LXJteCwgNzIwcC1kaW1lbnNpb24sIDcyMHAtcHNhLCA3
+ MjBwLXJtdGVhbSwgMTA4MHAtZGltZW5zaW9uLCAxMDgwcC1ybXRlYW0pPC9mb250PjwvYj48L2E+
+ PGhyIGNvbG9yPSNjY2NjY2M+PGJyPjwvdGQ+PC90cj48L3RhYmxlPiA8L3RkPgo8L3RyPgo8dHIg
+ Ymdjb2xvcj0iI2NjY2NjYyI+Cjx0ZCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTIwIiBzdHlsZT0n
+ YmFja2dyb3VuZC1pbWFnZTp1cmwoY3NzL29sZGFsdG9wMS5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVh
+ dDogbm8tcmVwZWF0Oyc+PGI+U29yb3phdGFqJmFhY3V0ZTtubCZvYWN1dGU7OjwvYj48L3RkPgo8
+ L3RyPgo8dHIgYmdjb2xvcj0iI2U5ZTllOSI+Cjx0ZD4gPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9
+ IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEyMCIgc3R5bGU9J2JhY2tncm91
+ bmQtaW1hZ2U6dXJsKGNzcy9vbGRhbHRvcDEucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJl
+ cGVhdDsnPjxiPkgmaWFjdXRlO3Jlazo8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNlOWU5
+ ZTkiPgo8dGQ+IDwvdGQ+CjwvdHI+Cjx0cj4KPHRkIHZhbGlnbj10b3Agc3R5bGU9J2JhY2tncm91
+ bmQtY29sb3I6ICNkZGRkZGQ7Jz4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC90ZD4KPHRkIHZhbGln
+ bj0idG9wIj4KPGRpdiBpZD0iZmItcm9vdCI+PC9kaXY+CjxzY3JpcHQ+KGZ1bmN0aW9uKGQsIHMs
+ IGlkKSB7DQogIHZhciBqcywgZmpzID0gZC5nZXRFbGVtZW50c0J5VGFnTmFtZShzKVswXTsNCiAg
+ aWYgKGQuZ2V0RWxlbWVudEJ5SWQoaWQpKSByZXR1cm47DQogIGpzID0gZC5jcmVhdGVFbGVtZW50
+ KHMpOyBqcy5pZCA9IGlkOw0KICBqcy5zcmMgPSAiLy9jb25uZWN0LmZhY2Vib29rLm5ldC9odV9I
+ VS9zZGsuanMjeGZibWw9MSZ2ZXJzaW9uPXYyLjAiOw0KICBmanMucGFyZW50Tm9kZS5pbnNlcnRC
+ ZWZvcmUoanMsIGZqcyk7DQp9KGRvY3VtZW50LCAnc2NyaXB0JywgJ2ZhY2Vib29rLWpzc2RrJykp
+ Ozwvc2NyaXB0Pgo8Y2VudGVyPjxpbWcgc3JjPSdodHRwczovL3d3dy5ob3NzenVwdXNrYXN1Yi5j
+ b20vY3NzL2ZlbHNvc29yLmpwZycgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAnIGJvcmRlcj0nMCc+
+ PC9jZW50ZXI+CjxjZW50ZXI+PGlmcmFtZSBzcmM9Imh0dHBzOi8vd3d3LndlYm1vb3ZpZXMuY29t
+ L2luZGV4LnBocD9tZW51PWhwX3NtYXJ0YmFyIiB3aWR0aD0iNjUwIiBoZWlnaHQ9IjEzMCIgZnJh
+ bWVib3JkZXI9IjAiIHNjcm9sbGluZz0ibm8iPjwvaWZyYW1lPjwvY2VudGVyPgo8Y2VudGVyPjxp
+ bWcgc3JjPSdodHRwczovL3d3dy5ob3NzenVwdXNrYXN1Yi5jb20vY3NzL2ZlbHNvc29yLmpwZycg
+ d2lkdGg9JzEwMCUnIGhlaWdodD0nMTAnIGJvcmRlcj0nMCc+PC9jZW50ZXI+CjxhIGhyZWY9Imhp
+ cmRldGVzLnBocCI+PGltZyBzcmM9ImNzcy9oaXJkZXNzNjYwLnBuZyIgYm9yZGVyPSIwIj48L2E+
+ Cgo8Y2VudGVyPjxpbWcgc3JjPSdodHRwOi8vd3d3Lmhvc3N6dXB1c2thc3ViLmNvbS9jc3MvZmVs
+ c29zb3IuanBnJyB3aWR0aD0nMTAwJScgaGVpZ2h0PScxMCcgYm9yZGVyPScwJz48L2NlbnRlcj48
+ Y2VudGVyPjxmb250IHNpemU9JzMnPjxiPi09IExlZ2ZyaXNzZWJiIHNvcm96YXQgZmVsaXJhdG9r
+ ID0tPC9iPjwvZm9udD48L2NlbnRlcj4KPHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjAiIGNl
+ bGxzcGFjaW5nPSIyIiBjZWxscGFkZGluZz0iNyI+Cjx0ciBiZ2NvbG9yPSIjY2NjY2NjIj4KPHRk
+ IGFsaWduPSJsZWZ0Ij48aW1nIHNyYz0iY3NzL2xvZ28ucG5nIj48L3RkPgo8dGQgYWxpZ249Imxl
+ ZnQiIHdpZHRoPScxMDAlJz48aW1nIHNyYz0iY3NzL3NvcmNpbTIucG5nIj48L3RkPgo8dGQgYWxp
+ Z249ImNlbnRlciIgd2lkdGg9JzEwMCc+PGNlbnRlcj48aW1nIHNyYz0iY3NzL255ZWx2LnBuZyI+
+ PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRoPScxMDAnPjxjZW50ZXI+PGltZyBzcmM9ImNz
+ cy9mb3JkaXRvLnBuZyI+PC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3JjPSJjc3MvZGF0
+ dW0ucG5nIj48L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9ImNzcy9pbmZvMi5wbmci
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48L3RkPjwvdHI+PC90ZD48L3RyPgo8dHIgYmdjb2xv
+ cj0iI0U5RTlFOSIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwo
+ Y3NzL292ZXIuanBnKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0n
+ dXJsKGNzcy9vdmVyMi5qcGcpJzsiPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0ic29yb3ph
+ dG9rLnBocD9zZXJpYWw9YW1lcmljYW5ob3Jyb3JzdG9yeSI+PGltZyBzcmM9ImNzcy9ib3JpdG8v
+ YW1lcmljYW5ob3Jyb3JzdG9yeS5wbmciIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC90ZD4K
+ PHRkIGFsaWduPSdsZWZ0Jz48YSBocmVmPSdqYXZhc2NyaXB0OmNvbGxhcHNlVHIoImNvbGxhcHNl
+ X3Jvd18xMzEzNTQiKTsgYWpheF9wYXJzZXIoMTMxMzU0LCJjb2xsYXBzZV9jb2xfMTMxMzU0Iik7
+ JyBpZD0ibWVudSI+PGI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMxMGUwMTwvYj48L2E+PGJyPkFt
+ ZXJpY2FuIEhvcnJvciBTdG9yeSBzMTBlMDEgKGFtem4gd2VicmlwLW50YiwgYW16biB3ZWIgZGwt
+ bnRiKQo8YnI+PGJyPjxicj4KPGJyPgo8L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGltZyBzcmM9
+ J2ZsYWdzLzEuZ2lmJyBhbHQ9JycgYm9yZGVyPScwJyAvPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVy
+ Jz5LYWk8L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+MjAyMS0wOS0wMTwvdGQ+Cjx0ZCBhbGlnbj0n
+ bGVmdCcgd2lkdGg9IjgwIj4KPHRhYmxlPjx0cj48YSBocmVmPSdodHRwOi8vaW5mby5ob3NzenVw
+ dXNrYXN1Yi5jb20va2VyZXNlcz9xPUFtZXJpY2FuIEhvcnJvciBTdG9yeScgdGFyZ2V0PSdfYmxh
+ bmsnPjxpbWcgc3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOjcwcHg7ICBtYXJnaW4tcmlnaHQ6MHB4
+ IiBib3JkZXI9IjAiIGFsdD0iaW5mby5ob3NzenVwdXNrYXN1Yi5jb20gLSBmaWxtZWssIHNvcm96
+ YXRvayBhZGF0YsOhemlzYSIgc3JjPSJjc3MvaW5mb29sZGFsLnBuZyI+PC9hPjxicj48YnI+PGJy
+ PjxhIGhyZWY9J2h0dHA6Ly93ZWJtb292aWVzLmNvbS9zaG93L0FtZXJpY2FuLUhvcnJvci1TdG9y
+ eScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3JjPSdjc3MvdmlkZW93ZWIucG5nJyB3aWR0aD0nNzAn
+ IGhlaWdodD0nMjgnPjwvYT48YnI+PGJyPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNv
+ bS9zaGFyZXIvc2hhcmVyLnBocD91PWh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vYWRhdGxhcC5w
+ aHA/ZGF0YV9pZD0xMzEzNTQiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2ZzaGFyZS5w
+ bmciIHdpZHRoPSI2OCIgYm9yZGVyPSIwIj48L2E+CjwvdHI+CjwvdGFibGU+PC90ZD4KPHRkIGFs
+ aWduPSdjZW50ZXInPjxhIGhyZWY9Imh0dHBzOi8vYWRmLmx5LzI2NjMyODgvaHR0cDovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/ZmlsZT0wMTI0MzM2LnppcCIgdGFyZ2V0PSJfYmxh
+ bmsiPjxpbWcgc3JjPSJjc3MvZG93bmxvYWRhZGZseTIucG5nIiBpZD0iY29sbGFwc2VfcGljXzEz
+ MTM1NCIgYm9yZGVyPSIwIj48L2E+PGJyPjxicj48YSBocmVmPSdodHRwOi8vaG9zc3p1cHVza2Fz
+ dWIuY29tL2Rvd25sb2FkLnBocD9maWxlPTAxMjQzMzYuemlwJyB0YXJnZXQ9Il9wYXJlbnQiPjxp
+ bWcgc3JjPSJjc3MvZG93bmxvYWQuZ2lmIiBpZD0iY29sbGFwc2VfcGljXzEzMTM1NCIgYm9yZGVy
+ PSIwIj48L2E+PC90ZD4KPC90cj4KPHRyIHN0eWxlPSdkaXNwbGF5OiBub25lOycgYmdjb2xvcj0i
+ I0U2RkZDNiIgaWQ9ImNvbGxhcHNlX3Jvd18xMzEzNTQiPgo8dGQgY29sc3Bhbj0iNyIgYWxpZ249
+ J2NlbnRlcicgaWQ9ImNvbGxhcHNlX2NvbF8xMzEzNTQiPjxpbWcgc3JjPSJjc3MvbG9hZGluZy5n
+ aWYiPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRTlFOUU5IiBvbm1vdXNlb3Zlcj0idGhpcy5z
+ dHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlci5qcGcpJzsiIG9ubW91c2VvdXQ9InRo
+ aXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwoY3NzL292ZXIyLmpwZyknOyI+Cjx0ZCBhbGln
+ bj0nY2VudGVyJz48YSBocmVmPSJzb3JvemF0b2sucGhwP3NlcmlhbD1hbWVyaWNhbmhvcnJvcnN0
+ b3J5Ij48aW1nIHNyYz0iY3NzL2Jvcml0by9hbWVyaWNhbmhvcnJvcnN0b3J5LnBuZyIgd2lkdGg9
+ IjgwIiBib3JkZXI9IjAiPjwvYT48L3RkPgo8dGQgYWxpZ249J2xlZnQnPjxhIGhyZWY9J2phdmFz
+ Y3JpcHQ6Y29sbGFwc2VUcigiY29sbGFwc2Vfcm93XzEzMTM1MyIpOyBhamF4X3BhcnNlcigxMzEz
+ NTMsImNvbGxhcHNlX2NvbF8xMzEzNTMiKTsnIGlkPSJtZW51Ij48Yj5BbWVyaWNhbiBIb3Jyb3Ig
+ U3RvcnkgczEwZTAxPC9iPjwvYT48YnI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMxMGUwMSAoYW16
+ biB3ZWJyaXAtZmx1eCwgYW16biB3ZWIgZGwtZmx1eCwgd2ViLWdsaGYsIHdlYi1nZ2V6KQo8YnI+
+ PGJyPjxicj4KPGJyPgo8L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGltZyBzcmM9J2ZsYWdzLzEu
+ Z2lmJyBhbHQ9JycgYm9yZGVyPScwJyAvPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz5LYWk8L3Rk
+ Pgo8dGQgYWxpZ249J2NlbnRlcic+MjAyMS0wOS0wMTwvdGQ+Cjx0ZCBhbGlnbj0nbGVmdCcgd2lk
+ dGg9IjgwIj4KPHRhYmxlPjx0cj48YSBocmVmPSdodHRwOi8vaW5mby5ob3NzenVwdXNrYXN1Yi5j
+ b20va2VyZXNlcz9xPUFtZXJpY2FuIEhvcnJvciBTdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcg
+ c3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOjcwcHg7ICBtYXJnaW4tcmlnaHQ6MHB4IiBib3JkZXI9
+ IjAiIGFsdD0iaW5mby5ob3NzenVwdXNrYXN1Yi5jb20gLSBmaWxtZWssIHNvcm96YXRvayBhZGF0
+ YsOhemlzYSIgc3JjPSJjc3MvaW5mb29sZGFsLnBuZyI+PC9hPjxicj48YnI+PGJyPjxhIGhyZWY9
+ J2h0dHA6Ly93ZWJtb292aWVzLmNvbS9zaG93L0FtZXJpY2FuLUhvcnJvci1TdG9yeScgdGFyZ2V0
+ PSdfYmxhbmsnPjxpbWcgc3JjPSdjc3MvdmlkZW93ZWIucG5nJyB3aWR0aD0nNzAnIGhlaWdodD0n
+ MjgnPjwvYT48YnI+PGJyPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIv
+ c2hhcmVyLnBocD91PWh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vYWRhdGxhcC5waHA/ZGF0YV9p
+ ZD0xMzEzNTMiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2ZzaGFyZS5wbmciIHdpZHRo
+ PSI2OCIgYm9yZGVyPSIwIj48L2E+CjwvdHI+CjwvdGFibGU+PC90ZD4KPHRkIGFsaWduPSdjZW50
+ ZXInPjxhIGhyZWY9Imh0dHBzOi8vYWRmLmx5LzI2NjMyODgvaHR0cDovL2hvc3N6dXB1c2thc3Vi
+ LmNvbS9kb3dubG9hZC5waHA/ZmlsZT0wMTI0MzM1LnppcCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcg
+ c3JjPSJjc3MvZG93bmxvYWRhZGZseTIucG5nIiBpZD0iY29sbGFwc2VfcGljXzEzMTM1MyIgYm9y
+ ZGVyPSIwIj48L2E+PGJyPjxicj48YSBocmVmPSdodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2Rv
+ d25sb2FkLnBocD9maWxlPTAxMjQzMzUuemlwJyB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJj
+ c3MvZG93bmxvYWQuZ2lmIiBpZD0iY29sbGFwc2VfcGljXzEzMTM1MyIgYm9yZGVyPSIwIj48L2E+
+ PC90ZD4KPC90cj4KPHRyIHN0eWxlPSdkaXNwbGF5OiBub25lOycgYmdjb2xvcj0iI0U2RkZDNiIg
+ aWQ9ImNvbGxhcHNlX3Jvd18xMzEzNTMiPgo8dGQgY29sc3Bhbj0iNyIgYWxpZ249J2NlbnRlcicg
+ aWQ9ImNvbGxhcHNlX2NvbF8xMzEzNTMiPjxpbWcgc3JjPSJjc3MvbG9hZGluZy5naWYiPjwvdGQ+
+ CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRTlFOUU5IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNr
+ Z3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlci5qcGcpJzsiIG9ubW91c2VvdXQ9InRoaXMuc3R5bGUu
+ YmFja2dyb3VuZEltYWdlPSd1cmwoY3NzL292ZXIyLmpwZyknOyI+Cjx0ZCBhbGlnbj0nY2VudGVy
+ Jz48YSBocmVmPSJzb3JvemF0b2sucGhwP3NlcmlhbD1hbWVyaWNhbmhvcnJvcnN0b3J5Ij48aW1n
+ IHNyYz0iY3NzL2Jvcml0by9hbWVyaWNhbmhvcnJvcnN0b3J5LnBuZyIgd2lkdGg9IjgwIiBib3Jk
+ ZXI9IjAiPjwvYT48L3RkPgo8dGQgYWxpZ249J2xlZnQnPjxhIGhyZWY9J2phdmFzY3JpcHQ6Y29s
+ bGFwc2VUcigiY29sbGFwc2Vfcm93XzEzMTM1MSIpOyBhamF4X3BhcnNlcigxMzEzNTEsImNvbGxh
+ cHNlX2NvbF8xMzEzNTEiKTsnIGlkPSJtZW51Ij48Yj5BbWVyaWNhbiBIb3Jyb3IgU3RvcnkgczEw
+ ZTAxPC9iPjwvYT48YnI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMxMGUwMSAoaGR0di1jcmltc29u
+ LCBoZHR2LWFmZywgNzIwcC1jcmltc29uKQo8YnI+PGJyPjxicj4KPGJyPgo8L3RkPgo8dGQgYWxp
+ Z249J2NlbnRlcic+PGltZyBzcmM9J2ZsYWdzLzEuZ2lmJyBhbHQ9JycgYm9yZGVyPScwJyAvPjwv
+ dGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz5LYWk8L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+MjAyMS0w
+ OC0zMTwvdGQ+Cjx0ZCBhbGlnbj0nbGVmdCcgd2lkdGg9IjgwIj4KPHRhYmxlPjx0cj48YSBocmVm
+ PSdodHRwOi8vaW5mby5ob3NzenVwdXNrYXN1Yi5jb20va2VyZXNlcz9xPUFtZXJpY2FuIEhvcnJv
+ ciBTdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9ImZsb2F0OmxlZnQ7IHdpZHRoOjcw
+ cHg7ICBtYXJnaW4tcmlnaHQ6MHB4IiBib3JkZXI9IjAiIGFsdD0iaW5mby5ob3NzenVwdXNrYXN1
+ Yi5jb20gLSBmaWxtZWssIHNvcm96YXRvayBhZGF0YsOhemlzYSIgc3JjPSJjc3MvaW5mb29sZGFs
+ LnBuZyI+PC9hPjxicj48YnI+PGJyPjxhIGhyZWY9J2h0dHA6Ly93ZWJtb292aWVzLmNvbS9zaG93
+ L0FtZXJpY2FuLUhvcnJvci1TdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3JjPSdjc3Mvdmlk
+ ZW93ZWIucG5nJyB3aWR0aD0nNzAnIGhlaWdodD0nMjgnPjwvYT48YnI+PGJyPjxhIGhyZWY9Imh0
+ dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91PWh0dHA6Ly9ob3NzenVw
+ dXNrYXN1Yi5jb20vYWRhdGxhcC5waHA/ZGF0YV9pZD0xMzEzNTEiIHRhcmdldD0iX2JsYW5rIj48
+ aW1nIHNyYz0iY3NzL2ZzaGFyZS5wbmciIHdpZHRoPSI2OCIgYm9yZGVyPSIwIj48L2E+CjwvdHI+
+ CjwvdGFibGU+PC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhyZWY9Imh0dHBzOi8vYWRmLmx5
+ LzI2NjMyODgvaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/ZmlsZT0wMTI0
+ MzMzLnppcCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3MvZG93bmxvYWRhZGZseTIucG5n
+ IiBpZD0iY29sbGFwc2VfcGljXzEzMTM1MSIgYm9yZGVyPSIwIj48L2E+PGJyPjxicj48YSBocmVm
+ PSdodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2Rvd25sb2FkLnBocD9maWxlPTAxMjQzMzMuemlw
+ JyB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJjc3MvZG93bmxvYWQuZ2lmIiBpZD0iY29sbGFw
+ c2VfcGljXzEzMTM1MSIgYm9yZGVyPSIwIj48L2E+PC90ZD4KPC90cj4KPHRyIHN0eWxlPSdkaXNw
+ bGF5OiBub25lOycgYmdjb2xvcj0iI0U2RkZDNiIgaWQ9ImNvbGxhcHNlX3Jvd18xMzEzNTEiPgo8
+ dGQgY29sc3Bhbj0iNyIgYWxpZ249J2NlbnRlcicgaWQ9ImNvbGxhcHNlX2NvbF8xMzEzNTEiPjxp
+ bWcgc3JjPSJjc3MvbG9hZGluZy5naWYiPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjRTlFOUU5
+ IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlci5q
+ cGcpJzsiIG9ubW91c2VvdXQ9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwoY3NzL292
+ ZXIyLmpwZyknOyI+Cjx0ZCBhbGlnbj0nY2VudGVyJz48YSBocmVmPSJzb3JvemF0b2sucGhwP3Nl
+ cmlhbD1hbWVyaWNhbmhvcnJvcnN0b3J5Ij48aW1nIHNyYz0iY3NzL2Jvcml0by9hbWVyaWNhbmhv
+ cnJvcnN0b3J5LnBuZyIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L3RkPgo8dGQgYWxpZ249
+ J2xlZnQnPjxhIGhyZWY9J2phdmFzY3JpcHQ6Y29sbGFwc2VUcigiY29sbGFwc2Vfcm93XzEzMTI3
+ MCIpOyBhamF4X3BhcnNlcigxMzEyNzAsImNvbGxhcHNlX2NvbF8xMzEyNzAiKTsnIGlkPSJtZW51
+ Ij48Yj5BbWVyaWNhbiBIb3Jyb3IgU3RvcnkgczEwZTAxPC9iPjwvYT48YnI+QW1lcmljYW4gSG9y
+ cm9yIFN0b3J5IHMxMGUwMSAoaGR0di1jcmltc29uLCBoZHR2LWFmZywgaGR0di1ybXgsIDcyMHAt
+ Y3JpbXNvbiwgNzIwcC1wc2EsIDcyMHAtcm10ZWFtKQo8YnI+PGJyPjxicj4KPGJyPgo8L3RkPgo8
+ dGQgYWxpZ249J2NlbnRlcic+PGltZyBzcmM9J2ZsYWdzLzIuZ2lmJyBhbHQ9JycgYm9yZGVyPScw
+ JyAvPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz5GcmVlZG9tPC90ZD4KPHRkIGFsaWduPSdjZW50
+ ZXInPjIwMjEtMDgtMjY8L3RkPgo8dGQgYWxpZ249J2xlZnQnIHdpZHRoPSI4MCI+Cjx0YWJsZT48
+ dHI+PGEgaHJlZj0naHR0cDovL2luZm8uaG9zc3p1cHVza2FzdWIuY29tL2tlcmVzZXM/cT1BbWVy
+ aWNhbiBIb3Jyb3IgU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSJmbG9hdDpsZWZ0
+ OyB3aWR0aDo3MHB4OyAgbWFyZ2luLXJpZ2h0OjBweCIgYm9yZGVyPSIwIiBhbHQ9ImluZm8uaG9z
+ c3p1cHVza2FzdWIuY29tIC0gZmlsbWVrLCBzb3JvemF0b2sgYWRhdGLDoXppc2EiIHNyYz0iY3Nz
+ L2luZm9vbGRhbC5wbmciPjwvYT48YnI+PGJyPjxicj48YSBocmVmPSdodHRwOi8vd2VibW9vdmll
+ cy5jb20vc2hvdy9BbWVyaWNhbi1Ib3Jyb3ItU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHNy
+ Yz0nY3NzL3ZpZGVvd2ViLnBuZycgd2lkdGg9JzcwJyBoZWlnaHQ9JzI4Jz48L2E+PGJyPjxicj48
+ YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT1odHRw
+ Oi8vaG9zc3p1cHVza2FzdWIuY29tL2FkYXRsYXAucGhwP2RhdGFfaWQ9MTMxMjcwIiB0YXJnZXQ9
+ Il9ibGFuayI+PGltZyBzcmM9ImNzcy9mc2hhcmUucG5nIiB3aWR0aD0iNjgiIGJvcmRlcj0iMCI+
+ PC9hPgo8L3RyPgo8L3RhYmxlPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz48YSBocmVmPSJodHRw
+ czovL2FkZi5seS8yNjYzMjg4L2h0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhw
+ P2ZpbGU9MDEyNDI1My56aXAiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2Rvd25sb2Fk
+ YWRmbHkyLnBuZyIgaWQ9ImNvbGxhcHNlX3BpY18xMzEyNzAiIGJvcmRlcj0iMCI+PC9hPjxicj48
+ YnI+PGEgaHJlZj0naHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/ZmlsZT0w
+ MTI0MjUzLnppcCcgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2Rvd25sb2FkLmdpZiIg
+ aWQ9ImNvbGxhcHNlX3BpY18xMzEyNzAiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CjwvdHI+Cjx0ciBz
+ dHlsZT0nZGlzcGxheTogbm9uZTsnIGJnY29sb3I9IiNFNkZGQzYiIGlkPSJjb2xsYXBzZV9yb3df
+ MTMxMjcwIj4KPHRkIGNvbHNwYW49IjciIGFsaWduPSdjZW50ZXInIGlkPSJjb2xsYXBzZV9jb2xf
+ MTMxMjcwIj48aW1nIHNyYz0iY3NzL2xvYWRpbmcuZ2lmIj48L3RkPgo8L3RyPgo8dHIgYmdjb2xv
+ cj0iI0U5RTlFOSIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwo
+ Y3NzL292ZXIuanBnKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0n
+ dXJsKGNzcy9vdmVyMi5qcGcpJzsiPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0ic29yb3ph
+ dG9rLnBocD9zZXJpYWw9YW1lcmljYW5ob3Jyb3JzdG9yeSI+PGltZyBzcmM9ImNzcy9ib3JpdG8v
+ YW1lcmljYW5ob3Jyb3JzdG9yeS5wbmciIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC90ZD4K
+ PHRkIGFsaWduPSdsZWZ0Jz48YSBocmVmPSdqYXZhc2NyaXB0OmNvbGxhcHNlVHIoImNvbGxhcHNl
+ X3Jvd18zNzA2NSIpOyBhamF4X3BhcnNlcigzNzA2NSwiY29sbGFwc2VfY29sXzM3MDY1Iik7JyBp
+ ZD0ibWVudSI+PGI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMwMWUxMDwvYj48L2E+PGJyPkFtZXJp
+ Y2FuIEhvcnJvciBTdG9yeSBzMDFlMTAgKGhkdHYtZnFtKQo8YnI+PGJyPjxicj4KPGJyPgo8L3Rk
+ Pgo8dGQgYWxpZ249J2NlbnRlcic+PGltZyBzcmM9J2ZsYWdzLzEuZ2lmJyBhbHQ9JycgYm9yZGVy
+ PScwJyAvPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz5CYXJ0YSBK83pzZWY8L3RkPgo8dGQgYWxp
+ Z249J2NlbnRlcic+MjAxMS0xMi0xMDwvdGQ+Cjx0ZCBhbGlnbj0nbGVmdCcgd2lkdGg9IjgwIj4K
+ PHRhYmxlPjx0cj48YSBocmVmPSdodHRwOi8vaW5mby5ob3NzenVwdXNrYXN1Yi5jb20va2VyZXNl
+ cz9xPUFtZXJpY2FuIEhvcnJvciBTdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9ImZs
+ b2F0OmxlZnQ7IHdpZHRoOjcwcHg7ICBtYXJnaW4tcmlnaHQ6MHB4IiBib3JkZXI9IjAiIGFsdD0i
+ aW5mby5ob3NzenVwdXNrYXN1Yi5jb20gLSBmaWxtZWssIHNvcm96YXRvayBhZGF0YsOhemlzYSIg
+ c3JjPSJjc3MvaW5mb29sZGFsLnBuZyI+PC9hPjxicj48YnI+PGJyPjxhIGhyZWY9J2h0dHA6Ly93
+ ZWJtb292aWVzLmNvbS9zaG93L0FtZXJpY2FuLUhvcnJvci1TdG9yeScgdGFyZ2V0PSdfYmxhbmsn
+ PjxpbWcgc3JjPSdjc3MvdmlkZW93ZWIucG5nJyB3aWR0aD0nNzAnIGhlaWdodD0nMjgnPjwvYT48
+ YnI+PGJyPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBo
+ cD91PWh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vYWRhdGxhcC5waHA/ZGF0YV9pZD0zNzA2NSIg
+ dGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3MvZnNoYXJlLnBuZyIgd2lkdGg9IjY4IiBib3Jk
+ ZXI9IjAiPjwvYT4KPC90cj4KPC90YWJsZT48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJl
+ Zj0iaHR0cHM6Ly9hZGYubHkvMjY2MzI4OC9odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2Rvd25s
+ b2FkLnBocD9maWxlPTAwMzE2OTkuemlwIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImNzcy9k
+ b3dubG9hZGFkZmx5Mi5wbmciIGlkPSJjb2xsYXBzZV9waWNfMzcwNjUiIGJvcmRlcj0iMCI+PC9h
+ Pjxicj48YnI+PGEgaHJlZj0naHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/
+ ZmlsZT0wMDMxNjk5LnppcCcgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2Rvd25sb2Fk
+ LmdpZiIgaWQ9ImNvbGxhcHNlX3BpY18zNzA2NSIgYm9yZGVyPSIwIj48L2E+PC90ZD4KPC90cj4K
+ PHRyIHN0eWxlPSdkaXNwbGF5OiBub25lOycgYmdjb2xvcj0iI0U2RkZDNiIgaWQ9ImNvbGxhcHNl
+ X3Jvd18zNzA2NSI+Cjx0ZCBjb2xzcGFuPSI3IiBhbGlnbj0nY2VudGVyJyBpZD0iY29sbGFwc2Vf
+ Y29sXzM3MDY1Ij48aW1nIHNyYz0iY3NzL2xvYWRpbmcuZ2lmIj48L3RkPgo8L3RyPgo8dHIgYmdj
+ b2xvcj0iI0U5RTlFOSIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1
+ cmwoY3NzL292ZXIuanBnKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFn
+ ZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0ic29y
+ b3phdG9rLnBocD9zZXJpYWw9YW1lcmljYW5ob3Jyb3JzdG9yeSI+PGltZyBzcmM9ImNzcy9ib3Jp
+ dG8vYW1lcmljYW5ob3Jyb3JzdG9yeS5wbmciIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC90
+ ZD4KPHRkIGFsaWduPSdsZWZ0Jz48YSBocmVmPSdqYXZhc2NyaXB0OmNvbGxhcHNlVHIoImNvbGxh
+ cHNlX3Jvd18zNjk5OCIpOyBhamF4X3BhcnNlcigzNjk5OCwiY29sbGFwc2VfY29sXzM2OTk4Iik7
+ JyBpZD0ibWVudSI+PGI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMwMWUxMDwvYj48L2E+PGJyPkFt
+ ZXJpY2FuIEhvcnJvciBTdG9yeSBzMDFlMTAgKGhkdHYtZnFtKQo8YnI+PGJyPjxicj4KPGJyPgo8
+ L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGltZyBzcmM9J2ZsYWdzLzIuZ2lmJyBhbHQ9JycgYm9y
+ ZGVyPScwJyAvPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz5Dc+ljc2k8L3RkPgo8dGQgYWxpZ249
+ J2NlbnRlcic+MjAxMS0xMi0wODwvdGQ+Cjx0ZCBhbGlnbj0nbGVmdCcgd2lkdGg9IjgwIj4KPHRh
+ YmxlPjx0cj48YSBocmVmPSdodHRwOi8vaW5mby5ob3NzenVwdXNrYXN1Yi5jb20va2VyZXNlcz9x
+ PUFtZXJpY2FuIEhvcnJvciBTdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxpbWcgc3R5bGU9ImZsb2F0
+ OmxlZnQ7IHdpZHRoOjcwcHg7ICBtYXJnaW4tcmlnaHQ6MHB4IiBib3JkZXI9IjAiIGFsdD0iaW5m
+ by5ob3NzenVwdXNrYXN1Yi5jb20gLSBmaWxtZWssIHNvcm96YXRvayBhZGF0YsOhemlzYSIgc3Jj
+ PSJjc3MvaW5mb29sZGFsLnBuZyI+PC9hPjxicj48YnI+PGJyPjxhIGhyZWY9J2h0dHA6Ly93ZWJt
+ b292aWVzLmNvbS9zaG93L0FtZXJpY2FuLUhvcnJvci1TdG9yeScgdGFyZ2V0PSdfYmxhbmsnPjxp
+ bWcgc3JjPSdjc3MvdmlkZW93ZWIucG5nJyB3aWR0aD0nNzAnIGhlaWdodD0nMjgnPjwvYT48YnI+
+ PGJyPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91
+ PWh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vYWRhdGxhcC5waHA/ZGF0YV9pZD0zNjk5OCIgdGFy
+ Z2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3MvZnNoYXJlLnBuZyIgd2lkdGg9IjY4IiBib3JkZXI9
+ IjAiPjwvYT4KPC90cj4KPC90YWJsZT48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0i
+ aHR0cHM6Ly9hZGYubHkvMjY2MzI4OC9odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2Rvd25sb2Fk
+ LnBocD9maWxlPTAwMzE2NDIuemlwIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImNzcy9kb3du
+ bG9hZGFkZmx5Mi5wbmciIGlkPSJjb2xsYXBzZV9waWNfMzY5OTgiIGJvcmRlcj0iMCI+PC9hPjxi
+ cj48YnI+PGEgaHJlZj0naHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/Zmls
+ ZT0wMDMxNjQyLnppcCcgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2Rvd25sb2FkLmdp
+ ZiIgaWQ9ImNvbGxhcHNlX3BpY18zNjk5OCIgYm9yZGVyPSIwIj48L2E+PC90ZD4KPC90cj4KPHRy
+ IHN0eWxlPSdkaXNwbGF5OiBub25lOycgYmdjb2xvcj0iI0U2RkZDNiIgaWQ9ImNvbGxhcHNlX3Jv
+ d18zNjk5OCI+Cjx0ZCBjb2xzcGFuPSI3IiBhbGlnbj0nY2VudGVyJyBpZD0iY29sbGFwc2VfY29s
+ XzM2OTk4Ij48aW1nIHNyYz0iY3NzL2xvYWRpbmcuZ2lmIj48L3RkPgo8L3RyPgo8L3RhYmxlPjx0
+ ZCB2YWxpZ249dG9wPjx0YWJsZSB3aWR0aD0iMTIwIiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIw
+ IiBjZWxscGFkZGluZz0iNiIgY2xhc3M9InNhbXBsZSI+Cgo8dHIgYmdjb2xvcj0iI2NjY2NjYyI+
+ PHRkIGFsaWduPSJjZW50ZXIiIHN0eWxlPSdiYWNrZ3JvdW5kLWltYWdlOnVybChjc3Mvb2xkYWx0
+ b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7JyB3aWR0aD0iMTIwIj48Yj5W
+ SVAgQmVqZWxlbnRrZXomZWFjdXRlO3M6PC9iPjwvdGQ+PC90cj4KPHRyIGJnY29sb3I9IiNlOWU5
+ ZTkiPjx0ZCB2YWxpZ249dG9wPgo8ZGl2IGFsaWduPSJjZW50ZXIiPgo8Zm9ybSBuYW1lPSJsb2dp
+ biIgYWN0aW9uPSJzb3JvemF0b2sucGhwIiBtZXRob2Q9InBvc3QiIHRhcmdldD0iX3NlbGYiPgpG
+ ZWxoYXN6buFs827pdjo8YnIgLz4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImxvZ2luX25pY2si
+ IHNpemU9IjExIiB2YWx1ZT0iIiBzdHlsZT0iY3Vyc29yOiB1cmwoaHR0cHM6Ly9ob3NzenVwdXNr
+ YXN1Yi5jb20vY3NzL2lucHV0Y3Vyc29yLnBuZyksIGRlZmF1bHQ7Ij48YnI+CkplbHN68zo8YnI+
+ CjxpbnB1dCB0eXBlPSJwYXNzd29yZCIgbmFtZT0ibG9naW5fcGFzc3dkIiBzaXplPSIxMSIgdmFs
+ dWU9IiIgc3R5bGU9ImN1cnNvcjogdXJsKGh0dHBzOi8vaG9zc3p1cHVza2FzdWIuY29tL2Nzcy9p
+ bnB1dGN1cnNvci5wbmcpLCBkZWZhdWx0OyI+PGJyPjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIg
+ bmFtZT0ibG9naW4iIHZhbHVlPSJCZWzpcOlzIiBzdHlsZT0iY3Vyc29yOiB1cmwoaHR0cHM6Ly9o
+ b3NzenVwdXNrYXN1Yi5jb20vY3NzL2xpbmsucG5nKSwgZGVmYXVsdDsiPjxicj4KPGJyPjxhIGhy
+ ZWY9InJlZ2lzenRyYWNpby5waHAiIHRhcmdldD0iX3NlbGYiIGlkPSJtZW51cmVnIj4tIDxibGlu
+ az5SZWdpc3p0cuFjafM8L2JsaW5rPiAtPC9hPjxicj4KPGJyPjxhIGhyZWY9ImVtbGVrZXp0ZXRv
+ LnBocCIgdGFyZ2V0PSJfc2VsZiIgaWQ9Im1lbnVtZW51Ij4tIEVsZmVsZWp0ZXR0IGplbHN68z8g
+ LTwvYT48YnI+CjwvZm9ybT4KPC9kaXY+CjwvdGQ+PC90cj48dHIgYmdjb2xvcj0iI2NjY2NjYyI+
+ Cjx0ZCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTMwIiBiYWNrZ3JvdW5kPSJjc3Mvb2xkYWx0b3Ax
+ LnBuZyI+PGI+VCZhYWN1dGU7bW9nYXQmYWFjdXRlO3M8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29s
+ b3I9IiNlOWU5ZTkiPgo8dGQ+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2Nn
+ aS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJj
+ bWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRf
+ YnV0dG9uX2lkIiB2YWx1ZT0iQlQ0V1lGRlRGUThWTiI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3Jj
+ PSJodHRwczovL2hvc3N6dXB1c2thc3ViLmNvbS9jc3MvYnRuX2RvbmF0ZUNDX0xHLmdpZiIgYm9y
+ ZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iUGF5UGFsIC0gVGhlIHNhZmVyLCBlYXNpZXIgd2F5
+ IHRvIHBheSBvbmxpbmUhIj4KPC9mb3JtPgo8L3RkPjwvdHI+Cjx0ciBiZ2NvbG9yPSIjY2NjY2Nj
+ Ij4KPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMzAiIGJhY2tncm91bmQ9ImNzcy9vbGRhbHRv
+ cDEucG5nIj48Yj5MZWcmIzI1MDtqYWJiIHNvcm96YXRvazwvYj48L3RkPgo8L3RyPgo8dHIgYmdj
+ b2xvcj0iI2U5ZTllOSI+Cjx0ZD48YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nv
+ cm96YXRvay5waHA/c2VyaWFsPXRoZWJpZ2xlYXAiPjxpbWcgc3JjPWNzcy9raXNrZXAvdGhlYmln
+ bGVhcC5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2Fz
+ dWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPXRoZXNleGxpdmVzb2Zjb2xsZWdlZ2lybHMiPjxp
+ bWcgc3JjPWNzcy9raXNrZXAvdGhlc2V4bGl2ZXNvZmNvbGxlZ2VnaXJscy5wbmcgd2lkdGg9IjEy
+ MCI+PC9hPjxicj48YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5w
+ aHA/c2VyaWFsPWphcGFuc2lua3NwZW9wbGVvZmhvcGUiPjxpbWcgc3JjPWNzcy9raXNrZXAvamFw
+ YW5zaW5rc3Blb3BsZW9maG9wZS5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48YSBocmVmPSJodHRw
+ Oi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPXRoZXNocmlua25leHRk
+ b29yIj48aW1nIHNyYz1jc3Mva2lza2VwL3RoZXNocmlua25leHRkb29yLnBuZyB3aWR0aD0iMTIw
+ Ij48L2E+PGJyPjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBo
+ cD9zZXJpYWw9dGhlcHJvYmxlbXdpdGhqb25zdGV3YXJ0Ij48aW1nIHNyYz1jc3Mva2lza2VwL3Ro
+ ZXByb2JsZW13aXRoam9uc3Rld2FydC5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48YSBocmVmPSJo
+ dHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPXN3YWdnZXIiPjxp
+ bWcgc3JjPWNzcy9raXNrZXAvc3dhZ2dlci5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48YSBocmVm
+ PSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPWRyYnJhaW4i
+ PjxpbWcgc3JjPWNzcy9raXNrZXAvZHJicmFpbi5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48YSBo
+ cmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPWhhd2tl
+ eWUiPjxpbWcgc3JjPWNzcy9raXNrZXAvaGF3a2V5ZS5wbmcgd2lkdGg9IjEyMCI+PC9hPjxicj48
+ YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPWRv
+ cGVzaWNrIj48aW1nIHNyYz1jc3Mva2lza2VwL2RvcGVzaWNrLnBuZyB3aWR0aD0iMTIwIj48L2E+
+ PGJyPjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBocD9zZXJp
+ YWw9aW52YXNpb24yMDIxIj48aW1nIHNyYz1jc3Mva2lza2VwL2ludmFzaW9uMjAyMS5wbmcgd2lk
+ dGg9IjEyMCI+PC9hPjxicj48L3RkPjwvdHI+PHRyIGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxp
+ Z249ImNlbnRlciIgd2lkdGg9IjEzMCIgYmFja2dyb3VuZD0iY3NzL29sZGFsdG9wMS5wbmciPjxi
+ PkZpbG1haiZhYWN1dGU7bmwmb2FjdXRlOzo8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNl
+ OWU5ZTkiPgo8dGQ+PGlmcmFtZSBzcmM9J2h0dHA6Ly93ZWJtb292aWVzLmNvbS9mcmlzcy5waHAn
+ IGZyYW1lYm9yZGVyPScwJyB3aWR0aD0nMTIwJyBoZWlnaHQ9JzEwMDAnIHNjcm9sbGluZz0nbm8n
+ PjwvaWZyYW1lPjwvdGQ+PC90cj4KPHRyIGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNl
+ bnRlciIgd2lkdGg9IjEyMCIgc3R5bGU9J2JhY2tncm91bmQtaW1hZ2U6dXJsKGNzcy9vbGRhbHRv
+ cDEucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsnPjxiPkZyaXNzIGVsJm90aWxk
+ ZTt6ZXRlc2VrOjwvYj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI2U5ZTllOSI+Cjx0ZD4gPC90
+ ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9
+ IjEyMCIgc3R5bGU9J2JhY2tncm91bmQtaW1hZ2U6dXJsKGNzcy9vbGRhbHRvcDEucG5nKTsgYmFj
+ a2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsnPjxiPkZpbG1haiZhYWN1dGU7bmwmb2FjdXRlOzo8
+ L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNlOWU5ZTkiPgo8dGQ+IDwvdGQ+CjwvdHI+Cjwv
+ dGQ+PC90cj48L3RhYmxlPjwvdGQ+PC90cj48L3RhYmxlPjxpbWcgc3JjPSdjc3MvdGFsdWwucG5n
+ Jz4KPGJyPgo8Y2VudGVyPgo8aHIgd2lkdGg9IjIwMCIgY29sb3I9IiNjY2NjY2MiPgo8YSBocmVm
+ PSJqYXZhc2NyaXB0OnNjcm9sbCgwLDApIj48aW1nIHNyYz0iY3NzL3VncmFzMS5qcGciIG5hbWU9
+ IkltYWdlMSIgd2lkdGg9IjE0MCIgaGVpZ2h0PSIyMCIgYm9yZGVyPSIwIiBpZD0idWdyYXMiPjwv
+ YT4KPGhyIHdpZHRoPSIyMDAiIGNvbG9yPSIjY2NjY2NjIj4KPHRhYmxlIHdpZHRoPTkwMD4KPHRy
+ Pjx0ZD4KPC90ZD4KPC90cj4KPC90YWJsZT4KPC9kaXY+CjwvZGl2Pgo8L3RkPgo8L3RyPgo8L3Rh
+ YmxlPgo8dGFibGUgd2lkdGg9Ijk1MiIgaGVpZ2h0PSIyNSIgYWxpZ249ImNlbnRlciI+Cjx0cj48
+ dGQgYmFja2dyb3VuZD0iY3NzL2xlbnQucG5nIj48L3RkPjwvdHI+CjwvdGFibGU+CjxzY3JpcHQg
+ dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICB3aW5kb3cuY29va2llY29uc2VudF9vcHRpb25z
+ ID0geyJtZXNzYWdlIjoiRXogYSB3ZWJoZWx5IGNvb2tpZS1rYXQgaGFzem7hbCwgbWVseWVrcmUg
+ c3r8a3PpZyB2YW4gYXogb2xkYWx1bmsgdGVsamVzIG37a/Zk6XPpaGV6LiBC9m5n6XN66XPpdmVs
+ IGVsZm9nYWRvZCBhIGNvb2tpZS1rIGhhc3pu4WxhdOF0LiIsImRpc21pc3MiOiJPa+khIiwidGhl
+ bWUiOiJkYXJrLWZsb2F0aW5nIn07DQo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
+ Y3JpcHQiIHNyYz0iaHR0cHM6Ly9ob3NzenVwdXNrYXN1Yi5jb20vanMvY29va2llY29uc2VudC5s
+ YXRlc3QubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
+ Yz0iaHR0cHM6Ly9ob3NzenVwdXNrYXN1Yi5jb20vYXJyb3cuanMiPjwvc2NyaXB0Pgo8c2NyaXB0
+ Pg0KICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsnR29vZ2xlQW5hbHl0aWNzT2JqZWN0J109
+ cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7DQogIChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1
+ bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50KG8pLA0KICBtPXMu
+ Z2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2Rl
+ Lmluc2VydEJlZm9yZShhLG0pDQogIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnLy93d3cu
+ Z29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTsNCg0KICBnYSgnY3JlYXRl
+ JywgJ1VBLTMyODA5NjMtMTAnLCAnYXV0bycpOw0KICBnYSgnc2VuZCcsICdwYWdldmlldycpOw0K
+ DQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b67cf64ee4ae532-ARI
+ Connection:
+ - keep-alive
+ Content-Type:
+ - text/html; charset=ISO-8859-2
+ Date:
+ - Tue, 30 Nov 2021 23:21:07 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=aSewMA%2Bz%2FNzB%2BxayOSPBPCLtwnOu7UcwgcyYcZ0B%2BzxoY0jxG8kEsmYpwagEXN%2B%2FqKfV8GQ996LKIF70JLywUASctlFBLMDQZpN0tO7ESdB4dD1%2F75gUWzAURSTi0BtveCf9ZYzlZE7wte6egRMAjsM%3D"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ cache-control:
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ expires:
+ - Thu, 19 Nov 1981 08:52:00 GMT
+ pragma:
+ - no-cache
+ set-cookie:
+ - PHPSESSID=7j89dbg3daa69fenpeqbogib35; path=/
+ x-powered-by:
+ - PHP/5.3.3
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Cookie:
+ - PHPSESSID=7j89dbg3daa69fenpeqbogib35
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: http://hosszupuskasub.com/download.php?file=0124336.zip
+ response:
+ body:
+ string: ''
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b67cf6eef6ce532-ARI
+ Connection:
+ - keep-alive
+ Content-Type:
+ - text/html; charset=ISO-8859-2
+ Date:
+ - Tue, 30 Nov 2021 23:21:10 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=%2FeweNSk6JAWKif6Bb0nPjI1IZBSF8liOWoWxYo0jP1F6EW5%2BW1aH54VLQ1WQMGSwpsHwzc9g%2FF8CN0CTaUBDbRF5rCXtN55hwgtB%2F4lawQIGN1Xw%2BJFkloV8jxiDtHtu2Gg8g7xJPfGEdY1FcqtLHzA%3D"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ Vary:
+ - Accept-Encoding
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ cache-control:
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ expires:
+ - Thu, 19 Nov 1981 08:52:00 GMT
+ location:
+ - /!!feliratok/0124336.zip
+ pragma:
+ - no-cache
+ x-powered-by:
+ - PHP/5.3.3
+ status:
+ code: 302
+ message: Found
+- request:
+ body: null
+ headers:
+ Cookie:
+ - PHPSESSID=7j89dbg3daa69fenpeqbogib35
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: http://hosszupuskasub.com/!!feliratok/0124336.zip
+ response:
+ body:
+ string: !!binary |
+ UEsDBBQAAgAIADpdIVODveBy+z4AAOmQAABMAAAAQW1lcmljYW4uSG9ycm9yLlN0b3J5LlMxMEUw
+ MS5DYXBlLkZlYXIuNzIwcC5BTVpOLldFQi1ETC5ERFA1LjEuSC4yNjQtTlRiLnNydHV9z5PbRrLm
+ XRH6HyBN7I3qJfGDJCYmRtuyZUuWJTuktjdmbmATzQYBAgwA5Lxm7D/now/v9OL58PZdcOShT4zu
+ g6zD5peZVazyzEZ4Rt1s4iugqjIrf3yZmDx9Mh7/mf6LJ6NkPAtevPhroB/Eo2gaPn3yInhz7C/w
+ 7w/VXVYH3eG4pV+fPgntpfTNNHQvnY8mkVw61HfdoWmDTVMvm2WwOa6CvHqJP33TVHd9A7x8s8iD
+ 9WMd7PMq3zB2ZLEJaupiJ+FoOmPst6u8fhm8yQR0RePkbVAWMtLo6ZPN0AU3zcoM0GfVUNXFRfAi
+ +HDXVNc8TmzGIdjZ2BtnNkpiHucT4RZ1n28I/Lor+qBY592hfwDSD+WRRloS+g6DBrfN6i7IDkHR
+ BVV+m/fBddcsh47HSuxYBD07jzWh/0Zzma//ossXhH6sugMegcbFowX7rDoti+C+PWHUd0WV1/IA
+ UwEljGgUTjzQeJTiAd7THXeHYdMAkh6hvu7yzUtcO7PXTkcT/4bSUZTwDV0eaL2+9I99HwxVlfVN
+ mclmeF8wxtxi0CVzF2MSj8I5YVzRotL98+p+KTE5n/uL4Puh77MNPWHTnTb5cn/sR0GzbbrusNs0
+ /QjQqYEmpMh7tMl0lOL2jh0WVxcH07TJrrtyoBWSGZ+MLcRsNAtdiDAchYD4Ztded5kuHO3UTdN+
+ Xizo94yfu87Lp08c5FFgl+R85zLWxIwVTkdjf6x0NMbyXt0f5Kuh+Wo0GYWR+9UoHM0hdN9l61FQ
+ 58/465H5ekzIsfv1mB4LaO+zNluusTpB0fdyVWyuSsajubcytNeTCa8urUJdBFmZtc2GV/VDvrF7
+ RO41sTDpKHEeK8SunYQYPF/dZlXP22Gi+5H+moymkfv1Cd3GmEf9kK3uSPBpkSCLeXBs1zT/h8NA
+ N043wPfTHYLv7zb5i/LU9kGZbUlwGV/3bISnCsOzvorwVCxEl+9ff3z77vJt8OaHjx9/+Bh8uvrh
+ 49+ePvn5148///bxt0/B15ff/vL93xhsbsFwrQeWjMZYh78Uf52ML477bBlMLtoj3dWL4Pll0OZ9
+ n6+O0C9l9vwv/7P4K+OlFg+Xe3iz0TwVvG+adnnfN7T9/xy8y4rg/wTfvPozPWLR7Rbd0yf6Qzj5
+ X6tNVlQX183G4Ie6nWMIWxrPLX7850k0mqb05/evv/3147vXf399dfX0yY8ff/j57YevXl/98L8/
+ vLpkhIlBoJ2TJlMHgaZgPKfV++5UQVovgqu87w5FKao+NNcl8WjiXzendZhiWV9XFWmuLzXvQd5N
+ bw+rHWmdlzRpl7eZIEUWKaVbPiMlUFjRjJHeZ6tdKQqUBDD4NmuXeZ23xxIb5r+X+2dG/Y+CL/Sb
+ fBj82DZ72rl53/yjXmQ165BQpYDR47E33HQ0x3B72o3Bjy/OV2WsCzZFcHu/X+90AhKLQ7rHw6F9
+ HUWEcyUnQBYcsnagI6gkYaSTiZahuts0u/6WFMoDqVGaHNrxPT3XzWO1zEV7hFODD7iphx/RYarT
+ 0vakl3DDTckT/CavqhOLezizAPR9H2CGO3765Nc6uClWd6SOy+BVS497LIPb4TC0WJnvHtfrHJO9
+ EKUTzi0erZP3wOEEM/n0ybv7Ds/RF3mHC/vfa7NbUnMtadl05l2bjCbYZX9YKz7paI1xPxnJuyAT
+ Ks1nm9V3jVoFYwuc0GnnAc9HM6zmZUDXrfKWDvybHR1Yy/7pkwWd+xmJ8ED6vcSJQRt1k4tCiSYG
+ MiKZTVzIaD6Kp9Oz4XPdPdI9dqIn74aWVFi5CKbjID+0dOskNHVm9j4BhxaYcLyNHpOoAZjO1uOe
+ rs5hBJHSo1O6ltNGDY0y3+ddjuOIT53boTUTERlwYPngU9K7kONmsWBrLSdlRUr1fnV3EVwGNd04
+ aS16oI0ZjM6/bdbj3rNlAyOH9jDWYZPJORxZGQK2t7WghGMa7FgHm3xFElsdtzmf8Uc8EYkQDZCX
+ i/zigu67/FI91o8dPW4WPH9P+3BF3yUZz58HxTJfH2t5NitqQPd2DymfMZ7tsizJpCRJoAnpioCU
+ 6pcq3973D9CUpJzrJR4b24ekmY7R/fE2P5AwVv2JpuT5hodmLfecR7TCR2o6drbVFGccqUkxV9tV
+ 1p/Kx/puT2YYdBo00IUeo7cZ7JlgM+C+Nru6HNaDHImRSqaAzT30GT54+uTfW3NtfbwliznomrYh
+ QWiwlb55oLsNGjoRh1XTYbX6pq2HkhZM5mtu8VkVO/gT3Wjvm450znbLdsuPRdWQBbMtDqclbeFl
+ U60a0vOYKjJnlsWKNRSUDD2FjJCaESb+bpvCEuMV+ZjT7MJ2qPX8xnbqP1f0JKURbgIdqr459Bkb
+ HbTy1V0uax6P7QhT3LIzQjgme59GMBqL9hkEfNkfS7XaFkO7KUjM6S9mgK7LoDroYzFu6JfucCIj
+ mvchjTcx4xH8bOyNF8mxQDLedPT1gH+AXl98WR462ukLMgwrmq4+bze0zWn/0pbG914fsPPzqnsI
+ ahwqtM9Oazn24tAOGHnnxxTm4gxmk5xn2KfkwNxijvhm2dQcyIsoSjIS2rYgJ4fN+U2r0JGFJqTY
+ g04hQE+fvIFd/RlCRqvbZzVttH1T0Z4bBcvcTElsYciS9+6QjNJk7ixBRbb7QMtKD/u27vps1dLu
+ baplVkFnGLzE4NHlU0+oong0n0wdS5CM/m3esij9SjZVXmXroaZdSqPQhirJpGBFFE8tJCF4T0o6
+ dg455Q3BejK4PdXZFru5JhVU86Zmi4LQjJLlsT6v7/sB5w2JFtkYpKt4LCu15Bin3u3H0ShJaazX
+ ikE6Ll/+Lh5HbIWRvjX1hJE82UiOk59JCeXsbhy3jHDAUZe1O9xZFpSP9HnRlU01LDLeWD/0/S1N
+ E63crjrJOFYkAeuJZAJHHkoSu5/c0rogW6qkMw+bMzuI0PAiVTnPzAbWVj1U7KNaQQRM5OGqqL+A
+ gl3Rrl8F2yJTJ/hCfcVsUWUwfASa1PuazMlFTkbGPtONkVjZS3xZn5FvPIqxX+F8dXlf8ZGC46nO
+ MGFw+OhUoWchoyPYF7dZewH/YZPXYrt87g51weZLovLGmMnYGyQiJ2oqngaOVRqMAOojAfAdro+r
+ W5KUFc4XddiSyKLRxTMPbSYGzX+M6MijzRps2xPZGyW5MxnpQDI+SPc27GRdkwrckSIuaGEQiZAb
+ jS30bDSdu9CTCQ6js0XOX0/M10kVR/7Xp7BfsA7vHrvDY73+QlpPTMaL86ePGw4gmJ8Zc2oxp/AB
+ HEwy9WaC+d0JGrSlxT0MXQ+T++eiO5AmYFv8xwGfkCNYkrXR4QiAL70YNpkYQ8nMDAGLMPWGmI4m
+ 2K7v+Ywgk4HW4q5oYb61WQCPgk/RZG4RprCHHYQIjiXf5NsORiNOIdErrZxKz9jN3GjYgu3Mou62
+ RTtcF/RIdKtfyu64otu205ya0chDn3vbh8zECbbPu2P3sFiQ8KyXJMNbmpgKx8wyR2CATqO82rDt
+ g4ODdO2CdhM9WRFsSfle766vG5mZ6diORMDe1oLdOJuYqBAMYnYvni9OhPb8Qg0QNnGcz/6LQxP1
+ cj3Q3eDz5zLOxI4DWHeceCyC/SarKpg4xumbWhkiFehqcPogGUWJytBtgQAbHXt6HNNj04mIOb0I
+ PjVdTuJMuherwn/OKygl0hJw+dkOYCtucapkUCtqGMPbjKTpeIPD0aJd/OpLdyhz9YZYidWlHolT
+ K1S4xgMhtTaGs0VnNVRw/1jSDqH7ZWuEnI02G+kpciCXgeyyCkpXraRbMiz4JJpaMQRe4g2QwK3l
+ 2BRpFJqYotMn78nM7g5AJMPu6RO2zA8H0joBJPymWZGzqc+RwUXMDxr0mFoBJfBZ6I1G554cKuco
+ ZdGZnS6BqkVGm68m5+ezbjkVxjl0Y+Ss61yCiOLyqE7/dCgyVlRTFcAUkZ2JcxMp7M4IAvjm8+FA
+ klWzgb8lF4bOr1HQNrfZ8lgSyBXbYsu1s+YCnVroOXxpB5p04ESsse9zniKyCNphxfuG1i4nRS0a
+ SJXkKHiXtWpUzsYGllDCsQcbSajhdXVcsSkE4zsT1RM8tORNyFTNJhYi8sIH9EEiXvV7OnzgM9F6
+ l0VGqn/Nk34zkLU5YhvpcfFIDmfFOxWBXDJLYdF1mTz9LLRjTEex//SpmIbfHQ+7rtnowz0Lrn6n
+ MSFw69NLFcKsIpOxO7AbRpOyoLNGniCy6KlnHaZQ7mJZ06480arQpWzVkvq4JuujC1b5tRxSs9iA
+ kPr+A0gyiqEO//Xa8o7I9TkTCzL1JDuF855O2E+pl0t+BBKdgk6voszv5OKpuZi0/cy7OIrkjPr2
+ y+ahPNHQMkuwB5wAzmxmARIvgkUfpBLBenfsK6umrl599QIxfMKRAD+MSbUsl80Cx3sFU/9wvxd8
+ Kx6kTiepix/HMs8vgr+T8ZLVPZ8S2eYzDTNAw9ApWWW1xl//Efytacvgq6K/WzxUwfoRulOGsGJC
+ iDNvM5Ka0yFekyVTBQcZKFss4Iex8YdHKXKj3GiOi3W+XOccUuN5PseVnj6ZW9EhZH8o8sFDOW3F
+ 3YFDRALUsF0h8ajgDelRstZM3A5/UaX9nn5501TV3T+aZilDWRFL/AMwRYSQT5nL4PbziubdCVrt
+ c/K7Htaw1T/c7VbNsudYx6laNxL4m1upAsp5w0zG6oazlSnREbLaEDPIySZDsIi8yYBDFYgSdDAM
+ JA4yF1ECArnBEw9yKnoTMYK6KMnKGwWruy+bx+q6e8TV5bBtSPcP4ljT+iwKWngR0blI14QTHY4J
+ OOFER4hb/e3q+9dXr9/xtxPz7YQ2fup+m6POmC/aUSw1c5GaSQhNPz6rlgmH53kZr5y8VbEZltAy
+ NDHrgZRJAwVmkgHB15zkIj9Bz7UuX92TuaVpoJkdiYD9keb4gHTB2Str2NIiRW624yK/ydc4DMmO
+ OPQ4PdqG9mavang+t+gpjHcHnczghON+dJlnZ2TsVcldslfV5ll/vw9WSA+Sfb4cuoVae/PUwCN2
+ 6sOTsQTd8Ko49KRZilV2yJZqJtKESBCDtqJ1rBB0QHDqPIFPn6Rji09wiYtP+pR9SXJySrY+OJFY
+ 6l3WpAM3ag+rwdAjektnzaZA8CRYeEZQO4hMpRMzIOE7Xig+mI7mGJD87PxAemjT9MWe1hQu3caE
+ rvqT3nhocaaj1MMhNcxR6U1OjjM8zZIcKM7ELopDU9/dk0DSXmIpk1slY5xundzdakBAF5PIWyeN
+ zCDAnHqDcLiJb1YtejhmeXffP8hzxvbSCFFP99KZxIPZK5VMEyKinjpkvXplLED4fwyaWNCZa/vT
+ B3E4mkDMJ/PgiMhsbeM9XdMi2irBJln8DNoksxr9RRF8U9Ah3ZJxDg1BgiTDWRkFurf54qkci5P5
+ RXBVlOWLntT6SILDciSkVuzwXe9iMUzp+c4X9v/iR4Gx8oWr5h5MJIejI18mnkeaAWF/pInyvmeX
+ r2yLrYhsamUKCN6eJ5uVVxXnDsIue7paAnusemS3dEg081I9fdJm655UUrbnTbVE6NWae9B19ZLu
+ RBO+VtRoFMdKnURQ2jNox2/yJWmaLyViPwGiLW19dyxJhEmqbmmXkcVA67YlVX3fkp15DsdfBN/e
+ kQTa/KikWccqazJA6o0Ywdclw8L1tifj0F6QutYufQCfHkL1iV2DGqk0zAD0GN0QhxNyPj3WdKyU
+ Jdl4D/QU61t13DQRPY7MAKTO5v4ACYI61vsRkXzsjbk7Gcf20hQWhXNpGGMZkfXZD/T4heqcEQfW
+ aFvwIr7ISRyw6885sIzm7VfoqwXSO3TmZbzUOl5ixgP83BtvNpry/s1IXxizuazIAzsEDzQ8qcdm
+ JQk7To6Q3XlsyUGTA3abd70lAUztIHNPG0acbscgP2ccjsvaPQGUyBvRI8KrLDJO51zabcI7kwYz
+ yenGDDIzg8Ae9QeZiUf4Metui2UWZPXdrhzW9ENQ32VtxsfTm2yz7ZsaZxI5NhUIF/lF8J8gkuRV
+ mW37TMeZ23FmfxiHvPS5jfZzIqIqSB3ftzQUOSjLI/3KsyV5yEeayTzvCjzNDXk/y74bVr264ZNx
+ asYBrLetSdVw/u8rOrMQIO+h9ZZ0hsN5zZbs+macoUEyABEcckHXau5NlJMBnLlnKURQPqqzWQDg
+ zkjUtmYrwwkXH7d88CqilcDEC9ZMOA/Pkea3HZ1T3eEieMsmjnFSAlinqwKpGsn7VogIIgXSP7b9
+ kfS0bryRDGQlF7ixNxD54bC2NI3ZZW3ZcE6syrd5TxNC42GIkpYFkgcfk7zzzYKs4wt9DCu2ydyN
+ OE9iKJIY2/QvxV/LglMcdGcc7GofcFIDkZwS2qMj2f4s3MdVQRPf0rNZgoKSQhRy7o3BbhGPYe/S
+ BqjLos0gyWegxAL5lkEMZ5sjLB+OsCNJT/MeAzGATllSFQiq1IWZDGOD4wRBkCUrlrQHLYFH+SSA
+ jaG+3XE03slKWXSxskPwx7kbWqYPQlCs7LcD7x+5dm6ujSajJHavlcgcAmTk1qh3Y/6Ra1N77dQ7
+ dWJ4g1M57PQynHpkNuAQQwLh5tjekJ3wpVo+HrD56CB6Fvy3+5swhsZmBAKc+SNEosMY2Ozbl5qW
+ pNNSrp/Y62ejxJuZODUhpB8lZIN7vAx6UhclGXccX7S/BOef9cZCC5x6eiJmcQ7NtI04+7DuT3qZ
+ bnbmU7gWBxMg1OIQ6T/uH4LF7zhxyfTdHGvEVOfJ/3iRkbu1LZpiedscwBAihY0YyEkpVrEZAHiJ
+ N4CaNFdk99VBjcPcpColQ/RAPt9IbfJtVmdk1zTLmkM8CxJmy0VSUohC+mOomX2JTEj/uMDh5/j6
+ 7Ga/ymm1jh1IDvCgi6BqtkOnHvhEGSGC5UpYgpwlZ5IQsAWPyLg8mjwm05RjWqIXFsV1UVaQYRqq
+ Okr8cqJ0EQVLPfTY8E0QpRBDgWPx5f3+SzWQg8/ohi4G3kfvPpvJS0+UQqKQU2+MudghCFbz1ge/
+ UFwQHB6BuAjMP7B8uxaHS3M4CQ9Rh0jtEB5LhT6IYnEMzZmRrcnibjbnIDXiHz3b/OfQKS953rZ5
+ sB2qu+HQKJljoswTwoVAx+5AcSKqnzzpdTYKmopsiPOanC0FdWGePrlhyiEdjru2qU6rIiOxZeUI
+ I5RMpsOteTwlp2CQGfxQZ9QkxLKBn0frTQeWBKhBI6Al+yEjQ4nOMQ5rPLQvyHc8ruDfBFcZHWh3
+ MH2RI+DbBPXiHGSaKG9FhvjDmIkQYvCkg8m+b2DDv0QclEz5XY1doLo7sjKOC709lszEFrfiAYd/
+ UR03GbTNClq5ZE+U7tYmZSaRlWlc7wBOEd9g1gtZmtkBVmlWsmFTM08HXmg1dDSx65NhPNA2FdWo
+ fBMFmXqooYTVhDZTBDfFAYc5+Q6c3wcf8AjrDX57SUYbDZmL5zxRTomAOBE0fDCVDBJP3/64+lJB
+ pyIp1bHG443Oxj7JwrJtVjdfVquHki0p46ROlFWicDMXnxQeJzi/2bWDZKTIZMg4mRx85mCL4SqR
+ JO1tvgPGGnYf/qCrMZh9ODeDAdsfLETIitwCiHFpVNB6aB/46FC9dDiQgzfASF/+XsPZ0klKLW6I
+ SLeLGyPQjPCTpVx3nCYP2gEwNC0N6UpN+EyUQDJhAknkI2kU8X3hhmvIDmFJ4JmnLd3u2hMmiBQD
+ LSQUQTUsl1kle0T5Ioo2d+HJsGBB/E3NOVg0GRmUwbAiM3+hQY6JEkDkAlesptCOMfsHA2dPzyGs
+ 53Ts0Wl+F3yVbfPgq2ZJaM95V+QHyVpo+EGpLmWByLRRWcoLkQESf8S5jCgKXEY9VojHBcY7UK1A
+ LuhLCaL0cN7McWOCUgj2wGsBM0lHje2o8z+OmsLykIPdfNvKHv7oSXTENEY4zwfcBQd3abPyDt4f
+ K85uw6RQv7h8POQ6J2xRcoC4h+HweDh2t/lBxrNSCXh/PBsw+njbkMy87aBCleB1ld/SikJC4IoN
+ EHNsIbCAOyU+x1Yg/xA2YgYJZ5suaQs3ONhGHOXbGPnIOW3TDgd7sgLPylw8cVNP+EAdMGWgkbnG
+ ocgOGUs6NJnGZ7ChUOwiYYPvnRM6tvKXRKMkccdIlKj5JjtkhpC9UUcMp46Vt2TqEonxQQotymmp
+ C+GT5wfj4yRWjnz272TG/FyIKU0GjDFWsNYacxlPyOCTBukf6tJqQ6V7AIbPKBd3KhFWSWjiu5H5
+ LqIhc/e74JrxUf7xp48/BN/+7e3373749OmXb394J1fG5kqhsbpXzsV7+uX77y+v3l5+Cq5+eX/5
+ 9S+f5LrEXjf/w3VRKJL46e+/ffzwt/8bfHr9CmH+ywC38B9vg/e/fvr7Lx+//+XTq8sPgqU7eA4/
+ yw1mzPlxpr4j0DP1mmRXTnvRK2Q3L+l4BB9P5OWmuC5PfGRaY0ynamYHYyfBGYx0ylj24Ac2oBmv
+ Q1DQMCJJUVwEb4Z2g00HtplZq7kBpVmczzzQuZxcEm03Vq3Udjx90tKBVCFwTGB+IctE+RqAIP0c
+ u5jkzU0M3UeoCnIbSrzAN0KX9IkPpkgx8pZxoq3vQUrqcw7fwCzJKgT4cWtf+l5TscCdWNwpgg8u
+ Lum4ifFB8XSHJSLu2XWxzFCzIq6R0i7o++RRpd6kJ7FZ4W/yCslNmHtq5N081I/lY8/amm0xsqx2
+ /YlMq0Ki55IK6TThrZOgspBCAbhjpUyFFQ/mNlt2dMMr+DAVnQ7Cq+UCGZ2Dhxb/rIYKIdvHw0IT
+ 8BPlYYRjbFbHp8YHM6wT85KO0C1k6h17Q6qlWT+SBfjMNc0tn+Zm1xsHTGkY4QR2icPyCjmVxv6+
+ UoKekQqnJQqOKwL9DrbEzkz31GCA5pjEDgYtYILknFZBdQ/BLUKDetpWA4o4Xp5LETIOkTs7bGaR
+ Z6Nw7iLH4ShMYxVVNfkbnLoS+84X7Asg7r2T8/eTV+bEy3mT3x7b4HrYqgmkBA1Bj0JvuGQUYi3g
+ btHJ43gnIMSrCSSsaNove7JySzrb94jgkotijwvlaShg6o0wlwe6JFe2vm7I2A52/YBQJrm+PZgb
+ GAhkRIFSbkYYwl6bOjcbQgmnUXzmdKzunDm+PZqjRKkZesHUQ6CjBI8LXiBMBzqsNyK8YMALPQE1
+ B+LtgVtF53gr9C+y9IuejWKMEdoxYKN5Y5CemfFdMtFnoye6TOv69CK31FrscBALcE5LXLM+buxT
+ RHaElA51d4QIPEV+itWXus63eVVwvh3JKolJbwr+7QvCRAoXGzhcPfPgyCqRG3590KrEDAH5eiV8
+ L7J72GWkacKd/lqt81okRIkbhAHewdwFJQ01RqTlZ6XQBIvjgiQAeaKWVu0n2gLIJbf9UJncYkd2
+ yGCdL+V1KFTiYoNogFVEhmfE4FzBScICNJSK0l3/J9uAZMIu9+BwPVarOznI2P4zlQxmdmZmMGB7
+ y0naLkLy48pZxVqCG4VmXYa+ykDAdx5RNCGQ5xaZgCIPOZXtzLshAF9EOQVkPpLeE3qz3p/KV8Sl
+ dc5miDg6G4sqWq1Oy+7g3KNTdfX0CeaFM2QfjBpSLoeCzDxUMsIQElZSJA4SUfLA5wPtLcffBZ9m
+ etdfI8+y0lKNiZI3FCp2sUkBx8D+dDiZIk3S6n2wzdvrlgSRDlfZAsrU0Et8jBn2G+4PeUI8KyEt
+ 86XkLrC4qBpEbWwpWRTyvJCmJx+dNgn9UUeI7AhkxiTuCCGypDHqF/jR9ali8/2YVnPufh/5UazD
+ 1y3tYkwwdNSxpbuS5IcOmBgAso6T0AOYj2aQGBRGw0KS70/t9+nPzg1ynJ6/j5AsE/k4JfXS1mrW
+ bNbUUCkCpXs8hkE9Tz2oORnmBPVOi4uOdKBB45FoYe7ohF9Bx7RchFtVx568povg19roKmVhhFx+
+ OB270Dhtx3yXSpSgpehbHLNyvxrDeWHi7qQJ880G6Yk12YinF+2uLEXZKBcj5Pj+xB+ErENI0rtH
+ cj5/15qojDbUORWkTAv6MuzTuXt1OMNKWOPrhuRuuaa9fU4C6F9Wzj8cEJQbU06FInlrBBMziWVJ
+ RiA+FhvmJF72SGUg4WGCukqokGvS0AOJyPeIYafqeJH9KvLl7leZsBufa2WbDTPRPiNdjYgAOfPn
+ I0E5EiEnCmJvQml3hxOxQkBixLNe8I8XqEa5G9i4zfsLV5soO0Kvjl04kg1+gq/zkaVUC1fG1LEg
+ lfRIovlYk0/ecnT5vh06ElQFnxpw5A4mHjjthklsQhbI01dSbBf0BUdObTzaJBxRvWRNCLsAVjxI
+ UbsbJEH0b4ZVfA/+MgnUkm9bCkoaWLm3cIVZype2kGii1Am93geMRbdwJq3PM5h0Nju32LWrvNXY
+ gZIl9BofZAbjhvRF0fY5goT7x/aRTrrPXYsk5sqURobKfNBLUheDjO9ZZKxNZk2girQg6czWj0yU
+ hB3IXFXOS+alyU6dWtBiUeVEO0zHmZhxADv1xomN5Wb307OzTnAq5gATWhjyAiMPZi4Hv8KQenqm
+ jOQR2cryfwoSWZDUO9q4SHWKe/lUILDOa6fXxOYanMzONVNMfpLowCtyr26RzxALEWy9NtNzFaw4
+ W0zB+pGtjM7daaFSGxR27o2DECWsJhYNBONzLj/QC6f2Qt9t4CgpH06XmlowwfM9nV4AkHgIeTqo
+ 72Ts5ZfbR2Tj+/s9V+T9XncHHWZmhgG1OfWGIW0OVXlVgK7uP9XcXhV7RylHRpOIxT9Y7eAg3X4+
+ 1M2SGSxwo/fISzEvQLzHfb5/OMsDVMNfir/etIgwrnIkml+0ZslSOyhCiO6g4CPLXkFlvV78kstA
+ yUlus/q6QGDsxEzsPlhDhPpiJAaElikgApLRkVeXaiiGylFQfG9uSPnHMAAQTgpeV/WRNBl5/+Tg
+ VEgxCK+N9gdZOjcPpOIMBzao6fF17ythQdG8LRiNsSfluK/zNakzHPBkYBScSiftgx4U+YHsIfVf
+ jmKvCZGXeSyoEEUVFjuVum5KXcAIZMGMvSETqFr2U5otTkTwrq9BvCbAs11ECgF5McwZKi93bcZ1
+ NR63KVQOg6LG3jApxiVFdnwWvLnfr7HtpdJcSQkh15zFoXtRApI9/flPwSuyukeGXGkdAa6YK0Du
+ ADGyJtu8pFtsNsinBn8SdCuHAHMUDZeGsQ/3J1pIsoB3XBGpKn8t5dPIEwJ+zVXziqgCKvVqYw8R
+ kVlG/HGHLc5FlhBTrhlliUeAhAPaSmlSzJnBRLp64mIirJcw5hXWWVyfjV7O6XkIG90obY67rB1Q
+ VGMcUnvLcwufeMpoBpFiz/1PwW9VXq3lgENKnfzaI+1kKJij2YUIvwzrJad6DXRqoVMv7MBR0ihk
+ 6E9we7jcDn7GkueW/E/I4wFUEJ0Ly7opOQiJWZJBlP4AzJknkDOmW8n9k4FcbBanpTocOkslc5hh
+ hA2dUD/ZaTDAEwMcIe3tAc9HfDD/Cacmx9aR3qrKL2CnPH3yayssQiWwVBt2ww1saGHpMPO2CEI/
+ sSzn0EKAtdLaXBmZK/HFmXflTMzMP2kYYf2Fz6bN0NlhY3sxyhLdi2FQmYuLFZ+JdNzT6b6psp6j
+ Ia+xuuZm7MZUjoMi+JDT0VRm/hMX7mGPDDS/qF+FXL7h/AO8sX2+RCuP4/kprQgRyMzZNFyTFEaM
+ +iZbn7h8RHa8FNzS04KVVVTIZhg0FR65eOqhgf9MaN//7f3rF69eX73+9tOv3/6ZjLy3H75+/WEU
+ XL5/exVc/fT1h7eXwbvX338veHOLl45mYxcPrYjED0dhlIkOP8Pp8yLgB+aAlfCkxIbSDKYoFFGT
+ SltQvJk3wBweJ9OwXjC5laOsu2UvtqypwWwqO8YH3pNkaWP+QVAfdBTlLAhoPHFHCSMZBaykxdBy
+ ZLQ9cAnTpjmQJuQ43VtluyNcjCd8d2xzaeGVWftVj1rjH4RKWZAx/jDoDEeC9VzPnZuO3AuIK5JR
+ uV/DOeMwqo2YVZroCZWdEHKg393hcyiCWLYjzTozzlgs846DLgg/YetAqcuuUXpCyKVc7h5MMV+J
+ ON2vmutuqDM+cyUCcay1WKTXitL/LN30RqgkhZCrmtwQXIoAM28et0rmbCC4ZpZyEvQaHwTUQzXm
+ SS5o3Zb5hu+Gb7EUpuSPDfnGbAWSn7+F4zGsjOWn1ATF8sBR6BnGpnqQI2lwD84WMAcMjHMncdm6
+ HMgExVe2zaFAiQUZJ3QOV3DxdMSZGREDJN6Ierr91GeHU+9pRARrVe/eZu1102UFhz27A91b9m+g
+ NJGBUw+FDjK3g/hnXAptOGa7GdXZ5MRxJuTBXJfa63xHO4XKS8W6/Pf2xAbWZcAWX75BbVY7MHGm
+ l3wIhP++Pek6smMXKi1BoXzsRLYry4IEB7nzyg2MVjgYVf94qHMk4vEHp6cB+SECPrHgUzh4Lngq
+ ona56/qiDj7tNuC/Gsq2F89EQQ90U7Bsh02GBnMCHlpwwjpvkoirnxKAa48yrvU/VhyhpYld3eRr
+ Mx0keHWFgCRHaauBW5qI0afsBIXz8XWH/7rd6haGKIMHgfs3lDDYKcGHrC3hxzZmbyv9QFF82FSk
+ T+YE3pDM6VVT360zoVWgPUqeLZolfWJ5R6GyFBTDAyXVwSbkJRfC1TmsnE9Zm90GX+3quqhXtxzj
+ I5+IZrY80n2/AqE/+NAU6hIEbF+aTHaoDAWBdkIg+GAuIZAPebAADf4Z+mRlDqBui5lFIBUZugiI
+ dsqe44Tw0ra9YwbukqOAzSYjD6ncdQgIMtsyN0s2N8CMk7rA5PlDin+xRKNatjVIlWUmOwwMYpoG
+ dsUaNJwQ+sp1Rwqqgra67mC59U1blKY6JlSKgo4x955Gkw/vj9Vdm4P6yYVRZLHXy3vmgV4Gzz88
+ 7I+tps3of2XOHX9C5S8oSuLCoiYAk0Tb+vM6I8HIluB8XBcn7JJPWb0kNfhqV1XNNR7tpek6IJOk
+ DAfBSb3ZRz5YtMmbAl2P4LF8qfh0QotMuuUzsVLCb+iYWJsGZKEFnrqBXXyQSsBEBZIm/igxt5ot
+ YC0Nk/5HCmalL0rdTAh9EEdin/5aByY/JomLDH2jvB5I0jutKZWeieUlZ3Cfk4+KsF6XCRcuTKxQ
+ AtyTH2hmcT5R9SvdqJrNKVjki12JjCh3K6JNxbPyCrHObljpQ1ixBErswpK2DeWQfMfGqARhyWqi
+ K/+7krCvdW7Pgp5Y4UNDQB9xjoPr6ZNvuIPaGlPsNmwiSUbpNKILuXCn9o8lFxApshVKADnbmBt3
+ ppgCkWO0h2AtvyWp4eBOsXzoTUkImpq2iHqO2NJ7yTW40rrgWqoxZDSVVO7s6XjUkSTKZRO+lRYY
+ lfLMjbHFJhltHWlwpm7wsdrnh/oIr8H0NwuVc6GYqTdIjPyAJt9BG+qRbEd7GCZZ97u26PpMCr2z
+ bfelP3aiu5SUoRCRh6nxA0a54Yqwr1/sySqh2zdO8NH2OyulERUdENvFCVXUusLKziA86LCZO0Co
+ KbYPzZ6JfNgZsoy0nnJk0h4nJ3JbaG0/8EKL5yXXIu76GWPH6A5pd7fMZgWJfFcv8fMF81U3zKPL
+ JaLYs5263nWCHll0AvN2DcgKUH577SXEpVyb3/ccncQHz20p+VVBRvBztJXtO+yxVqciNuA+8SES
+ 4kMiOgBQtxloN9umrU/B5zXJ34qfQ8b5KuuKhjxvlKn1d7+DdcdWaZkf+F4wUmJHmrqWGT5IJUx7
+ 1HmgheKWbRn3y9hnZOsxoxo9dEkLLciQET2rtA2FmLqY5Dhzyoy0/9VtHvxhHkSEzt0jUINVNaTW
+ tFNXqLQNAEWuzRZxu1Xeg9/e/V49Vo8lk1LQ1IWbXtDlpkOyOGm9Hkmm9NgWM+lAVkqB6232ZCID
+ CZ4tolGmBqb9cpu3TRV82rZFfxhZ30/FyIomgHzkWIwIVhyk1BdDxRq8qkQR8lKQHG3hQHCc0W1B
+ EM6sgAIo9pCnYrb9RnaDZCal+wnfPucZaGUXkEb0R7b9dxZaaxzOrGgCyRGl0AbqSMjh8mgvDXS7
+ rYZ+j3WTKPzR5CpDZW7g2hDq1QVLJLr9Jgse2JXITdkurw3CRc2G7E5YbAVa1ilxEvTjfb40hpoy
+ NxQw8UZIJUbMfeOwMtyFuikH7r7G5U+E8er+cCChrK3poOSNiKu248hFDBPDNjHtTV4EX3HJONnB
+ LdqrNNrpDtzSPGgLuuNrhU0sbOKGK/HBfMSUEXKYjwu2TgukbstdOXBICAxY8H/ks+y6OdtlStwQ
+ kNBDRcskDSjjoj+UXJ8LMMpsu0YLaOcZXsohVIOmRo77Twgyy3AzMxzQY284TZyKrOSHc4tmdJde
+ km0dlGRSkkK8Q3dnRHnL5/oQc4sKkNRFnUq8jDxhUyihhAvNDMMvE3YT7Rjty4JwyupuGdCBvTjS
+ fOq9p3aUqRtCow9A7Y2ZJMG2dpAJQxhTdoQa5dwJDLs9GH03ZA7C+ni4oEka6rWcoA9qnivPI+JC
+ 8sgfZioGov8ovWnZwtrrmekiHfQP6NPdD2SMKvLEIk89a5FZO3wMXdG27pQDIZeir2lJUFjfPSh+
+ 9/uT6QXUlP3JYFtBZSh3CUh3cWUd+p3Tox85Cyj21yY/sP1cKoiVRVwTujeYgAcYG+oBWdNYpX8G
+ ofms2C4M2lNlNt3cCiRQph7sXJJd7w0RHtVpa/SRghsJ80GV/NxKX+KRJiIuD+fcFSki0Jkrwy9H
+ 2ests7y4SNIU0irBbFOYzhsaXFHySJRge8VRYkfgWqV0zjN4yUtt+nygWr9CuRLCFGRQbasdDRqP
+ URpz3XGLfN/UVlYJIOlAmaTuGAmWDT5lmS9tuboof66XqXNU/goh2NYMMc9xu+tZUZF52Ru1qiQT
+ BU68kcidhdH5YajQLRV0RQ5HobqWSe1PnxTcor4LPtJZuFuypPZ3Q2nqDUJllyjY3EVHeBvhfukt
+ m5i5EDpBFix3qwG1c9LvgjUZP6zgKu9EYOahh5uQeSJrgHxMOB6/yHqb8rw/5NV9/0DHrOEvKODE
+ AqKfmAdIdw7A95+rHreKDnS4G6lcOeKOrj6TVY/kJnYmzO9jNZI4gaKHFj1FksOic7XSGArrkqwW
+ MtLJOtjkvSHxMPE642ari5zbNlQXaDiHs7c4rGAmLpiUZYpQQmWxCPBk7I2EAA1PzE+rO6EhjYwX
+ IxHlZ3bWojGvRzW0/flvgI8tPDKFHnxK5wTBf59D9VToB7s3Vf5gqoukPTPvRzhV4Djcok8wmSdf
+ DiR/9LOYU8p5UdCZOwoaiSE9zengr4wLRvuGDkrsv6btMj0GlNwSSWPH6IzCSbk4Ts8lE1hLMJre
+ HdsK5aFwuB/b1aN56plFogtnHlKKD8TxPV8j2QmOdp3aoZdHt8XcoXJY6HLSc6mHh7p2yJwlrjJ3
+ 5BZGwZaMFzXrWAIrWn2kokCeYWrPQ9sZt0sJLgroyB23nItER72DkUAH3P5oCIwoN+YCadTdPiLl
+ LQGefthkyz6TdDiPECn9RQDjiTcCTRKe4T2SC9e3u442rnB2j9stqaGr/N+yTpp8IbcB7Vh0Ajqx
+ oITh3zZixQS6JteBtVB2S/veaa9FT7HO5Q5tSVjDfVwHkweKlAQjcJPQxUd1B/AltdapEXlboDC2
+ 0rYkUgQnpwRXD+u7HHrL7gYFm0uW17kZMjJDgr7jD4l2rKmhUXHwx8Fksi09l/Q37UVISXZe4v+0
+ 66k2vFaKjUKm7hghIuopk6z0EvSm4Jpq+GTkpjXSM1RaXuKEto0jz2W52qAyUo4NcKeedpE6EBgP
+ 6Gv/iEkwmzYUYjp8EDoRB1JYijW1WAgUu1jg6gHLaxCnjHLTMAwNm9C/EQZ0ifJNRZ0ZVJQJe1OR
+ jMnH4+nWvGHN+T5s/R+W2Q33y+aNolab9sQzVuhaHkxVeqTEHMWNvIGiESc5tFxbypTNOw60TuhC
+ 3yZwl3cXgdiB/IYObhsvA6R2gKmnalOum4X6crggb85SgMpCDTExkJJr9LqZB4T+Zymu5qXKuZed
+ X0Kg7vNrrgYxwdFIGTUCMZt4mOSeQPo/mqbFHC3DbL/Pijp/sYBHzSfDh6zud9d0n4tceshFyppR
+ lLkLOwF/M9UrvfYtpLTQSKS+260K9qKEiMHNhFDczn/k4iV+uQyGicwwQE28Yej0x9ZbNG1Dni5N
+ wmfD0ROx52Y6tuP6I1SDN9mxhZ5BCzrQJIqsl01DCmeDiJ3JrZF70x88UiINroygKFwoJPFT9Ly9
+ ETO473POG9dOdbFGA9gLZCXL5QD6PgPl1ABrRga7C4535IzlcAzO8KC8gnx3jntKyzQ2MhGD7bhG
+ 0ylc1IFmZiB+9443EDqMpNhbGhDQ8kUJB7Aovq6shQvM8/6bG9QEHpKLmqQyzcwuJj3Ed6cvGhqh
+ qdsgNfNBdTT+TKScmnjMPsJZ1uKxMBJ41d72rITPdvC57SdUSiWhUFKgfJr+b7rtmyqnzf0gNmuk
+ nBrCBK1w5g6Cmhw5k19zBGjblA2Sv+sdCGWcBrVtLbDqpO+GkvmIVfml5PJqRPDIfRDDFqNN7GhT
+ V0JjziaxBfBrLb2DOdqEktYc3Vlr9to/c4kxjQXXCilpaWiOM9eGbTBKaEZBlbU/SjxKsA68G6Xd
+ Hj8b3pskVftKqtQ7B42FboAOjpL8xspEkCMl6AjiNPSGmEN6jRwJPIo8nJ6EFrTKX9CWvRPa3huy
+ DfCFGgVKUv+K/O9DIdKiA8d24NQ9SuIxd9jHs70+D7m0TbYipfDI92beHcNjxG66dO5VGrGpn7O6
+ xxLmvl3D0dPFomD/XseY2jGmrnEbj9kJxfEDN/cgvmtwXPMLT9gLRZPD80tePmTckYJmDw1Ws+DQ
+ DciyiVwo0SfmBE8cu6OggBln0NXv9bHTb4tQxvKarbP2xgexTJhl0JfKh5ZwrgkZG9tA+TpyoTuD
+ Eybn4+m4qGIz0p3Fr9Ewr9Ng5x2MxZ1584CQmBZk31QocJY3YaigKGtHoafuWHE4iqGgPiFgy67K
+ bdY1dXWyZxom8Hg4MOcDcmiPtNYslPJzFC314GejidgJX8lL62DgaS8xOsWO9R00jbybB50uuFHn
+ ubwqUm5OzG0up86dS0BTtRZe2mc8EhBg2A2BMgt8soJiRgaTY6Ie5mzEFVMS+r0xebnO81SkF3v7
+ SMqqDoYe/spRGYD0BS14EqtViTuCHI69oVJZ5Es6KpFACd5wuiMAy9a8kCcxV6OL5cS9OkpgT5IA
+ /H5Lm1ueEj6dYZBrh5r1yW03jBuXHFZVyvkAi3X5oKNN7Whon+SOFo9Fz+FYx8SgOmrNKfncsZl4
+ /j+AzrtcPuMVwKvgGolpBD0qN3SkmRkJjW9Cb6REXKCfM9Ofb8PRgQBvRjtI14HOUkFY7rngw0bV
+ m2WjSlW5OwCdjcb+KHOJy3yUNWz03TTKlIqUvRNHWKTU2XTciE994X+qJy8RkDwXUWEt1D5Qxo5c
+ now9vGTEsdwPUoemacZsKxXPdLS3n1fGzFBujlwV+TBzMenoDAW9YqW3JUyX1V1Wthx6F1INg2o5
+ aqScHMWIXVC0mJiY0w0JLjS37HKpX8S5g37Giw6vI0O1ZE9KpzwX+kfKxlGgcwAVHyRiP3O6AR1v
+ 2NrQN4iw9QunWf6QLxaKF1u8xFO93PWP2za9RyE6ijQ58id7dXms2DljMjZoqLZsI1IOjgIkLiLe
+ VALEq5wb0ZIiz/lVl0oWv5el1kbHR+lNf+iyzdDbt2PpGFMzBiD9MRBB5xOWS86GlhCK4KvbrN2z
+ v8BNTBnntXJAm3qRielgYpuRMnMULvXw59BuSGL43aMOEkyGo+Cm4nlNuY9RaV/SNbfgc7eMMo6Z
+ po6bv82sMyWB2ZLfKvGHdyNFSrnRC53b5GpEPsul9bcjyi1yRKu70+ruvs1RBYkCSTvRwoaLlHSj
+ OFMPeC4RsB/RpjE/S6oE1YLlbjO47HxSZPCv+EVPG8466BIq/UYRZ+4QEzUzybC85dfJgMK30OTf
+ UjxLmUql2sg1rhUZsxcFOcuECW4IVPdl0933J/TI6Q71UNF/BDVs9D04F8Er9npcxaUUnFhLFd1B
+ QnX63vMpm5vZi+0FeM+XewH6JCPoIq04wEK7CH4urq/5ZXVooFqhUkI4mkW7qwbdM8qgMQgeZCJu
+ S2byDUg1/r6HmJf8Xj7w2Wpm14PlZaNU2RIaGqEKvg/VL0qsAe7MDdTQBzFKnflhOXfXbXPeP99/
+ +pqkuaSVOR2KzrRRipRHI9dNfSDwN1IWQH4TMMK+CJusms1i6Lm6DawkOEzVUbhpGgpGaYO50bnF
+ TzyniPsbxtg/H+lwrFVdm7doccaxh6HOdiAUgukzfuAvlObj+7a3e9XKGVJf3jbjMmO2Kpm9XC/J
+ QF40wp/j1+YidyDy32r+PJpa6eLWz64CQHOPueTP4TnRKgbbY32QeKr8fqMpMTgiB0NmjqZWnBjC
+ u8WZRFW/1rZLQhTZ5/KKwk/6Aju55Qu0/68HOA54GZ/O9dSKGbB88HQUYfehzcmwYG4c+uLihWtl
+ XiMi9QGbi7PEmOvssMzU25lauSKQ2BGThLVOmOqLu9j8eiABRXGB7AJEPnrxelpu3u0Jec0pg0by
+ IDWp3/u1sXyVShNz/WbojzkXo5ob0/WBDVKI0pL+xc/pLMR7xMQzRepgnb3UNxMmFhkvwnaRueWJ
+ OZgzpCF709zD6f1keglzu6oqL1TylT6jMJGHG0niBLEqOUHFNerZWzbtMxRmZmEiNzMS81tHE1hL
+ lkCEV6t8XvO7j6QySlhbKkm3/Io6W9T9XXNbk2tjrGulysRcHDqO3XHCUPUHl2w20roMTBkUcZ+f
+ gT7EWbcZiQEkrwTn2EIvexe3Yd5dFymBRuHP9BF8MJUazD8FV222AlEWzSn4B5HXG3heuSpaLXiJ
+ lDdjrvceACX/nJ5YL/lOTu2gLxl8+oS7neW4cdRcOCQrbaEXKWtGcTxgMCXEE+BJvdxky3wHfgf6
+ Ji3YLZBg0SdbVOK+gV0pNAKUeps60pzmm8xynepjKR1wtK+kH/1jyj35FBxNIQeDrNPlzhrLSqVR
+ 4NQbScWHtAwIl5AeDoTneME7zka25mSmN7+Xj0tDpI5mViajP0pOrBHFM+HRZMbvW6VTg5lNi1ii
+ vSPTXXPmprwrVED77KUWUwuFR9/0aaU19oKLMb86VaP979DO8LDKery7vh+6psuk/8p7tur4eCpv
+ +S9chw1v3zBUo5mVWwB6I/DbUlOnUlxqUrE2WoUrxXzIvlfFCeLYZuumXp0MmzGaWXEmMNdrSaD/
+ +XR9Ien2KtOXeSFOlXPfgV5aUXGQnTbuWo4Y5hJITwierF3Zmx690cxKNdA97YFOV1EqnUkKCW9q
+ jaCPYOUUF8SunKImYszlewgpcWmTnXeRybmVSXzXE3JwNWap1FzCwsV7u0BDXkrUw3ThMUBWBnGd
+ I4NTabPNWehbTpfr2SHp/wXBNiD1ZvWqqcyLObmzaF5WwwYxMjb/ZXWUKiOorr3AleKRpO748kXO
+ Jps3ZLYdlk+fdNum7Tm7fVxI68DLLZmpknU9NwaLlFGj0Kk7Fh0Y7JBLQybStdBRy8cax8zRxlFR
+ CcN1yRp3Ui6NXO8wJPBBInlH7lp2LmKjOUZKXmLMmSn5q9UjoENaX2atgQol2iief8epJOl/hWBs
+ SGssySAZtlJD3MAJqB44j8YquMq/YOAjN97PD0vmf9A3e+MeKOFGgSN3pDASGTRKD+4lmeTIG8rL
+ rJGw+adHoieFL1ahN1I5UnaMthaKlHoj4K5M8vteY+v0A5lOn4fyHPHhUhmc2t3RdUOVYqMAsYuI
+ 2FVsrBV+N8cf9r5hwJgCW26lIuuwwTtqAJ8aeKDNPPhYGF1aaiN06uq0P2ovC67ieWfkwn0RW6QM
+ GwXxbzoRSwMZg4PUtXLfkirXXr86k8qp0SvOBLmYW2xyUEIM5OOW5KdkzsFGXuJS3e1gyUqGI7ed
+ gqLUiiQQEveuEMhKJczzry7+Vx9L2Dq1oge3YOpiosPK9P+PiYutmKFFsjP5Uu1u8mj2reA0V2J/
+ QYDRizxXswzOsbRGF+vvs1kHFTN+Faqbx+EXmMaS/viZduCysNVwtoOdDtlzxyI9/JUWo9fPXUB+
+ xWnqNgE0BS0EcqEKg3z5THJARxvBUIIMIGJAuJgzISBIM6lhg1fKoL1Y0atlopQ12f8jK1ykOdZ5
+ 96Va6whzOwK6rbgjQEwxDVoYSYqKzF8EBCSlatruYVtxGzZhrGmhIxsTSyHErjP7im/lz8Rc/x6P
+ veFSKVP/OV/yOzgy6+I7byiIlR4Tc8fRSeQCRLFYJj9Lx9UVCrgWSug4Z5Fi5cLggnQUegsfh6P5
+ JNVG/0JgQraeL14Mtb7pNla2S8yvsZxPXQQT/jJl1T+13a7KLHMJ9bLmcQxrKVYmi17twHHV9xxw
+ dPV7oRr++KJv/lFLtfL7XGOkWfD80O3aDdoVPmdlqaFcmsOM019kCpIeel49brePq+7w/KWMrEIm
+ A/kjT+UA0GijEMyPtXYvRq70uFodA20B7xcExEpnERhX1c+l8JAnCFWRJj7KuUMhcmAroS6UW6WR
+ ZdnsB2b+afQoVnqLQMUe9kSzhzRbP7OsO17ePyexmlJW4JzHkuyV0h7OZAd9ppkZd+InH7lfLadL
+ aVzu7cPrS3f7btfu0XZIkv3dEi+QPK/63OIlXkRCetRyZBmtAvMVV8qiy9lBcvbGcUdsvRYJlxSj
+ U2KGAVI7AJrFuQMgBaU3rH0Cj5Z/IDfoWi9CXpLo+CDYSn1RKO/muUf3HyeD9qTdQcJ/4fZ+sO8O
+ R9To22lRAowC+Xc9F73vvubTmG0Fly52fPR84DgY3TR3ApddowQYRYlcWOScOXVMx/h2ixB1rVVX
+ 3LVZgssolWay1qW8iaZ+OLfm5w+yopSBIjMQcP2B9HhHARW0dFv0xWGo+A0E9CzwONBdorBF2HXO
+ z8Hd4nXercDCwfQ2f5RKco7sfA6Pts3N+eBiv4G7+8mhyHTbfAVhzkxDywzF6WTAryUkEk+sEEcs
+ s85Y8VgYr9oGhTN7zWZjdt7EiihS5t5dxrHEeoSrqqeWvHMwMzuYDo2RZmQ4CX1D63jcB5vPpHiU
+ dQNh0IW1YhlPPSNtzgk3nLr2FWtmK3JKEttZ9ySdEtJ5SHalPoSVT8KZT1xg8imZRsdtpQbpRc7h
+ jcryC2C6Qd0UQg5aCqSVSCDEHqQmp6RJDddjYgMee6RIXtr3ZiPqg94CWFeO9bQ0iejliVZJTVsP
+ dDzLvIRWQhM/cTVnqnTIXAl+AVhnIpw0HeXjHpYqb7c3oDHu6Qgl5UP2+HlDKRfpzFaJQyu0SepZ
+ jyn7jRx+Zza6sEdR3adWivgj/EotZOhHvCwbSZXFhgQjZLhzi3B8MBPu+IfjASEPhGulF/3yXLKv
+ /TZGwY6MaJ2VyCLOXL44fSDhQ9Zbmlgh8066ETLocZ+XC351M+KP/EJLfrl7jjfJdAf7aqrY0FsE
+ cuqNEUMceAwssWRv5J0WdLIWnGRTVYiX0uM9Bc+kdxyJ7327ZvPj/wFQSwECFAAUAAIACAA6XSFT
+ g73gcvs+AADpkAAATAAAAAAAAAABACAAAAAAAAAAQW1lcmljYW4uSG9ycm9yLlN0b3J5LlMxMEUw
+ MS5DYXBlLkZlYXIuNzIwcC5BTVpOLldFQi1ETC5ERFA1LjEuSC4yNjQtTlRiLnNydFBLBQYAAAAA
+ AQABAHoAAABlPwAAAAA=
+ headers:
+ Accept-Ranges:
+ - bytes
+ CF-Cache-Status:
+ - MISS
+ CF-RAY:
+ - 6b67cf838e9ce532-ARI
+ Cache-Control:
+ - max-age=18000
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '16373'
+ Content-Type:
+ - application/zip
+ Date:
+ - Tue, 30 Nov 2021 23:21:11 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=ivLK0LsG8VMVXrTDzuQA8gO4FuBiG3ZxVV2%2Bwr8le7%2BVKCA9EOrEeoISNkH2vT8vBDQAvlYFOJdfjQBAOGREZJusdckgfAZKh%2FohFzSF8sANJDckE6Ww%2BFfaQzUDvpM61h%2BNEgiub41gShtv0ryXquw%3D"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Vary:
+ - Accept-Encoding
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ etag:
+ - '"17c44-3ff5-5caec1195be09"'
+ last-modified:
+ - Wed, 01 Sep 2021 09:55:39 GMT
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/subliminal_patch/cassettes/test_hosszupuska/test_list_subtitles_episode.yaml b/tests/subliminal_patch/cassettes/test_hosszupuska/test_list_subtitles_episode.yaml
new file mode 100644
index 000000000..aa3c2d680
--- /dev/null
+++ b/tests/subliminal_patch/cassettes/test_hosszupuska/test_list_subtitles_episode.yaml
@@ -0,0 +1,891 @@
+interactions:
+- request:
+ body: null
+ headers:
+ User-Agent:
+ - Sub-Zero/2
+ method: GET
+ uri: http://hosszupuskasub.com/sorozatok.php?cim=American+Horror+Story&evad=10&resz=01&nyelvtipus=%25&x=24&y=8
+ response:
+ body:
+ string: !!binary |
+ PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cHM6
+ Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgo8aHRtbCB4bWxucz0iaHR0cHM6Ly93
+ d3cudzMub3JnLzE5OTkveGh0bWwiIGxhbmc9Imh1LUhVIj4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1
+ aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIiBjaGFyc2V0PSJpc28tODg1OS0y
+ IiAvPgo8dGl0bGU+LSBIb3NzenVQdXNrYSBTdWJ0aXRsZXMgLSBGZWxpcmF0b2sgbGV09mx06XNl
+ IG1pbmRlbiBtZW5ueWlz6WdiZW4hIC0gU29yb3phdG9rLCBmaWxtZWsgZm9yZO104XNhIC08L3Rp
+ dGxlPgo8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iSG9zc3p1UHVza2EgU3VidGl0
+ bGVzIC0gRmVsaXJhdG9rIGxldPZsdOlzZSBtaW5kZW4gbWVubnlpc+lnYmVuISAtIFNvcm96YXRv
+ aywgZmlsbWVrIGZvcmTtdOFzYSIgLz4KPG1ldGEgbmFtZT0iYXV0aG9yIiBjb250ZW50PSJIb3Nz
+ enVwdXNrYSwgaHR0cHM6Ly93d3cuaG9zc3p1cHVza2FzdWIuY29tIiAvPgo8bWV0YSBuYW1lPSJs
+ YW5ndWFnZSIgY29udGVudD0iaHVuZ2FyaWFuIiAvPgo8bWV0YSBuYW1lPSJrZXl3b3JkcyIgY29u
+ dGVudD0iRmVsaXJhdG9rLCBGZWxpcmF0LCBmZWxpcmF0b2sgaHUsIEZlbGlyYXRvayBGaWxtZWto
+ ZXosIEZlbGlyYXRvayBTb3JvemF0LCBGZWxpcmF0b2sgRmlsbWVrLCBGZWxpcmF0b2sgRmlsbWVr
+ aGV6LCBGZWxpcmF0b2sgU29yb3phdG9raG96LCBTb3JvemF0IGZlbGlyYXRvaywgRmlsbWZlbGly
+ YXRvaywgRmVsaXJhdG9rIEZpbG1la25laywgRmVsaXJhdG9rIFNvcm96YXRva25haywgRmVsaXJh
+ dG9rIExldPZsdOlzZSwgU3VidGl0bGUsIFN1YnRpdGxlcyI+CjxtZXRhIG5hbWU9Ik1TU21hcnRU
+ YWdzUHJldmVudFBhcnNpbmciIGNvbnRlbnQ9InRydWUiIC8+CjxtZXRhIG5hbWU9IlJvYm90cyIg
+ Y29udGVudD0iaW5kZXgsIGZvbGxvdyIgLz4KPG1ldGEgbmFtZT0iRG9jdW1lbnQtc3RhdGUiIGNv
+ bnRlbnQ9IkR5bmFtaWMiIC8+CjxtZXRhIG5hbWU9InJldml6aXQtYWZ0ZXIiIGNvbnRlbnQ9IjEg
+ ZGF5IiAvPgo8bGluayByZWw9InNob3J0Y3V0IGljb24iIGhyZWY9ImZhdmljb24uaWNvIiB0eXBl
+ PSJpbWFnZS94LWljb24iPgo8bGluayByZWw9Imljb24iIGhyZWY9ImZhdmljb24uaWNvIiB0eXBl
+ PSJpbWFnZS94LWljb24iPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9ImNzcy9ocC5jc3Mi
+ IHR5cGU9InRleHQvY3NzIiAvPgo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0
+ ZXh0L2phdmFzY3JpcHQiIHNyYz0iYWpheC5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgbGFuZ3VhZ2U9
+ ImphdmFzY3JpcHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJjb2xsYXBzZS5qcyI+PC9z
+ Y3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVy
+ eS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIvL2FqYXguZ29v
+ Z2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeXVpLzEuMTAuNC9qcXVlcnktdWkubWluLmpzIj48
+ L3NjcmlwdD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkEjbWVudXVqOmxpbmsge3RleHQtZGVj
+ b3JhdGlvbjogbm9uZTsgY29sb3I6ICAjRkZGRkZGOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2Vp
+ Z2h0OiBib2xkOyB9DQpBI21lbnV1ajp2aXNpdGVkIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNv
+ bG9yOiAgI0ZGRkZGRjsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogYm9sZDsgfQ0KQSNt
+ ZW51dWo6YWN0aXZlIHt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGNvbG9yOiAgI0ZGRkZGRjsgZm9u
+ dC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogYm9sZDsgfQ0KQSNtZW51dWo6aG92ZXIge3RleHQt
+ ZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6ICNGRkZGRkY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13
+ ZWlnaHQ6IGJvbGQ7IH0NCmltZy5taWRkbGUgeyB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9DQo8
+ L3N0eWxlPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJocHJvdGF0ZS5qcyI+
+ PC9zY3JpcHQ+CjxzY3JpcHQ+IA0KICAgICQoZnVuY3Rpb24oKXsNCiAgICAgICQoIiNpbmNsdWRl
+ ZENvbnRlbnQiKS5sb2FkKCJodHRwczovL2xhbmRjb21wdXRlci5odS9sYW5kY29tcHV0ZXJocC5o
+ dG1sIik7IA0KICAgIH0pOw0KICAgIDwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
+ cmlwdCIgc3JjPSJodHRwczovL2hvc3N6dXB1c2thc3ViLmNvbS9iYW5uZXJzLm1pbi5qcyI+PC9z
+ Y3JpcHQ+CjxzY3JpcHQgc3JjPSdodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9hcGku
+ anMnPjwvc2NyaXB0Pgo8bGluayBocmVmPSJjc3MvcmF0aW5nX3N0eWxlLmNzcyIgcmVsPSJzdHls
+ ZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCI+CjwvaGVhZD4KPGJvZHk+CjxkaXYg
+ aWQ9ImZiLXJvb3QiPjwvZGl2Pgo8c2NyaXB0PihmdW5jdGlvbihkLCBzLCBpZCkgew0KICB2YXIg
+ anMsIGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07DQogIGlmIChkLmdldEVsZW1l
+ bnRCeUlkKGlkKSkgcmV0dXJuOw0KICBqcyA9IGQuY3JlYXRlRWxlbWVudChzKTsganMuaWQgPSBp
+ ZDsNCiAganMuc3JjID0gJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvaHVfSFUvc2RrLmpz
+ I3hmYm1sPTEmdmVyc2lvbj12Mi4xMSZhcHBJZD0xODA2OTgyOTg2MTkxOTkxJzsNCiAgZmpzLnBh
+ cmVudE5vZGUuaW5zZXJ0QmVmb3JlKGpzLCBmanMpOw0KfShkb2N1bWVudCwgJ3NjcmlwdCcsICdm
+ YWNlYm9vay1qc3NkaycpKTs8L3NjcmlwdD4KPGNlbnRlcj48c2NyaXB0IGxhbmd1YWdlPSJKYXZh
+ U2NyaXB0IiBzcmM9ImJhbm5lcmVrMi5qcyI+PC9zY3JpcHQ+PC9jZW50ZXI+CjxzY3JpcHQ+DQoN
+ CiQoJ2JvZHknKS5jbGljayhmdW5jdGlvbihlKXsNCiAgICBpZiAoZS50YXJnZXQgPT09IHRoaXMp
+ IHsNCiAgICAgICAgd2luZG93Lm9wZW4oImh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vaGlyZGV0
+ ZXMucGhwIiwgIl9ibGFuayIpDQogICAgfQ0KfSk7DQo8L3NjcmlwdD4KPHRhYmxlIGFsaWduPSJj
+ ZW50ZXIiIGJhY2tncm91bmQ9ImNzcy9tZW51YmcucG5nIiB3aWR0aD0iOTQwIj4KPHRyPgo8dGQg
+ YWxpZ249ImNlbnRlciI+PGltZyBjbGFzcz0ibWlkZGxlIiBzcmM9ImNzcy9tZW51aWNvbi9Ib21l
+ LWljb24ucG5nIiB3aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiIHZlcnRpY2FsLWFsaWduPSJtaWRk
+ bGUiPjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vaW5kZXgucGhwIiBzdHlsZT0i
+ dGV4dC1kZWNvcmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+RvVv
+ bGRhbDwvYj48L2E+PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiPjxpbWcgY2xhc3M9Im1pZGRsZSIg
+ c3JjPSJjc3MvbWVudWljb24vZm9ydW0ucG5nIiB3aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiPjxh
+ IGhyZWY9Imh0dHBzOi8vZm9ydW0uaG9zc3p1cHVza2FzdWIuY29tIiBzdHlsZT0idGV4dC1kZWNv
+ cmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+RvNydW08L2I+PC9h
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21l
+ bnVpY29uL2hpcmVrLnBuZyIgd2lkdGg9IjMyIiBhbGlnbj0ibWlkZGxlIj48YSBocmVmPSJodHRw
+ czovL3dlYm1vb3ZpZXMuY29tL2Jsb2ciIHRhcmdldD0iX2JsYW5rIiBzdHlsZT0idGV4dC1kZWNv
+ cmF0aW9uIDogbm9uZTsiPjxmb250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+SO1yZWs8L2I+PC9h
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21l
+ bnVpY29uL3dlYm1vb3ZpZXNpY29uLnBuZyIgd2lkdGg9IjMyIiBhbGlnbj0ibWlkZGxlIj48YSBo
+ cmVmPSJodHRwczovL3dlYm1vb3ZpZXMuY29tL3R2LXNob3dzIiBzdHlsZT0idGV4dC1kZWNvcmF0
+ aW9uIDogbm9uZTsiIHRhcmdldD0iX2JsYW5rIiBhbHQ9Ik9ubGluZSBmaWxtZWssIG9ubGluZSBz
+ b3JvemF0b2ssIHNvcm96YXRvayBu6Xrpc2UsIGZpbG1la27peulzZSI+PGZvbnQgY29sb3I9Indo
+ aXRlIj4mbmJzcDs8Yj5Tb3JvemF0b2sgT25saW5lPC9iPjwvYT48L3RkPgo8dGQgYWxpZ249ImNl
+ bnRlciI+PGltZyBjbGFzcz0ibWlkZGxlIiBzcmM9ImNzcy9tZW51aWNvbi91cGxvYWQucG5nIiB3
+ aWR0aD0iMzIiIGFsaWduPSJtaWRkbGUiPjxhIGhyZWY9Imh0dHBzOi8vaG9zc3p1cHVza2FzdWIu
+ Y29tL2ZlbHRvbHRlcy5waHAiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb24gOiBub25lOyI+PGZvbnQg
+ Y29sb3I9IndoaXRlIj4mbmJzcDs8Yj5GZWx09mx06XM8L2I+PC9hPjwvdGQ+Cjx0ZCBhbGlnbj0i
+ Y2VudGVyIj48aW1nIGNsYXNzPSJtaWRkbGUiIHNyYz0iY3NzL21lbnVpY29uL2hpcmRldG5lbC5w
+ bmciIHdpZHRoPSIzMiIgYWxpZ249Im1pZGRsZSI+PGEgaHJlZj0iaHR0cHM6Ly9ob3NzenVwdXNr
+ YXN1Yi5jb20vaGlyZGV0ZXMucGhwIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uIDogbm9uZTsiPjxm
+ b250IGNvbG9yPSJ3aGl0ZSI+Jm5ic3A7PGI+SGlyZGV0bulsPzwvYj48L2E+PC90ZD4KPHRkIGFs
+ aWduPSJjZW50ZXIiPjxpbWcgY2xhc3M9Im1pZGRsZSIgc3JjPSJjc3MvbWVudWljb24vY2hhdC5w
+ bmciIHdpZHRoPSIzMiIgYWxpZ249Im1pZGRsZSI+PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJv
+ b2suY29tL3BnL2hvc3N6dXB1c2thc3ViL2Fib3V0LyIgc3R5bGU9InRleHQtZGVjb3JhdGlvbiA6
+ IG5vbmU7IiB0YXJnZXQ9Il9ibGFuayI+PGZvbnQgY29sb3I9IndoaXRlIj4mbmJzcDs8Yj5LYXBj
+ c29sYXQ8L2I+PC9hPjwvdGQ+CjwvZm9udD4KPC90cj4KPC90YWJsZT4KPC9jZW50ZXI+CjxkaXYg
+ aWQ9InN0cmFua2EiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IC8qPCFbQ0RBVEFb
+ Ki8galF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpIHtqUXVlcnkoIi50aGVibG9nd2lk
+ Z2V0cyIpLmhvdmVyKGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5zdG9wKCkuYW5pbWF0ZSh7cmln
+ aHQ6ICIwIn0sICJtZWRpdW0iKTt9LCBmdW5jdGlvbigpIHtqUXVlcnkodGhpcykuc3RvcCgpLmFu
+ aW1hdGUoe3JpZ2h0OiAiLTMwMCJ9LCAibWVkaXVtIik7fSwgNTAwKTt9KTsgLypdXT4qLyA8L3Nj
+ cmlwdD4gPHN0eWxlIHR5cGU9InRleHQvY3NzIj4gLnRoZWJsb2d3aWRnZXRze2JhY2tncm91bmQ6
+ IHVybCgiaHR0cHM6Ly8zLmJwLmJsb2dzcG90LmNvbS8tVGFaUkx2NjZmOGcvVW9NblR5VGJGNkkv
+ QUFBQUFBQUFBR1kvVTRxY2YtU1A2ZDAvVGhlQmxvZ1dpZGdldHNfZmFjZWJvb2tfd2lkZ2V0LnBu
+ ZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsg
+ ZmxvYXQ6IHJpZ2h0O2hlaWdodDogMjcwcHg7cGFkZGluZzogMCA1cHggMCA0NnB4O3dpZHRoOiAy
+ OTVweDt6LWluZGV4OiAgOTk5OTk7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6LTMwMHB4O3RvcDoxNSU7
+ fSAudGhlYmxvZ3dpZGdldHMgZGl2eyBwYWRkaW5nOiAwOyBtYXJnaW4tcmlnaHQ6LThweDsgYm9y
+ ZGVyOjRweCBzb2xpZCAgIzNiNTk5ODsgYmFja2dyb3VuZDojZmFmYWZhO30gLnRoZWJsb2d3aWRn
+ ZXRzIHNwYW57Ym90dG9tOiA0cHg7Zm9udDogOHB4ICJsdWNpZGEgZ3JhbmRlIix0YWhvbWEsdmVy
+ ZGFuYSxhcmlhbCxzYW5zLXNlcmlmO3Bvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogNnB4O3RleHQt
+ YWxpZ246IHJpZ2h0O3otaW5kZXg6IDk5OTk5O30gLnRoZWJsb2d3aWRnZXRzIHNwYW4gYXtjb2xv
+ cjogZ3JheTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC50aGVibG9nd2lkZ2V0cyBzcGFuIGE6aG92
+ ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IH0gPC9zdHlsZT4KPGRpdiBjbGFzcz0idGhl
+ YmxvZ3dpZGdldHMiIHN0eWxlPSIiPgo8ZGl2Pgo8aWZyYW1lIHNyYz0iaHR0cHM6Ly93d3cuZmFj
+ ZWJvb2suY29tL3BsdWdpbnMvbGlrZWJveC5waHA/aHJlZj1odHRwcyUzQSUyRiUyRmZhY2Vib29r
+ LmNvbSUyRmhvc3N6dXB1c2thc3ViJndpZHRoPTI5NSZjb2xvcnNjaGVtZT1saWdodCZzaG93X2Zh
+ Y2VzPXRydWUmYm9yZGVyX2NvbG9yPXdoaXRlJmNvbm5lY3Rpb25zPTkmc3RyZWFtPWZhbHNlJmhl
+ YWRlcj1mYWxzZSZoZWlnaHQ9MjcwIiBzY3JvbGxpbmc9Im5vIiBmcmFtZWJvcmRlcj0iMCIgc2Ny
+ b2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjogd2hpdGU7IG92ZXJmbG93OiBoaWRkZW47IGhlaWdo
+ dDogMjcwcHg7IHdpZHRoOiAyOTVweDtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6MDAwOyI+PC9p
+ ZnJhbWU+CjwvZGl2Pgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAvKjwh
+ W0NEQVRBWyovIGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKSB7alF1ZXJ5KCIudGhl
+ YmxvZ3dpZGdldHMyIikuaG92ZXIoZnVuY3Rpb24oKSB7alF1ZXJ5KHRoaXMpLnN0b3AoKS5hbmlt
+ YXRlKHtyaWdodDogIjAifSwgIm1lZGl1bSIpO30sIGZ1bmN0aW9uKCkge2pRdWVyeSh0aGlzKS5z
+ dG9wKCkuYW5pbWF0ZSh7cmlnaHQ6ICItNjUwIn0sICJtZWRpdW0iKTt9LCA1MDApO30pOyAvKl1d
+ PiovIDwvc2NyaXB0PiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPiAudGhlYmxvZ3dpZGdldHMye2Jh
+ Y2tncm91bmQ6IHVybCgiaHR0cHM6Ly9ob3NzenVwdXNrYXN1Yi5jb20vY3NzL3R3aXR0ZXIucG5n
+ Iikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IGNlbnRlciB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBm
+ bG9hdDogcmlnaHQ7aGVpZ2h0OiAyNzBweDtwYWRkaW5nOiAwIDVweCAwIDQ2cHg7d2lkdGg6IDY0
+ NXB4O3otaW5kZXg6ICA5OTk5OTtwb3NpdGlvbjpmaXhlZDtyaWdodDotNjUwcHg7dG9wOjQwJTt9
+ IC50aGVibG9nd2lkZ2V0czIgZGl2eyBwYWRkaW5nOiAwOyBtYXJnaW4tcmlnaHQ6LTE2cHg7IGJv
+ cmRlcjo0cHggc29saWQgICMzYjU5OTg7IGJhY2tncm91bmQ6I2ZhZmFmYTt9IC50aGVibG9nd2lk
+ Z2V0czIgc3Bhbntib3R0b206IDRweDtmb250OiA4cHggImx1Y2lkYSBncmFuZGUiLHRhaG9tYSx2
+ ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7cG9zaXRpb246IGFic29sdXRlO3JpZ2h0OiA2cHg7dGV4
+ dC1hbGlnbjogcmlnaHQ7ei1pbmRleDogOTk5OTk7fSAudGhlYmxvZ3dpZGdldHMyIHNwYW4gYXtj
+ b2xvcjogZ3JheTt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC50aGVibG9nd2lkZ2V0czIgc3BhbiBh
+ OmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB9IDwvc3R5bGU+CjxkaXYgY2xhc3M9
+ InRoZWJsb2d3aWRnZXRzMiIgc3R5bGU9IiI+CjxkaXY+CjxpZnJhbWUgc3JjPSJodHRwczovL2hv
+ c3N6dXB1c2thc3ViLmNvbS90d2l0dGVyLmh0bWwiIHNjcm9sbGluZz0ieWVzIiBmcmFtZWJvcmRl
+ cj0iMCIgc2Nyb2xsaW5nPSJubyIgc3R5bGU9ImJvcmRlcjogd2hpdGU7IG92ZXJmbG93OiBoaWRk
+ ZW47IGhlaWdodDogMzIwcHg7IHdpZHRoOiA2NTBweDtiYWNrZ3JvdW5kOiNmYWZhZmE7Y29sb3I6
+ MDAwOyI+PC9pZnJhbWU+CjxzY3JpcHQgYXN5bmMgc3JjPSdodHRwczovL2hvc3N6dXB1c2thc3Vi
+ LmNvbS93aWRnZXRzLmpzJyBjaGFyc2V0PSd1dGYtOCc+PC9zY3JpcHQ+CjwvZGl2Pgo8L2Rpdj4K
+ PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjaGFyc2V0PSJ1dGYtOCI+CjxociBjb2xv
+ cj0iI2NjY2NjYyIgc3R5bGU9ImJvcmRlcjogMXB4IGRvdHRlZCAjY2NjY2NjIj4KPHRhYmxlIHdp
+ ZHRoPSI5OSUiIGFsaWduPSJjZW50ZXIiPgo8dHI+Cjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQw
+ IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlcmxv
+ Z28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGV3YWxraW5nZGVhZCIgdGFyZ2V0
+ PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2tpc2tlcC90aGV3YWxraW5nZGVhZC5wbmciIGFsdD0i
+ IiB3aWR0aD0iODAiIGJvcmRlcj0iMCI+PC9hPjwvZGl2PjwvdGQ+PHRkIHdpZHRoPSIxMDMiIGhl
+ aWdodD0iNDAiIG9ubW91c2VvdmVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVybG9nby5wbmcpJzsiIG9ubW91c2VvdXQ9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdl
+ PSd1cmwoY3NzL292ZXIyLmpwZyknOyI+PGRpdiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJodHRw
+ Oi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2VyaWFsPWRleHRlciIgdGFyZ2V0
+ PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2tpc2tlcC9kZXh0ZXIucG5nIiBhbHQ9IiIgd2lkdGg9
+ IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQw
+ IiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3Zlcmxv
+ Z28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNz
+ cy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6
+ dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGV3YWxraW5nZGVhZHdvcmxkYmV5
+ b25kIiB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJjc3Mva2lza2VwL3RoZXdhbGtpbmdkZWFk
+ d29ybGRiZXlvbmQucG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48
+ L3RkPjx0ZCB3aWR0aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5i
+ YWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlz
+ LnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249
+ ImNlbnRlciI+PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhw
+ P3NlcmlhbD1idWxsIiB0YXJnZXQ9Il9wYXJlbnQiPjxpbWcgc3JjPSJjc3Mva2lza2VwL2J1bGwu
+ cG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0
+ aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tn
+ cm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEg
+ aHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD15b3Vu
+ Z3NoZWxkb24iIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAveW91bmdzaGVs
+ ZG9uLnBuZyIgYWx0PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48dGQg
+ d2lkdGg9IjEwMyIgaGVpZ2h0PSI0MCIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3Vu
+ ZEltYWdlPSd1cmwoY3NzL292ZXJsb2dvLnBuZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5i
+ YWNrZ3JvdW5kSW1hZ2U9J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij48ZGl2IGFsaWduPSJjZW50ZXIi
+ PjxhIGhyZWY9Imh0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBocD9zZXJpYWw9
+ YmF0d29tYW4iIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvYmF0d29tYW4u
+ cG5nIiBhbHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0
+ aD0iMTAzIiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tn
+ cm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEg
+ aHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD13YWxr
+ ZXIiIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvd2Fsa2VyLnBuZyIgYWx0
+ PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48dGQgd2lkdGg9IjEwMyIg
+ aGVpZ2h0PSI0MCIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwo
+ Y3NzL292ZXJsb2dvLnBuZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij48ZGl2IGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0
+ dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vc29yb3phdG9rLnBocD9zZXJpYWw9YWxsYW1lcmljYW4i
+ IHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvYWxsYW1lcmljYW4ucG5nIiBh
+ bHQ9IiIgd2lkdGg9IjgwIiBib3JkZXI9IjAiPjwvYT48L2Rpdj48L3RkPjx0ZCB3aWR0aD0iMTAz
+ IiBoZWlnaHQ9IjQwIiBvbm1vdXNlb3Zlcj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9J3Vy
+ bChjc3Mvb3ZlcmxvZ28ucG5nKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJ
+ bWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPjxkaXYgYWxpZ249ImNlbnRlciI+PGEgaHJlZj0i
+ aHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1zdXBlcmdpcmwi
+ IHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9raXNrZXAvc3VwZXJnaXJsLnBuZyIgYWx0
+ PSIiIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC9kaXY+PC90ZD48L3RyPjx0cj48dGQgdmFs
+ aWduPSJ0b3AiPjxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczAyZTAzPC9zdHJvbmc+Jm5i
+ c3A7PGltZyBzcmM9ImZsYWdzLzEuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48
+ YnI+PHNwYW4gY2xhc3M9InN0eWxlMSI+KHJlcGFjayBhbXpuIHdlYnJpcC1udGIsIHJlcGFjayBh
+ bXpuIHdlYiBkbC1udGIpPC9zcGFuPjwvZGl2PjwvdGQ+PHRkIHZhbGlnbj0idG9wIj48ZGl2IGFs
+ aWduPSJjZW50ZXIiPjxzdHJvbmc+IHMwOWUwNDwvc3Ryb25nPiZuYnNwOzxpbWcgc3JjPSJmbGFn
+ cy8xLmdpZiIgYWx0PSIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMCI+PGJyPjxzcGFuIGNsYXNzPSJz
+ dHlsZTEiPihhbXpuIHdlYnJpcC1udGIsIGFtem4gd2ViIGRsLW50Yiwgd2ViLWdsaGYpPC9zcGFu
+ PjwvZGl2PjwvdGQ+PHRkIHZhbGlnbj0idG9wIj48ZGl2IGFsaWduPSJjZW50ZXIiPjxzdHJvbmc+
+ IHMwMmUwOTwvc3Ryb25nPiZuYnNwOzxpbWcgc3JjPSJmbGFncy8yLmdpZiIgYWx0PSIiIHdpZHRo
+ PSIxOCIgaGVpZ2h0PSIxMCI+PGJyPjxzcGFuIGNsYXNzPSJzdHlsZTEiPih3ZWJyaXAtaW9uMTAs
+ IHdlYi1hZmcsIHdlYi1jYWtlcyk8L3NwYW4+PC9kaXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxk
+ aXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczA2ZTA2PC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9
+ ImZsYWdzLzIuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xh
+ c3M9InN0eWxlMSI+KHdlYnJpcC1pb24xMCwgd2ViLWFmZywgd2ViLWdvc3NpcCk8L3NwYW4+PC9k
+ aXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxkaXYgYWxpZ249ImNlbnRlciI+PHN0cm9uZz4gczA1
+ ZTA3PC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9ImZsYWdzLzEuZ2lmIiBhbHQ9IiIgd2lkdGg9IjE4
+ IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xhc3M9InN0eWxlMSI+KHdlYnJpcC1pb24xMCwgd2Vi
+ LWNha2VzKTwvc3Bhbj48L2Rpdj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2Vu
+ dGVyIj48c3Ryb25nPiBzMDNlMDc8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMi5naWYi
+ IGFsdD0iIiB3aWR0aD0iMTgiIGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4o
+ aGR0di1hZmcsIGhkdHYtcm14LCA3MjBwLXN5bmNvcHksIDcyMHAtcm10ZWFtKTwvc3Bhbj48L2Rp
+ dj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25nPiBzMDJl
+ MDI8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMS5naWYiIGFsdD0iIiB3aWR0aD0iMTgi
+ IGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4od2VicmlwLWlvbjEwLCBhbXpu
+ IHdlYnJpcC1mbHV4LCBhbXpuIHdlYiBkbC1mbHV4LCB3ZWItYWZnLCB3ZWItZ29zc2lwKTwvc3Bh
+ bj48L2Rpdj48L3RkPjx0ZCB2YWxpZ249InRvcCI+PGRpdiBhbGlnbj0iY2VudGVyIj48c3Ryb25n
+ PiBzMDRlMDU8L3N0cm9uZz4mbmJzcDs8aW1nIHNyYz0iZmxhZ3MvMi5naWYiIGFsdD0iIiB3aWR0
+ aD0iMTgiIGhlaWdodD0iMTAiPjxicj48c3BhbiBjbGFzcz0ic3R5bGUxIj4oaGR0di1hZmcsIDcy
+ MHAtc3luY29weSk8L3NwYW4+PC9kaXY+PC90ZD48dGQgdmFsaWduPSJ0b3AiPjxkaXYgYWxpZ249
+ ImNlbnRlciI+PHN0cm9uZz4gczA2ZTIwPC9zdHJvbmc+Jm5ic3A7PGltZyBzcmM9ImZsYWdzLzEu
+ Z2lmIiBhbHQ9IiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEwIj48YnI+PHNwYW4gY2xhc3M9InN0eWxl
+ MSI+KHdlYnJpcC1pb24xMCwgYW16biB3ZWJyaXAtbnRiLCBhbXpuIHdlYiBkbC1udGIpPC9zcGFu
+ PjwvZGl2PjwvdGQ+CjwvdHI+CjwvdGFibGU+CjxociBjb2xvcj0iI2NjY2NjYyIgc3R5bGU9ImJv
+ cmRlcjogMXB4IGRvdHRlZCAjY2NjY2NjIj4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3Bh
+ Y2luZz0iMCIgYm9yZGVyPSIwIiBiZ2NvbG9yPSJkYXJrZ3JheSIgd2lkdGg9Ijc4MCIgYWxpZ249
+ ImNlbnRlciI+Cjx0cj48dGQ+Cjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBjZWxsc3Bh
+ Y2luZz0iMSIgY2VsbHBhZGRpbmc9IjUiPgo8dHIgYmdjb2xvcj0iI2U2ZTZlNiI+Cjx0ZCBoZWln
+ aHQ9IjUwIiBhbGlnbj0ibGVmdCI+CjxhIGhyZWY9Imh0dHA6Ly9pbmZvLmhvc3N6dXB1c2thc3Vi
+ LmNvbSIgdGFyZ2V0PSJfYmxhbmsiPgo8aW1nIHNyYz0iY3NzL2luZm9iYW5uZXIzLnBuZyIgd2lk
+ dGg9IjQ0MCIgaGVpZ2h0PSI2MCIgYWx0PSdoaXJkZXNzIGl0dCcgYm9yZGVyPSIwIj48L2E+Cgo8
+ L2E+CjwvdGQ+PHRkPgo8YSBocmVmPSJodHRwczovL3BjLW1heC5odS90ZXJtZWsta2VyZXNlcy8/
+ c2VhcmNoPSsrKyIgdGFyZ2V0PSJfYmxhbmsiPgo8aW1nIHNyYz0iY3NzL2FuaW1hbHRfaGlyZGV0
+ ZXNfaG9zc3p1cHVza2FfMDEwX0IuZ2lmIiB3aWR0aD0iNDYwIiBoZWlnaHQ9IjYwIiBhbHQ9J2hh
+ c3pu4Wx0IHN64W3tdPNn6XBlayBvbGNz824nIGJvcmRlcj0iMCI+CjwvYT4KPC90ZD4KPC90cj4K
+ PC90YWJsZT4KPC90ZD48L3RyPgo8L3RhYmxlPgo8aHIgY29sb3I9IiNjY2NjY2MiIHN0eWxlPSJi
+ b3JkZXI6IDFweCBkb3R0ZWQgI2NjY2NjYyI+CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQogICAg
+ IC5zZWFyY2gtYm94ew0KICAgICAgICB3aWR0aDogNjQwcHg7DQogICAgICAgIHBvc2l0aW9uOiBy
+ ZWxhdGl2ZTsNCiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOw0KCQkNCgkNCiAgICB9DQog
+ ICAgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT0idGV4dCJdew0KICAgICAgICBib3JkZXI6IDJweCBz
+ b2xpZCAjQ0NDQ0NDOw0KCSAgICBib3JkZXItcmFkaXVzOiA4cHg7DQoJICAgIGZvbnQtc2l6ZTog
+ MjRweDsNCgkgICAgaGVpZ2h0OiA1MHB4Ow0KCSAgICBsaW5lLWhlaWdodDogMzBweDsNCgkgICAg
+ b3V0bGluZTogbWVkaXVtIG5vbmU7DQoJICAgIHBhZGRpbmc6IDhweCAxMnB4Ow0KCSAgICB3aWR0
+ aDogNTgwcHg7DQogICAgfQ0KICAgIC5yZXN1bHR7DQogICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
+ ZTsgICAgICAgIA0KICAgICAgICB6LWluZGV4OiA5OTk7DQogICAgICAgIHRvcDogMTAwJTsNCiAg
+ ICAgICAgbGVmdDogMDsNCiAgICB9DQogICAgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT0idGV4dCJd
+ LCAucmVzdWx0ew0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgICAgYm94LXNpemluZzogYm9y
+ ZGVyLWJveDsNCiAgICB9DQogICAgLyogRm9ybWF0dGluZyByZXN1bHQgaXRlbXMgKi8NCiAgICAu
+ cmVzdWx0IHB7DQoJCWJhY2tncm91bmQ6ICNmMmYyZjI7DQoJICAgIGJvcmRlcjogMnB4IHNvbGlk
+ ICNDQ0NDQ0M7DQogIAkgICAgbWFyZ2luOiAwOw0KCQlmb250LXNpemU6IDE2cHg7DQogICAgICAg
+ IHBhZGRpbmc6IDdweCAxMHB4Ow0KICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjQ0NDQ0NDOw0K
+ ICAgICAgICBib3JkZXItdG9wOiBub25lOw0KCQljdXJzb3I6IHBvaW50ZXI7DQogICAgICAgIA0K
+ CSAgICAgICANCiAgICB9DQoJLnJlc3VsdCB0YWJsZXsNCgkJd2lkdGg6IDYxNnB4Ow0KCQliYWNr
+ Z3JvdW5kOiAjZjJmMmYyOw0KCSAgICBib3JkZXI6IDJweCBzb2xpZCAjQ0NDQ0NDOw0KICAJICAg
+ IG1hcmdpbjogMDsNCgkJZm9udC1zaXplOiAxNHB4Ow0KICAgICAgICBwYWRkaW5nOiA3cHggMTBw
+ eDsNCiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI0NDQ0NDQzsNCiAgICAgICAgYm9yZGVyLXRv
+ cDogbm9uZTsNCgkJY3Vyc29yOiBwb2ludGVyOw0KICAgICAgICANCgkgICAgICAgDQogICAgfQ0K
+ ICAgIC5yZXN1bHQgcDpob3ZlcnsNCiAgICAgICAgYmFja2dyb3VuZDogI0NDQzsNCgkJYm9yZGVy
+ OiAycHggc29saWQgI0NDQ0NDQzsNCiAgCSAgICBtYXJnaW46IDA7DQoJCWZvbnQtc2l6ZTogMTZw
+ eDsNCiAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7DQogICAgICAgIGJvcmRlcjogMXB4IHNvbGlk
+ ICNDQ0NDQ0M7DQogICAgICAgIGJvcmRlci10b3A6IG5vbmU7DQogICAgfQ0KCS5yZXN1bHQgdGFi
+ bGU6aG92ZXJ7DQoJCXdpZHRoOiA2MTZweDsNCiAgICAgICAgYmFja2dyb3VuZDogI0NDQzsNCgkJ
+ Ym9yZGVyOiAycHggc29saWQgI0NDQ0NDQzsNCiAgCSAgICBtYXJnaW46IDA7DQoJCWZvbnQtc2l6
+ ZTogMTRweDsNCiAgICAgICAgcGFkZGluZzogN3B4IDEwcHg7DQogICAgICAgIGJvcmRlcjogMXB4
+ IHNvbGlkICNDQ0NDQ0M7DQogICAgICAgIGJvcmRlci10b3A6IG5vbmU7DQogICAgfQ0KPC9zdHls
+ ZT4KPHN0eWxlPg0KCQ0KCS5tZW51IHsNCglmb250LWZhbWlseTogYXJpYWwgYmxhY2s7DQoJY29s
+ b3I6ICMwMDAwMDA7DQoJZm9udC1zaXplOiAyMnB4Ow0KCUE6bGluayB7IHRleHQtZGVjb3JhdGlv
+ bjogbm9uZTt9DQogICAgQTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOw0KICAgICAg
+ ICAgICAgY29sb3I6ICMwMDAwMDA7IH0NCiAgICBBOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOiBu
+ b25lOw0KICAgICAgICAgIGNvbG9yOiAjNjY5OUNDOyB9DQoJfQ0KCS5tZW51MXsNCglmb250LWZh
+ bWlseTogYXJpYWwgYmxhY2s7DQoJZm9udC1zaXplOiAxNnB4Ow0KCUE6bGluayB7IHRleHQtZGVj
+ b3JhdGlvbjogbm9uZTsgY29sb3I6ICNlZWVlZWU7fQ0KICAgIEE6dmlzaXRlZCB7IHRleHQtZGVj
+ b3JhdGlvbjogbm9uZTsNCiAgICAgICAgICAgIGNvbG9yOiAjOTk5OTk5OyB9DQogICAgQTpob3Zl
+ ciB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsNCiAgICAgICAgICBjb2xvcjogIzY2OTlDQzsgfQ0K
+ CX0NCgkNCgkNCgkucGVyIHsNCglmb250LWZhbWlseTogYXJpYWwgYmxhY2s7DQoJY29sb3I6ICMw
+ MDAwMDA7DQoJZm9udC10eXBlOiBib2xkOw0KCWZvbnQtc2l6ZTogMjJweDsNCgl9DQoJDQoJLnRh
+ YmxlX2JvZHl7DQoJCWJhY2tncm91bmQtaW1hZ2U6dXJsKCdjc3Mva2VyZXNvYmFja3MuanBnJyk7
+ DQoJCWZpbHRlcjphbHBoYShvcGFjaXR5PTkwKTsgLW1vei1vcGFjaXR5OjAuNTsgb3BhY2l0eTog
+ MS41Ow0KCQkNCgl9DQoJCQ0KCQkNCn0NCg0KICAgCQ0KPC9zdHlsZT4KPHNjcmlwdCBzcmM9Imh0
+ dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KPHNj
+ cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24o
+ KXsNCiAgICAkKCcuc2VhcmNoLWJveCBpbnB1dFt0eXBlPSJ0ZXh0Il0nKS5vbigia2V5dXAgaW5w
+ dXQiLCBmdW5jdGlvbigpew0KICAgICAgICAvKiBHZXQgaW5wdXQgdmFsdWUgb24gY2hhbmdlICov
+ DQogICAgICAgIHZhciBpbnB1dFZhbCA9ICQodGhpcykudmFsKCk7DQogICAgICAgIHZhciByZXN1
+ bHREcm9wZG93biA9ICQodGhpcykuc2libGluZ3MoIi5yZXN1bHQiKTsNCiAgICAgICAgaWYoaW5w
+ dXRWYWwubGVuZ3RoKXsNCiAgICAgICAgICAgICQuZ2V0KCJiYWNrZW5kLXNlYXJjaC5waHAiLCB7
+ dGVybTogaW5wdXRWYWx9KS5kb25lKGZ1bmN0aW9uKGRhdGEpew0KICAgICAgICAgICAgICAgIC8v
+ IERpc3BsYXkgdGhlIHJldHVybmVkIGRhdGEgaW4gYnJvd3Nlcg0KICAgICAgICAgICAgICAgIHJl
+ c3VsdERyb3Bkb3duLmh0bWwoZGF0YSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgfSBlbHNl
+ ew0KICAgICAgICAgICAgcmVzdWx0RHJvcGRvd24uZW1wdHkoKTsNCiAgICAgICAgfQ0KICAgIH0p
+ Ow0KICAgIA0KICAgIC8vIFNldCBzZWFyY2ggaW5wdXQgdmFsdWUgb24gY2xpY2sgb2YgcmVzdWx0
+ IGl0ZW0NCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAiLnJlc3VsdCBwIiwgZnVuY3Rpb24o
+ KXsNCiAgICAgICAgJCh0aGlzKS5wYXJlbnRzKCIuc2VhcmNoLWJveCIpLmZpbmQoJ2lucHV0W3R5
+ cGU9InRleHQiXScpLnZhbCgkKHRoaXMpLnRleHQoKSk7DQogICAgICAgICQodGhpcykucGFyZW50
+ KCIucmVzdWx0IikuZW1wdHkoKTsNCiAgICB9KTsNCn0pOw0KPC9zY3JpcHQ+Cjx0YWJsZSB3aWR0
+ aD0iOTAwIiBjbGFzcz0idGFibGVfYm9keSIgYm9yZGVyPSIwIiBhbGlnbj0iY2VudGVyIj4KPHRy
+ Pjx0ZD4KPGNlbnRlcj4KPGltZyBzcmM9ImNzcy9iYWxueWlsLnBuZyIgd2lkdGg9IjIxIj48YSBo
+ cmVmPSJzb3JvemF0b2sucGhwIiBpZD0ibWVudTMiPjxzcGFuIGNsYXNzPSJtZW51Ij48Yj5Tb3Jv
+ emF0b2s8L2I+PC9zcGFuPjwvYT4mbmJzcDs8c3BhbiBjbGFzcz0icGVyIj4tPC9zcGFuPiZuYnNw
+ OzxhIGhyZWY9ImZpbG1lay5waHAiIGlkPSJtZW51MyI+PHNwYW4gY2xhc3M9Im1lbnUxIj5GaWxt
+ ZWs8L3NwYW4+PC9hPgombmJzcDsmbmJzcDsmbmJzcDsKPHRhYmxlPjx0cj48dGQ+Cjxmb3JtIGFj
+ dGlvbj0ic29yb3phdG9rLnBocCIgbmFtZT0icHJlcmVnIiBtZXRob2Q9ImdldCI+CjxzcGFuIGNs
+ YXNzPSJzdHlsZTIiPjxzdHJvbmc+PC9zdHJvbmc+PC9zcGFuPgo8L3RkPgo8dGQ+Cgo8ZGl2IGNs
+ YXNzPSJzZWFyY2gtYm94Ij4KPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImNpbSIgYXV0b2NvbXBs
+ ZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSLNcmQgYmUgYSBrZXJlc2VuZPUgc29yb3phdCBj7W3pdC4u
+ LiIgLz4KPGRpdiBjbGFzcz0icmVzdWx0Ij48L2Rpdj4KPC9kaXY+CjwvdGQ+PC90cj48L3RhYmxl
+ Pgo8dGFibGU+PHRyPgo8dGQ+CiZuYnNwOwo8c2VsZWN0IG5hbWU9ImV2YWQiIGNsYXNzPSJpbnB1
+ dDIiPgo8b3B0aW9uIHZhbHVlPSIiPul2YWQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczAxIj4x
+ PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMwMiI+Mjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJz
+ MDMiPjM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczA0Ij40PC9vcHRpb24+CjxvcHRpb24gdmFs
+ dWU9InMwNSI+NTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMDYiPjY8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iczA3Ij43PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMwOCI+ODwvb3B0aW9uPgo8
+ b3B0aW9uIHZhbHVlPSJzMDkiPjk8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczEwIj4xMDwvb3B0
+ aW9uPgo8b3B0aW9uIHZhbHVlPSJzMTEiPjExPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMxMiI+
+ MTI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczEzIj4xMzwvb3B0aW9uPgo8b3B0aW9uIHZhbHVl
+ PSJzMTQiPjE0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMxNSI+MTU8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iczE2Ij4xNjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMTciPjE3PC9vcHRpb24+
+ CjxvcHRpb24gdmFsdWU9InMxOCI+MTg8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczE5Ij4xOTwv
+ b3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjAiPjIwPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMy
+ MSI+MjE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczIyIj4yMjwvb3B0aW9uPgo8b3B0aW9uIHZh
+ bHVlPSJzMjMiPjIzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9InMyNCI+MjQ8L29wdGlvbj4KPG9w
+ dGlvbiB2YWx1ZT0iczI1Ij4yNTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjYiPjI2PC9vcHRp
+ b24+CjxvcHRpb24gdmFsdWU9InMyNyI+Mjc8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iczI4Ij4y
+ ODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJzMjkiPjI5PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9
+ InMzMCI+MzA8L29wdGlvbj4KPC9zZWxlY3Q+Ci0KPC90ZD4KPHRkPgo8c2VsZWN0IG5hbWU9InJl
+ c3oiIGNsYXNzPSJpbnB1dDIiPgo8b3B0aW9uIHZhbHVlPSIiPnLpc3o8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iZTAxIj4xPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUwMiI+Mjwvb3B0aW9uPgo8
+ b3B0aW9uIHZhbHVlPSJlMDMiPjM8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTA0Ij40PC9vcHRp
+ b24+CjxvcHRpb24gdmFsdWU9ImUwNSI+NTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMDYiPjY8
+ L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTA3Ij43PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUw
+ OCI+ODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMDkiPjk8L29wdGlvbj4KPG9wdGlvbiB2YWx1
+ ZT0iZTEwIj4xMDwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMTEiPjExPC9vcHRpb24+CjxvcHRp
+ b24gdmFsdWU9ImUxMiI+MTI8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTEzIj4xMzwvb3B0aW9u
+ Pgo8b3B0aW9uIHZhbHVlPSJlMTQiPjE0PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUxNSI+MTU8
+ L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTE2Ij4xNjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJl
+ MTciPjE3PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUxOCI+MTg8L29wdGlvbj4KPG9wdGlvbiB2
+ YWx1ZT0iZTE5Ij4xOTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjAiPjIwPC9vcHRpb24+Cjxv
+ cHRpb24gdmFsdWU9ImUyMSI+MjE8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTIyIj4yMjwvb3B0
+ aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjMiPjIzPC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUyNCI+
+ MjQ8L29wdGlvbj4KPG9wdGlvbiB2YWx1ZT0iZTI1Ij4yNTwvb3B0aW9uPgo8b3B0aW9uIHZhbHVl
+ PSJlMjYiPjI2PC9vcHRpb24+CjxvcHRpb24gdmFsdWU9ImUyNyI+Mjc8L29wdGlvbj4KPG9wdGlv
+ biB2YWx1ZT0iZTI4Ij4yODwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSJlMjkiPjI5PC9vcHRpb24+
+ CjxvcHRpb24gdmFsdWU9ImUzMCI+MzA8L29wdGlvbj4KPC9zZWxlY3Q+Ci0KPC90ZD4KPHRkPgo8
+ c2VsZWN0IG5hbWU9Im55ZWx2dGlwdXMiIGNsYXNzPSJpbnB1dDIiPgo8b3B0aW9uIHZhbHVlPSIl
+ Ij5ueWVsdjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIlIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFn
+ ZTogdXJsKGZsYWdzL2FsbC5naWYpO2JhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7dGV4dC1h
+ bGlnbjpyaWdodDsNCmxlZnQtcGFkZGluZzoxNXB4OyI+bWluZDwvb3B0aW9uPgo8b3B0aW9uIHZh
+ bHVlPSIxIiBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKGZsYWdzLzEuZ2lmKTtiYWNrZ3Jv
+ dW5kLXJlcGVhdDogbm8tcmVwZWF0O3RleHQtYWxpZ246cmlnaHQ7DQpsZWZ0LXBhZGRpbmc6MTVw
+ eDsiPm1hZ3lhcjwvb3B0aW9uPgo8b3B0aW9uIHZhbHVlPSIyIiBzdHlsZT0iYmFja2dyb3VuZC1p
+ bWFnZTogdXJsKGZsYWdzLzIuZ2lmKTtiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O3RleHQt
+ YWxpZ246cmlnaHQ7DQpsZWZ0LXBhZGRpbmc6MTVweDsiPmFuZ29sPC9vcHRpb24+Cjwvc2VsZWN0
+ Pgo8L3RkPgo8dGQ+CjxzcGFuIGNsYXNzPSJzdHlsZTEiPjxiPlRlbGplcyDpdmFkOjwvYj4gPGlu
+ cHV0IHR5cGU9ImNoZWNrYm94IiBuYW1lPSJ0ZWxqZXNldmFkIiB2YWx1ZT0iZSIgc3R5bGU9ImN1
+ cnNvcjogdXJsKCdjc3MvbGluay5wbmcnKSwgZGVmYXVsdDsiIG9uY2hhbmdlPSJpZih0aGlzLmNo
+ ZWNrZWQpe3RoaXMuZm9ybS5lbGVtZW50c1snZXZhZCddLmRpc2FibGVkPXRydWU7IHRoaXMuZm9y
+ bS5lbGVtZW50c1sncmVzeiddLmRpc2FibGVkPXRydWU7fWVsc2V7dGhpcy5mb3JtLmVsZW1lbnRz
+ WydldmFkJ10uZGlzYWJsZWQ9ZmFsc2U7IHRoaXMuZm9ybS5lbGVtZW50c1sncmVzeiddLmRpc2Fi
+ bGVkPWZhbHNlfTsiPjwvc3R5bGU+IAo8L3RkPgo8dGQ+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3Jj
+ PSJjc3MvbGFzc3VrLmdpZiIgc3R5bGU9ImN1cnNvcjogdXJsKCdjc3MvbGluay5wbmcnKSwgZGVm
+ YXVsdDsiPgo8L2Zvcm0+CjwvdHI+PC90ZD48L3RhYmxlPgo8L3RkPjwvdHI+PC90YWJsZT4KPGNl
+ bnRlcj4KPGhyIGNvbG9yPSIjY2NjY2NjIiBzdHlsZT0iYm9yZGVyOiAxcHggZG90dGVkICNjY2Nj
+ Y2MiPgo8c2NyaXB0Pg0KICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsnR29vZ2xlQW5hbHl0
+ aWNzT2JqZWN0J109cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7DQogIChpW3JdLnE9aVtyXS5xfHxb
+ XSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgpO2E9cy5jcmVhdGVFbGVtZW50
+ KG8pLA0KICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUobylbMF07YS5hc3luYz0xO2Euc3JjPWc7
+ bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pDQogIH0pKHdpbmRvdyxkb2N1bWVudCwnc2Ny
+ aXB0JywnaHR0cHM6Ly93d3cuZ29vZ2xlLWFuYWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2En
+ KTsNCg0KICBnYSgnY3JlYXRlJywgJ1VBLTMyODA5NjMtMTAnLCAnYXV0bycpOw0KICBnYSgnc2Vu
+ ZCcsICdwYWdldmlldycpOw0KDQo8L3NjcmlwdD4KPGhyIGNvbG9yPSIjY2NjY2NjIiBzdHlsZT0i
+ Ym9yZGVyOiAxcHggZG90dGVkICNjY2NjY2MiPgo8aHIgd2lkdGg9JzE1MCc+CjxjZW50ZXI+Cjxm
+ b250IGNvbG9yPSJncmF5IiBzaXplPSIyIj48Yj48aW1nIHNyYz0iY3NzL2Vsb3pvMS5wbmciIHdp
+ ZHRoPSIzNSIgYm9yZGVyPSIwIj48L2I+PC9mb250PiZuYnNwOyZuYnNwOzxmb250IGNvbG9yPSIj
+ MDAwMDAwIiBzaXplPSIzIj48Yj4xPC9iPiZuYnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2su
+ cGhwP2xhcHN6YW09MiIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+
+ MjwvZm9udD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIiPiZuYnNwOzwvZm9udD48
+ YSBocmVmPSJzb3JvemF0b2sucGhwP2xhcHN6YW09MyIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0i
+ IzY2NjY2NiIgc2l6ZT0iMiI+MzwvZm9udD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9
+ IjIiPiZuYnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2sucGhwP2xhcHN6YW09NCIgaWQ9Im1l
+ bnUyIj48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+NDwvZm9udD48L2E+PGZvbnQgY29s
+ b3I9IiM2NjY2NjYiIHNpemU9IjIiPiZuYnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2sucGhw
+ P2xhcHN6YW09NSIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+NTwv
+ Zm9udD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIiPiZuYnNwOzwvZm9udD48YSBo
+ cmVmPSJzb3JvemF0b2sucGhwP2xhcHN6YW09NiIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0iIzY2
+ NjY2NiIgc2l6ZT0iMiI+NjwvZm9udD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIi
+ PiZuYnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2sucGhwP2xhcHN6YW09NyIgaWQ9Im1lbnUy
+ Ij48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+NzwvZm9udD48L2E+PGZvbnQgY29sb3I9
+ IiM2NjY2NjYiIHNpemU9IjIiPiZuYnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2sucGhwP2xh
+ cHN6YW09OCIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0iIzY2NjY2NiIgc2l6ZT0iMiI+ODwvZm9u
+ dD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIiPiZuYnNwOzwvZm9udD48YSBocmVm
+ PSJzb3JvemF0b2sucGhwP2xhcHN6YW09OSIgaWQ9Im1lbnUyIj48Zm9udCBjb2xvcj0iIzY2NjY2
+ NiIgc2l6ZT0iMiI+OTwvZm9udD48L2E+PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIiPiZu
+ YnNwOzwvZm9udD48YSBocmVmPSJzb3JvemF0b2sucGhwP2xhcHN6YW09MTAiIGlkPSJtZW51MiI+
+ PGZvbnQgY29sb3I9IiM2NjY2NjYiIHNpemU9IjIiPjEwPC9mb250PjwvYT48Zm9udCBjb2xvcj0i
+ IzY2NjY2NiIgc2l6ZT0iMiI+Jm5ic3A7PC9mb250PiZuYnNwOzxhIGhyZWY9InNvcm96YXRvay5w
+ aHA/bGFwc3phbT0yIiBpZD0ibWVudTIiPjxpbWcgc3JjPSJjc3Mva292ZXRrZXpvLnBuZyIgd2lk
+ dGg9IjM1IiBib3JkZXI9IjAiPjwvZm9udD48L2E+Jm5ic3A7Jm5ic3A7Jm5ic3A7PC9jZW50ZXI+
+ PGJyPjxociB3aWR0aD0nMTYwJz48aHRtbD4KPGhlYWQ+CjxzY3JpcHQgc3JjPSJqcXVlcnktMi4x
+ LjEuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5Pgo8ZGl2IGlkPSJ2aXRyaW5lIj48L2Rpdj4K
+ PHNjcmlwdD4NCmZ1bmN0aW9uIGdldFJhbmRvbVVybCh1cmxzKSB7DQogICAgdmFyIG1pbkluZGV4
+ ID0gMDsNCiAgICB2YXIgbWF4SW5kZXggPSB1cmxzLmxlbmd0aCAtIDAuNTsNCiAgICB2YXIgcmFu
+ ZG9tSW5kZXggPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAobWF4SW5kZXggLSBtaW5JbmRl
+ eCkpICsgbWluSW5kZXg7DQogICAgcmV0dXJuIHVybHNbcmFuZG9tSW5kZXhdOw0KfQ0KdmFyIHVy
+ bHMgPSBbDQogICAgIiIsDQogICAgImh0dHBzOi8vcGMtbWF4Lmh1L3Rlcm1lay1rZXJlc2VzLz9z
+ ZWFyY2g9KysrIl07DQoNCnZhciByYW5kb21TZWxlY3RlZFVybCA9IGdldFJhbmRvbVVybCh1cmxz
+ KTsNCg0KJCgiI3ZpdHJpbmUiKS5odG1sKA0KIjxpZnJhbWUgY2xhc3M9J3JhbmRvbS1pZnJhbWUn
+ IHNyYz0nIiArIHJhbmRvbVNlbGVjdGVkVXJsICsgIicgd2lkdGg9JzAnIGhlaWdodD0nMCcgZnJh
+ bWVib3JkZXI9JzAnIHNjcm9sbGluZz0nbm8nIHNlYW1sZXNzPSdzZWFtbGVzcyc+PC9pZnJhbWU+
+ Iik7DQo8L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+PHRpdGxlPkFtZXJpY2FuIEhvcnJvciBTdG9y
+ eSBmZWxpcmF0PC90aXRsZT4KPHA+PGI+CjxkaXYgY2xhc3M9ImtlcmVzbyIgYWxpZ249ImNlbnRl
+ ciI+PGZvbnQgY29sb3I9IzAwMDAwMD48Y2VudGVyPlRhbCYjMjI1O2xhdG9rIGVycmUgYSBraWZl
+ amV6JiMyMzM7c3JlOiAiPC9mb250Pjxmb250IGNvbG9yPSJibHVlIiBzaXplPSIyIj4mbmJzcDtB
+ bWVyaWNhbiBIb3Jyb3IgU3RvcnkmbmJzcDsxMDAxPC9mb250Pjxmb250IGNvbG9yPSMwMDAwMDA+
+ IjwvZm9udD48L2NlbnRlcj48L2Rpdj48L2I+PC9wPgo8dGFibGUgd2lkdGg9IjkzMCIgYm9yZGVy
+ PSIwIiBiZ2NvbG9yPSIjZGRkZGRkIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIHZh
+ bGlnbj0idG9wIj4KPHRyPgo8dGQgdmFsaWduPXRvcD4KPHRhYmxlIHdpZHRoPSIxMzgiIGJvcmRl
+ cj0iMCIgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSI4IiBjbGFzcz0ic2FtcGxlIj4KPHRy
+ IGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEyMCIgYmFja2dy
+ b3VuZD0iY3NzL29sZGFsdG9wMS5wbmciPjxiPk9sZGFsYWrhbmzzPC9iPjwvdGQ+CjwvdHI+Cjx0
+ ciBiZ2NvbG9yPSIjZTllOWU5Ij4KPHRkPgo8Y2VudGVyPjxhIGhyZWY9Imh0dHBzOi8vemVuZS5o
+ b3NzenVwdXNrYXN1Yi5jb20iIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iaHR0cHM6Ly9ob3Nz
+ enVwdXNrYXN1Yi5jb20vY3NzL3plbmVzemlnZXQuZ2lmIiB3aWR0aD0iMTIwIiBib3JkZXI9IjAi
+ PjwvYT48L2NlbnRlcj4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxp
+ Z249ImNlbnRlciIgd2lkdGg9IjEyMCIgYmFja2dyb3VuZD0iY3NzL29sZGFsdG9wMS5wbmciPjxi
+ PlR3aXR0ZXI8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNlOWU5ZTkiPgo8dGQ+CjxjZW50
+ ZXI+CjxhIGhyZWY9Imh0dHBzOi8vdHdpdHRlci5jb20vaG9zc3p1cHVza2FzdWJzIiB0YXJnZXQ9
+ Il9ibGFuayI+PGltZyBzcmM9ImNzcy90d2l0dGVyMi5wbmciIGJvcmRlcj0iMCIgd2lkdGg9IjEx
+ MCI+PC9hPgo8L2NlbnRlcj4KPC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNjY2NjY2MiPjx0ZCBh
+ bGlnbj0iY2VudGVyIiB3aWR0aD0iMTIwIiBzdHlsZT0nYmFja2dyb3VuZC1pbWFnZTp1cmwoY3Nz
+ L29sZGFsdG9wMS5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Oyc+PGI+Rm9yZCZp
+ YWN1dGU7dCZvYWN1dGU7aSBha3Rpdml0JmFhY3V0ZTtzOjwvYj48L3RkPjwvdHI+Cjx0ciBiZ2Nv
+ bG9yPSIjZTllOWU5Ij48dGQgYWxpZ249ImxlZnQiPgo8aW1nIHNyYz1jc3MvYXJhbnkucG5nIHdp
+ ZHRoPTE1PiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+QW5vbnltdXM8L2I+PGZvbnQgY29s
+ b3I9IzY2NjY2Nj4oMTAxOCk8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9XCIxMjBcIj48
+ aW1nIHNyYz1jc3MvZXp1c3QucG5nIHdpZHRoPTE1PiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2
+ NjY+Y2Fzc29uZTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigzNzMpPC9mb250PjxociBjb2xvcj0j
+ YzljOWM5IHdpZHRoPVwiMTIwXCI+PGltZyBzcmM9Y3NzL2Jyb256LnBuZyB3aWR0aD0xNT4mbmJz
+ cDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PlN6aWdvbnk8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4o
+ MzUxKTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEyMFwiPjxpbWcgc3JjPWNzcy91
+ c2VyLnBuZyB3aWR0aD0xMj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2Pm1hZ2k8L2I+PGZv
+ bnQgY29sb3I9IzY2NjY2Nj4oMzE5KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEy
+ MFwiPjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0xMj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0j
+ NjY2NjY2PkNpY01heCAmIE1hWnNvbGE8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oMzE1KTwvZm9u
+ dD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEyMFwiPjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3
+ aWR0aD0xMj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PmdyZWthPC9iPjxmb250IGNvbG9y
+ PSM2NjY2NjY+KDMwNyk8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9XCIxMjBcIj48aW1n
+ IHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9MTI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5Q
+ aWxvdDwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigyODYpPC9mb250PjxociBjb2xvcj0jYzljOWM5
+ IHdpZHRoPVwiMTIwXCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdpZHRoPTEyPiZuYnNwOzxiPjxm
+ b250IGNvbG9yPSM2NjY2NjY+U2FuZGVyczwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigyNzApPC9m
+ b250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPVwiMTIwXCI+PGltZyBzcmM9Y3NzL3VzZXIucG5n
+ IHdpZHRoPTEyPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+SHVuQmF1ZXI8L2I+PGZvbnQg
+ Y29sb3I9IzY2NjY2Nj4oMjM4KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD1cIjEyMFwi
+ PjxpbWcgc3JjPWNzcy91c2VyLnBuZyB3aWR0aD0xMj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2
+ NjY2PkNhaW48L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oMjMyKTwvZm9udD48aHIgY29sb3I9I2M5
+ YzljOSB3aWR0aD1cIjEyMFwiPiA8L3RkPjwvdHI+Cjx0ciBiZ2NvbG9yPSIjY2NjY2NjIj4KPHRk
+ IGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMjAiIHN0eWxlPSdiYWNrZ3JvdW5kLWltYWdlOnVybChj
+ c3Mvb2xkYWx0b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Jz48Yj5MZWdq
+ b2JiIGZlbHQmIzI0NjtsdCZvdGlsZGU7azo8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNl
+ OWU5ZTkiPgo8dGQgYWxpZ249ImxlZnQiPgo8aW1nIHNyYz1jc3MvYXJhbnkucG5nIHdpZHRoPSIx
+ NSI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5GcmVlZG9tPC9iPjxmb250IGNvbG9yPSM2
+ NjY2NjY+KDI4ODY0KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNy
+ Yz1jc3MvZXp1c3QucG5nIHdpZHRoPSIxNSI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5D
+ c+ljc2k8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oMTE1NTkpPC9mb250PjxociBjb2xvcj0jYzlj
+ OWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy9icm9uei5wbmcgd2lkdGg9IjE1Ij4mbmJzcDs8
+ Yj48Zm9udCBjb2xvcj0jNjY2NjY2PlBpbG90PC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDc1OTMp
+ PC9mb250PjxociBjb2xvcj0jYzljOWM5IHdpZHRoPSIxMDAiPjxpbWcgc3JjPWNzcy91c2VyLnBu
+ ZyB3aWR0aD0iMTIiPiZuYnNwOzxiPjxmb250IGNvbG9yPSM2NjY2NjY+YW5vbnltdXM8L2I+PGZv
+ bnQgY29sb3I9IzY2NjY2Nj4oNjg0NCk8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9IjEw
+ MCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdpZHRoPSIxMiI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9
+ IzY2NjY2Nj5TemFraTwvYj48Zm9udCBjb2xvcj0jNjY2NjY2PigyNjQwKTwvZm9udD48aHIgY29s
+ b3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4m
+ bmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PkFub255bW91czwvYj48Zm9udCBjb2xvcj0jNjY2
+ NjY2PigyNDIzKTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNyYz1j
+ c3MvdXNlci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PlN6aWdv
+ bnk8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oMTAxMyk8L2ZvbnQ+PGhyIGNvbG9yPSNjOWM5Yzkg
+ d2lkdGg9IjEwMCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdpZHRoPSIxMiI+Jm5ic3A7PGI+PGZv
+ bnQgY29sb3I9IzY2NjY2Nj5jYXNzb25lPC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDkxMik8L2Zv
+ bnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9IjEwMCI+PGltZyBzcmM9Y3NzL3VzZXIucG5nIHdp
+ ZHRoPSIxMiI+Jm5ic3A7PGI+PGZvbnQgY29sb3I9IzY2NjY2Nj5lc3p0aWNzaWxsYWc8L2I+PGZv
+ bnQgY29sb3I9IzY2NjY2Nj4oNTYwKTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAw
+ Ij48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0j
+ NjY2NjY2Pkx1bmFTb2w8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oNDk0KTwvZm9udD48aHIgY29s
+ b3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4m
+ bmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PkNhc2g8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4o
+ NDc0KTwvZm9udD48aHIgY29sb3I9I2M5YzljOSB3aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNl
+ ci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48Zm9udCBjb2xvcj0jNjY2NjY2PkNpY01heCAmIE1h
+ WnNvbGE8L2I+PGZvbnQgY29sb3I9IzY2NjY2Nj4oNDQ4KTwvZm9udD48aHIgY29sb3I9I2M5Yzlj
+ OSB3aWR0aD0iMTAwIj48aW1nIHNyYz1jc3MvdXNlci5wbmcgd2lkdGg9IjEyIj4mbmJzcDs8Yj48
+ Zm9udCBjb2xvcj0jNjY2NjY2PlN6ZXB5PC9iPjxmb250IGNvbG9yPSM2NjY2NjY+KDQ0Nyk8L2Zv
+ bnQ+PGhyIGNvbG9yPSNjOWM5Yzkgd2lkdGg9IjEwMCI+CjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9y
+ PSIjY2NjY2NjIj4KPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMjAiIHN0eWxlPSdiYWNrZ3Jv
+ dW5kLWltYWdlOnVybChjc3Mvb2xkYWx0b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y
+ ZXBlYXQ7Jz48Yj5NYWkgNSBsZWduJmVhY3V0ZTt6ZXR0ZWJiOjwvYj48L3RkPgo8L3RyPgo8dHIg
+ Ymdjb2xvcj0iI2U5ZTllOSI+Cjx0ZD4KPHRhYmxlIGNlbGxwYWRkaW5nPSIwIiBjZWxsc3BhY2lu
+ Zz0iMCIgYm9yZGVyPSIwIiBiZ2NvbG9yPSIjOEY5QTlFIiB2YWxpZ249InRvcCIgd2lkdGg9IjEw
+ MCUiPjx0ciBiZ2NvbG9yPSIjRTlFOUU5Ij48dGQgYWxpZ249ImxlZnQiPjxpbWcgc3JjPSdjc3Mv
+ a2lza2VwL21hcnZlbHN0aGVwdW5pc2hlci5wbmcnIHdpZHRoPScxMDAnPjxicj48Yj48YSBocmVm
+ PWRvd25sb2FkLnBocD9maWxlPTAwODUxOTQuemlwIGlkPW1lbnV0b3BsZXRvbHQ+PGZvbnQgY29s
+ b3I9IzY2NjY2Nj5NYXJ2ZWwncyBUaGUgUHVuaXNoZXIgczAxZTA5ICh3ZWJyaXAtcmFyYmcsIHdl
+ Yi1zdHJpZmUsIHdlYi1hZmcsIHdlYi1ybXRlYW0sIG5mIHdlYnJpcC1udGIsIHdlYnJpcC1wc2Es
+ IHdlYnJpcC1ybXRlYW0sIG5mIHdlYiBkbC1ybXRlYW0sIHdlYiBkbC1ybXRlYW0pPC9mb250Pjwv
+ Yj48L2E+PGhyIGNvbG9yPSNjY2NjY2M+PGJyPjxpbWcgc3JjPSdjc3Mva2lza2VwL2RhcmsucG5n
+ JyB3aWR0aD0nMTAwJz48YnI+PGI+PGEgaHJlZj1kb3dubG9hZC5waHA/ZmlsZT0wMDg1MTk1Lnpp
+ cCBpZD1tZW51dG9wbGV0b2x0Pjxmb250IGNvbG9yPSM2NjY2NjY+RGFyayBzMDFlMTAgKHdlYnJp
+ cC1yYXJiZywgd2VicmlwLXN0cmlmZSwgd2VicmlwLWFmZywgd2VicmlwLXJtdGVhbSwgaW50ZXJu
+ YWwgd2ViLXN0cmlmZSwgaW50ZXJuYWwgd2ViLXJtdGVhbSk8L2ZvbnQ+PC9iPjwvYT48aHIgY29s
+ b3I9I2NjY2NjYz48YnI+PGltZyBzcmM9J2Nzcy9raXNrZXAvc2hhbWVsZXNzdXMucG5nJyB3aWR0
+ aD0nMTAwJz48YnI+PGI+PGEgaHJlZj1kb3dubG9hZC5waHA/ZmlsZT0wMDg1MTc5LnppcCBpZD1t
+ ZW51dG9wbGV0b2x0Pjxmb250IGNvbG9yPSM2NjY2NjY+U2hhbWVsZXNzIChVUykgczA4ZTA2ICh3
+ ZWJyaXAtcmFyYmcsIHdlYi1zdHJpZmUsIHdlYi1hZmcsIHdlYi1jb252b3ksIHdlYi1ybXRlYW0s
+ IGFtem4gd2VicmlwLW50YiwgYW16biB3ZWIgZGwtbnRiLCB3ZWIgZGwtcm10ZWFtKTwvZm9udD48
+ L2I+PC9hPjxociBjb2xvcj0jY2NjY2NjPjxicj48aW1nIHNyYz0nY3NzL2tpc2tlcC9uY2lzLnBu
+ Zycgd2lkdGg9JzEwMCc+PGJyPjxiPjxhIGhyZWY9ZG93bmxvYWQucGhwP2ZpbGU9MDA4NTE5Ni56
+ aXAgaWQ9bWVudXRvcGxldG9sdD48Zm9udCBjb2xvcj0jNjY2NjY2Pk5DSVMgczE1ZTEwIChoZHR2
+ LWxvbCwgaGR0di1hZmcsIGhkdHYtcm14LCA3MjBwLWRpbWVuc2lvbiwgNzIwcC1wc2EsIDcyMHAt
+ cm10ZWFtLCAxMDgwcC1kaW1lbnNpb24sIDEwODBwLXJtdGVhbSk8L2ZvbnQ+PC9iPjwvYT48aHIg
+ Y29sb3I9I2NjY2NjYz48YnI+PGltZyBzcmM9J2Nzcy9raXNrZXAvaGF3YWlpZml2ZTAucG5nJyB3
+ aWR0aD0nMTAwJz48YnI+PGI+PGEgaHJlZj1kb3dubG9hZC5waHA/ZmlsZT0wMDg1MjAxLnppcCBp
+ ZD1tZW51dG9wbGV0b2x0Pjxmb250IGNvbG9yPSM2NjY2NjY+SGF3YWlpIEZpdmUtMCBzMDhlMDcg
+ KGhkdHYtbG9sLCBoZHR2LWFmZywgaGR0di1ybXgsIDcyMHAtZGltZW5zaW9uLCA3MjBwLXBzYSwg
+ NzIwcC1ybXRlYW0sIDEwODBwLWRpbWVuc2lvbiwgMTA4MHAtcm10ZWFtKTwvZm9udD48L2I+PC9h
+ PjxociBjb2xvcj0jY2NjY2NjPjxicj48L3RkPjwvdHI+PC90YWJsZT4gPC90ZD4KPC90cj4KPHRy
+ IGJnY29sb3I9IiNjY2NjY2MiPgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEyMCIgc3R5bGU9
+ J2JhY2tncm91bmQtaW1hZ2U6dXJsKGNzcy9vbGRhbHRvcDEucG5nKTsgYmFja2dyb3VuZC1yZXBl
+ YXQ6IG5vLXJlcGVhdDsnPjxiPlNvcm96YXRhaiZhYWN1dGU7bmwmb2FjdXRlOzo8L2I+PC90ZD4K
+ PC90cj4KPHRyIGJnY29sb3I9IiNlOWU5ZTkiPgo8dGQ+IDwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9y
+ PSIjY2NjY2NjIj4KPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRoPSIxMjAiIHN0eWxlPSdiYWNrZ3Jv
+ dW5kLWltYWdlOnVybChjc3Mvb2xkYWx0b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1y
+ ZXBlYXQ7Jz48Yj5IJmlhY3V0ZTtyZWs6PC9iPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZTll
+ OWU5Ij4KPHRkPiA8L3RkPgo8L3RyPgo8dHI+Cjx0ZCB2YWxpZ249dG9wIHN0eWxlPSdiYWNrZ3Jv
+ dW5kLWNvbG9yOiAjZGRkZGRkOyc+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CjwvdGQ+Cjx0ZCB2YWxp
+ Z249InRvcCI+CjxkaXYgaWQ9ImZiLXJvb3QiPjwvZGl2Pgo8c2NyaXB0PihmdW5jdGlvbihkLCBz
+ LCBpZCkgew0KICB2YXIganMsIGZqcyA9IGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUocylbMF07DQog
+ IGlmIChkLmdldEVsZW1lbnRCeUlkKGlkKSkgcmV0dXJuOw0KICBqcyA9IGQuY3JlYXRlRWxlbWVu
+ dChzKTsganMuaWQgPSBpZDsNCiAganMuc3JjID0gIi8vY29ubmVjdC5mYWNlYm9vay5uZXQvaHVf
+ SFUvc2RrLmpzI3hmYm1sPTEmdmVyc2lvbj12Mi4wIjsNCiAgZmpzLnBhcmVudE5vZGUuaW5zZXJ0
+ QmVmb3JlKGpzLCBmanMpOw0KfShkb2N1bWVudCwgJ3NjcmlwdCcsICdmYWNlYm9vay1qc3Nkaycp
+ KTs8L3NjcmlwdD4KPGNlbnRlcj48aW1nIHNyYz0naHR0cHM6Ly93d3cuaG9zc3p1cHVza2FzdWIu
+ Y29tL2Nzcy9mZWxzb3Nvci5qcGcnIHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwJyBib3JkZXI9JzAn
+ PjwvY2VudGVyPgo8Y2VudGVyPjxpZnJhbWUgc3JjPSJodHRwczovL3d3dy53ZWJtb292aWVzLmNv
+ bS9pbmRleC5waHA/bWVudT1ocF9zbWFydGJhciIgd2lkdGg9IjY1MCIgaGVpZ2h0PSIxMzAiIGZy
+ YW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIj48L2lmcmFtZT48L2NlbnRlcj4KPGNlbnRlcj48
+ aW1nIHNyYz0naHR0cHM6Ly93d3cuaG9zc3p1cHVza2FzdWIuY29tL2Nzcy9mZWxzb3Nvci5qcGcn
+ IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwJyBib3JkZXI9JzAnPjwvY2VudGVyPgo8YSBocmVmPSJo
+ aXJkZXRlcy5waHAiPjxpbWcgc3JjPSJjc3MvaGlyZGVzczY2MC5wbmciIGJvcmRlcj0iMCI+PC9h
+ PgoKPGNlbnRlcj48aW1nIHNyYz0naHR0cDovL3d3dy5ob3NzenVwdXNrYXN1Yi5jb20vY3NzL2Zl
+ bHNvc29yLmpwZycgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAnIGJvcmRlcj0nMCc+PC9jZW50ZXI+
+ PGNlbnRlcj48Zm9udCBzaXplPSczJz48Yj4tPSBMZWdmcmlzc2ViYiBzb3JvemF0IGZlbGlyYXRv
+ ayA9LTwvYj48L2ZvbnQ+PC9jZW50ZXI+Cjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIwIiBj
+ ZWxsc3BhY2luZz0iMiIgY2VsbHBhZGRpbmc9IjciPgo8dHIgYmdjb2xvcj0iI2NjY2NjYyI+Cjx0
+ ZCBhbGlnbj0ibGVmdCI+PGltZyBzcmM9ImNzcy9sb2dvLnBuZyI+PC90ZD4KPHRkIGFsaWduPSJs
+ ZWZ0IiB3aWR0aD0nMTAwJSc+PGltZyBzcmM9ImNzcy9zb3JjaW0yLnBuZyI+PC90ZD4KPHRkIGFs
+ aWduPSJjZW50ZXIiIHdpZHRoPScxMDAnPjxjZW50ZXI+PGltZyBzcmM9ImNzcy9ueWVsdi5wbmci
+ PjwvdGQ+Cjx0ZCBhbGlnbj0iY2VudGVyIiB3aWR0aD0nMTAwJz48Y2VudGVyPjxpbWcgc3JjPSJj
+ c3MvZm9yZGl0by5wbmciPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz48aW1nIHNyYz0iY3NzL2Rh
+ dHVtLnBuZyI+PC90ZD4KPHRkIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSJjc3MvaW5mbzIucG5n
+ Ij48L3RkPgo8dGQgYWxpZ249ImNlbnRlciI+PC90ZD48L3RyPjwvdGQ+PC90cj4KPHRyIGJnY29s
+ b3I9IiNFOUU5RTkiIG9ubW91c2VvdmVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJs
+ KGNzcy9vdmVyLmpwZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9
+ J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhyZWY9InNvcm96
+ YXRvay5waHA/c2VyaWFsPWFtZXJpY2FuaG9ycm9yc3RvcnkiPjxpbWcgc3JjPSJjc3MvYm9yaXRv
+ L2FtZXJpY2FuaG9ycm9yc3RvcnkucG5nIiB3aWR0aD0iODAiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+
+ Cjx0ZCBhbGlnbj0nbGVmdCc+PGEgaHJlZj0namF2YXNjcmlwdDpjb2xsYXBzZVRyKCJjb2xsYXBz
+ ZV9yb3dfMTMxMzU0Iik7IGFqYXhfcGFyc2VyKDEzMTM1NCwiY29sbGFwc2VfY29sXzEzMTM1NCIp
+ OycgaWQ9Im1lbnUiPjxiPkFtZXJpY2FuIEhvcnJvciBTdG9yeSBzMTBlMDE8L2I+PC9hPjxicj5B
+ bWVyaWNhbiBIb3Jyb3IgU3RvcnkgczEwZTAxIChhbXpuIHdlYnJpcC1udGIsIGFtem4gd2ViIGRs
+ LW50YikKPGJyPjxicj48YnI+Cjxicj4KPC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3Jj
+ PSdmbGFncy8xLmdpZicgYWx0PScnIGJvcmRlcj0nMCcgLz48L3RkPgo8dGQgYWxpZ249J2NlbnRl
+ cic+S2FpPC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjIwMjEtMDktMDE8L3RkPgo8dGQgYWxpZ249
+ J2xlZnQnIHdpZHRoPSI4MCI+Cjx0YWJsZT48dHI+PGEgaHJlZj0naHR0cDovL2luZm8uaG9zc3p1
+ cHVza2FzdWIuY29tL2tlcmVzZXM/cT1BbWVyaWNhbiBIb3Jyb3IgU3RvcnknIHRhcmdldD0nX2Js
+ YW5rJz48aW1nIHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDo3MHB4OyAgbWFyZ2luLXJpZ2h0OjBw
+ eCIgYm9yZGVyPSIwIiBhbHQ9ImluZm8uaG9zc3p1cHVza2FzdWIuY29tIC0gZmlsbWVrLCBzb3Jv
+ emF0b2sgYWRhdGLDoXppc2EiIHNyYz0iY3NzL2luZm9vbGRhbC5wbmciPjwvYT48YnI+PGJyPjxi
+ cj48YSBocmVmPSdodHRwOi8vd2VibW9vdmllcy5jb20vc2hvdy9BbWVyaWNhbi1Ib3Jyb3ItU3Rv
+ cnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHNyYz0nY3NzL3ZpZGVvd2ViLnBuZycgd2lkdGg9Jzcw
+ JyBoZWlnaHQ9JzI4Jz48L2E+PGJyPjxicj48YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5j
+ b20vc2hhcmVyL3NoYXJlci5waHA/dT1odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2FkYXRsYXAu
+ cGhwP2RhdGFfaWQ9MTMxMzU0IiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImNzcy9mc2hhcmUu
+ cG5nIiB3aWR0aD0iNjgiIGJvcmRlcj0iMCI+PC9hPgo8L3RyPgo8L3RhYmxlPjwvdGQ+Cjx0ZCBh
+ bGlnbj0nY2VudGVyJz48YSBocmVmPSJodHRwczovL2FkZi5seS8yNjYzMjg4L2h0dHA6Ly9ob3Nz
+ enVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhwP2ZpbGU9MDEyNDMzNi56aXAiIHRhcmdldD0iX2Js
+ YW5rIj48aW1nIHNyYz0iY3NzL2Rvd25sb2FkYWRmbHkyLnBuZyIgaWQ9ImNvbGxhcHNlX3BpY18x
+ MzEzNTQiIGJvcmRlcj0iMCI+PC9hPjxicj48YnI+PGEgaHJlZj0naHR0cDovL2hvc3N6dXB1c2th
+ c3ViLmNvbS9kb3dubG9hZC5waHA/ZmlsZT0wMTI0MzM2LnppcCcgdGFyZ2V0PSJfcGFyZW50Ij48
+ aW1nIHNyYz0iY3NzL2Rvd25sb2FkLmdpZiIgaWQ9ImNvbGxhcHNlX3BpY18xMzEzNTQiIGJvcmRl
+ cj0iMCI+PC9hPjwvdGQ+CjwvdHI+Cjx0ciBzdHlsZT0nZGlzcGxheTogbm9uZTsnIGJnY29sb3I9
+ IiNFNkZGQzYiIGlkPSJjb2xsYXBzZV9yb3dfMTMxMzU0Ij4KPHRkIGNvbHNwYW49IjciIGFsaWdu
+ PSdjZW50ZXInIGlkPSJjb2xsYXBzZV9jb2xfMTMxMzU0Ij48aW1nIHNyYz0iY3NzL2xvYWRpbmcu
+ Z2lmIj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI0U5RTlFOSIgb25tb3VzZW92ZXI9InRoaXMu
+ c3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwoY3NzL292ZXIuanBnKSc7IiBvbm1vdXNlb3V0PSJ0
+ aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPgo8dGQgYWxp
+ Z249J2NlbnRlcic+PGEgaHJlZj0ic29yb3phdG9rLnBocD9zZXJpYWw9YW1lcmljYW5ob3Jyb3Jz
+ dG9yeSI+PGltZyBzcmM9ImNzcy9ib3JpdG8vYW1lcmljYW5ob3Jyb3JzdG9yeS5wbmciIHdpZHRo
+ PSI4MCIgYm9yZGVyPSIwIj48L2E+PC90ZD4KPHRkIGFsaWduPSdsZWZ0Jz48YSBocmVmPSdqYXZh
+ c2NyaXB0OmNvbGxhcHNlVHIoImNvbGxhcHNlX3Jvd18xMzEzNTMiKTsgYWpheF9wYXJzZXIoMTMx
+ MzUzLCJjb2xsYXBzZV9jb2xfMTMxMzUzIik7JyBpZD0ibWVudSI+PGI+QW1lcmljYW4gSG9ycm9y
+ IFN0b3J5IHMxMGUwMTwvYj48L2E+PGJyPkFtZXJpY2FuIEhvcnJvciBTdG9yeSBzMTBlMDEgKGFt
+ em4gd2VicmlwLWZsdXgsIGFtem4gd2ViIGRsLWZsdXgsIHdlYi1nbGhmLCB3ZWItZ2dleikKPGJy
+ Pjxicj48YnI+Cjxicj4KPC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3JjPSdmbGFncy8x
+ LmdpZicgYWx0PScnIGJvcmRlcj0nMCcgLz48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+S2FpPC90
+ ZD4KPHRkIGFsaWduPSdjZW50ZXInPjIwMjEtMDktMDE8L3RkPgo8dGQgYWxpZ249J2xlZnQnIHdp
+ ZHRoPSI4MCI+Cjx0YWJsZT48dHI+PGEgaHJlZj0naHR0cDovL2luZm8uaG9zc3p1cHVza2FzdWIu
+ Y29tL2tlcmVzZXM/cT1BbWVyaWNhbiBIb3Jyb3IgU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1n
+ IHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDo3MHB4OyAgbWFyZ2luLXJpZ2h0OjBweCIgYm9yZGVy
+ PSIwIiBhbHQ9ImluZm8uaG9zc3p1cHVza2FzdWIuY29tIC0gZmlsbWVrLCBzb3JvemF0b2sgYWRh
+ dGLDoXppc2EiIHNyYz0iY3NzL2luZm9vbGRhbC5wbmciPjwvYT48YnI+PGJyPjxicj48YSBocmVm
+ PSdodHRwOi8vd2VibW9vdmllcy5jb20vc2hvdy9BbWVyaWNhbi1Ib3Jyb3ItU3RvcnknIHRhcmdl
+ dD0nX2JsYW5rJz48aW1nIHNyYz0nY3NzL3ZpZGVvd2ViLnBuZycgd2lkdGg9JzcwJyBoZWlnaHQ9
+ JzI4Jz48L2E+PGJyPjxicj48YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVy
+ L3NoYXJlci5waHA/dT1odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2FkYXRsYXAucGhwP2RhdGFf
+ aWQ9MTMxMzUzIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImNzcy9mc2hhcmUucG5nIiB3aWR0
+ aD0iNjgiIGJvcmRlcj0iMCI+PC9hPgo8L3RyPgo8L3RhYmxlPjwvdGQ+Cjx0ZCBhbGlnbj0nY2Vu
+ dGVyJz48YSBocmVmPSJodHRwczovL2FkZi5seS8yNjYzMjg4L2h0dHA6Ly9ob3NzenVwdXNrYXN1
+ Yi5jb20vZG93bmxvYWQucGhwP2ZpbGU9MDEyNDMzNS56aXAiIHRhcmdldD0iX2JsYW5rIj48aW1n
+ IHNyYz0iY3NzL2Rvd25sb2FkYWRmbHkyLnBuZyIgaWQ9ImNvbGxhcHNlX3BpY18xMzEzNTMiIGJv
+ cmRlcj0iMCI+PC9hPjxicj48YnI+PGEgaHJlZj0naHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9k
+ b3dubG9hZC5waHA/ZmlsZT0wMTI0MzM1LnppcCcgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0i
+ Y3NzL2Rvd25sb2FkLmdpZiIgaWQ9ImNvbGxhcHNlX3BpY18xMzEzNTMiIGJvcmRlcj0iMCI+PC9h
+ PjwvdGQ+CjwvdHI+Cjx0ciBzdHlsZT0nZGlzcGxheTogbm9uZTsnIGJnY29sb3I9IiNFNkZGQzYi
+ IGlkPSJjb2xsYXBzZV9yb3dfMTMxMzUzIj4KPHRkIGNvbHNwYW49IjciIGFsaWduPSdjZW50ZXIn
+ IGlkPSJjb2xsYXBzZV9jb2xfMTMxMzUzIj48aW1nIHNyYz0iY3NzL2xvYWRpbmcuZ2lmIj48L3Rk
+ Pgo8L3RyPgo8dHIgYmdjb2xvcj0iI0U5RTlFOSIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFj
+ a2dyb3VuZEltYWdlPSd1cmwoY3NzL292ZXIuanBnKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxl
+ LmJhY2tncm91bmRJbWFnZT0ndXJsKGNzcy9vdmVyMi5qcGcpJzsiPgo8dGQgYWxpZ249J2NlbnRl
+ cic+PGEgaHJlZj0ic29yb3phdG9rLnBocD9zZXJpYWw9YW1lcmljYW5ob3Jyb3JzdG9yeSI+PGlt
+ ZyBzcmM9ImNzcy9ib3JpdG8vYW1lcmljYW5ob3Jyb3JzdG9yeS5wbmciIHdpZHRoPSI4MCIgYm9y
+ ZGVyPSIwIj48L2E+PC90ZD4KPHRkIGFsaWduPSdsZWZ0Jz48YSBocmVmPSdqYXZhc2NyaXB0OmNv
+ bGxhcHNlVHIoImNvbGxhcHNlX3Jvd18xMzEzNTEiKTsgYWpheF9wYXJzZXIoMTMxMzUxLCJjb2xs
+ YXBzZV9jb2xfMTMxMzUxIik7JyBpZD0ibWVudSI+PGI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMx
+ MGUwMTwvYj48L2E+PGJyPkFtZXJpY2FuIEhvcnJvciBTdG9yeSBzMTBlMDEgKGhkdHYtY3JpbXNv
+ biwgaGR0di1hZmcsIDcyMHAtY3JpbXNvbikKPGJyPjxicj48YnI+Cjxicj4KPC90ZD4KPHRkIGFs
+ aWduPSdjZW50ZXInPjxpbWcgc3JjPSdmbGFncy8xLmdpZicgYWx0PScnIGJvcmRlcj0nMCcgLz48
+ L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+S2FpPC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjIwMjEt
+ MDgtMzE8L3RkPgo8dGQgYWxpZ249J2xlZnQnIHdpZHRoPSI4MCI+Cjx0YWJsZT48dHI+PGEgaHJl
+ Zj0naHR0cDovL2luZm8uaG9zc3p1cHVza2FzdWIuY29tL2tlcmVzZXM/cT1BbWVyaWNhbiBIb3Jy
+ b3IgU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSJmbG9hdDpsZWZ0OyB3aWR0aDo3
+ MHB4OyAgbWFyZ2luLXJpZ2h0OjBweCIgYm9yZGVyPSIwIiBhbHQ9ImluZm8uaG9zc3p1cHVza2Fz
+ dWIuY29tIC0gZmlsbWVrLCBzb3JvemF0b2sgYWRhdGLDoXppc2EiIHNyYz0iY3NzL2luZm9vbGRh
+ bC5wbmciPjwvYT48YnI+PGJyPjxicj48YSBocmVmPSdodHRwOi8vd2VibW9vdmllcy5jb20vc2hv
+ dy9BbWVyaWNhbi1Ib3Jyb3ItU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHNyYz0nY3NzL3Zp
+ ZGVvd2ViLnBuZycgd2lkdGg9JzcwJyBoZWlnaHQ9JzI4Jz48L2E+PGJyPjxicj48YSBocmVmPSJo
+ dHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/dT1odHRwOi8vaG9zc3p1
+ cHVza2FzdWIuY29tL2FkYXRsYXAucGhwP2RhdGFfaWQ9MTMxMzUxIiB0YXJnZXQ9Il9ibGFuayI+
+ PGltZyBzcmM9ImNzcy9mc2hhcmUucG5nIiB3aWR0aD0iNjgiIGJvcmRlcj0iMCI+PC9hPgo8L3Ry
+ Pgo8L3RhYmxlPjwvdGQ+Cjx0ZCBhbGlnbj0nY2VudGVyJz48YSBocmVmPSJodHRwczovL2FkZi5s
+ eS8yNjYzMjg4L2h0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhwP2ZpbGU9MDEy
+ NDMzMy56aXAiIHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2Rvd25sb2FkYWRmbHkyLnBu
+ ZyIgaWQ9ImNvbGxhcHNlX3BpY18xMzEzNTEiIGJvcmRlcj0iMCI+PC9hPjxicj48YnI+PGEgaHJl
+ Zj0naHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9hZC5waHA/ZmlsZT0wMTI0MzMzLnpp
+ cCcgdGFyZ2V0PSJfcGFyZW50Ij48aW1nIHNyYz0iY3NzL2Rvd25sb2FkLmdpZiIgaWQ9ImNvbGxh
+ cHNlX3BpY18xMzEzNTEiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CjwvdHI+Cjx0ciBzdHlsZT0nZGlz
+ cGxheTogbm9uZTsnIGJnY29sb3I9IiNFNkZGQzYiIGlkPSJjb2xsYXBzZV9yb3dfMTMxMzUxIj4K
+ PHRkIGNvbHNwYW49IjciIGFsaWduPSdjZW50ZXInIGlkPSJjb2xsYXBzZV9jb2xfMTMxMzUxIj48
+ aW1nIHNyYz0iY3NzL2xvYWRpbmcuZ2lmIj48L3RkPgo8L3RyPgo8dHIgYmdjb2xvcj0iI0U5RTlF
+ OSIgb25tb3VzZW92ZXI9InRoaXMuc3R5bGUuYmFja2dyb3VuZEltYWdlPSd1cmwoY3NzL292ZXIu
+ anBnKSc7IiBvbm1vdXNlb3V0PSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJsKGNzcy9v
+ dmVyMi5qcGcpJzsiPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0ic29yb3phdG9rLnBocD9z
+ ZXJpYWw9YW1lcmljYW5ob3Jyb3JzdG9yeSI+PGltZyBzcmM9ImNzcy9ib3JpdG8vYW1lcmljYW5o
+ b3Jyb3JzdG9yeS5wbmciIHdpZHRoPSI4MCIgYm9yZGVyPSIwIj48L2E+PC90ZD4KPHRkIGFsaWdu
+ PSdsZWZ0Jz48YSBocmVmPSdqYXZhc2NyaXB0OmNvbGxhcHNlVHIoImNvbGxhcHNlX3Jvd18xMzEy
+ NzAiKTsgYWpheF9wYXJzZXIoMTMxMjcwLCJjb2xsYXBzZV9jb2xfMTMxMjcwIik7JyBpZD0ibWVu
+ dSI+PGI+QW1lcmljYW4gSG9ycm9yIFN0b3J5IHMxMGUwMTwvYj48L2E+PGJyPkFtZXJpY2FuIEhv
+ cnJvciBTdG9yeSBzMTBlMDEgKGhkdHYtY3JpbXNvbiwgaGR0di1hZmcsIGhkdHYtcm14LCA3MjBw
+ LWNyaW1zb24sIDcyMHAtcHNhLCA3MjBwLXJtdGVhbSkKPGJyPjxicj48YnI+Cjxicj4KPC90ZD4K
+ PHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3JjPSdmbGFncy8yLmdpZicgYWx0PScnIGJvcmRlcj0n
+ MCcgLz48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+RnJlZWRvbTwvdGQ+Cjx0ZCBhbGlnbj0nY2Vu
+ dGVyJz4yMDIxLTA4LTI2PC90ZD4KPHRkIGFsaWduPSdsZWZ0JyB3aWR0aD0iODAiPgo8dGFibGU+
+ PHRyPjxhIGhyZWY9J2h0dHA6Ly9pbmZvLmhvc3N6dXB1c2thc3ViLmNvbS9rZXJlc2VzP3E9QW1l
+ cmljYW4gSG9ycm9yIFN0b3J5JyB0YXJnZXQ9J19ibGFuayc+PGltZyBzdHlsZT0iZmxvYXQ6bGVm
+ dDsgd2lkdGg6NzBweDsgIG1hcmdpbi1yaWdodDowcHgiIGJvcmRlcj0iMCIgYWx0PSJpbmZvLmhv
+ c3N6dXB1c2thc3ViLmNvbSAtIGZpbG1laywgc29yb3phdG9rIGFkYXRiw6F6aXNhIiBzcmM9ImNz
+ cy9pbmZvb2xkYWwucG5nIj48L2E+PGJyPjxicj48YnI+PGEgaHJlZj0naHR0cDovL3dlYm1vb3Zp
+ ZXMuY29tL3Nob3cvQW1lcmljYW4tSG9ycm9yLVN0b3J5JyB0YXJnZXQ9J19ibGFuayc+PGltZyBz
+ cmM9J2Nzcy92aWRlb3dlYi5wbmcnIHdpZHRoPSc3MCcgaGVpZ2h0PScyOCc+PC9hPjxicj48YnI+
+ PGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL3NoYXJlci9zaGFyZXIucGhwP3U9aHR0
+ cDovL2hvc3N6dXB1c2thc3ViLmNvbS9hZGF0bGFwLnBocD9kYXRhX2lkPTEzMTI3MCIgdGFyZ2V0
+ PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3MvZnNoYXJlLnBuZyIgd2lkdGg9IjY4IiBib3JkZXI9IjAi
+ PjwvYT4KPC90cj4KPC90YWJsZT48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+PGEgaHJlZj0iaHR0
+ cHM6Ly9hZGYubHkvMjY2MzI4OC9odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2Rvd25sb2FkLnBo
+ cD9maWxlPTAxMjQyNTMuemlwIiB0YXJnZXQ9Il9ibGFuayI+PGltZyBzcmM9ImNzcy9kb3dubG9h
+ ZGFkZmx5Mi5wbmciIGlkPSJjb2xsYXBzZV9waWNfMTMxMjcwIiBib3JkZXI9IjAiPjwvYT48YnI+
+ PGJyPjxhIGhyZWY9J2h0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhwP2ZpbGU9
+ MDEyNDI1My56aXAnIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9kb3dubG9hZC5naWYi
+ IGlkPSJjb2xsYXBzZV9waWNfMTMxMjcwIiBib3JkZXI9IjAiPjwvYT48L3RkPgo8L3RyPgo8dHIg
+ c3R5bGU9J2Rpc3BsYXk6IG5vbmU7JyBiZ2NvbG9yPSIjRTZGRkM2IiBpZD0iY29sbGFwc2Vfcm93
+ XzEzMTI3MCI+Cjx0ZCBjb2xzcGFuPSI3IiBhbGlnbj0nY2VudGVyJyBpZD0iY29sbGFwc2VfY29s
+ XzEzMTI3MCI+PGltZyBzcmM9ImNzcy9sb2FkaW5nLmdpZiI+PC90ZD4KPC90cj4KPHRyIGJnY29s
+ b3I9IiNFOUU5RTkiIG9ubW91c2VvdmVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0ndXJs
+ KGNzcy9vdmVyLmpwZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2U9
+ J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhyZWY9InNvcm96
+ YXRvay5waHA/c2VyaWFsPWFtZXJpY2FuaG9ycm9yc3RvcnkiPjxpbWcgc3JjPSJjc3MvYm9yaXRv
+ L2FtZXJpY2FuaG9ycm9yc3RvcnkucG5nIiB3aWR0aD0iODAiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+
+ Cjx0ZCBhbGlnbj0nbGVmdCc+PGEgaHJlZj0namF2YXNjcmlwdDpjb2xsYXBzZVRyKCJjb2xsYXBz
+ ZV9yb3dfMzcwNjUiKTsgYWpheF9wYXJzZXIoMzcwNjUsImNvbGxhcHNlX2NvbF8zNzA2NSIpOycg
+ aWQ9Im1lbnUiPjxiPkFtZXJpY2FuIEhvcnJvciBTdG9yeSBzMDFlMTA8L2I+PC9hPjxicj5BbWVy
+ aWNhbiBIb3Jyb3IgU3RvcnkgczAxZTEwIChoZHR2LWZxbSkKPGJyPjxicj48YnI+Cjxicj4KPC90
+ ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3JjPSdmbGFncy8xLmdpZicgYWx0PScnIGJvcmRl
+ cj0nMCcgLz48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+QmFydGEgSvN6c2VmPC90ZD4KPHRkIGFs
+ aWduPSdjZW50ZXInPjIwMTEtMTItMTA8L3RkPgo8dGQgYWxpZ249J2xlZnQnIHdpZHRoPSI4MCI+
+ Cjx0YWJsZT48dHI+PGEgaHJlZj0naHR0cDovL2luZm8uaG9zc3p1cHVza2FzdWIuY29tL2tlcmVz
+ ZXM/cT1BbWVyaWNhbiBIb3Jyb3IgU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSJm
+ bG9hdDpsZWZ0OyB3aWR0aDo3MHB4OyAgbWFyZ2luLXJpZ2h0OjBweCIgYm9yZGVyPSIwIiBhbHQ9
+ ImluZm8uaG9zc3p1cHVza2FzdWIuY29tIC0gZmlsbWVrLCBzb3JvemF0b2sgYWRhdGLDoXppc2Ei
+ IHNyYz0iY3NzL2luZm9vbGRhbC5wbmciPjwvYT48YnI+PGJyPjxicj48YSBocmVmPSdodHRwOi8v
+ d2VibW9vdmllcy5jb20vc2hvdy9BbWVyaWNhbi1Ib3Jyb3ItU3RvcnknIHRhcmdldD0nX2JsYW5r
+ Jz48aW1nIHNyYz0nY3NzL3ZpZGVvd2ViLnBuZycgd2lkdGg9JzcwJyBoZWlnaHQ9JzI4Jz48L2E+
+ PGJyPjxicj48YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5w
+ aHA/dT1odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2FkYXRsYXAucGhwP2RhdGFfaWQ9MzcwNjUi
+ IHRhcmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2ZzaGFyZS5wbmciIHdpZHRoPSI2OCIgYm9y
+ ZGVyPSIwIj48L2E+CjwvdHI+CjwvdGFibGU+PC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhy
+ ZWY9Imh0dHBzOi8vYWRmLmx5LzI2NjMyODgvaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3du
+ bG9hZC5waHA/ZmlsZT0wMDMxNjk5LnppcCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3Mv
+ ZG93bmxvYWRhZGZseTIucG5nIiBpZD0iY29sbGFwc2VfcGljXzM3MDY1IiBib3JkZXI9IjAiPjwv
+ YT48YnI+PGJyPjxhIGhyZWY9J2h0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhw
+ P2ZpbGU9MDAzMTY5OS56aXAnIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9kb3dubG9h
+ ZC5naWYiIGlkPSJjb2xsYXBzZV9waWNfMzcwNjUiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CjwvdHI+
+ Cjx0ciBzdHlsZT0nZGlzcGxheTogbm9uZTsnIGJnY29sb3I9IiNFNkZGQzYiIGlkPSJjb2xsYXBz
+ ZV9yb3dfMzcwNjUiPgo8dGQgY29sc3Bhbj0iNyIgYWxpZ249J2NlbnRlcicgaWQ9ImNvbGxhcHNl
+ X2NvbF8zNzA2NSI+PGltZyBzcmM9ImNzcy9sb2FkaW5nLmdpZiI+PC90ZD4KPC90cj4KPHRyIGJn
+ Y29sb3I9IiNFOUU5RTkiIG9ubW91c2VvdmVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRJbWFnZT0n
+ dXJsKGNzcy9vdmVyLmpwZyknOyIgb25tb3VzZW91dD0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kSW1h
+ Z2U9J3VybChjc3Mvb3ZlcjIuanBnKSc7Ij4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhyZWY9InNv
+ cm96YXRvay5waHA/c2VyaWFsPWFtZXJpY2FuaG9ycm9yc3RvcnkiPjxpbWcgc3JjPSJjc3MvYm9y
+ aXRvL2FtZXJpY2FuaG9ycm9yc3RvcnkucG5nIiB3aWR0aD0iODAiIGJvcmRlcj0iMCI+PC9hPjwv
+ dGQ+Cjx0ZCBhbGlnbj0nbGVmdCc+PGEgaHJlZj0namF2YXNjcmlwdDpjb2xsYXBzZVRyKCJjb2xs
+ YXBzZV9yb3dfMzY5OTgiKTsgYWpheF9wYXJzZXIoMzY5OTgsImNvbGxhcHNlX2NvbF8zNjk5OCIp
+ OycgaWQ9Im1lbnUiPjxiPkFtZXJpY2FuIEhvcnJvciBTdG9yeSBzMDFlMTA8L2I+PC9hPjxicj5B
+ bWVyaWNhbiBIb3Jyb3IgU3RvcnkgczAxZTEwIChoZHR2LWZxbSkKPGJyPjxicj48YnI+Cjxicj4K
+ PC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxpbWcgc3JjPSdmbGFncy8yLmdpZicgYWx0PScnIGJv
+ cmRlcj0nMCcgLz48L3RkPgo8dGQgYWxpZ249J2NlbnRlcic+Q3PpY3NpPC90ZD4KPHRkIGFsaWdu
+ PSdjZW50ZXInPjIwMTEtMTItMDg8L3RkPgo8dGQgYWxpZ249J2xlZnQnIHdpZHRoPSI4MCI+Cjx0
+ YWJsZT48dHI+PGEgaHJlZj0naHR0cDovL2luZm8uaG9zc3p1cHVza2FzdWIuY29tL2tlcmVzZXM/
+ cT1BbWVyaWNhbiBIb3Jyb3IgU3RvcnknIHRhcmdldD0nX2JsYW5rJz48aW1nIHN0eWxlPSJmbG9h
+ dDpsZWZ0OyB3aWR0aDo3MHB4OyAgbWFyZ2luLXJpZ2h0OjBweCIgYm9yZGVyPSIwIiBhbHQ9Imlu
+ Zm8uaG9zc3p1cHVza2FzdWIuY29tIC0gZmlsbWVrLCBzb3JvemF0b2sgYWRhdGLDoXppc2EiIHNy
+ Yz0iY3NzL2luZm9vbGRhbC5wbmciPjwvYT48YnI+PGJyPjxicj48YSBocmVmPSdodHRwOi8vd2Vi
+ bW9vdmllcy5jb20vc2hvdy9BbWVyaWNhbi1Ib3Jyb3ItU3RvcnknIHRhcmdldD0nX2JsYW5rJz48
+ aW1nIHNyYz0nY3NzL3ZpZGVvd2ViLnBuZycgd2lkdGg9JzcwJyBoZWlnaHQ9JzI4Jz48L2E+PGJy
+ Pjxicj48YSBocmVmPSJodHRwczovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyL3NoYXJlci5waHA/
+ dT1odHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL2FkYXRsYXAucGhwP2RhdGFfaWQ9MzY5OTgiIHRh
+ cmdldD0iX2JsYW5rIj48aW1nIHNyYz0iY3NzL2ZzaGFyZS5wbmciIHdpZHRoPSI2OCIgYm9yZGVy
+ PSIwIj48L2E+CjwvdHI+CjwvdGFibGU+PC90ZD4KPHRkIGFsaWduPSdjZW50ZXInPjxhIGhyZWY9
+ Imh0dHBzOi8vYWRmLmx5LzI2NjMyODgvaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9kb3dubG9h
+ ZC5waHA/ZmlsZT0wMDMxNjQyLnppcCIgdGFyZ2V0PSJfYmxhbmsiPjxpbWcgc3JjPSJjc3MvZG93
+ bmxvYWRhZGZseTIucG5nIiBpZD0iY29sbGFwc2VfcGljXzM2OTk4IiBib3JkZXI9IjAiPjwvYT48
+ YnI+PGJyPjxhIGhyZWY9J2h0dHA6Ly9ob3NzenVwdXNrYXN1Yi5jb20vZG93bmxvYWQucGhwP2Zp
+ bGU9MDAzMTY0Mi56aXAnIHRhcmdldD0iX3BhcmVudCI+PGltZyBzcmM9ImNzcy9kb3dubG9hZC5n
+ aWYiIGlkPSJjb2xsYXBzZV9waWNfMzY5OTgiIGJvcmRlcj0iMCI+PC9hPjwvdGQ+CjwvdHI+Cjx0
+ ciBzdHlsZT0nZGlzcGxheTogbm9uZTsnIGJnY29sb3I9IiNFNkZGQzYiIGlkPSJjb2xsYXBzZV9y
+ b3dfMzY5OTgiPgo8dGQgY29sc3Bhbj0iNyIgYWxpZ249J2NlbnRlcicgaWQ9ImNvbGxhcHNlX2Nv
+ bF8zNjk5OCI+PGltZyBzcmM9ImNzcy9sb2FkaW5nLmdpZiI+PC90ZD4KPC90cj4KPC90YWJsZT48
+ dGQgdmFsaWduPXRvcD48dGFibGUgd2lkdGg9IjEyMCIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0i
+ MCIgY2VsbHBhZGRpbmc9IjYiIGNsYXNzPSJzYW1wbGUiPgoKPHRyIGJnY29sb3I9IiNjY2NjY2Mi
+ Pjx0ZCBhbGlnbj0iY2VudGVyIiBzdHlsZT0nYmFja2dyb3VuZC1pbWFnZTp1cmwoY3NzL29sZGFs
+ dG9wMS5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Oycgd2lkdGg9IjEyMCI+PGI+
+ VklQIEJlamVsZW50a2V6JmVhY3V0ZTtzOjwvYj48L3RkPjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZTll
+ OWU5Ij48dGQgdmFsaWduPXRvcD4KPGRpdiBhbGlnbj0iY2VudGVyIj4KPGZvcm0gbmFtZT0ibG9n
+ aW4iIGFjdGlvbj0ic29yb3phdG9rLnBocCIgbWV0aG9kPSJwb3N0IiB0YXJnZXQ9Il9zZWxmIj4K
+ RmVsaGFzem7hbPNu6XY6PGJyIC8+CjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJsb2dpbl9uaWNr
+ IiBzaXplPSIxMSIgdmFsdWU9IiIgc3R5bGU9ImN1cnNvcjogdXJsKGh0dHBzOi8vaG9zc3p1cHVz
+ a2FzdWIuY29tL2Nzcy9pbnB1dGN1cnNvci5wbmcpLCBkZWZhdWx0OyI+PGJyPgpKZWxzevM6PGJy
+ Pgo8aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9ImxvZ2luX3Bhc3N3ZCIgc2l6ZT0iMTEiIHZh
+ bHVlPSIiIHN0eWxlPSJjdXJzb3I6IHVybChodHRwczovL2hvc3N6dXB1c2thc3ViLmNvbS9jc3Mv
+ aW5wdXRjdXJzb3IucG5nKSwgZGVmYXVsdDsiPjxicj48YnI+CjxpbnB1dCB0eXBlPSJzdWJtaXQi
+ IG5hbWU9ImxvZ2luIiB2YWx1ZT0iQmVs6XDpcyIgc3R5bGU9ImN1cnNvcjogdXJsKGh0dHBzOi8v
+ aG9zc3p1cHVza2FzdWIuY29tL2Nzcy9saW5rLnBuZyksIGRlZmF1bHQ7Ij48YnI+Cjxicj48YSBo
+ cmVmPSJyZWdpc3p0cmFjaW8ucGhwIiB0YXJnZXQ9Il9zZWxmIiBpZD0ibWVudXJlZyI+LSA8Ymxp
+ bms+UmVnaXN6dHLhY2nzPC9ibGluaz4gLTwvYT48YnI+Cjxicj48YSBocmVmPSJlbWxla2V6dGV0
+ by5waHAiIHRhcmdldD0iX3NlbGYiIGlkPSJtZW51bWVudSI+LSBFbGZlbGVqdGV0dCBqZWxzevM/
+ IC08L2E+PGJyPgo8L2Zvcm0+CjwvZGl2Pgo8L3RkPjwvdHI+PHRyIGJnY29sb3I9IiNjY2NjY2Mi
+ Pgo8dGQgYWxpZ249ImNlbnRlciIgd2lkdGg9IjEzMCIgYmFja2dyb3VuZD0iY3NzL29sZGFsdG9w
+ MS5wbmciPjxiPlQmYWFjdXRlO21vZ2F0JmFhY3V0ZTtzPC9iPjwvdGQ+CjwvdHI+Cjx0ciBiZ2Nv
+ bG9yPSIjZTllOWU5Ij4KPHRkPjxmb3JtIGFjdGlvbj0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9j
+ Z2ktYmluL3dlYnNjciIgbWV0aG9kPSJwb3N0Ij4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0i
+ Y21kIiB2YWx1ZT0iX3MteGNsaWNrIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaG9zdGVk
+ X2J1dHRvbl9pZCIgdmFsdWU9IkJUNFdZRkZURlE4Vk4iPgo8aW5wdXQgdHlwZT0iaW1hZ2UiIHNy
+ Yz0iaHR0cHM6Ly9ob3NzenVwdXNrYXN1Yi5jb20vY3NzL2J0bl9kb25hdGVDQ19MRy5naWYiIGJv
+ cmRlcj0iMCIgbmFtZT0ic3VibWl0IiBhbHQ9IlBheVBhbCAtIFRoZSBzYWZlciwgZWFzaWVyIHdh
+ eSB0byBwYXkgb25saW5lISI+CjwvZm9ybT4KPC90ZD48L3RyPgo8dHIgYmdjb2xvcj0iI2NjY2Nj
+ YyI+Cjx0ZCBhbGlnbj0iY2VudGVyIiB3aWR0aD0iMTMwIiBiYWNrZ3JvdW5kPSJjc3Mvb2xkYWx0
+ b3AxLnBuZyI+PGI+TGVnJiMyNTA7amFiYiBzb3JvemF0b2s8L2I+PC90ZD4KPC90cj4KPHRyIGJn
+ Y29sb3I9IiNlOWU5ZTkiPgo8dGQ+PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9z
+ b3JvemF0b2sucGhwP3NlcmlhbD10aGViaWdsZWFwIj48aW1nIHNyYz1jc3Mva2lza2VwL3RoZWJp
+ Z2xlYXAucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2th
+ c3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGVzZXhsaXZlc29mY29sbGVnZWdpcmxzIj48
+ aW1nIHNyYz1jc3Mva2lza2VwL3RoZXNleGxpdmVzb2Zjb2xsZWdlZ2lybHMucG5nIHdpZHRoPSIx
+ MjAiPjwvYT48YnI+PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2su
+ cGhwP3NlcmlhbD1qYXBhbnNpbmtzcGVvcGxlb2Zob3BlIj48aW1nIHNyYz1jc3Mva2lza2VwL2ph
+ cGFuc2lua3NwZW9wbGVvZmhvcGUucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+PGEgaHJlZj0iaHR0
+ cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD10aGVzaHJpbmtuZXh0
+ ZG9vciI+PGltZyBzcmM9Y3NzL2tpc2tlcC90aGVzaHJpbmtuZXh0ZG9vci5wbmcgd2lkdGg9IjEy
+ MCI+PC9hPjxicj48YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5w
+ aHA/c2VyaWFsPXRoZXByb2JsZW13aXRoam9uc3Rld2FydCI+PGltZyBzcmM9Y3NzL2tpc2tlcC90
+ aGVwcm9ibGVtd2l0aGpvbnN0ZXdhcnQucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+PGEgaHJlZj0i
+ aHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1zd2FnZ2VyIj48
+ aW1nIHNyYz1jc3Mva2lza2VwL3N3YWdnZXIucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+PGEgaHJl
+ Zj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1kcmJyYWlu
+ Ij48aW1nIHNyYz1jc3Mva2lza2VwL2RyYnJhaW4ucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+PGEg
+ aHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1oYXdr
+ ZXllIj48aW1nIHNyYz1jc3Mva2lza2VwL2hhd2tleWUucG5nIHdpZHRoPSIxMjAiPjwvYT48YnI+
+ PGEgaHJlZj0iaHR0cDovL2hvc3N6dXB1c2thc3ViLmNvbS9zb3JvemF0b2sucGhwP3NlcmlhbD1k
+ b3Blc2ljayI+PGltZyBzcmM9Y3NzL2tpc2tlcC9kb3Blc2ljay5wbmcgd2lkdGg9IjEyMCI+PC9h
+ Pjxicj48YSBocmVmPSJodHRwOi8vaG9zc3p1cHVza2FzdWIuY29tL3Nvcm96YXRvay5waHA/c2Vy
+ aWFsPWludmFzaW9uMjAyMSI+PGltZyBzcmM9Y3NzL2tpc2tlcC9pbnZhc2lvbjIwMjEucG5nIHdp
+ ZHRoPSIxMjAiPjwvYT48YnI+PC90ZD48L3RyPjx0ciBiZ2NvbG9yPSIjY2NjY2NjIj4KPHRkIGFs
+ aWduPSJjZW50ZXIiIHdpZHRoPSIxMzAiIGJhY2tncm91bmQ9ImNzcy9vbGRhbHRvcDEucG5nIj48
+ Yj5GaWxtYWomYWFjdXRlO25sJm9hY3V0ZTs6PC9iPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIj
+ ZTllOWU5Ij4KPHRkPjxpZnJhbWUgc3JjPSdodHRwOi8vd2VibW9vdmllcy5jb20vZnJpc3MucGhw
+ JyBmcmFtZWJvcmRlcj0nMCcgd2lkdGg9JzEyMCcgaGVpZ2h0PScxMDAwJyBzY3JvbGxpbmc9J25v
+ Jz48L2lmcmFtZT48L3RkPjwvdHI+Cjx0ciBiZ2NvbG9yPSIjY2NjY2NjIj4KPHRkIGFsaWduPSJj
+ ZW50ZXIiIHdpZHRoPSIxMjAiIHN0eWxlPSdiYWNrZ3JvdW5kLWltYWdlOnVybChjc3Mvb2xkYWx0
+ b3AxLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Jz48Yj5GcmlzcyBlbCZvdGls
+ ZGU7emV0ZXNlazo8L2I+PC90ZD4KPC90cj4KPHRyIGJnY29sb3I9IiNlOWU5ZTkiPgo8dGQ+IDwv
+ dGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjY2NjY2NjIj4KPHRkIGFsaWduPSJjZW50ZXIiIHdpZHRo
+ PSIxMjAiIHN0eWxlPSdiYWNrZ3JvdW5kLWltYWdlOnVybChjc3Mvb2xkYWx0b3AxLnBuZyk7IGJh
+ Y2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Jz48Yj5GaWxtYWomYWFjdXRlO25sJm9hY3V0ZTs6
+ PC9iPjwvdGQ+CjwvdHI+Cjx0ciBiZ2NvbG9yPSIjZTllOWU5Ij4KPHRkPiA8L3RkPgo8L3RyPgo8
+ L3RkPjwvdHI+PC90YWJsZT48L3RkPjwvdHI+PC90YWJsZT48aW1nIHNyYz0nY3NzL3RhbHVsLnBu
+ Zyc+Cjxicj4KPGNlbnRlcj4KPGhyIHdpZHRoPSIyMDAiIGNvbG9yPSIjY2NjY2NjIj4KPGEgaHJl
+ Zj0iamF2YXNjcmlwdDpzY3JvbGwoMCwwKSI+PGltZyBzcmM9ImNzcy91Z3JhczEuanBnIiBuYW1l
+ PSJJbWFnZTEiIHdpZHRoPSIxNDAiIGhlaWdodD0iMjAiIGJvcmRlcj0iMCIgaWQ9InVncmFzIj48
+ L2E+CjxociB3aWR0aD0iMjAwIiBjb2xvcj0iI2NjY2NjYyI+Cjx0YWJsZSB3aWR0aD05MDA+Cjx0
+ cj48dGQ+CjwvdGQ+CjwvdHI+CjwvdGFibGU+CjwvZGl2Pgo8L2Rpdj4KPC90ZD4KPC90cj4KPC90
+ YWJsZT4KPHRhYmxlIHdpZHRoPSI5NTIiIGhlaWdodD0iMjUiIGFsaWduPSJjZW50ZXIiPgo8dHI+
+ PHRkIGJhY2tncm91bmQ9ImNzcy9sZW50LnBuZyI+PC90ZD48L3RyPgo8L3RhYmxlPgo8c2NyaXB0
+ IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgd2luZG93LmNvb2tpZWNvbnNlbnRfb3B0aW9u
+ cyA9IHsibWVzc2FnZSI6IkV6IGEgd2ViaGVseSBjb29raWUta2F0IGhhc3pu4WwsIG1lbHlla3Jl
+ IHN6/Gtz6WcgdmFuIGF6IG9sZGFsdW5rIHRlbGplcyBt+2v2ZOlz6Whlei4gQvZuZ+lzeulz6XZl
+ bCBlbGZvZ2Fkb2QgYSBjb29raWUtayBoYXN6buFsYXThdC4iLCJkaXNtaXNzIjoiT2vpISIsInRo
+ ZW1lIjoiZGFyay1mbG9hdGluZyJ9Ow0KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
+ c2NyaXB0IiBzcmM9Imh0dHBzOi8vaG9zc3p1cHVza2FzdWIuY29tL2pzL2Nvb2tpZWNvbnNlbnQu
+ bGF0ZXN0Lm1pbi5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
+ cmM9Imh0dHBzOi8vaG9zc3p1cHVza2FzdWIuY29tL2Fycm93LmpzIj48L3NjcmlwdD4KPHNjcmlw
+ dD4NCiAgKGZ1bmN0aW9uKGkscyxvLGcscixhLG0pe2lbJ0dvb2dsZUFuYWx5dGljc09iamVjdCdd
+ PXI7aVtyXT1pW3JdfHxmdW5jdGlvbigpew0KICAoaVtyXS5xPWlbcl0ucXx8W10pLnB1c2goYXJn
+ dW1lbnRzKX0saVtyXS5sPTEqbmV3IERhdGUoKTthPXMuY3JlYXRlRWxlbWVudChvKSwNCiAgbT1z
+ LmdldEVsZW1lbnRzQnlUYWdOYW1lKG8pWzBdO2EuYXN5bmM9MTthLnNyYz1nO20ucGFyZW50Tm9k
+ ZS5pbnNlcnRCZWZvcmUoYSxtKQ0KICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJy8vd3d3
+ Lmdvb2dsZS1hbmFseXRpY3MuY29tL2FuYWx5dGljcy5qcycsJ2dhJyk7DQoNCiAgZ2EoJ2NyZWF0
+ ZScsICdVQS0zMjgwOTYzLTEwJywgJ2F1dG8nKTsNCiAgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTsN
+ Cg0KPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPgo=
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 6b67cf542dabe532-ARI
+ Connection:
+ - keep-alive
+ Content-Type:
+ - text/html; charset=ISO-8859-2
+ Date:
+ - Tue, 30 Nov 2021 23:21:05 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=8R9k8MUDf6vH3ex1QatszIl0%2B55nxRVn1NFYgjvsv42i6mL6Xp%2Bd9hNnT%2FOdj2smiiMbughA6DUY5RFWsV4U5FUlqR0m5sBNgr0kO1gJ94JkQjqFHs7JXDMGflgvHNV3IFVhPY1NcPilc1Msc96oIbg%3D"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - cloudflare
+ Transfer-Encoding:
+ - chunked
+ alt-svc:
+ - h3=":443"; ma=86400, h3-29=":443"; ma=86400, h3-28=":443"; ma=86400, h3-27=":443";
+ ma=86400
+ cache-control:
+ - no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ expires:
+ - Thu, 19 Nov 1981 08:52:00 GMT
+ pragma:
+ - no-cache
+ set-cookie:
+ - PHPSESSID=pjigvbvu0e7mi15bismtt5rk16; path=/
+ x-powered-by:
+ - PHP/5.3.3
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/tests/subliminal_patch/test_hosszupuska.py b/tests/subliminal_patch/test_hosszupuska.py
new file mode 100644
index 000000000..a5ad06a3c
--- /dev/null
+++ b/tests/subliminal_patch/test_hosszupuska.py
@@ -0,0 +1,38 @@
+# -*- coding: utf-8 -*-
+import pytest
+
+from subliminal_patch.core import Episode
+from subliminal_patch.providers.hosszupuska import HosszupuskaProvider
+
+
+@pytest.fixture
+def episode():
+ return Episode(
+ "American Horror Story s10e01 (amzn webrip-ntb).mkv",
+ "American Horror Story",
+ 10,
+ 1,
+ source="Web",
+ )
+
+
+@pytest.mark.vcr
+def test_list_subtitles_episode(episode):
+ with HosszupuskaProvider() as provider:
+ subs = provider.list_subtitles(episode, [])
+
+ for expected in (
+ "http://hosszupuskasub.com/download.php?file=0124336.zip",
+ "http://hosszupuskasub.com/download.php?file=0124335.zip",
+ "http://hosszupuskasub.com/download.php?file=0124333.zip",
+ "http://hosszupuskasub.com/download.php?file=0124253.zip",
+ ):
+ assert any([expected == sub.page_link for sub in subs])
+
+
+@pytest.mark.vcr
+def test_download_subtitle_episode(episode):
+ with HosszupuskaProvider() as provider:
+ sub = provider.list_subtitles(episode, [])[0]
+ provider.download_subtitle(sub)
+ assert sub.content is not None
From 9b273a7a8976f63ff932c1a0cb0be38a98956d05 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 30 Nov 2021 21:17:18 -0500
Subject: [PATCH 36/41] Fixed missing poster or fanart url from raising an
exception when rendering UI.
---
bazarr/api.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/bazarr/api.py b/bazarr/api.py
index 97ea20c4a..d5522a8d0 100644
--- a/bazarr/api.py
+++ b/bazarr/api.py
@@ -141,11 +141,11 @@ def postprocessSeries(item):
# map poster and fanart to server proxy
if 'poster' in item:
poster = item['poster']
- item['poster'] = f"{base_url}/images/series{poster}"
+ item['poster'] = f"{base_url}/images/series{poster}" if poster else None
if 'fanart' in item:
fanart = item['fanart']
- item['fanart'] = f"{base_url}/images/series{fanart}"
+ item['fanart'] = f"{base_url}/images/series{fanart}" if fanart else None
def postprocessEpisode(item):
@@ -280,11 +280,11 @@ def postprocessMovie(item):
# map poster and fanart to server proxy
if 'poster' in item:
poster = item['poster']
- item['poster'] = f"{base_url}/images/movies{poster}"
+ item['poster'] = f"{base_url}/images/movies{poster}" if poster else None
if 'fanart' in item:
fanart = item['fanart']
- item['fanart'] = f"{base_url}/images/movies{fanart}"
+ item['fanart'] = f"{base_url}/images/movies{fanart}" if fanart else None
class SystemAccount(Resource):
From 2d214bfbd5f9d1598c01b2e2dd35efa67ccb43af Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Tue, 30 Nov 2021 21:44:33 -0500
Subject: [PATCH 37/41] Added support for upcoming Sonarr v4.
---
bazarr/signalr_client.py | 66 ++++++++++++++++++++++++++++++++++++++--
bazarr/utils.py | 6 ++--
2 files changed, 67 insertions(+), 5 deletions(-)
diff --git a/bazarr/signalr_client.py b/bazarr/signalr_client.py
index f8c3c7e8f..9eb57dafb 100644
--- a/bazarr/signalr_client.py
+++ b/bazarr/signalr_client.py
@@ -22,9 +22,9 @@ from get_args import args
headers = {"User-Agent": os.environ["SZ_USER_AGENT"]}
-class SonarrSignalrClient:
+class SonarrSignalrClientLegacy:
def __init__(self):
- super(SonarrSignalrClient, self).__init__()
+ super(SonarrSignalrClientLegacy, self).__init__()
self.apikey_sonarr = None
self.session = Session()
self.session.timeout = 60
@@ -92,6 +92,65 @@ class SonarrSignalrClient:
self.connection.exception += self.exception_handler
+class SonarrSignalrClient:
+ def __init__(self):
+ super(SonarrSignalrClient, self).__init__()
+ self.apikey_sonarr = None
+ self.connection = None
+
+ def start(self):
+ self.configure()
+ logging.info('BAZARR trying to connect to Sonarr SignalR feed...')
+ while self.connection.transport.state.value not in [0, 1, 2]:
+ try:
+ self.connection.start()
+ except ConnectionError:
+ time.sleep(5)
+
+ def stop(self):
+ logging.info('BAZARR SignalR client for Sonarr is now disconnected.')
+ self.connection.stop()
+
+ def restart(self):
+ if self.connection:
+ if self.connection.transport.state.value in [0, 1, 2]:
+ self.stop()
+ if settings.general.getboolean('use_sonarr'):
+ self.start()
+
+ def exception_handler(self):
+ logging.error("BAZARR connection to Sonarr SignalR feed has failed. We'll try to reconnect.")
+ self.restart()
+
+ @staticmethod
+ def on_connect_handler():
+ logging.info('BAZARR SignalR client for Sonarr is connected and waiting for events.')
+ if not args.dev:
+ scheduler.add_job(update_series, kwargs={'send_event': True}, max_instances=1)
+ scheduler.add_job(sync_episodes, kwargs={'send_event': True}, max_instances=1)
+
+ def configure(self):
+ self.apikey_sonarr = settings.sonarr.apikey
+ self.connection = HubConnectionBuilder() \
+ .with_url(url_sonarr() + "/signalr/messages?access_token={}".format(self.apikey_sonarr),
+ options={
+ "verify_ssl": False,
+ "headers": headers
+ }) \
+ .with_automatic_reconnect({
+ "type": "raw",
+ "keep_alive_interval": 5,
+ "reconnect_interval": 180,
+ "max_attempts": None
+ }).build()
+ self.connection.on_open(self.on_connect_handler)
+ self.connection.on_reconnect(lambda: logging.error('BAZARR SignalR client for Sonarr connection as been lost. '
+ 'Trying to reconnect...'))
+ self.connection.on_close(lambda: logging.debug('BAZARR SignalR client for Sonarr is disconnected.'))
+ self.connection.on_error(self.exception_handler)
+ self.connection.on("receiveMessage", dispatcher)
+
+
class RadarrSignalrClient:
def __init__(self):
super(RadarrSignalrClient, self).__init__()
@@ -186,5 +245,6 @@ def dispatcher(data):
return
-sonarr_signalr_client = SonarrSignalrClient()
+sonarr_signalr_client = SonarrSignalrClientLegacy() if get_sonarr_info.version().startswith(('0.', '2.', '3.')) else \
+ SonarrSignalrClient()
radarr_signalr_client = RadarrSignalrClient()
diff --git a/bazarr/utils.py b/bazarr/utils.py
index e6bc72bb6..fa88927bc 100644
--- a/bazarr/utils.py
+++ b/bazarr/utils.py
@@ -256,8 +256,10 @@ class GetSonarrInfo:
if 'version' in sonarr_json:
sonarr_version = sonarr_json['version']
else:
- sv = url_sonarr() + "/api/v3/system/status?apikey=" + settings.sonarr.apikey
- sonarr_version = requests.get(sv, timeout=60, verify=False, headers=headers).json()['version']
+ raise json.decoder.JSONDecodeError
+ except json.decoder.JSONDecodeError:
+ sv = url_sonarr() + "/api/v3/system/status?apikey=" + settings.sonarr.apikey
+ sonarr_version = requests.get(sv, timeout=60, verify=False, headers=headers).json()['version']
except Exception:
logging.debug('BAZARR cannot get Sonarr version')
sonarr_version = 'unknown'
From 402c82d84f7bd51353348bea7d1a876ad9ecc5b1 Mon Sep 17 00:00:00 2001
From: morpheus65535
Date: Wed, 1 Dec 2021 15:47:00 -0500
Subject: [PATCH 38/41] Upgraded some embedded dependencies to be ready for
Python 3.10. This doesn't mean that it's fully supported right now.
---
bazarr.py | 4 +-
libs/babelfish/__init__.py | 6 -
libs/babelfish/converters/__init__.py | 13 +-
libs/babelfish/converters/opensubtitles.py | 4 +-
libs/babelfish/country.py | 1 +
libs/babelfish/data/get_files.py | 45 -
libs/babelfish/language.py | 1 +
libs/babelfish/script.py | 1 +
libs/babelfish/tests.py | 377 -
libs/flask_restful/__init__.py | 17 +-
libs/flask_restful/__version__.py | 2 +-
libs/flask_restful/fields.py | 5 +-
libs/flask_restful/inputs.py | 2 +-
libs/flask_restful/reqparse.py | 9 +-
libs/flask_restful/utils/__init__.py | 4 +-
libs/future/__init__.py | 10 +-
libs/future/backports/__init__.py | 2 +-
libs/future/backports/email/message.py | 6 +-
libs/future/backports/http/client.py | 22 +-
libs/future/backports/http/cookiejar.py | 5 +-
libs/future/backports/http/cookies.py | 3 +-
libs/future/backports/misc.py | 8 +-
libs/future/backports/test/pystone.py | 0
libs/future/backports/urllib/request.py | 10 +-
libs/future/builtins/__init__.py | 4 +-
libs/future/builtins/misc.py | 17 +-
libs/future/builtins/new_min_max.py | 59 +
libs/future/builtins/newround.py | 11 +-
libs/future/moves/__init__.py | 2 +-
libs/future/moves/copyreg.py | 6 +-
libs/future/moves/urllib/request.py | 23 +-
libs/future/tests/base.py | 10 +-
libs/future/types/newbytes.py | 8 +-
libs/future/types/newint.py | 6 +-
libs/future/types/newmemoryview.py | 8 +-
libs/future/types/newobject.py | 1 +
libs/future/types/newrange.py | 7 +-
libs/future/types/newstr.py | 14 +-
libs/future/utils/__init__.py | 76 +-
libs/html5lib/__init__.py | 2 +-
libs/html5lib/_ihatexml.py | 5 +-
libs/html5lib/_inputstream.py | 55 +-
libs/html5lib/_tokenizer.py | 16 +-
libs/html5lib/_trie/__init__.py | 13 +-
libs/html5lib/_trie/_base.py | 5 +-
libs/html5lib/_trie/datrie.py | 44 -
libs/html5lib/_utils.py | 49 +-
libs/html5lib/constants.py | 9 +-
libs/html5lib/filters/sanitizer.py | 20 +
libs/html5lib/html5parser.py | 734 +-
libs/html5lib/serializer.py | 2 +-
.../tests/sanitizer-testdata/tests1.dat | 433 +
libs/html5lib/tests/sanitizer.py | 17 +-
.../tests/serializer-testdata/core.test | 395 +
.../tests/serializer-testdata/injectmeta.test | 350 +
.../serializer-testdata/optionaltags.test | 3254 ++
.../tests/serializer-testdata/options.test | 334 +
.../tests/serializer-testdata/whitespace.test | 198 +
libs/html5lib/tests/support.py | 3 +-
libs/html5lib/tests/test_encoding.py | 21 +-
libs/html5lib/tests/test_meta.py | 4 +-
libs/html5lib/tests/test_parser2.py | 40 +-
libs/html5lib/tests/test_sanitizer.py | 62 +-
libs/html5lib/tests/test_serializer.py | 51 +-
libs/html5lib/tests/test_stream.py | 8 +-
libs/html5lib/tests/test_tokenizer2.py | 66 +
libs/html5lib/tests/test_treewalkers.py | 107 +-
libs/html5lib/tests/testdata/AUTHORS.rst | 34 -
libs/html5lib/tests/testdata/LICENSE | 21 -
.../testdata/encoding/chardet/test_big5.txt | 51 -
.../tests/testdata/encoding/test-yahoo-jp.dat | 10 -
.../tests/testdata/encoding/tests1.dat | 394 -
.../tests/testdata/encoding/tests2.dat | 115 -
.../tests/testdata/serializer/core.test | 125 -
.../tests/testdata/serializer/injectmeta.test | 66 -
.../testdata/serializer/optionaltags.test | 965 -
.../tests/testdata/serializer/options.test | 60 -
.../tests/testdata/serializer/whitespace.test | 51 -
.../tests/testdata/tokenizer/README.md | 104 -
.../testdata/tokenizer/contentModelFlags.test | 81 -
.../tests/testdata/tokenizer/domjs.test | 96 -
.../tests/testdata/tokenizer/entities.test | 283 -
.../tests/testdata/tokenizer/escapeFlag.test | 33 -
.../testdata/tokenizer/namedEntities.test | 42210 ----------------
.../testdata/tokenizer/numericEntities.test | 1349 -
.../tokenizer/pendingSpecChanges.test | 7 -
.../tests/testdata/tokenizer/test1.test | 196 -
.../tests/testdata/tokenizer/test2.test | 179 -
.../tests/testdata/tokenizer/test3.test | 6047 ---
.../tests/testdata/tokenizer/test4.test | 344 -
.../testdata/tokenizer/unicodeChars.test | 1295 -
.../tokenizer/unicodeCharsProblematic.test | 31 -
.../testdata/tokenizer/xmlViolation.test | 22 -
.../testdata/tree-construction/README.md | 104 -
.../testdata/tree-construction/adoption01.dat | 354 -
.../testdata/tree-construction/adoption02.dat | 39 -
.../testdata/tree-construction/comments01.dat | 178 -
.../testdata/tree-construction/doctype01.dat | 424 -
.../tree-construction/domjs-unsafe.dat | Bin 9884 -> 0 bytes
.../testdata/tree-construction/entities01.dat | 795 -
.../testdata/tree-construction/entities02.dat | 293 -
.../tree-construction/foreign-fragment.dat | 549 -
.../tree-construction/html5test-com.dat | 291 -
.../testdata/tree-construction/inbody01.dat | 54 -
.../testdata/tree-construction/isindex.dat | 49 -
.../tree-construction/main-element.dat | 46 -
.../tests/testdata/tree-construction/math.dat | 81 -
.../tree-construction/menuitem-element.dat | 229 -
.../namespace-sensitivity.dat | 16 -
.../testdata/tree-construction/noscript01.dat | 237 -
...pending-spec-changes-plain-text-unsafe.dat | Bin 816 -> 0 bytes
.../pending-spec-changes.dat | 46 -
.../tree-construction/plain-text-unsafe.dat | Bin 7925 -> 0 bytes
.../tests/testdata/tree-construction/ruby.dat | 301 -
.../tree-construction/scriptdata01.dat | 365 -
.../tree-construction/scripted/adoption01.dat | 15 -
.../tree-construction/scripted/ark.dat | 26 -
.../tree-construction/scripted/webkit01.dat | 28 -
.../testdata/tree-construction/tables01.dat | 286 -
.../testdata/tree-construction/template.dat | 1604 -
.../testdata/tree-construction/tests1.dat | 1957 -
.../testdata/tree-construction/tests10.dat | 847 -
.../testdata/tree-construction/tests11.dat | 523 -
.../testdata/tree-construction/tests12.dat | 62 -
.../testdata/tree-construction/tests14.dat | 75 -
.../testdata/tree-construction/tests15.dat | 216 -
.../testdata/tree-construction/tests16.dat | 2460 -
.../testdata/tree-construction/tests17.dat | 179 -
.../testdata/tree-construction/tests18.dat | 322 -
.../testdata/tree-construction/tests19.dat | 1454 -
.../testdata/tree-construction/tests2.dat | 780 -
.../testdata/tree-construction/tests20.dat | 582 -
.../testdata/tree-construction/tests21.dat | 305 -
.../testdata/tree-construction/tests22.dat | 190 -
.../testdata/tree-construction/tests23.dat | 168 -
.../testdata/tree-construction/tests24.dat | 79 -
.../testdata/tree-construction/tests25.dat | 221 -
.../testdata/tree-construction/tests26.dat | 388 -
.../testdata/tree-construction/tests3.dat | 305 -
.../testdata/tree-construction/tests4.dat | 58 -
.../testdata/tree-construction/tests5.dat | 210 -
.../testdata/tree-construction/tests6.dat | 659 -
.../testdata/tree-construction/tests7.dat | 418 -
.../testdata/tree-construction/tests8.dat | 151 -
.../testdata/tree-construction/tests9.dat | 472 -
.../tree-construction/tests_innerHTML_1.dat | 887 -
.../testdata/tree-construction/tricky01.dat | 336 -
.../testdata/tree-construction/webkit01.dat | 720 -
.../testdata/tree-construction/webkit02.dat | 301 -
libs/html5lib/tests/tokenizer.py | 5 +-
libs/html5lib/tests/tokenizertotree.py | 1 +
libs/html5lib/tests/tree_construction.py | 13 +-
libs/html5lib/tests/us-ascii.html | 3 +
libs/html5lib/tests/utf-8-bom.html | 3 +
libs/html5lib/treebuilders/base.py | 8 +-
libs/html5lib/treebuilders/dom.py | 5 +-
libs/html5lib/treebuilders/etree.py | 27 +-
libs/html5lib/treebuilders/etree_lxml.py | 64 +-
libs/html5lib/treewalkers/__init__.py | 6 +-
libs/html5lib/treewalkers/etree.py | 1 +
libs/html5lib/treewalkers/etree_lxml.py | 4 +-
libs/libfuturize/fixes/__init__.py | 3 +-
...future__imports_except_unicode_literals.py | 4 +-
libs/libfuturize/fixes/fix_division_safe.py | 55 +-
libs/libfuturize/fixes/fix_input.py | 32 +
libs/libfuturize/fixes/fix_raise.py | 82 +-
libs/past/__init__.py | 8 +-
libs/past/builtins/misc.py | 13 +-
libs/past/builtins/noniterators.py | 2 +-
libs/past/tests/__init__.py | 0
libs/past/translation/__init__.py | 24 +-
libs/past/types/oldstr.py | 5 +-
libs/past/utils/__init__.py | 2 +-
libs/pkg_resources.py | 2891 --
libs/pkg_resources/__init__.py | 3142 --
libs/pkg_resources/_vendor/__init__.py | 0
libs/pkg_resources/_vendor/appdirs.py | 608 -
.../_vendor/packaging/__about__.py | 21 -
.../_vendor/packaging/__init__.py | 14 -
.../_vendor/packaging/_compat.py | 30 -
.../_vendor/packaging/_structures.py | 68 -
.../_vendor/packaging/markers.py | 301 -
.../_vendor/packaging/requirements.py | 127 -
.../_vendor/packaging/specifiers.py | 774 -
libs/pkg_resources/_vendor/packaging/utils.py | 14 -
.../_vendor/packaging/version.py | 393 -
libs/pkg_resources/_vendor/pyparsing.py | 5720 ---
libs/pkg_resources/_vendor/six.py | 868 -
libs/pkg_resources/extern/__init__.py | 73 -
libs/pkg_resources/py31compat.py | 23 -
libs/pysubs2/cli.py | 5 +-
libs/pysubs2/common.py | 2 +-
libs/pysubs2/mpl2.py | 2 +-
libs/pysubs2/ssaevent.py | 24 +-
libs/pysubs2/ssafile.py | 52 +-
libs/pysubs2/ssastyle.py | 2 +-
libs/pysubs2/subrip.py | 4 +-
libs/pysubs2/substation.py | 15 +-
libs/socks.py | 127 +-
libs/tqdm/__init__.py | 21 +-
libs/tqdm/__main__.py | 1 +
libs/tqdm/_main.py | 4 +-
libs/tqdm/_monitor.py | 32 +-
libs/tqdm/_tqdm.py | 4 +-
libs/tqdm/_tqdm_gui.py | 4 +-
libs/tqdm/_tqdm_notebook.py | 4 +-
libs/tqdm/_tqdm_pandas.py | 38 +-
libs/tqdm/_utils.py | 10 +-
libs/tqdm/_version.py | 59 -
libs/tqdm/asyncio.py | 93 +
libs/tqdm/auto.py | 40 +-
libs/tqdm/autonotebook.py | 16 +-
libs/tqdm/cli.py | 155 +-
libs/tqdm/completion.sh | 4 +-
libs/tqdm/contrib/__init__.py | 80 +-
libs/tqdm/contrib/bells.py | 24 +
libs/tqdm/contrib/concurrent.py | 66 +-
libs/tqdm/contrib/discord.py | 121 +
libs/tqdm/contrib/itertools.py | 8 +-
libs/tqdm/contrib/logging.py | 128 +
libs/tqdm/contrib/telegram.py | 153 +-
libs/tqdm/contrib/utils_worker.py | 40 +
libs/tqdm/dask.py | 46 +
libs/tqdm/gui.py | 216 +-
libs/tqdm/keras.py | 47 +-
libs/tqdm/notebook.py | 201 +-
libs/tqdm/rich.py | 152 +
libs/tqdm/std.py | 581 +-
libs/tqdm/tests/tests_concurrent.py | 58 -
libs/tqdm/tests/tests_contrib.py | 61 -
libs/tqdm/tests/tests_itertools.py | 27 -
libs/tqdm/tests/tests_keras.py | 97 -
libs/tqdm/tests/tests_main.py | 172 -
libs/tqdm/tests/tests_notebook.py | 9 -
libs/tqdm/tests/tests_pandas.py | 264 -
libs/tqdm/tests/tests_perf.py | 367 -
libs/tqdm/tests/tests_synchronisation.py | 213 -
libs/tqdm/tests/tests_tqdm.py | 1966 -
libs/tqdm/tests/tests_version.py | 12 -
libs/tqdm/tk.py | 207 +
libs/tqdm/tqdm.1 | 74 +-
libs/tqdm/utils.py | 227 +-
libs/tqdm/version.py | 9 +
libs/version.txt | 9 +-
244 files changed, 8217 insertions(+), 96583 deletions(-)
delete mode 100644 libs/babelfish/data/get_files.py
delete mode 100644 libs/babelfish/tests.py
mode change 100644 => 100755 libs/future/backports/test/pystone.py
create mode 100644 libs/future/builtins/new_min_max.py
delete mode 100644 libs/html5lib/_trie/datrie.py
create mode 100644 libs/html5lib/tests/sanitizer-testdata/tests1.dat
create mode 100644 libs/html5lib/tests/serializer-testdata/core.test
create mode 100644 libs/html5lib/tests/serializer-testdata/injectmeta.test
create mode 100644 libs/html5lib/tests/serializer-testdata/optionaltags.test
create mode 100644 libs/html5lib/tests/serializer-testdata/options.test
create mode 100644 libs/html5lib/tests/serializer-testdata/whitespace.test
create mode 100644 libs/html5lib/tests/test_tokenizer2.py
delete mode 100644 libs/html5lib/tests/testdata/AUTHORS.rst
delete mode 100644 libs/html5lib/tests/testdata/LICENSE
delete mode 100644 libs/html5lib/tests/testdata/encoding/chardet/test_big5.txt
delete mode 100644 libs/html5lib/tests/testdata/encoding/test-yahoo-jp.dat
delete mode 100644 libs/html5lib/tests/testdata/encoding/tests1.dat
delete mode 100644 libs/html5lib/tests/testdata/encoding/tests2.dat
delete mode 100644 libs/html5lib/tests/testdata/serializer/core.test
delete mode 100644 libs/html5lib/tests/testdata/serializer/injectmeta.test
delete mode 100644 libs/html5lib/tests/testdata/serializer/optionaltags.test
delete mode 100644 libs/html5lib/tests/testdata/serializer/options.test
delete mode 100644 libs/html5lib/tests/testdata/serializer/whitespace.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/README.md
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/contentModelFlags.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/domjs.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/entities.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/escapeFlag.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/namedEntities.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/numericEntities.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/test1.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/test2.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/test3.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/test4.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/unicodeChars.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/unicodeCharsProblematic.test
delete mode 100644 libs/html5lib/tests/testdata/tokenizer/xmlViolation.test
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/README.md
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/adoption01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/adoption02.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/comments01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/doctype01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/domjs-unsafe.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/entities01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/entities02.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/foreign-fragment.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/html5test-com.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/inbody01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/isindex.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/main-element.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/math.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/menuitem-element.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/namespace-sensitivity.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/noscript01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/pending-spec-changes-plain-text-unsafe.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/pending-spec-changes.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/plain-text-unsafe.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/ruby.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/scriptdata01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/scripted/adoption01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/scripted/ark.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/scripted/webkit01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tables01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/template.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests1.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests10.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests11.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests12.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests14.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests15.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests16.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests17.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests18.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests19.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests2.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests20.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests21.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests22.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests23.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests24.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests25.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests26.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests3.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests4.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests5.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests6.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests7.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests8.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests9.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tests_innerHTML_1.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/tricky01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/webkit01.dat
delete mode 100644 libs/html5lib/tests/testdata/tree-construction/webkit02.dat
create mode 100644 libs/html5lib/tests/us-ascii.html
create mode 100644 libs/html5lib/tests/utf-8-bom.html
create mode 100644 libs/libfuturize/fixes/fix_input.py
delete mode 100644 libs/past/tests/__init__.py
delete mode 100644 libs/pkg_resources.py
delete mode 100644 libs/pkg_resources/__init__.py
delete mode 100644 libs/pkg_resources/_vendor/__init__.py
delete mode 100644 libs/pkg_resources/_vendor/appdirs.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/__about__.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/__init__.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/_compat.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/_structures.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/markers.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/requirements.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/specifiers.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/utils.py
delete mode 100644 libs/pkg_resources/_vendor/packaging/version.py
delete mode 100644 libs/pkg_resources/_vendor/pyparsing.py
delete mode 100644 libs/pkg_resources/_vendor/six.py
delete mode 100644 libs/pkg_resources/extern/__init__.py
delete mode 100644 libs/pkg_resources/py31compat.py
delete mode 100644 libs/tqdm/_version.py
create mode 100644 libs/tqdm/asyncio.py
mode change 100644 => 100755 libs/tqdm/completion.sh
create mode 100644 libs/tqdm/contrib/bells.py
create mode 100644 libs/tqdm/contrib/discord.py
create mode 100644 libs/tqdm/contrib/logging.py
create mode 100644 libs/tqdm/contrib/utils_worker.py
create mode 100644 libs/tqdm/dask.py
create mode 100644 libs/tqdm/rich.py
delete mode 100644 libs/tqdm/tests/tests_concurrent.py
delete mode 100644 libs/tqdm/tests/tests_contrib.py
delete mode 100644 libs/tqdm/tests/tests_itertools.py
delete mode 100644 libs/tqdm/tests/tests_keras.py
delete mode 100644 libs/tqdm/tests/tests_main.py
delete mode 100644 libs/tqdm/tests/tests_notebook.py
delete mode 100644 libs/tqdm/tests/tests_pandas.py
delete mode 100644 libs/tqdm/tests/tests_perf.py
delete mode 100644 libs/tqdm/tests/tests_synchronisation.py
delete mode 100644 libs/tqdm/tests/tests_tqdm.py
delete mode 100644 libs/tqdm/tests/tests_version.py
create mode 100644 libs/tqdm/tk.py
create mode 100644 libs/tqdm/version.py
diff --git a/bazarr.py b/bazarr.py
index 5b6d077ba..c2277bb5b 100644
--- a/bazarr.py
+++ b/bazarr.py
@@ -20,8 +20,8 @@ def check_python_version():
print("Python " + minimum_py3_str + " or greater required. "
"Current version is " + platform.python_version() + ". Please upgrade Python.")
sys.exit(1)
- elif int(python_version[0]) == 3 and int(python_version[1]) == 9:
- print("Python 3.9.x is unsupported. Current version is " + platform.python_version() +
+ elif int(python_version[0]) == 3 and int(python_version[1]) > 8:
+ print("Python version greater than 3.8.x is unsupported. Current version is " + platform.python_version() +
". Keep in mind that even if it works, you're on your own.")
elif (int(python_version[0]) == minimum_py3_tuple[0] and int(python_version[1]) < minimum_py3_tuple[1]) or \
(int(python_version[0]) != minimum_py3_tuple[0]):
diff --git a/libs/babelfish/__init__.py b/libs/babelfish/__init__.py
index 559705a25..082f1551f 100644
--- a/libs/babelfish/__init__.py
+++ b/libs/babelfish/__init__.py
@@ -4,12 +4,6 @@
# Use of this source code is governed by the 3-clause BSD license
# that can be found in the LICENSE file.
#
-__title__ = 'babelfish'
-__version__ = '0.5.5-dev'
-__author__ = 'Antoine Bertin'
-__license__ = 'BSD'
-__copyright__ = 'Copyright 2015 the BabelFish authors'
-
import sys
if sys.version_info[0] >= 3:
diff --git a/libs/babelfish/converters/__init__.py b/libs/babelfish/converters/__init__.py
index feb687b0e..d27f84900 100644
--- a/libs/babelfish/converters/__init__.py
+++ b/libs/babelfish/converters/__init__.py
@@ -2,17 +2,22 @@
# Use of this source code is governed by the 3-clause BSD license
# that can be found in the LICENSE file.
#
-import collections
from pkg_resources import iter_entry_points, EntryPoint
from ..exceptions import LanguageConvertError, LanguageReverseError
+try:
+ # Python 3.3+
+ from collections.abc import Mapping, MutableMapping
+except ImportError:
+ from collections import Mapping, MutableMapping
+
# from https://github.com/kennethreitz/requests/blob/master/requests/structures.py
-class CaseInsensitiveDict(collections.MutableMapping):
+class CaseInsensitiveDict(MutableMapping):
"""A case-insensitive ``dict``-like object.
Implements all methods and operations of
- ``collections.MutableMapping`` as well as dict's ``copy``. Also
+ ``collections.abc.MutableMapping`` as well as dict's ``copy``. Also
provides ``lower_items``.
All keys are expected to be strings. The structure remembers the
@@ -63,7 +68,7 @@ class CaseInsensitiveDict(collections.MutableMapping):
)
def __eq__(self, other):
- if isinstance(other, collections.Mapping):
+ if isinstance(other, Mapping):
other = CaseInsensitiveDict(other)
else:
return NotImplemented
diff --git a/libs/babelfish/converters/opensubtitles.py b/libs/babelfish/converters/opensubtitles.py
index 5b18e648c..3f68b683a 100644
--- a/libs/babelfish/converters/opensubtitles.py
+++ b/libs/babelfish/converters/opensubtitles.py
@@ -14,9 +14,9 @@ class OpenSubtitlesConverter(LanguageReverseConverter):
def __init__(self):
self.alpha3b_converter = language_converters['alpha3b']
self.alpha2_converter = language_converters['alpha2']
- self.to_opensubtitles = {('por', 'BR'): 'pob', ('gre', None): 'ell', ('srp', None): 'scc', ('srp', 'ME'): 'mne'}
+ self.to_opensubtitles = {('por', 'BR'): 'pob', ('gre', None): 'ell', ('srp', None): 'scc', ('srp', 'ME'): 'mne', ('chi', 'TW'): 'zht'}
self.from_opensubtitles = CaseInsensitiveDict({'pob': ('por', 'BR'), 'pb': ('por', 'BR'), 'ell': ('ell', None),
- 'scc': ('srp', None), 'mne': ('srp', 'ME')})
+ 'scc': ('srp', None), 'mne': ('srp', 'ME'), 'zht': ('zho', 'TW')})
self.codes = (self.alpha2_converter.codes | self.alpha3b_converter.codes | set(self.from_opensubtitles.keys()))
def convert(self, alpha3, country=None, script=None):
diff --git a/libs/babelfish/country.py b/libs/babelfish/country.py
index dbc14ce61..4c24b52b2 100644
--- a/libs/babelfish/country.py
+++ b/libs/babelfish/country.py
@@ -4,6 +4,7 @@
# Use of this source code is governed by the 3-clause BSD license
# that can be found in the LICENSE file.
#
+from __future__ import unicode_literals
from collections import namedtuple
from functools import partial
from pkg_resources import resource_stream # @UnresolvedImport
diff --git a/libs/babelfish/data/get_files.py b/libs/babelfish/data/get_files.py
deleted file mode 100644
index aaa090ccc..000000000
--- a/libs/babelfish/data/get_files.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2013 the BabelFish authors. All rights reserved.
-# Use of this source code is governed by the 3-clause BSD license
-# that can be found in the LICENSE file.
-#
-from __future__ import unicode_literals
-import os.path
-import tempfile
-import zipfile
-import requests
-
-
-DATA_DIR = os.path.dirname(__file__)
-
-# iso-3166-1.txt
-print('Downloading ISO-3166-1 standard (ISO country codes)...')
-with open(os.path.join(DATA_DIR, 'iso-3166-1.txt'), 'w') as f:
- r = requests.get('http://www.iso.org/iso/home/standards/country_codes/country_names_and_code_elements_txt.htm')
- f.write(r.content.strip())
-
-# iso-639-3.tab
-print('Downloading ISO-639-3 standard (ISO language codes)...')
-with tempfile.TemporaryFile() as f:
- r = requests.get('http://www-01.sil.org/iso639-3/iso-639-3_Code_Tables_20130531.zip')
- f.write(r.content)
- with zipfile.ZipFile(f) as z:
- z.extract('iso-639-3.tab', DATA_DIR)
-
-# iso-15924
-print('Downloading ISO-15924 standard (ISO script codes)...')
-with tempfile.TemporaryFile() as f:
- r = requests.get('http://www.unicode.org/iso15924/iso15924.txt.zip')
- f.write(r.content)
- with zipfile.ZipFile(f) as z:
- z.extract('iso15924-utf8-20131012.txt', DATA_DIR)
-
-# opensubtitles supported languages
-print('Downloading OpenSubtitles supported languages...')
-with open(os.path.join(DATA_DIR, 'opensubtitles_languages.txt'), 'w') as f:
- r = requests.get('http://www.opensubtitles.org/addons/export_languages.php')
- f.write(r.content)
-
-print('Done!')
diff --git a/libs/babelfish/language.py b/libs/babelfish/language.py
index 6c98fb602..b4b251937 100644
--- a/libs/babelfish/language.py
+++ b/libs/babelfish/language.py
@@ -4,6 +4,7 @@
# Use of this source code is governed by the 3-clause BSD license
# that can be found in the LICENSE file.
#
+from __future__ import unicode_literals
from collections import namedtuple
from functools import partial
from pkg_resources import resource_stream # @UnresolvedImport
diff --git a/libs/babelfish/script.py b/libs/babelfish/script.py
index 52258c95a..4b59ce016 100644
--- a/libs/babelfish/script.py
+++ b/libs/babelfish/script.py
@@ -4,6 +4,7 @@
# Use of this source code is governed by the 3-clause BSD license
# that can be found in the LICENSE file.
#
+from __future__ import unicode_literals
from collections import namedtuple
from pkg_resources import resource_stream # @UnresolvedImport
from . import basestr
diff --git a/libs/babelfish/tests.py b/libs/babelfish/tests.py
deleted file mode 100644
index b72ec284c..000000000
--- a/libs/babelfish/tests.py
+++ /dev/null
@@ -1,377 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-#
-# Copyright (c) 2013 the BabelFish authors. All rights reserved.
-# Use of this source code is governed by the 3-clause BSD license
-# that can be found in the LICENSE file.
-#
-from __future__ import unicode_literals
-import re
-import sys
-import pickle
-from unittest import TestCase, TestSuite, TestLoader, TextTestRunner
-from pkg_resources import resource_stream # @UnresolvedImport
-from babelfish import (LANGUAGES, Language, Country, Script, language_converters, country_converters,
- LanguageReverseConverter, LanguageConvertError, LanguageReverseError, CountryReverseError)
-
-
-if sys.version_info[:2] <= (2, 6):
- _MAX_LENGTH = 80
-
- def safe_repr(obj, short=False):
- try:
- result = repr(obj)
- except Exception:
- result = object.__repr__(obj)
- if not short or len(result) < _MAX_LENGTH:
- return result
- return result[:_MAX_LENGTH] + ' [truncated]...'
-
- class _AssertRaisesContext(object):
- """A context manager used to implement TestCase.assertRaises* methods."""
-
- def __init__(self, expected, test_case, expected_regexp=None):
- self.expected = expected
- self.failureException = test_case.failureException
- self.expected_regexp = expected_regexp
-
- def __enter__(self):
- return self
-
- def __exit__(self, exc_type, exc_value, tb):
- if exc_type is None:
- try:
- exc_name = self.expected.__name__
- except AttributeError:
- exc_name = str(self.expected)
- raise self.failureException(
- "{0} not raised".format(exc_name))
- if not issubclass(exc_type, self.expected):
- # let unexpected exceptions pass through
- return False
- self.exception = exc_value # store for later retrieval
- if self.expected_regexp is None:
- return True
-
- expected_regexp = self.expected_regexp
- if isinstance(expected_regexp, basestring):
- expected_regexp = re.compile(expected_regexp)
- if not expected_regexp.search(str(exc_value)):
- raise self.failureException('"%s" does not match "%s"' %
- (expected_regexp.pattern, str(exc_value)))
- return True
-
- class _Py26FixTestCase(object):
- def assertIsNone(self, obj, msg=None):
- """Same as self.assertTrue(obj is None), with a nicer default message."""
- if obj is not None:
- standardMsg = '%s is not None' % (safe_repr(obj),)
- self.fail(self._formatMessage(msg, standardMsg))
-
- def assertIsNotNone(self, obj, msg=None):
- """Included for symmetry with assertIsNone."""
- if obj is None:
- standardMsg = 'unexpectedly None'
- self.fail(self._formatMessage(msg, standardMsg))
-
- def assertIn(self, member, container, msg=None):
- """Just like self.assertTrue(a in b), but with a nicer default message."""
- if member not in container:
- standardMsg = '%s not found in %s' % (safe_repr(member),
- safe_repr(container))
- self.fail(self._formatMessage(msg, standardMsg))
-
- def assertNotIn(self, member, container, msg=None):
- """Just like self.assertTrue(a not in b), but with a nicer default message."""
- if member in container:
- standardMsg = '%s unexpectedly found in %s' % (safe_repr(member),
- safe_repr(container))
- self.fail(self._formatMessage(msg, standardMsg))
-
- def assertIs(self, expr1, expr2, msg=None):
- """Just like self.assertTrue(a is b), but with a nicer default message."""
- if expr1 is not expr2:
- standardMsg = '%s is not %s' % (safe_repr(expr1),
- safe_repr(expr2))
- self.fail(self._formatMessage(msg, standardMsg))
-
- def assertIsNot(self, expr1, expr2, msg=None):
- """Just like self.assertTrue(a is not b), but with a nicer default message."""
- if expr1 is expr2:
- standardMsg = 'unexpectedly identical: %s' % (safe_repr(expr1),)
- self.fail(self._formatMessage(msg, standardMsg))
-
-else:
- class _Py26FixTestCase(object):
- pass
-
-
-class TestScript(TestCase, _Py26FixTestCase):
- def test_wrong_script(self):
- self.assertRaises(ValueError, lambda: Script('Azer'))
-
- def test_eq(self):
- self.assertEqual(Script('Latn'), Script('Latn'))
-
- def test_ne(self):
- self.assertNotEqual(Script('Cyrl'), Script('Latn'))
-
- def test_hash(self):
- self.assertEqual(hash(Script('Hira')), hash('Hira'))
-
- def test_pickle(self):
- self.assertEqual(pickle.loads(pickle.dumps(Script('Latn'))), Script('Latn'))
-
-
-class TestCountry(TestCase, _Py26FixTestCase):
- def test_wrong_country(self):
- self.assertRaises(ValueError, lambda: Country('ZZ'))
-
- def test_eq(self):
- self.assertEqual(Country('US'), Country('US'))
-
- def test_ne(self):
- self.assertNotEqual(Country('GB'), Country('US'))
- self.assertIsNotNone(Country('US'))
-
- def test_hash(self):
- self.assertEqual(hash(Country('US')), hash('US'))
-
- def test_pickle(self):
- for country in [Country('GB'), Country('US')]:
- self.assertEqual(pickle.loads(pickle.dumps(country)), country)
-
- def test_converter_name(self):
- self.assertEqual(Country('US').name, 'UNITED STATES')
- self.assertEqual(Country.fromname('UNITED STATES'), Country('US'))
- self.assertEqual(Country.fromcode('UNITED STATES', 'name'), Country('US'))
- self.assertRaises(CountryReverseError, lambda: Country.fromname('ZZZZZ'))
- self.assertEqual(len(country_converters['name'].codes), 249)
-
-
-class TestLanguage(TestCase, _Py26FixTestCase):
- def test_languages(self):
- self.assertEqual(len(LANGUAGES), 7874)
-
- def test_wrong_language(self):
- self.assertRaises(ValueError, lambda: Language('zzz'))
-
- def test_unknown_language(self):
- self.assertEqual(Language('zzzz', unknown='und'), Language('und'))
-
- def test_converter_alpha2(self):
- self.assertEqual(Language('eng').alpha2, 'en')
- self.assertEqual(Language.fromalpha2('en'), Language('eng'))
- self.assertEqual(Language.fromcode('en', 'alpha2'), Language('eng'))
- self.assertRaises(LanguageReverseError, lambda: Language.fromalpha2('zz'))
- self.assertRaises(LanguageConvertError, lambda: Language('aaa').alpha2)
- self.assertEqual(len(language_converters['alpha2'].codes), 184)
-
- def test_converter_alpha3b(self):
- self.assertEqual(Language('fra').alpha3b, 'fre')
- self.assertEqual(Language.fromalpha3b('fre'), Language('fra'))
- self.assertEqual(Language.fromcode('fre', 'alpha3b'), Language('fra'))
- self.assertRaises(LanguageReverseError, lambda: Language.fromalpha3b('zzz'))
- self.assertRaises(LanguageConvertError, lambda: Language('aaa').alpha3b)
- self.assertEqual(len(language_converters['alpha3b'].codes), 418)
-
- def test_converter_alpha3t(self):
- self.assertEqual(Language('fra').alpha3t, 'fra')
- self.assertEqual(Language.fromalpha3t('fra'), Language('fra'))
- self.assertEqual(Language.fromcode('fra', 'alpha3t'), Language('fra'))
- self.assertRaises(LanguageReverseError, lambda: Language.fromalpha3t('zzz'))
- self.assertRaises(LanguageConvertError, lambda: Language('aaa').alpha3t)
- self.assertEqual(len(language_converters['alpha3t'].codes), 418)
-
- def test_converter_name(self):
- self.assertEqual(Language('eng').name, 'English')
- self.assertEqual(Language.fromname('English'), Language('eng'))
- self.assertEqual(Language.fromcode('English', 'name'), Language('eng'))
- self.assertRaises(LanguageReverseError, lambda: Language.fromname('Zzzzzzzzz'))
- self.assertEqual(len(language_converters['name'].codes), 7874)
-
- def test_converter_scope(self):
- self.assertEqual(language_converters['scope'].codes, set(['I', 'S', 'M']))
- self.assertEqual(Language('eng').scope, 'individual')
- self.assertEqual(Language('und').scope, 'special')
-
- def test_converter_type(self):
- self.assertEqual(language_converters['type'].codes, set(['A', 'C', 'E', 'H', 'L', 'S']))
- self.assertEqual(Language('eng').type, 'living')
- self.assertEqual(Language('und').type, 'special')
-
- def test_converter_opensubtitles(self):
- self.assertEqual(Language('fra').opensubtitles, Language('fra').alpha3b)
- self.assertEqual(Language('por', 'BR').opensubtitles, 'pob')
- self.assertEqual(Language.fromopensubtitles('fre'), Language('fra'))
- self.assertEqual(Language.fromopensubtitles('pob'), Language('por', 'BR'))
- self.assertEqual(Language.fromopensubtitles('pb'), Language('por', 'BR'))
- # Montenegrin is not recognized as an ISO language (yet?) but for now it is
- # unofficially accepted as Serbian from Montenegro
- self.assertEqual(Language.fromopensubtitles('mne'), Language('srp', 'ME'))
- self.assertEqual(Language.fromcode('pob', 'opensubtitles'), Language('por', 'BR'))
- self.assertRaises(LanguageReverseError, lambda: Language.fromopensubtitles('zzz'))
- self.assertRaises(LanguageConvertError, lambda: Language('aaa').opensubtitles)
- self.assertEqual(len(language_converters['opensubtitles'].codes), 607)
-
- # test with all the LANGUAGES from the opensubtitles api
- # downloaded from: http://www.opensubtitles.org/addons/export_languages.php
- f = resource_stream('babelfish', 'data/opensubtitles_languages.txt')
- f.readline()
- for l in f:
- idlang, alpha2, _, upload_enabled, web_enabled = l.decode('utf-8').strip().split('\t')
- if not int(upload_enabled) and not int(web_enabled):
- # do not test LANGUAGES that are too esoteric / not widely available
- continue
- self.assertEqual(Language.fromopensubtitles(idlang).opensubtitles, idlang)
- if alpha2:
- self.assertEqual(Language.fromopensubtitles(idlang), Language.fromopensubtitles(alpha2))
- f.close()
-
- def test_converter_opensubtitles_codes(self):
- for code in language_converters['opensubtitles'].from_opensubtitles.keys():
- self.assertIn(code, language_converters['opensubtitles'].codes)
-
- def test_fromietf_country_script(self):
- language = Language.fromietf('fra-FR-Latn')
- self.assertEqual(language.alpha3, 'fra')
- self.assertEqual(language.country, Country('FR'))
- self.assertEqual(language.script, Script('Latn'))
-
- def test_fromietf_country_no_script(self):
- language = Language.fromietf('fra-FR')
- self.assertEqual(language.alpha3, 'fra')
- self.assertEqual(language.country, Country('FR'))
- self.assertIsNone(language.script)
-
- def test_fromietf_no_country_no_script(self):
- language = Language.fromietf('fra-FR')
- self.assertEqual(language.alpha3, 'fra')
- self.assertEqual(language.country, Country('FR'))
- self.assertIsNone(language.script)
-
- def test_fromietf_no_country_script(self):
- language = Language.fromietf('fra-Latn')
- self.assertEqual(language.alpha3, 'fra')
- self.assertIsNone(language.country)
- self.assertEqual(language.script, Script('Latn'))
-
- def test_fromietf_alpha2_language(self):
- language = Language.fromietf('fr-Latn')
- self.assertEqual(language.alpha3, 'fra')
- self.assertIsNone(language.country)
- self.assertEqual(language.script, Script('Latn'))
-
- def test_fromietf_wrong_language(self):
- self.assertRaises(ValueError, lambda: Language.fromietf('xyz-FR'))
-
- def test_fromietf_wrong_country(self):
- self.assertRaises(ValueError, lambda: Language.fromietf('fra-YZ'))
-
- def test_fromietf_wrong_script(self):
- self.assertRaises(ValueError, lambda: Language.fromietf('fra-FR-Wxyz'))
-
- def test_eq(self):
- self.assertEqual(Language('eng'), Language('eng'))
-
- def test_ne(self):
- self.assertNotEqual(Language('fra'), Language('eng'))
- self.assertIsNotNone(Language('fra'))
-
- def test_nonzero(self):
- self.assertFalse(bool(Language('und')))
- self.assertTrue(bool(Language('eng')))
-
- def test_language_hasattr(self):
- self.assertTrue(hasattr(Language('fra'), 'alpha3'))
- self.assertTrue(hasattr(Language('fra'), 'alpha2'))
- self.assertFalse(hasattr(Language('bej'), 'alpha2'))
-
- def test_country_hasattr(self):
- self.assertTrue(hasattr(Country('US'), 'name'))
- self.assertTrue(hasattr(Country('FR'), 'alpha2'))
- self.assertFalse(hasattr(Country('BE'), 'none'))
-
- def test_country(self):
- self.assertEqual(Language('por', 'BR').country, Country('BR'))
- self.assertEqual(Language('eng', Country('US')).country, Country('US'))
-
- def test_eq_with_country(self):
- self.assertEqual(Language('eng', 'US'), Language('eng', Country('US')))
-
- def test_ne_with_country(self):
- self.assertNotEqual(Language('eng', 'US'), Language('eng', Country('GB')))
-
- def test_script(self):
- self.assertEqual(Language('srp', script='Latn').script, Script('Latn'))
- self.assertEqual(Language('srp', script=Script('Cyrl')).script, Script('Cyrl'))
-
- def test_eq_with_script(self):
- self.assertEqual(Language('srp', script='Latn'), Language('srp', script=Script('Latn')))
-
- def test_ne_with_script(self):
- self.assertNotEqual(Language('srp', script='Latn'), Language('srp', script=Script('Cyrl')))
-
- def test_eq_with_country_and_script(self):
- self.assertEqual(Language('srp', 'SR', 'Latn'), Language('srp', Country('SR'), Script('Latn')))
-
- def test_ne_with_country_and_script(self):
- self.assertNotEqual(Language('srp', 'SR', 'Latn'), Language('srp', Country('SR'), Script('Cyrl')))
-
- def test_hash(self):
- self.assertEqual(hash(Language('fra')), hash('fr'))
- self.assertEqual(hash(Language('ace')), hash('ace'))
- self.assertEqual(hash(Language('por', 'BR')), hash('pt-BR'))
- self.assertEqual(hash(Language('srp', script='Cyrl')), hash('sr-Cyrl'))
- self.assertEqual(hash(Language('eng', 'US', 'Latn')), hash('en-US-Latn'))
-
- def test_pickle(self):
- for lang in [Language('fra'),
- Language('eng', 'US'),
- Language('srp', script='Latn'),
- Language('eng', 'US', 'Latn')]:
- self.assertEqual(pickle.loads(pickle.dumps(lang)), lang)
-
- def test_str(self):
- self.assertEqual(Language.fromietf(str(Language('eng', 'US', 'Latn'))), Language('eng', 'US', 'Latn'))
- self.assertEqual(Language.fromietf(str(Language('fra', 'FR'))), Language('fra', 'FR'))
- self.assertEqual(Language.fromietf(str(Language('bel'))), Language('bel'))
-
- def test_register_converter(self):
- class TestConverter(LanguageReverseConverter):
- def __init__(self):
- self.to_test = {'fra': 'test1', 'eng': 'test2'}
- self.from_test = {'test1': 'fra', 'test2': 'eng'}
-
- def convert(self, alpha3, country=None, script=None):
- if alpha3 not in self.to_test:
- raise LanguageConvertError(alpha3, country, script)
- return self.to_test[alpha3]
-
- def reverse(self, test):
- if test not in self.from_test:
- raise LanguageReverseError(test)
- return (self.from_test[test], None)
- language = Language('fra')
- self.assertFalse(hasattr(language, 'test'))
- language_converters['test'] = TestConverter()
- self.assertTrue(hasattr(language, 'test'))
- self.assertIn('test', language_converters)
- self.assertEqual(Language('fra').test, 'test1')
- self.assertEqual(Language.fromtest('test2').alpha3, 'eng')
- del language_converters['test']
- self.assertNotIn('test', language_converters)
- self.assertRaises(KeyError, lambda: Language.fromtest('test1'))
- self.assertRaises(AttributeError, lambda: Language('fra').test)
-
-
-def suite():
- suite = TestSuite()
- suite.addTest(TestLoader().loadTestsFromTestCase(TestScript))
- suite.addTest(TestLoader().loadTestsFromTestCase(TestCountry))
- suite.addTest(TestLoader().loadTestsFromTestCase(TestLanguage))
- return suite
-
-
-if __name__ == '__main__':
- TextTestRunner().run(suite())
diff --git a/libs/flask_restful/__init__.py b/libs/flask_restful/__init__.py
index 365c068ad..e9f9d9f6f 100644
--- a/libs/flask_restful/__init__.py
+++ b/libs/flask_restful/__init__.py
@@ -11,10 +11,12 @@ from werkzeug.wrappers import Response as ResponseBase
from flask_restful.utils import http_status_message, unpack, OrderedDict
from flask_restful.representations.json import output_json
import sys
-from flask.helpers import _endpoint_from_view_func
from types import MethodType
import operator
-from collections import Mapping
+try:
+ from collections.abc import Mapping
+except ImportError:
+ from collections import Mapping
__all__ = ('Api', 'Resource', 'marshal', 'marshal_with', 'marshal_with_field', 'abort')
@@ -58,7 +60,7 @@ class Api(object):
to handle 404 errors throughout your app
:param serve_challenge_on_401: Whether to serve a challenge response to
clients on receiving 401. This usually leads to a username/password
- popup in web browers.
+ popup in web browsers.
:param url_part_order: A string that controls the order that the pieces
of the url are concatenated when the full url is constructed. 'b'
is the blueprint (or blueprint registration) prefix, 'a' is the api
@@ -153,7 +155,7 @@ class Api(object):
rule = blueprint_setup.url_prefix + rule
options.setdefault('subdomain', blueprint_setup.subdomain)
if endpoint is None:
- endpoint = _endpoint_from_view_func(view_func)
+ endpoint = view_func.__name__
defaults = blueprint_setup.url_defaults
if 'defaults' in options:
defaults = dict(defaults, **options.pop('defaults'))
@@ -287,6 +289,13 @@ class Api(object):
headers = Headers()
if isinstance(e, HTTPException):
+ if e.response is not None:
+ # If HTTPException is initialized with a response, then return e.get_response().
+ # This prevents specified error response from being overridden.
+ # eg. HTTPException(response=Response("Hello World"))
+ resp = e.get_response()
+ return resp
+
code = e.code
default_data = {
'message': getattr(e, 'description', http_status_message(code))
diff --git a/libs/flask_restful/__version__.py b/libs/flask_restful/__version__.py
index ebac6ac55..d0ecbea71 100644
--- a/libs/flask_restful/__version__.py
+++ b/libs/flask_restful/__version__.py
@@ -1,3 +1,3 @@
#!/usr/bin/env python
-__version__ = '0.3.7'
+__version__ = '0.3.9'
diff --git a/libs/flask_restful/fields.py b/libs/flask_restful/fields.py
index 27531d2cb..70a54060c 100644
--- a/libs/flask_restful/fields.py
+++ b/libs/flask_restful/fields.py
@@ -1,6 +1,4 @@
-from datetime import datetime
from calendar import timegm
-import pytz
from decimal import Decimal as MyDecimal, ROUND_HALF_EVEN
from email.utils import formatdate
import six
@@ -9,8 +7,7 @@ try:
except ImportError:
# python3
from urllib.parse import urlparse, urlunparse
-
-from flask_restful import inputs, marshal
+from flask_restful import marshal
from flask import url_for, request
__all__ = ["String", "FormattedString", "Url", "DateTime", "Float",
diff --git a/libs/flask_restful/inputs.py b/libs/flask_restful/inputs.py
index 141fa9ad4..1b36c85e0 100644
--- a/libs/flask_restful/inputs.py
+++ b/libs/flask_restful/inputs.py
@@ -269,7 +269,7 @@ def datetime_from_rfc822(datetime_str):
def datetime_from_iso8601(datetime_str):
- """Turns an ISO8601 formatted date into a datetime object.
+ """Turns an ISO8601 formatted datetime into a datetime object.
Example::
diff --git a/libs/flask_restful/reqparse.py b/libs/flask_restful/reqparse.py
index 754f14c1e..9bb309914 100644
--- a/libs/flask_restful/reqparse.py
+++ b/libs/flask_restful/reqparse.py
@@ -1,6 +1,9 @@
from copy import deepcopy
-import collections
+try:
+ from collections.abc import MutableSequence
+except ImportError:
+ from collections import MutableSequence
from flask import current_app, request
from werkzeug.datastructures import MultiDict, FileStorage
from werkzeug import exceptions
@@ -146,7 +149,7 @@ class Argument(object):
except TypeError:
try:
if self.type is decimal.Decimal:
- return self.type(str(value), self.name)
+ return self.type(str(value))
else:
return self.type(value, self.name)
except TypeError:
@@ -194,7 +197,7 @@ class Argument(object):
values = source.getlist(name)
else:
values = source.get(name)
- if not (isinstance(values, collections.MutableSequence) and self.action == 'append'):
+ if not (isinstance(values, MutableSequence) and self.action == 'append'):
values = [values]
for value in values:
diff --git a/libs/flask_restful/utils/__init__.py b/libs/flask_restful/utils/__init__.py
index 7d6baecb0..8f267b9d2 100644
--- a/libs/flask_restful/utils/__init__.py
+++ b/libs/flask_restful/utils/__init__.py
@@ -1,9 +1,9 @@
import sys
try:
- from collections import OrderedDict
+ from collections.abc import OrderedDict
except ImportError:
- from ordereddict import OrderedDict
+ from collections import OrderedDict
from werkzeug.http import HTTP_STATUS_CODES
diff --git a/libs/future/__init__.py b/libs/future/__init__.py
index 211fb43bc..ad419d67e 100644
--- a/libs/future/__init__.py
+++ b/libs/future/__init__.py
@@ -68,7 +68,7 @@ See: http://python-future.org
Credits
-------
-:Author: Ed Schofield
+:Author: Ed Schofield, Jordan M. Adler, et al
:Sponsor: Python Charmers Pty Ltd, Australia, and Python Charmers Pte
Ltd, Singapore. http://pythoncharmers.com
:Others: See docs/credits.rst or http://python-future.org/credits.html
@@ -76,7 +76,7 @@ Credits
Licensing
---------
-Copyright 2013-2018 Python Charmers Pty Ltd, Australia.
+Copyright 2013-2019 Python Charmers Pty Ltd, Australia.
The software is distributed under an MIT licence. See LICENSE.txt.
"""
@@ -84,10 +84,10 @@ The software is distributed under an MIT licence. See LICENSE.txt.
__title__ = 'future'
__author__ = 'Ed Schofield'
__license__ = 'MIT'
-__copyright__ = 'Copyright 2013-2018 Python Charmers Pty Ltd'
+__copyright__ = 'Copyright 2013-2019 Python Charmers Pty Ltd'
__ver_major__ = 0
-__ver_minor__ = 17
-__ver_patch__ = 0
+__ver_minor__ = 18
+__ver_patch__ = 2
__ver_sub__ = ''
__version__ = "%d.%d.%d%s" % (__ver_major__, __ver_minor__,
__ver_patch__, __ver_sub__)
diff --git a/libs/future/backports/__init__.py b/libs/future/backports/__init__.py
index 68291141c..c71e06535 100644
--- a/libs/future/backports/__init__.py
+++ b/libs/future/backports/__init__.py
@@ -10,7 +10,7 @@ __future_module__ = True
from future.standard_library import import_top_level_modules
-if sys.version_info[0] == 3:
+if sys.version_info[0] >= 3:
import_top_level_modules()
diff --git a/libs/future/backports/email/message.py b/libs/future/backports/email/message.py
index 99715fcc6..d8d9615d7 100644
--- a/libs/future/backports/email/message.py
+++ b/libs/future/backports/email/message.py
@@ -800,7 +800,7 @@ class Message(object):
# There was no Content-Type header, and we don't know what type
# to set it to, so raise an exception.
raise errors.HeaderParseError('No Content-Type header found')
- newparams = []
+ newparams = list()
foundp = False
for pk, pv in params:
if pk.lower() == 'boundary':
@@ -814,10 +814,10 @@ class Message(object):
# instead???
newparams.append(('boundary', '"%s"' % boundary))
# Replace the existing Content-Type header with the new value
- newheaders = []
+ newheaders = list()
for h, v in self._headers:
if h.lower() == 'content-type':
- parts = []
+ parts = list()
for k, v in newparams:
if v == '':
parts.append(k)
diff --git a/libs/future/backports/http/client.py b/libs/future/backports/http/client.py
index 5dd983d80..e663d125c 100644
--- a/libs/future/backports/http/client.py
+++ b/libs/future/backports/http/client.py
@@ -79,11 +79,15 @@ from future.backports.misc import create_connection as socket_create_connection
import io
import os
import socket
-import collections
from future.backports.urllib.parse import urlsplit
import warnings
from array import array
+if PY2:
+ from collections import Iterable
+else:
+ from collections.abc import Iterable
+
__all__ = ["HTTPResponse", "HTTPConnection",
"HTTPException", "NotConnected", "UnknownProtocol",
"UnknownTransferEncoding", "UnimplementedFileMode",
@@ -696,9 +700,19 @@ class HTTPResponse(io.RawIOBase):
while total_bytes < len(b):
if MAXAMOUNT < len(mvb):
temp_mvb = mvb[0:MAXAMOUNT]
- n = self.fp.readinto(temp_mvb)
+ if PY2:
+ data = self.fp.read(len(temp_mvb))
+ n = len(data)
+ temp_mvb[:n] = data
+ else:
+ n = self.fp.readinto(temp_mvb)
else:
- n = self.fp.readinto(mvb)
+ if PY2:
+ data = self.fp.read(len(mvb))
+ n = len(data)
+ mvb[:n] = data
+ else:
+ n = self.fp.readinto(mvb)
if not n:
raise IncompleteRead(bytes(mvb[0:total_bytes]), len(b))
mvb = mvb[n:]
@@ -892,7 +906,7 @@ class HTTPConnection(object):
try:
self.sock.sendall(data)
except TypeError:
- if isinstance(data, collections.Iterable):
+ if isinstance(data, Iterable):
for d in data:
self.sock.sendall(d)
else:
diff --git a/libs/future/backports/http/cookiejar.py b/libs/future/backports/http/cookiejar.py
index cad72f9b4..af3ef4151 100644
--- a/libs/future/backports/http/cookiejar.py
+++ b/libs/future/backports/http/cookiejar.py
@@ -33,7 +33,7 @@ from __future__ import print_function
from __future__ import division
from __future__ import absolute_import
from future.builtins import filter, int, map, open, str
-from future.utils import as_native_str
+from future.utils import as_native_str, PY2
__all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy',
'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar']
@@ -41,7 +41,8 @@ __all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy',
import copy
import datetime
import re
-re.ASCII = 0
+if PY2:
+ re.ASCII = 0
import time
from future.backports.urllib.parse import urlparse, urlsplit, quote
from future.backports.http.client import HTTP_PORT
diff --git a/libs/future/backports/http/cookies.py b/libs/future/backports/http/cookies.py
index ae32ed7e7..8bb61e22c 100644
--- a/libs/future/backports/http/cookies.py
+++ b/libs/future/backports/http/cookies.py
@@ -138,7 +138,8 @@ from future.utils import PY2, as_native_str
# Import our required modules
#
import re
-re.ASCII = 0 # for py2 compatibility
+if PY2:
+ re.ASCII = 0 # for py2 compatibility
import string
__all__ = ["CookieError", "BaseCookie", "SimpleCookie"]
diff --git a/libs/future/backports/misc.py b/libs/future/backports/misc.py
index ef7520788..098a0667e 100644
--- a/libs/future/backports/misc.py
+++ b/libs/future/backports/misc.py
@@ -16,7 +16,6 @@ from __future__ import absolute_import
import subprocess
from math import ceil as oldceil
-from collections import Mapping, MutableMapping
from operator import itemgetter as _itemgetter, eq as _eq
import sys
@@ -25,7 +24,12 @@ from _weakref import proxy as _proxy
from itertools import repeat as _repeat, chain as _chain, starmap as _starmap
from socket import getaddrinfo, SOCK_STREAM, error, socket
-from future.utils import iteritems, itervalues, PY26, PY3
+from future.utils import iteritems, itervalues, PY2, PY26, PY3
+
+if PY2:
+ from collections import Mapping, MutableMapping
+else:
+ from collections.abc import Mapping, MutableMapping
def ceil(x):
diff --git a/libs/future/backports/test/pystone.py b/libs/future/backports/test/pystone.py
old mode 100644
new mode 100755
diff --git a/libs/future/backports/urllib/request.py b/libs/future/backports/urllib/request.py
index b1545ca0f..baee5401a 100644
--- a/libs/future/backports/urllib/request.py
+++ b/libs/future/backports/urllib/request.py
@@ -109,11 +109,17 @@ import re
import socket
import sys
import time
-import collections
import tempfile
import contextlib
import warnings
+from future.utils import PY2
+
+if PY2:
+ from collections import Iterable
+else:
+ from collections.abc import Iterable
+
# check for SSL
try:
import ssl
@@ -1221,7 +1227,7 @@ class AbstractHTTPHandler(BaseHandler):
mv = memoryview(data)
size = len(mv) * mv.itemsize
except TypeError:
- if isinstance(data, collections.Iterable):
+ if isinstance(data, Iterable):
raise ValueError("Content-Length should be specified "
"for iterable data of type %r %r" % (type(data),
data))
diff --git a/libs/future/builtins/__init__.py b/libs/future/builtins/__init__.py
index 216465a15..8bc1649d2 100644
--- a/libs/future/builtins/__init__.py
+++ b/libs/future/builtins/__init__.py
@@ -11,7 +11,7 @@ from future.builtins.iterators import (filter, map, zip)
# The isinstance import is no longer needed. We provide it only for
# backward-compatibility with future v0.8.2. It will be removed in future v1.0.
from future.builtins.misc import (ascii, chr, hex, input, isinstance, next,
- oct, open, pow, round, super)
+ oct, open, pow, round, super, max, min)
from future.utils import PY3
if PY3:
@@ -43,7 +43,7 @@ if not utils.PY3:
__all__ = ['filter', 'map', 'zip',
'ascii', 'chr', 'hex', 'input', 'next', 'oct', 'open', 'pow',
'round', 'super',
- 'bytes', 'dict', 'int', 'list', 'object', 'range', 'str',
+ 'bytes', 'dict', 'int', 'list', 'object', 'range', 'str', 'max', 'min'
]
else:
diff --git a/libs/future/builtins/misc.py b/libs/future/builtins/misc.py
index 90dc384ad..f86ce5f34 100644
--- a/libs/future/builtins/misc.py
+++ b/libs/future/builtins/misc.py
@@ -13,6 +13,8 @@ The builtin functions are:
- ``open`` (equivalent to io.open on Py2)
- ``super`` (backport of Py3's magic zero-argument super() function
- ``round`` (new "Banker's Rounding" behaviour from Py3)
+- ``max`` (new default option from Py3.4)
+- ``min`` (new default option from Py3.4)
``isinstance`` is also currently exported for backwards compatibility
with v0.8.2, although this has been deprecated since v0.9.
@@ -59,6 +61,8 @@ if utils.PY2:
from future.builtins.newnext import newnext as next
from future.builtins.newround import newround as round
from future.builtins.newsuper import newsuper as super
+ from future.builtins.new_min_max import newmax as max
+ from future.builtins.new_min_max import newmin as min
from future.types.newint import newint
_SENTINEL = object()
@@ -89,11 +93,12 @@ if utils.PY2:
else:
return _builtin_pow(x+0j, y, z)
+
# ``future`` doesn't support Py3.0/3.1. If we ever did, we'd add this:
# callable = __builtin__.callable
__all__ = ['ascii', 'chr', 'hex', 'input', 'isinstance', 'next', 'oct',
- 'open', 'pow', 'round', 'super']
+ 'open', 'pow', 'round', 'super', 'max', 'min']
else:
import builtins
@@ -109,8 +114,14 @@ else:
pow = builtins.pow
round = builtins.round
super = builtins.super
-
- __all__ = []
+ if utils.PY34_PLUS:
+ max = builtins.max
+ min = builtins.min
+ __all__ = []
+ else:
+ from future.builtins.new_min_max import newmax as max
+ from future.builtins.new_min_max import newmin as min
+ __all__ = ['min', 'max']
# The callable() function was removed from Py3.0 and 3.1 and
# reintroduced into Py3.2+. ``future`` doesn't support Py3.0/3.1. If we ever
diff --git a/libs/future/builtins/new_min_max.py b/libs/future/builtins/new_min_max.py
new file mode 100644
index 000000000..6f0c2a86f
--- /dev/null
+++ b/libs/future/builtins/new_min_max.py
@@ -0,0 +1,59 @@
+import itertools
+
+from future import utils
+if utils.PY2:
+ from __builtin__ import max as _builtin_max, min as _builtin_min
+else:
+ from builtins import max as _builtin_max, min as _builtin_min
+
+_SENTINEL = object()
+
+
+def newmin(*args, **kwargs):
+ return new_min_max(_builtin_min, *args, **kwargs)
+
+
+def newmax(*args, **kwargs):
+ return new_min_max(_builtin_max, *args, **kwargs)
+
+
+def new_min_max(_builtin_func, *args, **kwargs):
+ """
+ To support the argument "default" introduced in python 3.4 for min and max
+ :param _builtin_func: builtin min or builtin max
+ :param args:
+ :param kwargs:
+ :return: returns the min or max based on the arguments passed
+ """
+
+ for key, _ in kwargs.items():
+ if key not in set(['key', 'default']):
+ raise TypeError('Illegal argument %s', key)
+
+ if len(args) == 0:
+ raise TypeError
+
+ if len(args) != 1 and kwargs.get('default', _SENTINEL) is not _SENTINEL:
+ raise TypeError
+
+ if len(args) == 1:
+ iterator = iter(args[0])
+ try:
+ first = next(iterator)
+ except StopIteration:
+ if kwargs.get('default', _SENTINEL) is not _SENTINEL:
+ return kwargs.get('default')
+ else:
+ raise ValueError('{}() arg is an empty sequence'.format(_builtin_func.__name__))
+ else:
+ iterator = itertools.chain([first], iterator)
+ if kwargs.get('key') is not None:
+ return _builtin_func(iterator, key=kwargs.get('key'))
+ else:
+ return _builtin_func(iterator)
+
+ if len(args) > 1:
+ if kwargs.get('key') is not None:
+ return _builtin_func(args, key=kwargs.get('key'))
+ else:
+ return _builtin_func(args)
diff --git a/libs/future/builtins/newround.py b/libs/future/builtins/newround.py
index 3943ebb6e..394a2c63c 100644
--- a/libs/future/builtins/newround.py
+++ b/libs/future/builtins/newround.py
@@ -38,11 +38,14 @@ def newround(number, ndigits=None):
if 'numpy' in repr(type(number)):
number = float(number)
- if not PY26:
- d = Decimal.from_float(number).quantize(exponent,
- rounding=ROUND_HALF_EVEN)
+ if isinstance(number, Decimal):
+ d = number
else:
- d = from_float_26(number).quantize(exponent, rounding=ROUND_HALF_EVEN)
+ if not PY26:
+ d = Decimal.from_float(number).quantize(exponent,
+ rounding=ROUND_HALF_EVEN)
+ else:
+ d = from_float_26(number).quantize(exponent, rounding=ROUND_HALF_EVEN)
if return_int:
return int(d)
diff --git a/libs/future/moves/__init__.py b/libs/future/moves/__init__.py
index 040fdcf01..0cd60d3d5 100644
--- a/libs/future/moves/__init__.py
+++ b/libs/future/moves/__init__.py
@@ -4,5 +4,5 @@ import sys
__future_module__ = True
from future.standard_library import import_top_level_modules
-if sys.version_info[0] == 3:
+if sys.version_info[0] >= 3:
import_top_level_modules()
diff --git a/libs/future/moves/copyreg.py b/libs/future/moves/copyreg.py
index 21c7a42f2..9d08cdc5e 100644
--- a/libs/future/moves/copyreg.py
+++ b/libs/future/moves/copyreg.py
@@ -2,7 +2,11 @@ from __future__ import absolute_import
from future.utils import PY3
if PY3:
- from copyreg import *
+ import copyreg, sys
+ # A "*" import uses Python 3's copyreg.__all__ which does not include
+ # all public names in the API surface for copyreg, this avoids that
+ # problem by just making our module _be_ a reference to the actual module.
+ sys.modules['future.moves.copyreg'] = copyreg
else:
__future_module__ = True
from copy_reg import *
diff --git a/libs/future/moves/urllib/request.py b/libs/future/moves/urllib/request.py
index 60e440a77..972aa4ab5 100644
--- a/libs/future/moves/urllib/request.py
+++ b/libs/future/moves/urllib/request.py
@@ -11,19 +11,8 @@ if PY3:
proxy_bypass,
quote,
request_host,
- splitattr,
- splithost,
- splitpasswd,
- splitport,
- splitquery,
- splittag,
- splittype,
- splituser,
- splitvalue,
thishost,
- to_bytes,
unquote,
- unwrap,
url2pathname,
urlcleanup,
urljoin,
@@ -32,6 +21,18 @@ if PY3:
urlretrieve,
urlsplit,
urlunparse)
+
+ from urllib.parse import (splitattr,
+ splithost,
+ splitpasswd,
+ splitport,
+ splitquery,
+ splittag,
+ splittype,
+ splituser,
+ splitvalue,
+ to_bytes,
+ unwrap)
else:
__future_module__ = True
with suspend_hooks():
diff --git a/libs/future/tests/base.py b/libs/future/tests/base.py
index 9f4607b69..4ef437baa 100644
--- a/libs/future/tests/base.py
+++ b/libs/future/tests/base.py
@@ -272,7 +272,11 @@ class CodeHandler(unittest.TestCase):
else:
headers = ''
- self.compare(output, headers + reformat_code(expected),
+ reformatted = reformat_code(expected)
+ if headers in reformatted:
+ headers = ''
+
+ self.compare(output, headers + reformatted,
ignore_imports=ignore_imports)
def unchanged(self, code, **kwargs):
@@ -338,6 +342,10 @@ class CodeHandler(unittest.TestCase):
'----\n%s\n----' % f.read(),
)
ErrorClass = (FuturizeError if 'futurize' in script else PasteurizeError)
+
+ if not hasattr(e, 'output'):
+ # The attribute CalledProcessError.output doesn't exist on Py2.6
+ e.output = None
raise ErrorClass(msg, e.returncode, e.cmd, output=e.output)
return output
diff --git a/libs/future/types/newbytes.py b/libs/future/types/newbytes.py
index 2a337c864..c9d584a7c 100644
--- a/libs/future/types/newbytes.py
+++ b/libs/future/types/newbytes.py
@@ -5,15 +5,19 @@ Why do this? Without it, the Python 2 bytes object is a very, very
different beast to the Python 3 bytes object.
"""
-from collections import Iterable
from numbers import Integral
import string
import copy
-from future.utils import istext, isbytes, PY3, with_metaclass
+from future.utils import istext, isbytes, PY2, PY3, with_metaclass
from future.types import no, issubset
from future.types.newobject import newobject
+if PY2:
+ from collections import Iterable
+else:
+ from collections.abc import Iterable
+
_builtin_bytes = bytes
diff --git a/libs/future/types/newint.py b/libs/future/types/newint.py
index 705b8fa95..748dba9d2 100644
--- a/libs/future/types/newint.py
+++ b/libs/future/types/newint.py
@@ -8,7 +8,6 @@ They are very similar. The most notable difference is:
from __future__ import division
import struct
-import collections
from future.types.newbytes import newbytes
from future.types.newobject import newobject
@@ -17,6 +16,9 @@ from future.utils import PY3, isint, istext, isbytes, with_metaclass, native
if PY3:
long = int
+ from collections.abc import Iterable
+else:
+ from collections import Iterable
class BaseNewInt(type):
@@ -356,7 +358,7 @@ class newint(with_metaclass(BaseNewInt, long)):
raise TypeError("cannot convert unicode objects to bytes")
# mybytes can also be passed as a sequence of integers on Py3.
# Test for this:
- elif isinstance(mybytes, collections.Iterable):
+ elif isinstance(mybytes, Iterable):
mybytes = newbytes(mybytes)
b = mybytes if byteorder == 'big' else mybytes[::-1]
if len(b) == 0:
diff --git a/libs/future/types/newmemoryview.py b/libs/future/types/newmemoryview.py
index 72c6990a7..09f804dcf 100644
--- a/libs/future/types/newmemoryview.py
+++ b/libs/future/types/newmemoryview.py
@@ -1,14 +1,16 @@
"""
A pretty lame implementation of a memoryview object for Python 2.6.
"""
-
-from collections import Iterable
from numbers import Integral
import string
-from future.utils import istext, isbytes, PY3, with_metaclass
+from future.utils import istext, isbytes, PY2, with_metaclass
from future.types import no, issubset
+if PY2:
+ from collections import Iterable
+else:
+ from collections.abc import Iterable
# class BaseNewBytes(type):
# def __instancecheck__(cls, instance):
diff --git a/libs/future/types/newobject.py b/libs/future/types/newobject.py
index 776d47664..31b84fc12 100644
--- a/libs/future/types/newobject.py
+++ b/libs/future/types/newobject.py
@@ -112,5 +112,6 @@ class newobject(object):
"""
return object(self)
+ __slots__ = []
__all__ = ['newobject']
diff --git a/libs/future/types/newrange.py b/libs/future/types/newrange.py
index 9173b0509..eda01a5a5 100644
--- a/libs/future/types/newrange.py
+++ b/libs/future/types/newrange.py
@@ -19,7 +19,12 @@ From Dan Crosta's README:
"""
from __future__ import absolute_import
-from collections import Sequence, Iterator
+from future.utils import PY2
+
+if PY2:
+ from collections import Sequence, Iterator
+else:
+ from collections.abc import Sequence, Iterator
from itertools import islice
from future.backports.misc import count # with step parameter on Py2.6
diff --git a/libs/future/types/newstr.py b/libs/future/types/newstr.py
index e6272fb90..8ca191f97 100644
--- a/libs/future/types/newstr.py
+++ b/libs/future/types/newstr.py
@@ -40,7 +40,6 @@ representations of your objects portably across Py3 and Py2, use the
"""
-from collections import Iterable
from numbers import Number
from future.utils import PY3, istext, with_metaclass, isnewbytes
@@ -51,6 +50,9 @@ from future.types.newobject import newobject
if PY3:
# We'll probably never use newstr on Py3 anyway...
unicode = str
+ from collections.abc import Iterable
+else:
+ from collections import Iterable
class BaseNewStr(type):
@@ -105,6 +107,7 @@ class newstr(with_metaclass(BaseNewStr, unicode)):
"""
Without the u prefix
"""
+
value = super(newstr, self).__repr__()
# assert value[0] == u'u'
return value[1:]
@@ -290,7 +293,14 @@ class newstr(with_metaclass(BaseNewStr, unicode)):
isinstance(other, bytes) and not isnewbytes(other)):
return super(newstr, self).__eq__(other)
else:
- return False
+ return NotImplemented
+
+ def __hash__(self):
+ if (isinstance(self, unicode) or
+ isinstance(self, bytes) and not isnewbytes(self)):
+ return super(newstr, self).__hash__()
+ else:
+ raise NotImplementedError()
def __ne__(self, other):
if (isinstance(other, unicode) or
diff --git a/libs/future/utils/__init__.py b/libs/future/utils/__init__.py
index 906f1e464..46bd96def 100644
--- a/libs/future/utils/__init__.py
+++ b/libs/future/utils/__init__.py
@@ -18,8 +18,10 @@ This module exports useful functions for 2/3 compatible code:
* types:
* text_type: unicode in Python 2, str in Python 3
- * binary_type: str in Python 2, bytes in Python 3
* string_types: basestring in Python 2, str in Python 3
+ * binary_type: str in Python 2, bytes in Python 3
+ * integer_types: (int, long) in Python 2, int in Python 3
+ * class_types: (type, types.ClassType) in Python 2, type in Python 3
* bchr(c):
Take an integer and make a 1-character byte string
@@ -55,7 +57,8 @@ import copy
import inspect
-PY3 = sys.version_info[0] == 3
+PY3 = sys.version_info[0] >= 3
+PY34_PLUS = sys.version_info[0:2] >= (3, 4)
PY35_PLUS = sys.version_info[0:2] >= (3, 5)
PY36_PLUS = sys.version_info[0:2] >= (3, 6)
PY2 = sys.version_info[0] == 2
@@ -405,12 +408,34 @@ if PY3:
allows re-raising exceptions with the cls value and traceback on
Python 2 and 3.
"""
- if value is not None and isinstance(tp, Exception):
- raise TypeError("instance exception may not have a separate value")
- if value is not None:
- exc = tp(value)
- else:
+ if isinstance(tp, BaseException):
+ # If the first object is an instance, the type of the exception
+ # is the class of the instance, the instance itself is the value,
+ # and the second object must be None.
+ if value is not None:
+ raise TypeError("instance exception may not have a separate value")
exc = tp
+ elif isinstance(tp, type) and not issubclass(tp, BaseException):
+ # If the first object is a class, it becomes the type of the
+ # exception.
+ raise TypeError("class must derive from BaseException, not %s" % tp.__name__)
+ else:
+ # The second object is used to determine the exception value: If it
+ # is an instance of the class, the instance becomes the exception
+ # value. If the second object is a tuple, it is used as the argument
+ # list for the class constructor; if it is None, an empty argument
+ # list is used, and any other object is treated as a single argument
+ # to the constructor. The instance so created by calling the
+ # constructor is used as the exception value.
+ if isinstance(value, tp):
+ exc = value
+ elif isinstance(value, tuple):
+ exc = tp(*value)
+ elif value is None:
+ exc = tp()
+ else:
+ exc = tp(value)
+
if exc.__traceback__ is not tb:
raise exc.with_traceback(tb)
raise exc
@@ -443,12 +468,14 @@ else:
e.__suppress_context__ = False
if isinstance(cause, type) and issubclass(cause, Exception):
e.__cause__ = cause()
+ e.__cause__.__traceback__ = sys.exc_info()[2]
e.__suppress_context__ = True
elif cause is None:
e.__cause__ = None
e.__suppress_context__ = True
elif isinstance(cause, BaseException):
e.__cause__ = cause
+ object.__setattr__(e.__cause__, '__traceback__', sys.exc_info()[2])
e.__suppress_context__ = True
else:
raise TypeError("exception causes must derive from BaseException")
@@ -552,15 +579,14 @@ def isbytes(obj):
def isnewbytes(obj):
"""
- Equivalent to the result of ``isinstance(obj, newbytes)`` were
- ``__instancecheck__`` not overridden on the newbytes subclass. In
- other words, it is REALLY a newbytes instance, not a Py2 native str
+ Equivalent to the result of ``type(obj) == type(newbytes)``
+ in other words, it is REALLY a newbytes instance, not a Py2 native str
object?
+
+ Note that this does not cover subclasses of newbytes, and it is not
+ equivalent to ininstance(obj, newbytes)
"""
- # TODO: generalize this so that it works with subclasses of newbytes
- # Import is here to avoid circular imports:
- from future.types.newbytes import newbytes
- return type(obj) == newbytes
+ return type(obj).__name__ == 'newbytes'
def isint(obj):
@@ -726,16 +752,16 @@ else:
__all__ = ['PY2', 'PY26', 'PY3', 'PYPY',
- 'as_native_str', 'bind_method', 'bord', 'bstr',
- 'bytes_to_native_str', 'encode_filename', 'ensure_new_type',
- 'exec_', 'get_next', 'getexception', 'implements_iterator',
- 'is_new_style', 'isbytes', 'isidentifier', 'isint',
- 'isnewbytes', 'istext', 'iteritems', 'iterkeys', 'itervalues',
- 'lfilter', 'listitems', 'listvalues', 'lmap', 'lrange',
- 'lzip', 'native', 'native_bytes', 'native_str',
+ 'as_native_str', 'binary_type', 'bind_method', 'bord', 'bstr',
+ 'bytes_to_native_str', 'class_types', 'encode_filename',
+ 'ensure_new_type', 'exec_', 'get_next', 'getexception',
+ 'implements_iterator', 'integer_types', 'is_new_style', 'isbytes',
+ 'isidentifier', 'isint', 'isnewbytes', 'istext', 'iteritems',
+ 'iterkeys', 'itervalues', 'lfilter', 'listitems', 'listvalues',
+ 'lmap', 'lrange', 'lzip', 'native', 'native_bytes', 'native_str',
'native_str_to_bytes', 'old_div',
'python_2_unicode_compatible', 'raise_',
- 'raise_with_traceback', 'reraise', 'text_to_native_str',
- 'tobytes', 'viewitems', 'viewkeys', 'viewvalues',
- 'with_metaclass'
- ]
+ 'raise_with_traceback', 'reraise', 'string_types',
+ 'text_to_native_str', 'text_type', 'tobytes', 'viewitems',
+ 'viewkeys', 'viewvalues', 'with_metaclass'
+ ]
diff --git a/libs/html5lib/__init__.py b/libs/html5lib/__init__.py
index ba01065ef..320e0c3b4 100644
--- a/libs/html5lib/__init__.py
+++ b/libs/html5lib/__init__.py
@@ -32,4 +32,4 @@ __all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder",
# this has to be at the top level, see how setup.py parses this
#: Distribution version number.
-__version__ = "1.0.1"
+__version__ = "1.1"
diff --git a/libs/html5lib/_ihatexml.py b/libs/html5lib/_ihatexml.py
index 4c77717bb..3ff803c19 100644
--- a/libs/html5lib/_ihatexml.py
+++ b/libs/html5lib/_ihatexml.py
@@ -136,6 +136,7 @@ def normaliseCharList(charList):
i += j
return rv
+
# We don't really support characters above the BMP :(
max_unicode = int("FFFF", 16)
@@ -254,7 +255,7 @@ class InfosetFilter(object):
nameRest = name[1:]
m = nonXmlNameFirstBMPRegexp.match(nameFirst)
if m:
- warnings.warn("Coercing non-XML name", DataLossWarning)
+ warnings.warn("Coercing non-XML name: %s" % name, DataLossWarning)
nameFirstOutput = self.getReplacementCharacter(nameFirst)
else:
nameFirstOutput = nameFirst
@@ -262,7 +263,7 @@ class InfosetFilter(object):
nameRestOutput = nameRest
replaceChars = set(nonXmlNameBMPRegexp.findall(nameRest))
for char in replaceChars:
- warnings.warn("Coercing non-XML name", DataLossWarning)
+ warnings.warn("Coercing non-XML name: %s" % name, DataLossWarning)
replacement = self.getReplacementCharacter(char)
nameRestOutput = nameRestOutput.replace(char, replacement)
return nameFirstOutput + nameRestOutput
diff --git a/libs/html5lib/_inputstream.py b/libs/html5lib/_inputstream.py
index 177f0ab9e..0207dd211 100644
--- a/libs/html5lib/_inputstream.py
+++ b/libs/html5lib/_inputstream.py
@@ -1,10 +1,11 @@
from __future__ import absolute_import, division, unicode_literals
-from six import text_type, binary_type
+from six import text_type
from six.moves import http_client, urllib
import codecs
import re
+from io import BytesIO, StringIO
import webencodings
@@ -12,13 +13,6 @@ from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase
from .constants import _ReparseException
from . import _utils
-from io import StringIO
-
-try:
- from io import BytesIO
-except ImportError:
- BytesIO = StringIO
-
# Non-unicode versions of constants for use in the pre-parser
spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters])
asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters])
@@ -40,13 +34,13 @@ if _utils.supports_lone_surrogates:
else:
invalid_unicode_re = re.compile(invalid_unicode_no_surrogate)
-non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE,
- 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF,
- 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE,
- 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF,
- 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE,
- 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF,
- 0x10FFFE, 0x10FFFF])
+non_bmp_invalid_codepoints = {0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE,
+ 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF,
+ 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE,
+ 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF,
+ 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE,
+ 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF,
+ 0x10FFFE, 0x10FFFF}
ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]")
@@ -367,7 +361,7 @@ class HTMLUnicodeInputStream(object):
def unget(self, char):
# Only one character is allowed to be ungotten at once - it must
# be consumed again before any further call to unget
- if char is not None:
+ if char is not EOF:
if self.chunkOffset == 0:
# unget is called quite rarely, so it's a good idea to do
# more work here if it saves a bit of work in the frequently
@@ -449,7 +443,7 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
try:
stream.seek(stream.tell())
- except: # pylint:disable=bare-except
+ except Exception:
stream = BufferedStream(stream)
return stream
@@ -461,7 +455,7 @@ class HTMLBinaryInputStream(HTMLUnicodeInputStream):
if charEncoding[0] is not None:
return charEncoding
- # If we've been overriden, we've been overriden
+ # If we've been overridden, we've been overridden
charEncoding = lookupEncoding(self.override_encoding), "certain"
if charEncoding[0] is not None:
return charEncoding
@@ -664,9 +658,7 @@ class EncodingBytes(bytes):
"""Look for a sequence of bytes at the start of a string. If the bytes
are found return True and advance the position to the byte after the
match. Otherwise return False and leave the position alone"""
- p = self.position
- data = self[p:p + len(bytes)]
- rv = data.startswith(bytes)
+ rv = self.startswith(bytes, self.position)
if rv:
self.position += len(bytes)
return rv
@@ -674,15 +666,11 @@ class EncodingBytes(bytes):
def jumpTo(self, bytes):
"""Look for the next sequence of bytes matching a given sequence. If
a match is found advance the position to the last byte of the match"""
- newPosition = self[self.position:].find(bytes)
- if newPosition > -1:
- # XXX: This is ugly, but I can't see a nicer way to fix this.
- if self._position == -1:
- self._position = 0
- self._position += (newPosition + len(bytes) - 1)
- return True
- else:
+ try:
+ self._position = self.index(bytes, self.position) + len(bytes) - 1
+ except ValueError:
raise StopIteration
+ return True
class EncodingParser(object):
@@ -694,6 +682,9 @@ class EncodingParser(object):
self.encoding = None
def getEncoding(self):
+ if b"= (3, 7):
+ attributeMap = dict
+else:
+ attributeMap = OrderedDict
+
class HTMLTokenizer(object):
""" This class takes care of tokenizing HTML.
@@ -228,6 +234,14 @@ class HTMLTokenizer(object):
# Add token to the queue to be yielded
if (token["type"] in tagTokenTypes):
token["name"] = token["name"].translate(asciiUpper2Lower)
+ if token["type"] == tokenTypes["StartTag"]:
+ raw = token["data"]
+ data = attributeMap(raw)
+ if len(raw) > len(data):
+ # we had some duplicated attribute, fix so first wins
+ data.update(raw[::-1])
+ token["data"] = data
+
if token["type"] == tokenTypes["EndTag"]:
if token["data"]:
self.tokenQueue.append({"type": tokenTypes["ParseError"],
diff --git a/libs/html5lib/_trie/__init__.py b/libs/html5lib/_trie/__init__.py
index a5ba4bf12..07bad5d31 100644
--- a/libs/html5lib/_trie/__init__.py
+++ b/libs/html5lib/_trie/__init__.py
@@ -1,14 +1,5 @@
from __future__ import absolute_import, division, unicode_literals
-from .py import Trie as PyTrie
+from .py import Trie
-Trie = PyTrie
-
-# pylint:disable=wrong-import-position
-try:
- from .datrie import Trie as DATrie
-except ImportError:
- pass
-else:
- Trie = DATrie
-# pylint:enable=wrong-import-position
+__all__ = ["Trie"]
diff --git a/libs/html5lib/_trie/_base.py b/libs/html5lib/_trie/_base.py
index a1158bbbf..6b71975f0 100644
--- a/libs/html5lib/_trie/_base.py
+++ b/libs/html5lib/_trie/_base.py
@@ -1,6 +1,9 @@
from __future__ import absolute_import, division, unicode_literals
-from collections import Mapping
+try:
+ from collections.abc import Mapping
+except ImportError: # Python 2.7
+ from collections import Mapping
class Trie(Mapping):
diff --git a/libs/html5lib/_trie/datrie.py b/libs/html5lib/_trie/datrie.py
deleted file mode 100644
index 51f3d046a..000000000
--- a/libs/html5lib/_trie/datrie.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from __future__ import absolute_import, division, unicode_literals
-
-from datrie import Trie as DATrie
-from six import text_type
-
-from ._base import Trie as ABCTrie
-
-
-class Trie(ABCTrie):
- def __init__(self, data):
- chars = set()
- for key in data.keys():
- if not isinstance(key, text_type):
- raise TypeError("All keys must be strings")
- for char in key:
- chars.add(char)
-
- self._data = DATrie("".join(chars))
- for key, value in data.items():
- self._data[key] = value
-
- def __contains__(self, key):
- return key in self._data
-
- def __len__(self):
- return len(self._data)
-
- def __iter__(self):
- raise NotImplementedError()
-
- def __getitem__(self, key):
- return self._data[key]
-
- def keys(self, prefix=None):
- return self._data.keys(prefix)
-
- def has_keys_with_prefix(self, prefix):
- return self._data.has_keys_with_prefix(prefix)
-
- def longest_prefix(self, prefix):
- return self._data.longest_prefix(prefix)
-
- def longest_prefix_item(self, prefix):
- return self._data.longest_prefix_item(prefix)
diff --git a/libs/html5lib/_utils.py b/libs/html5lib/_utils.py
index 91252f2c0..9ea579421 100644
--- a/libs/html5lib/_utils.py
+++ b/libs/html5lib/_utils.py
@@ -2,12 +2,20 @@ from __future__ import absolute_import, division, unicode_literals
from types import ModuleType
-from six import text_type
-
try:
- import xml.etree.cElementTree as default_etree
+ from collections.abc import Mapping
except ImportError:
+ from collections import Mapping
+
+from six import text_type, PY3
+
+if PY3:
import xml.etree.ElementTree as default_etree
+else:
+ try:
+ import xml.etree.cElementTree as default_etree
+ except ImportError:
+ import xml.etree.ElementTree as default_etree
__all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair",
@@ -27,7 +35,7 @@ try:
# We need this with u"" because of http://bugs.jython.org/issue2039
_x = eval('u"\\uD800"') # pylint:disable=eval-used
assert isinstance(_x, text_type)
-except: # pylint:disable=bare-except
+except Exception:
supports_lone_surrogates = False
else:
supports_lone_surrogates = True
@@ -47,9 +55,6 @@ class MethodDispatcher(dict):
"""
def __init__(self, items=()):
- # Using _dictEntries instead of directly assigning to self is about
- # twice as fast. Please do careful performance testing before changing
- # anything here.
_dictEntries = []
for name, value in items:
if isinstance(name, (list, tuple, frozenset, set)):
@@ -64,6 +69,36 @@ class MethodDispatcher(dict):
def __getitem__(self, key):
return dict.get(self, key, self.default)
+ def __get__(self, instance, owner=None):
+ return BoundMethodDispatcher(instance, self)
+
+
+class BoundMethodDispatcher(Mapping):
+ """Wraps a MethodDispatcher, binding its return values to `instance`"""
+ def __init__(self, instance, dispatcher):
+ self.instance = instance
+ self.dispatcher = dispatcher
+
+ def __getitem__(self, key):
+ # see https://docs.python.org/3/reference/datamodel.html#object.__get__
+ # on a function, __get__ is used to bind a function to an instance as a bound method
+ return self.dispatcher[key].__get__(self.instance)
+
+ def get(self, key, default):
+ if key in self.dispatcher:
+ return self[key]
+ else:
+ return default
+
+ def __iter__(self):
+ return iter(self.dispatcher)
+
+ def __len__(self):
+ return len(self.dispatcher)
+
+ def __contains__(self, key):
+ return key in self.dispatcher
+
# Some utility functions to deal with weirdness around UCS2 vs UCS4
# python builds
diff --git a/libs/html5lib/constants.py b/libs/html5lib/constants.py
index 1ff804190..fe3e237cd 100644
--- a/libs/html5lib/constants.py
+++ b/libs/html5lib/constants.py
@@ -519,8 +519,8 @@ adjustForeignAttributes = {
"xmlns:xlink": ("xmlns", "xlink", namespaces["xmlns"])
}
-unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in
- adjustForeignAttributes.items()])
+unadjustForeignAttributes = {(ns, local): qname for qname, (prefix, local, ns) in
+ adjustForeignAttributes.items()}
spaceCharacters = frozenset([
"\t",
@@ -544,8 +544,7 @@ asciiLetters = frozenset(string.ascii_letters)
digits = frozenset(string.digits)
hexDigits = frozenset(string.hexdigits)
-asciiUpper2Lower = dict([(ord(c), ord(c.lower()))
- for c in string.ascii_uppercase])
+asciiUpper2Lower = {ord(c): ord(c.lower()) for c in string.ascii_uppercase}
# Heading elements need to be ordered
headingElements = (
@@ -2934,7 +2933,7 @@ tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"],
tokenTypes["EmptyTag"]])
-prefixes = dict([(v, k) for k, v in namespaces.items()])
+prefixes = {v: k for k, v in namespaces.items()}
prefixes["http://www.w3.org/1998/Math/MathML"] = "math"
diff --git a/libs/html5lib/filters/sanitizer.py b/libs/html5lib/filters/sanitizer.py
index e852f53be..70ef90665 100644
--- a/libs/html5lib/filters/sanitizer.py
+++ b/libs/html5lib/filters/sanitizer.py
@@ -1,6 +1,15 @@
+"""Deprecated from html5lib 1.1.
+
+See `here `_ for
+information about its deprecation; `Bleach `_
+is recommended as a replacement. Please let us know in the aforementioned issue
+if Bleach is unsuitable for your needs.
+
+"""
from __future__ import absolute_import, division, unicode_literals
import re
+import warnings
from xml.sax.saxutils import escape, unescape
from six.moves import urllib_parse as urlparse
@@ -11,6 +20,14 @@ from ..constants import namespaces, prefixes
__all__ = ["Filter"]
+_deprecation_msg = (
+ "html5lib's sanitizer is deprecated; see " +
+ "https://github.com/html5lib/html5lib-python/issues/443 and please let " +
+ "us know if Bleach is unsuitable for your needs"
+)
+
+warnings.warn(_deprecation_msg, DeprecationWarning)
+
allowed_elements = frozenset((
(namespaces['html'], 'a'),
(namespaces['html'], 'abbr'),
@@ -750,6 +767,9 @@ class Filter(base.Filter):
"""
super(Filter, self).__init__(source)
+
+ warnings.warn(_deprecation_msg, DeprecationWarning)
+
self.allowed_elements = allowed_elements
self.allowed_attributes = allowed_attributes
self.allowed_css_properties = allowed_css_properties
diff --git a/libs/html5lib/html5parser.py b/libs/html5lib/html5parser.py
index 9d39b9d41..74d829d98 100644
--- a/libs/html5lib/html5parser.py
+++ b/libs/html5lib/html5parser.py
@@ -2,7 +2,6 @@ from __future__ import absolute_import, division, unicode_literals
from six import with_metaclass, viewkeys
import types
-from collections import OrderedDict
from . import _inputstream
from . import _tokenizer
@@ -119,8 +118,8 @@ class HTMLParser(object):
self.tree = tree(namespaceHTMLElements)
self.errors = []
- self.phases = dict([(name, cls(self, self.tree)) for name, cls in
- getPhases(debug).items()])
+ self.phases = {name: cls(self, self.tree) for name, cls in
+ getPhases(debug).items()}
def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs):
@@ -202,7 +201,7 @@ class HTMLParser(object):
DoctypeToken = tokenTypes["Doctype"]
ParseErrorToken = tokenTypes["ParseError"]
- for token in self.normalizedTokens():
+ for token in self.tokenizer:
prev_token = None
new_token = token
while new_token is not None:
@@ -260,10 +259,6 @@ class HTMLParser(object):
if reprocess:
assert self.phase not in phases
- def normalizedTokens(self):
- for token in self.tokenizer:
- yield self.normalizeToken(token)
-
def parse(self, stream, *args, **kwargs):
"""Parse a HTML document into a well-formed tree
@@ -325,17 +320,6 @@ class HTMLParser(object):
if self.strict:
raise ParseError(E[errorcode] % datavars)
- def normalizeToken(self, token):
- # HTML5 specific normalizations to the token stream
- if token["type"] == tokenTypes["StartTag"]:
- raw = token["data"]
- token["data"] = OrderedDict(raw)
- if len(raw) > len(token["data"]):
- # we had some duplicated attribute, fix so first wins
- token["data"].update(raw[::-1])
-
- return token
-
def adjustMathMLAttributes(self, token):
adjust_attributes(token, adjustMathMLAttributes)
@@ -413,16 +397,12 @@ class HTMLParser(object):
def getPhases(debug):
def log(function):
"""Logger that records which phase processes each token"""
- type_names = dict((value, key) for key, value in
- tokenTypes.items())
+ type_names = {value: key for key, value in tokenTypes.items()}
def wrapped(self, *args, **kwargs):
if function.__name__.startswith("process") and len(args) > 0:
token = args[0]
- try:
- info = {"type": type_names[token['type']]}
- except:
- raise
+ info = {"type": type_names[token['type']]}
if token['type'] in tagTokenTypes:
info["name"] = token['name']
@@ -446,10 +426,13 @@ def getPhases(debug):
class Phase(with_metaclass(getMetaclass(debug, log))):
"""Base class for helper object that implements each phase of processing
"""
+ __slots__ = ("parser", "tree", "__startTagCache", "__endTagCache")
def __init__(self, parser, tree):
self.parser = parser
self.tree = tree
+ self.__startTagCache = {}
+ self.__endTagCache = {}
def processEOF(self):
raise NotImplementedError
@@ -469,7 +452,21 @@ def getPhases(debug):
self.tree.insertText(token["data"])
def processStartTag(self, token):
- return self.startTagHandler[token["name"]](token)
+ # Note the caching is done here rather than BoundMethodDispatcher as doing it there
+ # requires a circular reference to the Phase, and this ends up with a significant
+ # (CPython 2.7, 3.8) GC cost when parsing many short inputs
+ name = token["name"]
+ # In Py2, using `in` is quicker in general than try/except KeyError
+ # In Py3, `in` is quicker when there are few cache hits (typically short inputs)
+ if name in self.__startTagCache:
+ func = self.__startTagCache[name]
+ else:
+ func = self.__startTagCache[name] = self.startTagHandler[name]
+ # bound the cache size in case we get loads of unknown tags
+ while len(self.__startTagCache) > len(self.startTagHandler) * 1.1:
+ # this makes the eviction policy random on Py < 3.7 and FIFO >= 3.7
+ self.__startTagCache.pop(next(iter(self.__startTagCache)))
+ return func(token)
def startTagHtml(self, token):
if not self.parser.firstStartTag and token["name"] == "html":
@@ -482,9 +479,25 @@ def getPhases(debug):
self.parser.firstStartTag = False
def processEndTag(self, token):
- return self.endTagHandler[token["name"]](token)
+ # Note the caching is done here rather than BoundMethodDispatcher as doing it there
+ # requires a circular reference to the Phase, and this ends up with a significant
+ # (CPython 2.7, 3.8) GC cost when parsing many short inputs
+ name = token["name"]
+ # In Py2, using `in` is quicker in general than try/except KeyError
+ # In Py3, `in` is quicker when there are few cache hits (typically short inputs)
+ if name in self.__endTagCache:
+ func = self.__endTagCache[name]
+ else:
+ func = self.__endTagCache[name] = self.endTagHandler[name]
+ # bound the cache size in case we get loads of unknown tags
+ while len(self.__endTagCache) > len(self.endTagHandler) * 1.1:
+ # this makes the eviction policy random on Py < 3.7 and FIFO >= 3.7
+ self.__endTagCache.pop(next(iter(self.__endTagCache)))
+ return func(token)
class InitialPhase(Phase):
+ __slots__ = tuple()
+
def processSpaceCharacters(self, token):
pass
@@ -613,6 +626,8 @@ def getPhases(debug):
return True
class BeforeHtmlPhase(Phase):
+ __slots__ = tuple()
+
# helper methods
def insertHtmlElement(self):
self.tree.insertRoot(impliedTagToken("html", "StartTag"))
@@ -648,19 +663,7 @@ def getPhases(debug):
return token
class BeforeHeadPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("head", self.startTagHead)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- (("head", "body", "html", "br"), self.endTagImplyHead)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def processEOF(self):
self.startTagHead(impliedTagToken("head", "StartTag"))
@@ -693,28 +696,19 @@ def getPhases(debug):
self.parser.parseError("end-tag-after-implied-root",
{"name": token["name"]})
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml),
+ ("head", startTagHead)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ (("head", "body", "html", "br"), endTagImplyHead)
+ ])
+ endTagHandler.default = endTagOther
+
class InHeadPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("title", self.startTagTitle),
- (("noframes", "style"), self.startTagNoFramesStyle),
- ("noscript", self.startTagNoscript),
- ("script", self.startTagScript),
- (("base", "basefont", "bgsound", "command", "link"),
- self.startTagBaseLinkCommand),
- ("meta", self.startTagMeta),
- ("head", self.startTagHead)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("head", self.endTagHead),
- (("br", "html", "body"), self.endTagHtmlBodyBr)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# the real thing
def processEOF(self):
@@ -796,22 +790,27 @@ def getPhases(debug):
def anythingElse(self):
self.endTagHead(impliedTagToken("head"))
- class InHeadNoscriptPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml),
+ ("title", startTagTitle),
+ (("noframes", "style"), startTagNoFramesStyle),
+ ("noscript", startTagNoscript),
+ ("script", startTagScript),
+ (("base", "basefont", "bgsound", "command", "link"),
+ startTagBaseLinkCommand),
+ ("meta", startTagMeta),
+ ("head", startTagHead)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("head", endTagHead),
+ (("br", "html", "body"), endTagHtmlBodyBr)
+ ])
+ endTagHandler.default = endTagOther
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- (("basefont", "bgsound", "link", "meta", "noframes", "style"), self.startTagBaseLinkCommand),
- (("head", "noscript"), self.startTagHeadNoscript),
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("noscript", self.endTagNoscript),
- ("br", self.endTagBr),
- ])
- self.endTagHandler.default = self.endTagOther
+ class InHeadNoscriptPhase(Phase):
+ __slots__ = tuple()
def processEOF(self):
self.parser.parseError("eof-in-head-noscript")
@@ -860,23 +859,21 @@ def getPhases(debug):
# Caller must raise parse error first!
self.endTagNoscript(impliedTagToken("noscript"))
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml),
+ (("basefont", "bgsound", "link", "meta", "noframes", "style"), startTagBaseLinkCommand),
+ (("head", "noscript"), startTagHeadNoscript),
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("noscript", endTagNoscript),
+ ("br", endTagBr),
+ ])
+ endTagHandler.default = endTagOther
+
class AfterHeadPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("body", self.startTagBody),
- ("frameset", self.startTagFrameset),
- (("base", "basefont", "bgsound", "link", "meta", "noframes", "script",
- "style", "title"),
- self.startTagFromHead),
- ("head", self.startTagHead)
- ])
- self.startTagHandler.default = self.startTagOther
- self.endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"),
- self.endTagHtmlBodyBr)])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def processEOF(self):
self.anythingElse()
@@ -927,80 +924,30 @@ def getPhases(debug):
self.parser.phase = self.parser.phases["inBody"]
self.parser.framesetOK = True
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml),
+ ("body", startTagBody),
+ ("frameset", startTagFrameset),
+ (("base", "basefont", "bgsound", "link", "meta", "noframes", "script",
+ "style", "title"),
+ startTagFromHead),
+ ("head", startTagHead)
+ ])
+ startTagHandler.default = startTagOther
+ endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"),
+ endTagHtmlBodyBr)])
+ endTagHandler.default = endTagOther
+
class InBodyPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#parsing-main-inbody
# the really-really-really-very crazy mode
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ __slots__ = ("processSpaceCharacters",)
+ def __init__(self, *args, **kwargs):
+ super(InBodyPhase, self).__init__(*args, **kwargs)
# Set this to the default handler
self.processSpaceCharacters = self.processSpaceCharactersNonPre
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- (("base", "basefont", "bgsound", "command", "link", "meta",
- "script", "style", "title"),
- self.startTagProcessInHead),
- ("body", self.startTagBody),
- ("frameset", self.startTagFrameset),
- (("address", "article", "aside", "blockquote", "center", "details",
- "dir", "div", "dl", "fieldset", "figcaption", "figure",
- "footer", "header", "hgroup", "main", "menu", "nav", "ol", "p",
- "section", "summary", "ul"),
- self.startTagCloseP),
- (headingElements, self.startTagHeading),
- (("pre", "listing"), self.startTagPreListing),
- ("form", self.startTagForm),
- (("li", "dd", "dt"), self.startTagListItem),
- ("plaintext", self.startTagPlaintext),
- ("a", self.startTagA),
- (("b", "big", "code", "em", "font", "i", "s", "small", "strike",
- "strong", "tt", "u"), self.startTagFormatting),
- ("nobr", self.startTagNobr),
- ("button", self.startTagButton),
- (("applet", "marquee", "object"), self.startTagAppletMarqueeObject),
- ("xmp", self.startTagXmp),
- ("table", self.startTagTable),
- (("area", "br", "embed", "img", "keygen", "wbr"),
- self.startTagVoidFormatting),
- (("param", "source", "track"), self.startTagParamSource),
- ("input", self.startTagInput),
- ("hr", self.startTagHr),
- ("image", self.startTagImage),
- ("isindex", self.startTagIsIndex),
- ("textarea", self.startTagTextarea),
- ("iframe", self.startTagIFrame),
- ("noscript", self.startTagNoscript),
- (("noembed", "noframes"), self.startTagRawtext),
- ("select", self.startTagSelect),
- (("rp", "rt"), self.startTagRpRt),
- (("option", "optgroup"), self.startTagOpt),
- (("math"), self.startTagMath),
- (("svg"), self.startTagSvg),
- (("caption", "col", "colgroup", "frame", "head",
- "tbody", "td", "tfoot", "th", "thead",
- "tr"), self.startTagMisplaced)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("body", self.endTagBody),
- ("html", self.endTagHtml),
- (("address", "article", "aside", "blockquote", "button", "center",
- "details", "dialog", "dir", "div", "dl", "fieldset", "figcaption", "figure",
- "footer", "header", "hgroup", "listing", "main", "menu", "nav", "ol", "pre",
- "section", "summary", "ul"), self.endTagBlock),
- ("form", self.endTagForm),
- ("p", self.endTagP),
- (("dd", "dt", "li"), self.endTagListItem),
- (headingElements, self.endTagHeading),
- (("a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small",
- "strike", "strong", "tt", "u"), self.endTagFormatting),
- (("applet", "marquee", "object"), self.endTagAppletMarqueeObject),
- ("br", self.endTagBr),
- ])
- self.endTagHandler.default = self.endTagOther
-
def isMatchingFormattingElement(self, node1, node2):
return (node1.name == node2.name and
node1.namespace == node2.namespace and
@@ -1650,14 +1597,73 @@ def getPhases(debug):
self.parser.parseError("unexpected-end-tag", {"name": token["name"]})
break
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ (("base", "basefont", "bgsound", "command", "link", "meta",
+ "script", "style", "title"),
+ startTagProcessInHead),
+ ("body", startTagBody),
+ ("frameset", startTagFrameset),
+ (("address", "article", "aside", "blockquote", "center", "details",
+ "dir", "div", "dl", "fieldset", "figcaption", "figure",
+ "footer", "header", "hgroup", "main", "menu", "nav", "ol", "p",
+ "section", "summary", "ul"),
+ startTagCloseP),
+ (headingElements, startTagHeading),
+ (("pre", "listing"), startTagPreListing),
+ ("form", startTagForm),
+ (("li", "dd", "dt"), startTagListItem),
+ ("plaintext", startTagPlaintext),
+ ("a", startTagA),
+ (("b", "big", "code", "em", "font", "i", "s", "small", "strike",
+ "strong", "tt", "u"), startTagFormatting),
+ ("nobr", startTagNobr),
+ ("button", startTagButton),
+ (("applet", "marquee", "object"), startTagAppletMarqueeObject),
+ ("xmp", startTagXmp),
+ ("table", startTagTable),
+ (("area", "br", "embed", "img", "keygen", "wbr"),
+ startTagVoidFormatting),
+ (("param", "source", "track"), startTagParamSource),
+ ("input", startTagInput),
+ ("hr", startTagHr),
+ ("image", startTagImage),
+ ("isindex", startTagIsIndex),
+ ("textarea", startTagTextarea),
+ ("iframe", startTagIFrame),
+ ("noscript", startTagNoscript),
+ (("noembed", "noframes"), startTagRawtext),
+ ("select", startTagSelect),
+ (("rp", "rt"), startTagRpRt),
+ (("option", "optgroup"), startTagOpt),
+ (("math"), startTagMath),
+ (("svg"), startTagSvg),
+ (("caption", "col", "colgroup", "frame", "head",
+ "tbody", "td", "tfoot", "th", "thead",
+ "tr"), startTagMisplaced)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("body", endTagBody),
+ ("html", endTagHtml),
+ (("address", "article", "aside", "blockquote", "button", "center",
+ "details", "dialog", "dir", "div", "dl", "fieldset", "figcaption", "figure",
+ "footer", "header", "hgroup", "listing", "main", "menu", "nav", "ol", "pre",
+ "section", "summary", "ul"), endTagBlock),
+ ("form", endTagForm),
+ ("p", endTagP),
+ (("dd", "dt", "li"), endTagListItem),
+ (headingElements, endTagHeading),
+ (("a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small",
+ "strike", "strong", "tt", "u"), endTagFormatting),
+ (("applet", "marquee", "object"), endTagAppletMarqueeObject),
+ ("br", endTagBr),
+ ])
+ endTagHandler.default = endTagOther
+
class TextPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
- self.startTagHandler = _utils.MethodDispatcher([])
- self.startTagHandler.default = self.startTagOther
- self.endTagHandler = _utils.MethodDispatcher([
- ("script", self.endTagScript)])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def processCharacters(self, token):
self.tree.insertText(token["data"])
@@ -1683,30 +1689,15 @@ def getPhases(debug):
self.tree.openElements.pop()
self.parser.phase = self.parser.originalPhase
+ startTagHandler = _utils.MethodDispatcher([])
+ startTagHandler.default = startTagOther
+ endTagHandler = _utils.MethodDispatcher([
+ ("script", endTagScript)])
+ endTagHandler.default = endTagOther
+
class InTablePhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("caption", self.startTagCaption),
- ("colgroup", self.startTagColgroup),
- ("col", self.startTagCol),
- (("tbody", "tfoot", "thead"), self.startTagRowGroup),
- (("td", "th", "tr"), self.startTagImplyTbody),
- ("table", self.startTagTable),
- (("style", "script"), self.startTagStyleScript),
- ("input", self.startTagInput),
- ("form", self.startTagForm)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("table", self.endTagTable),
- (("body", "caption", "col", "colgroup", "html", "tbody", "td",
- "tfoot", "th", "thead", "tr"), self.endTagIgnore)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# helper methods
def clearStackToTableContext(self):
@@ -1828,9 +1819,32 @@ def getPhases(debug):
self.parser.phases["inBody"].processEndTag(token)
self.tree.insertFromTable = False
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("caption", startTagCaption),
+ ("colgroup", startTagColgroup),
+ ("col", startTagCol),
+ (("tbody", "tfoot", "thead"), startTagRowGroup),
+ (("td", "th", "tr"), startTagImplyTbody),
+ ("table", startTagTable),
+ (("style", "script"), startTagStyleScript),
+ ("input", startTagInput),
+ ("form", startTagForm)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("table", endTagTable),
+ (("body", "caption", "col", "colgroup", "html", "tbody", "td",
+ "tfoot", "th", "thead", "tr"), endTagIgnore)
+ ])
+ endTagHandler.default = endTagOther
+
class InTableTextPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ __slots__ = ("originalPhase", "characterTokens")
+
+ def __init__(self, *args, **kwargs):
+ super(InTableTextPhase, self).__init__(*args, **kwargs)
self.originalPhase = None
self.characterTokens = []
@@ -1875,23 +1889,7 @@ def getPhases(debug):
class InCaptionPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-caption
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
- "thead", "tr"), self.startTagTableElement)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("caption", self.endTagCaption),
- ("table", self.endTagTable),
- (("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
- "thead", "tr"), self.endTagIgnore)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def ignoreEndTagCaption(self):
return not self.tree.elementInScope("caption", variant="table")
@@ -1944,23 +1942,24 @@ def getPhases(debug):
def endTagOther(self, token):
return self.parser.phases["inBody"].processEndTag(token)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
+ "thead", "tr"), startTagTableElement)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("caption", endTagCaption),
+ ("table", endTagTable),
+ (("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th",
+ "thead", "tr"), endTagIgnore)
+ ])
+ endTagHandler.default = endTagOther
+
class InColumnGroupPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-column
-
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("col", self.startTagCol)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("colgroup", self.endTagColgroup),
- ("col", self.endTagCol)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def ignoreEndTagColgroup(self):
return self.tree.openElements[-1].name == "html"
@@ -2010,26 +2009,21 @@ def getPhases(debug):
if not ignoreEndTag:
return token
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("col", startTagCol)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("colgroup", endTagColgroup),
+ ("col", endTagCol)
+ ])
+ endTagHandler.default = endTagOther
+
class InTableBodyPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-table0
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("tr", self.startTagTr),
- (("td", "th"), self.startTagTableCell),
- (("caption", "col", "colgroup", "tbody", "tfoot", "thead"),
- self.startTagTableOther)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- (("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
- ("table", self.endTagTable),
- (("body", "caption", "col", "colgroup", "html", "td", "th",
- "tr"), self.endTagIgnore)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# helper methods
def clearStackToTableBodyContext(self):
@@ -2108,26 +2102,26 @@ def getPhases(debug):
def endTagOther(self, token):
return self.parser.phases["inTable"].processEndTag(token)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("tr", startTagTr),
+ (("td", "th"), startTagTableCell),
+ (("caption", "col", "colgroup", "tbody", "tfoot", "thead"),
+ startTagTableOther)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ (("tbody", "tfoot", "thead"), endTagTableRowGroup),
+ ("table", endTagTable),
+ (("body", "caption", "col", "colgroup", "html", "td", "th",
+ "tr"), endTagIgnore)
+ ])
+ endTagHandler.default = endTagOther
+
class InRowPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-row
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- (("td", "th"), self.startTagTableCell),
- (("caption", "col", "colgroup", "tbody", "tfoot", "thead",
- "tr"), self.startTagTableOther)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("tr", self.endTagTr),
- ("table", self.endTagTable),
- (("tbody", "tfoot", "thead"), self.endTagTableRowGroup),
- (("body", "caption", "col", "colgroup", "html", "td", "th"),
- self.endTagIgnore)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# helper methods (XXX unify this with other table helper methods)
def clearStackToTableRowContext(self):
@@ -2197,23 +2191,26 @@ def getPhases(debug):
def endTagOther(self, token):
return self.parser.phases["inTable"].processEndTag(token)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ (("td", "th"), startTagTableCell),
+ (("caption", "col", "colgroup", "tbody", "tfoot", "thead",
+ "tr"), startTagTableOther)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("tr", endTagTr),
+ ("table", endTagTable),
+ (("tbody", "tfoot", "thead"), endTagTableRowGroup),
+ (("body", "caption", "col", "colgroup", "html", "td", "th"),
+ endTagIgnore)
+ ])
+ endTagHandler.default = endTagOther
+
class InCellPhase(Phase):
# http://www.whatwg.org/specs/web-apps/current-work/#in-cell
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
- "thead", "tr"), self.startTagTableOther)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- (("td", "th"), self.endTagTableCell),
- (("body", "caption", "col", "colgroup", "html"), self.endTagIgnore),
- (("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# helper
def closeCell(self):
@@ -2273,26 +2270,22 @@ def getPhases(debug):
def endTagOther(self, token):
return self.parser.phases["inBody"].processEndTag(token)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th",
+ "thead", "tr"), startTagTableOther)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ (("td", "th"), endTagTableCell),
+ (("body", "caption", "col", "colgroup", "html"), endTagIgnore),
+ (("table", "tbody", "tfoot", "thead", "tr"), endTagImply)
+ ])
+ endTagHandler.default = endTagOther
+
class InSelectPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("option", self.startTagOption),
- ("optgroup", self.startTagOptgroup),
- ("select", self.startTagSelect),
- (("input", "keygen", "textarea"), self.startTagInput),
- ("script", self.startTagScript)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([
- ("option", self.endTagOption),
- ("optgroup", self.endTagOptgroup),
- ("select", self.endTagSelect)
- ])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
# http://www.whatwg.org/specs/web-apps/current-work/#in-select
def processEOF(self):
@@ -2373,21 +2366,25 @@ def getPhases(debug):
self.parser.parseError("unexpected-end-tag-in-select",
{"name": token["name"]})
- class InSelectInTablePhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
- self.startTagTable)
- ])
- self.startTagHandler.default = self.startTagOther
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("option", startTagOption),
+ ("optgroup", startTagOptgroup),
+ ("select", startTagSelect),
+ (("input", "keygen", "textarea"), startTagInput),
+ ("script", startTagScript)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ ("option", endTagOption),
+ ("optgroup", endTagOptgroup),
+ ("select", endTagSelect)
+ ])
+ endTagHandler.default = endTagOther
- self.endTagHandler = _utils.MethodDispatcher([
- (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
- self.endTagTable)
- ])
- self.endTagHandler.default = self.endTagOther
+ class InSelectInTablePhase(Phase):
+ __slots__ = tuple()
def processEOF(self):
self.parser.phases["inSelect"].processEOF()
@@ -2412,7 +2409,21 @@ def getPhases(debug):
def endTagOther(self, token):
return self.parser.phases["inSelect"].processEndTag(token)
+ startTagHandler = _utils.MethodDispatcher([
+ (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
+ startTagTable)
+ ])
+ startTagHandler.default = startTagOther
+
+ endTagHandler = _utils.MethodDispatcher([
+ (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"),
+ endTagTable)
+ ])
+ endTagHandler.default = endTagOther
+
class InForeignContentPhase(Phase):
+ __slots__ = tuple()
+
breakoutElements = frozenset(["b", "big", "blockquote", "body", "br",
"center", "code", "dd", "div", "dl", "dt",
"em", "embed", "h1", "h2", "h3",
@@ -2422,9 +2433,6 @@ def getPhases(debug):
"span", "strong", "strike", "sub", "sup",
"table", "tt", "u", "ul", "var"])
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
def adjustSVGTagNames(self, token):
replacements = {"altglyph": "altGlyph",
"altglyphdef": "altGlyphDef",
@@ -2478,7 +2486,7 @@ def getPhases(debug):
currentNode = self.tree.openElements[-1]
if (token["name"] in self.breakoutElements or
(token["name"] == "font" and
- set(token["data"].keys()) & set(["color", "face", "size"]))):
+ set(token["data"].keys()) & {"color", "face", "size"})):
self.parser.parseError("unexpected-html-element-in-foreign-content",
{"name": token["name"]})
while (self.tree.openElements[-1].namespace !=
@@ -2528,16 +2536,7 @@ def getPhases(debug):
return new_token
class AfterBodyPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
-
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml)
- ])
- self.startTagHandler.default = self.startTagOther
-
- self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)])
- self.endTagHandler.default = self.endTagOther
+ __slots__ = tuple()
def processEOF(self):
# Stop parsing
@@ -2574,23 +2573,17 @@ def getPhases(debug):
self.parser.phase = self.parser.phases["inBody"]
return token
- class InFramesetPhase(Phase):
- # http://www.whatwg.org/specs/web-apps/current-work/#in-frameset
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml)
+ ])
+ startTagHandler.default = startTagOther
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("frameset", self.startTagFrameset),
- ("frame", self.startTagFrame),
- ("noframes", self.startTagNoframes)
- ])
- self.startTagHandler.default = self.startTagOther
+ endTagHandler = _utils.MethodDispatcher([("html", endTagHtml)])
+ endTagHandler.default = endTagOther
- self.endTagHandler = _utils.MethodDispatcher([
- ("frameset", self.endTagFrameset)
- ])
- self.endTagHandler.default = self.endTagOther
+ class InFramesetPhase(Phase):
+ # http://www.whatwg.org/specs/web-apps/current-work/#in-frameset
+ __slots__ = tuple()
def processEOF(self):
if self.tree.openElements[-1].name != "html":
@@ -2631,21 +2624,22 @@ def getPhases(debug):
self.parser.parseError("unexpected-end-tag-in-frameset",
{"name": token["name"]})
- class AfterFramesetPhase(Phase):
- # http://www.whatwg.org/specs/web-apps/current-work/#after3
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("frameset", startTagFrameset),
+ ("frame", startTagFrame),
+ ("noframes", startTagNoframes)
+ ])
+ startTagHandler.default = startTagOther
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("noframes", self.startTagNoframes)
- ])
- self.startTagHandler.default = self.startTagOther
+ endTagHandler = _utils.MethodDispatcher([
+ ("frameset", endTagFrameset)
+ ])
+ endTagHandler.default = endTagOther
- self.endTagHandler = _utils.MethodDispatcher([
- ("html", self.endTagHtml)
- ])
- self.endTagHandler.default = self.endTagOther
+ class AfterFramesetPhase(Phase):
+ # http://www.whatwg.org/specs/web-apps/current-work/#after3
+ __slots__ = tuple()
def processEOF(self):
# Stop parsing
@@ -2668,14 +2662,19 @@ def getPhases(debug):
self.parser.parseError("unexpected-end-tag-after-frameset",
{"name": token["name"]})
- class AfterAfterBodyPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", Phase.startTagHtml),
+ ("noframes", startTagNoframes)
+ ])
+ startTagHandler.default = startTagOther
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml)
- ])
- self.startTagHandler.default = self.startTagOther
+ endTagHandler = _utils.MethodDispatcher([
+ ("html", endTagHtml)
+ ])
+ endTagHandler.default = endTagOther
+
+ class AfterAfterBodyPhase(Phase):
+ __slots__ = tuple()
def processEOF(self):
pass
@@ -2706,15 +2705,13 @@ def getPhases(debug):
self.parser.phase = self.parser.phases["inBody"]
return token
- class AfterAfterFramesetPhase(Phase):
- def __init__(self, parser, tree):
- Phase.__init__(self, parser, tree)
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml)
+ ])
+ startTagHandler.default = startTagOther
- self.startTagHandler = _utils.MethodDispatcher([
- ("html", self.startTagHtml),
- ("noframes", self.startTagNoFrames)
- ])
- self.startTagHandler.default = self.startTagOther
+ class AfterAfterFramesetPhase(Phase):
+ __slots__ = tuple()
def processEOF(self):
pass
@@ -2741,6 +2738,13 @@ def getPhases(debug):
def processEndTag(self, token):
self.parser.parseError("expected-eof-but-got-end-tag",
{"name": token["name"]})
+
+ startTagHandler = _utils.MethodDispatcher([
+ ("html", startTagHtml),
+ ("noframes", startTagNoFrames)
+ ])
+ startTagHandler.default = startTagOther
+
# pylint:enable=unused-argument
return {
@@ -2774,8 +2778,8 @@ def getPhases(debug):
def adjust_attributes(token, replacements):
needs_adjustment = viewkeys(token['data']) & viewkeys(replacements)
if needs_adjustment:
- token['data'] = OrderedDict((replacements.get(k, k), v)
- for k, v in token['data'].items())
+ token['data'] = type(token['data'])((replacements.get(k, k), v)
+ for k, v in token['data'].items())
def impliedTagToken(name, type="EndTag", attributes=None,
diff --git a/libs/html5lib/serializer.py b/libs/html5lib/serializer.py
index d6b7105d4..c66df6839 100644
--- a/libs/html5lib/serializer.py
+++ b/libs/html5lib/serializer.py
@@ -274,7 +274,7 @@ class HTMLSerializer(object):
if token["systemId"]:
if token["systemId"].find('"') >= 0:
if token["systemId"].find("'") >= 0:
- self.serializeError("System identifer contains both single and double quote characters")
+ self.serializeError("System identifier contains both single and double quote characters")
quote_char = "'"
else:
quote_char = '"'
diff --git a/libs/html5lib/tests/sanitizer-testdata/tests1.dat b/libs/html5lib/tests/sanitizer-testdata/tests1.dat
new file mode 100644
index 000000000..74e883368
--- /dev/null
+++ b/libs/html5lib/tests/sanitizer-testdata/tests1.dat
@@ -0,0 +1,433 @@
+[
+ {
+ "name": "IE_Comments",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "IE_Comments_2",
+ "input": "",
+ "output": "<script>alert('XSS');</script>"
+ },
+
+ {
+ "name": "allow_colons_in_path_component",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "background_attribute",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "bgsound",
+ "input": "",
+ "output": "<bgsound src=\"javascript:alert('XSS');\"></bgsound>"
+ },
+
+ {
+ "name": "div_background_image_unicode_encoded",
+ "input": "foo
",
+ "output": "foo
"
+ },
+
+ {
+ "name": "div_expression",
+ "input": "foo
",
+ "output": "foo
"
+ },
+
+ {
+ "name": "double_open_angle_brackets",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "img_dynsrc_lowsrc",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "img_vbscript",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "input_image",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "link_stylesheets",
+ "input": "",
+ "output": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\">"
+ },
+
+ {
+ "name": "link_stylesheets_2",
+ "input": "",
+ "output": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\">"
+ },
+
+ {
+ "name": "list_style_image",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "no_closing_script_tags",
+ "input": "",
+ "output": "<script src=\"http://ha.ckers.org/xss.js\" xss=\"\"></script>"
+ },
+
+ {
+ "name": "non_alpha_non_digit_2",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "non_alpha_non_digit_3",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "non_alpha_non_digit_II",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "non_alpha_non_digit_III",
+ "input": "foo",
+ "output": "foo"
+ },
+
+ {
+ "name": "platypus",
+ "input": "never trust your upstream platypus",
+ "output": "never trust your upstream platypus"
+ },
+
+ {
+ "name": "protocol_resolution_in_script_tag",
+ "input": "",
+ "output": "<script src=\"//ha.ckers.org/.j\"></script>"
+ },
+
+ {
+ "name": "should_allow_anchors",
+ "input": "",
+ "output": "<script>baz</script>"
+ },
+
+ {
+ "name": "should_allow_image_alt_attribute",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_allow_image_height_attribute",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_allow_image_src_attribute",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_allow_image_width_attribute",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_handle_blank_text",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_handle_malformed_image_tags",
+ "input": "\">",
+ "output": "<script>alert(\"XSS\")</script>\">"
+ },
+
+ {
+ "name": "should_handle_non_html",
+ "input": "abc",
+ "output": "abc"
+ },
+
+ {
+ "name": "should_not_fall_for_ridiculous_hack",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_0",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_1",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_10",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_11",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_12",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_13",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_14",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_2",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_3",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_4",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_5",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_6",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_7",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_8",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_not_fall_for_xss_image_hack_9",
+ "input": "",
+ "output": ""
+ },
+
+ {
+ "name": "should_sanitize_half_open_scripts",
+ "input": "",
+ "output": "<script src=\"http://ha.ckers.org/xss.js\" xss=\"\"></script>"
+ },
+
+ {
+ "name": "should_sanitize_script_tag_with_multiple_open_brackets",
+ "input": "<",
+ "output": "<<script>alert(\"XSS\");//<</script>"
+ },
+
+ {
+ "name": "should_sanitize_script_tag_with_multiple_open_brackets_2",
+ "input": "
e")
diff --git a/libs/html5lib/tests/test_sanitizer.py b/libs/html5lib/tests/test_sanitizer.py
index 45046d572..f3faeb805 100644
--- a/libs/html5lib/tests/test_sanitizer.py
+++ b/libs/html5lib/tests/test_sanitizer.py
@@ -1,31 +1,22 @@
from __future__ import absolute_import, division, unicode_literals
+import pytest
+
from html5lib import constants, parseFragment, serialize
from html5lib.filters import sanitizer
-def runSanitizerTest(_, expected, input):
- parsed = parseFragment(expected)
- expected = serialize(parsed,
- omit_optional_tags=False,
- use_trailing_solidus=True,
- space_before_trailing_solidus=False,
- quote_attr_values="always",
- quote_char='"',
- alphabetical_attributes=True)
- assert expected == sanitize_html(input)
-
-
def sanitize_html(stream):
parsed = parseFragment(stream)
- serialized = serialize(parsed,
- sanitize=True,
- omit_optional_tags=False,
- use_trailing_solidus=True,
- space_before_trailing_solidus=False,
- quote_attr_values="always",
- quote_char='"',
- alphabetical_attributes=True)
+ with pytest.deprecated_call():
+ serialized = serialize(parsed,
+ sanitize=True,
+ omit_optional_tags=False,
+ use_trailing_solidus=True,
+ space_before_trailing_solidus=False,
+ quote_attr_values="always",
+ quote_char='"',
+ alphabetical_attributes=True)
return serialized
@@ -59,7 +50,7 @@ def test_data_uri_disallowed_type():
assert expected == sanitized
-def test_sanitizer():
+def param_sanitizer():
for ns, tag_name in sanitizer.allowed_elements:
if ns != constants.namespaces["html"]:
continue
@@ -67,19 +58,19 @@ def test_sanitizer():
'tfoot', 'th', 'thead', 'tr', 'select']:
continue # TODO
if tag_name == 'image':
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ yield ("test_should_allow_%s_tag" % tag_name,
"foo <bad>bar</bad> baz",
"<%s title='1'>foo bar baz%s>" % (tag_name, tag_name))
elif tag_name == 'br':
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ yield ("test_should_allow_%s_tag" % tag_name,
"
foo <bad>bar</bad> baz
",
"<%s title='1'>foo bar baz%s>" % (tag_name, tag_name))
elif tag_name in constants.voidElements:
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ yield ("test_should_allow_%s_tag" % tag_name,
"<%s title=\"1\"/>foo <bad>bar</bad> baz" % tag_name,
"<%s title='1'>foo bar baz%s>" % (tag_name, tag_name))
else:
- yield (runSanitizerTest, "test_should_allow_%s_tag" % tag_name,
+ yield ("test_should_allow_%s_tag" % tag_name,
"<%s title=\"1\">foo <bad>bar</bad> baz%s>" % (tag_name, tag_name),
"<%s title='1'>foo bar baz%s>" % (tag_name, tag_name))
@@ -93,7 +84,7 @@ def test_sanitizer():
attribute_value = 'foo'
if attribute_name in sanitizer.attr_val_is_uri:
attribute_value = '%s://sub.domain.tld/path/object.ext' % sanitizer.allowed_protocols[0]
- yield (runSanitizerTest, "test_should_allow_%s_attribute" % attribute_name,
+ yield ("test_should_allow_%s_attribute" % attribute_name,
"foo <bad>bar</bad> baz
" % (attribute_name, attribute_value),
"foo bar baz
" % (attribute_name, attribute_value))
@@ -101,7 +92,7 @@ def test_sanitizer():
rest_of_uri = '//sub.domain.tld/path/object.ext'
if protocol == 'data':
rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ='
- yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol,
+ yield ("test_should_allow_uppercase_%s_uris" % protocol,
"foo" % (protocol, rest_of_uri),
"""foo""" % (protocol, rest_of_uri))
@@ -110,11 +101,26 @@ def test_sanitizer():
if protocol == 'data':
rest_of_uri = 'image/png;base64,aGVsbG8gd29ybGQ='
protocol = protocol.upper()
- yield (runSanitizerTest, "test_should_allow_uppercase_%s_uris" % protocol,
+ yield ("test_should_allow_uppercase_%s_uris" % protocol,
"foo" % (protocol, rest_of_uri),
"""foo""" % (protocol, rest_of_uri))
+@pytest.mark.parametrize("expected, input",
+ (pytest.param(expected, input, id=id)
+ for id, expected, input in param_sanitizer()))
+def test_sanitizer(expected, input):
+ parsed = parseFragment(expected)
+ expected = serialize(parsed,
+ omit_optional_tags=False,
+ use_trailing_solidus=True,
+ space_before_trailing_solidus=False,
+ quote_attr_values="always",
+ quote_char='"',
+ alphabetical_attributes=True)
+ assert expected == sanitize_html(input)
+
+
def test_lowercase_color_codes_in_style():
sanitized = sanitize_html("")
expected = ''
diff --git a/libs/html5lib/tests/test_serializer.py b/libs/html5lib/tests/test_serializer.py
index 9333286ef..bce624590 100644
--- a/libs/html5lib/tests/test_serializer.py
+++ b/libs/html5lib/tests/test_serializer.py
@@ -80,7 +80,7 @@ class JsonWalker(TreeWalker):
def serialize_html(input, options):
- options = dict([(str(k), v) for k, v in options.items()])
+ options = {str(k): v for k, v in options.items()}
encoding = options.get("encoding", None)
if "encoding" in options:
del options["encoding"]
@@ -89,19 +89,6 @@ def serialize_html(input, options):
return serializer.render(stream, encoding)
-def runSerializerTest(input, expected, options):
- encoding = options.get("encoding", None)
-
- if encoding:
- expected = list(map(lambda x: x.encode(encoding), expected))
-
- result = serialize_html(input, options)
- if len(expected) == 1:
- assert expected[0] == result, "Expected:\n%s\nActual:\n%s\nOptions:\n%s" % (expected[0], result, str(options))
- elif result not in expected:
- assert False, "Expected: %s, Received: %s" % (expected, result)
-
-
def throwsWithLatin1(input):
with pytest.raises(UnicodeEncodeError):
serialize_html(input, {"encoding": "iso-8859-1"})
@@ -120,13 +107,13 @@ def testDoctypeSystemId():
def testCdataCharacters():
- runSerializerTest([["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\u0101"]],
- ["
-#encoding
-iso-8859-2
-
-#data
-
-
-#encoding
-iso-8859-2
-
-#data
-
-
-
-#encoding
-iso-8859-2
diff --git a/libs/html5lib/tests/testdata/encoding/tests2.dat b/libs/html5lib/tests/testdata/encoding/tests2.dat
deleted file mode 100644
index d31b387fb..000000000
--- a/libs/html5lib/tests/testdata/encoding/tests2.dat
+++ /dev/null
@@ -1,115 +0,0 @@
-#data
-
-#encoding
-utf-8
-
-#data
-
-
-#encoding
-windows-1252
-
-#data
-
-#encoding
-utf-8
-
-#data
-
-#encoding
-windows-1252
-
-#data
-
-#encoding
-utf-8
-
-#data
-
-#encoding
-utf-8
-
-#data
-
-#encoding
-utf-8
-
-#data
-
-#encoding
-utf-8
-
-#data
-
-
-#encoding
-utf-8
-
-#data
-
-
-#encoding
-utf-8
-
-#data
-ñ
-
-#encoding
-utf-8
diff --git a/libs/html5lib/tests/testdata/serializer/core.test b/libs/html5lib/tests/testdata/serializer/core.test
deleted file mode 100644
index e1e3be043..000000000
--- a/libs/html5lib/tests/testdata/serializer/core.test
+++ /dev/null
@@ -1,125 +0,0 @@
-{"tests": [
-
-{"description": "proper attribute value escaping",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test \"with\" ""}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value non-quoting",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"}]]],
- "expected": [""],
- "xhtml": [""]
-},
-
-{"description": "proper attribute value non-quoting (with <)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"],
- "xhtml": [""]
-},
-
-{"description": "proper attribute value quoting (with =)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo=bar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with >)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo>bar"}]]],
- "expected": ["bar\">"]
-},
-
-{"description": "proper attribute value quoting (with \")",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\"bar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with both \" and ')",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar\"baz"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with space)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo bar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with tab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\tbar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with LF)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\nbar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value quoting (with CR)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\rbar"}]]],
- "expected": [""]
-},
-
-{"description": "proper attribute value non-quoting (with linetab)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Bbar"}]]],
- "expected": [""],
- "xhtml": [""]
-},
-
-{"description": "proper attribute value quoting (with form feed)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Cbar"}]]],
- "expected": [""]
-},
-
-{"description": "void element (as EmptyTag token)",
- "input": [["EmptyTag", "img", {}]],
- "expected": [""],
- "xhtml": [""]
-},
-
-{"description": "void element (as StartTag token)",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "img", {}]],
- "expected": [""],
- "xhtml": [""]
-},
-
-{"description": "doctype in error",
- "input": [["Doctype", "foo"]],
- "expected": [""]
-},
-
-{"description": "character data",
- "options": {"encoding":"utf-8"},
- "input": [["Characters", "ac&d"]],
- "expected": ["a<b>c&d"]
-},
-
-{"description": "rcdata",
- "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "ac&d"]],
- "expected": [""]
-},
-
-{"description": "text within "]
-}
-
-]}
\ No newline at end of file
diff --git a/libs/html5lib/tests/testdata/tokenizer/README.md b/libs/html5lib/tests/testdata/tokenizer/README.md
deleted file mode 100644
index 4218c26bb..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-Tokenizer tests
-===============
-
-The test format is [JSON](http://www.json.org/). This has the advantage
-that the syntax allows backward-compatible extensions to the tests and
-the disadvantage that it is relatively verbose.
-
-Basic Structure
----------------
-
- {"tests": [
- {"description": "Test description",
- "input": "input_string",
- "output": [expected_output_tokens],
- "initialStates": [initial_states],
- "lastStartTag": last_start_tag,
- "ignoreErrorOrder": ignore_error_order
- }
- ]}
-
-Multiple tests per file are allowed simply by adding more objects to the
-"tests" list.
-
-`description`, `input` and `output` are always present. The other values
-are optional.
-
-### Test set-up
-
-`test.input` is a string containing the characters to pass to the
-tokenizer. Specifically, it represents the characters of the **input
-stream**, and so implementations are expected to perform the processing
-described in the spec's **Preprocessing the input stream** section
-before feeding the result to the tokenizer.
-
-If `test.doubleEscaped` is present and `true`, then `test.input` is not
-quite as described above. Instead, it must first be subjected to another
-round of unescaping (i.e., in addition to any unescaping involved in the
-JSON import), and the result of *that* represents the characters of the
-input stream. Currently, the only unescaping required by this option is
-to convert each sequence of the form \\uHHHH (where H is a hex digit)
-into the corresponding Unicode code point. (Note that this option also
-affects the interpretation of `test.output`.)
-
-`test.initialStates` is a list of strings, each being the name of a
-tokenizer state. The test should be run once for each string, using it
-to set the tokenizer's initial state for that run. If
-`test.initialStates` is omitted, it defaults to `["data state"]`.
-
-`test.lastStartTag` is a lowercase string that should be used as "the
-tag name of the last start tag to have been emitted from this
-tokenizer", referenced in the spec's definition of **appropriate end tag
-token**. If it is omitted, it is treated as if "no start tag has been
-emitted from this tokenizer".
-
-### Test results
-
-`test.output` is a list of tokens, ordered with the first produced by
-the tokenizer the first (leftmost) in the list. The list must mach the
-**complete** list of tokens that the tokenizer should produce. Valid
-tokens are:
-
- ["DOCTYPE", name, public_id, system_id, correctness]
- ["StartTag", name, {attributes}*, true*]
- ["StartTag", name, {attributes}]
- ["EndTag", name]
- ["Comment", data]
- ["Character", data]
- "ParseError"
-
-`public_id` and `system_id` are either strings or `null`. `correctness`
-is either `true` or `false`; `true` corresponds to the force-quirks flag
-being false, and vice-versa.
-
-When the self-closing flag is set, the `StartTag` array has `true` as
-its fourth entry. When the flag is not set, the array has only three
-entries for backwards compatibility.
-
-All adjacent character tokens are coalesced into a single
-`["Character", data]` token.
-
-If `test.doubleEscaped` is present and `true`, then every string within
-`test.output` must be further unescaped (as described above) before
-comparing with the tokenizer's output.
-
-`test.ignoreErrorOrder` is a boolean value indicating that the order of
-`ParseError` tokens relative to other tokens in the output stream is
-unimportant, and implementations should ignore such differences between
-their output and `expected_output_tokens`. (This is used for errors
-emitted by the input stream preprocessing stage, since it is useful to
-test that code but it is undefined when the errors occur). If it is
-omitted, it defaults to `false`.
-
-xmlViolation tests
-------------------
-
-`tokenizer/xmlViolation.test` differs from the above in a couple of
-ways:
-
-- The name of the single member of the top-level JSON object is
- "xmlViolationTests" instead of "tests".
-- Each test's expected output assumes that implementation is applying
- the tweaks given in the spec's "Coercing an HTML DOM into an
- infoset" section.
-
diff --git a/libs/html5lib/tests/testdata/tokenizer/contentModelFlags.test b/libs/html5lib/tests/testdata/tokenizer/contentModelFlags.test
deleted file mode 100644
index 89b8170c6..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/contentModelFlags.test
+++ /dev/null
@@ -1,81 +0,0 @@
-{"tests": [
-
-{"description":"PLAINTEXT content model flag",
-"initialStates":["PLAINTEXT state"],
-"lastStartTag":"plaintext",
-"input":"&body;",
-"output":[["Character", "&body;"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo",
-"output":[["Character", "foo"], ["EndTag", "xmp"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (case-insensitivity)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo",
-"output":[["Character", "foo"], ["EndTag", "xmp"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT (ending with space)",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foobar",
-"output":[["Character", "bar"], ["EndTag", "xmp"]]},
-
-{"description":"Partial end tags leading straight into partial end tags",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"",
-"output":[["Character", "bar",
-"output":[["Character", "bar"]]},
-
-{"description":"End tag closing RCDATA or RAWTEXT, switching back to PCDATA",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo",
-"output":[["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]},
-
-{"description":"RAWTEXT w/ something looking like an entity",
-"initialStates":["RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"&foo;",
-"output":[["Character", "&foo;"]]},
-
-{"description":"RCDATA w/ an entity",
-"initialStates":["RCDATA state"],
-"lastStartTag":"textarea",
-"input":"<",
-"output":[["Character", "<"]]}
-
-]}
diff --git a/libs/html5lib/tests/testdata/tokenizer/domjs.test b/libs/html5lib/tests/testdata/tokenizer/domjs.test
deleted file mode 100644
index 8f1e42f35..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/domjs.test
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "tests": [
- {
- "description":"CR in bogus comment state",
- "input":"\u000d",
- "output":["ParseError", ["Comment", "?\u000a"]]
- },
- {
- "description":"CRLF in bogus comment state",
- "input":"\u000d\u000a",
- "output":["ParseError", ["Comment", "?\u000a"]]
- },
- {
- "description":"CRLFLF in bogus comment state",
- "input":"\u000d\u000a\u000a",
- "output":["ParseError", ["Comment", "?\u000a\u000a"]]
- },
- {
- "description":"NUL in RCDATA and RAWTEXT",
- "doubleEscaped":true,
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "input":"\\u0000",
- "output":["ParseError", ["Character", "\\uFFFD"]]
- },
- {
- "description":"leading U+FEFF must pass through",
- "doubleEscaped":true,
- "input":"\\uFEFFfoo\\uFEFFbar",
- "output":[["Character", "\\uFEFFfoo\\uFEFFbar"]]
- },
- {
- "description":"Non BMP-charref in in RCDATA",
- "initialStates":["RCDATA state"],
- "input":"≂̸",
- "output":[["Character", "\u2242\u0338"]]
- },
- {
- "description":"Bad charref in in RCDATA",
- "initialStates":["RCDATA state"],
- "input":"&NotEqualTild;",
- "output":["ParseError", ["Character", "&NotEqualTild;"]]
- },
- {
- "description":"lowercase endtags in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"",
- "output":[["EndTag","xmp"]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":" XMP>",
- "output":[["Character"," XMP>"]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"",
- "output":[["Character",""]]
- },
- {
- "description":"bad endtag in RCDATA and RAWTEXT",
- "initialStates":["RCDATA state", "RAWTEXT state"],
- "lastStartTag":"xmp",
- "input":"",
- "output":[["StartTag", "p", {"id":"\u2242\u0338"}]]
- },
- {
- "description":"--!NUL in comment ",
- "doubleEscaped":true,
- "input":"",
- "output":["ParseError", "ParseError", ["Comment", "--!\\uFFFD"]]
- },
- {
- "description":"space EOF after doctype ",
- "input":"",
-"output": [["StartTag", "h", {"a": "¬i;"}]]},
-
-{"description": "Entity name followed by the equals sign in an attribute value.",
-"input":"",
-"output": [["StartTag", "h", {"a": "&lang="}]]},
-
-{"description": "CR as numeric entity",
-"input":"
",
-"output": ["ParseError", ["Character", "\r"]]},
-
-{"description": "CR as hexadecimal numeric entity",
-"input":"
",
-"output": ["ParseError", ["Character", "\r"]]},
-
-{"description": "Windows-1252 EURO SIGN numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u20AC"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0081"]]},
-
-{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0192"]]},
-
-{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201E"]]},
-
-{"description": "Windows-1252 HORIZONTAL ELLIPSIS numeric entity.",
-"input":"
",
-"output": ["ParseError", ["Character", "\u2026"]]},
-
-{"description": "Windows-1252 DAGGER numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2020"]]},
-
-{"description": "Windows-1252 DOUBLE DAGGER numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2021"]]},
-
-{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u02C6"]]},
-
-{"description": "Windows-1252 PER MILLE SIGN numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2030"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0160"]]},
-
-{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2039"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0152"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u008D"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u017D"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u008F"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0090"]]},
-
-{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2018"]]},
-
-{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2019"]]},
-
-{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201C"]]},
-
-{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201D"]]},
-
-{"description": "Windows-1252 BULLET numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2022"]]},
-
-{"description": "Windows-1252 EN DASH numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2013"]]},
-
-{"description": "Windows-1252 EM DASH numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2014"]]},
-
-{"description": "Windows-1252 SMALL TILDE numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u02DC"]]},
-
-{"description": "Windows-1252 TRADE MARK SIGN numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2122"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0161"]]},
-
-{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u203A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LIGATURE OE numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0153"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u009D"]]},
-
-{"description": "Windows-1252 EURO SIGN hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u20AC"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0081"]]},
-
-{"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER F WITH HOOK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0192"]]},
-
-{"description": "Windows-1252 DOUBLE LOW-9 QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201E"]]},
-
-{"description": "Windows-1252 HORIZONTAL ELLIPSIS hexadecimal numeric entity.",
-"input":"
",
-"output": ["ParseError", ["Character", "\u2026"]]},
-
-{"description": "Windows-1252 DAGGER hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2020"]]},
-
-{"description": "Windows-1252 DOUBLE DAGGER hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2021"]]},
-
-{"description": "Windows-1252 MODIFIER LETTER CIRCUMFLEX ACCENT hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u02C6"]]},
-
-{"description": "Windows-1252 PER MILLE SIGN hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2030"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER S WITH CARON hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0160"]]},
-
-{"description": "Windows-1252 SINGLE LEFT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2039"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LIGATURE OE hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0152"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u008D"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u017D"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u008F"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0090"]]},
-
-{"description": "Windows-1252 LEFT SINGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2018"]]},
-
-{"description": "Windows-1252 RIGHT SINGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2019"]]},
-
-{"description": "Windows-1252 LEFT DOUBLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201C"]]},
-
-{"description": "Windows-1252 RIGHT DOUBLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u201D"]]},
-
-{"description": "Windows-1252 BULLET hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2022"]]},
-
-{"description": "Windows-1252 EN DASH hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2013"]]},
-
-{"description": "Windows-1252 EM DASH hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2014"]]},
-
-{"description": "Windows-1252 SMALL TILDE hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u02DC"]]},
-
-{"description": "Windows-1252 TRADE MARK SIGN hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u2122"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER S WITH CARON hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0161"]]},
-
-{"description": "Windows-1252 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u203A"]]},
-
-{"description": "Windows-1252 LATIN SMALL LIGATURE OE hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0153"]]},
-
-{"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u009D"]]},
-
-{"description": "Windows-1252 LATIN SMALL LETTER Z WITH CARON hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u017E"]]},
-
-{"description": "Windows-1252 LATIN CAPITAL LETTER Y WITH DIAERESIS hexadecimal numeric entity.",
-"input":"",
-"output": ["ParseError", ["Character", "\u0178"]]},
-
-{"description": "Decimal numeric entity followed by hex character a.",
-"input":"aa",
-"output": ["ParseError", ["Character", "aa"]]},
-
-{"description": "Decimal numeric entity followed by hex character A.",
-"input":"aA",
-"output": ["ParseError", ["Character", "aA"]]},
-
-{"description": "Decimal numeric entity followed by hex character f.",
-"input":"af",
-"output": ["ParseError", ["Character", "af"]]},
-
-{"description": "Decimal numeric entity followed by hex character A.",
-"input":"aF",
-"output": ["ParseError", ["Character", "aF"]]}
-
-]}
diff --git a/libs/html5lib/tests/testdata/tokenizer/escapeFlag.test b/libs/html5lib/tests/testdata/tokenizer/escapeFlag.test
deleted file mode 100644
index 18cb4309e..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/escapeFlag.test
+++ /dev/null
@@ -1,33 +0,0 @@
-{"tests": [
-
-{"description":"Commented close tag in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foo",
-"output":[["Character", "foo"], ["EndTag", "xmp"]]},
-
-{"description":"Bogus comment in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foobaz",
-"output":[["Character", "foobaz"], ["EndTag", "xmp"]]},
-
-{"description":"End tag surrounded by bogus comment in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foobaz",
-"output":[["Character", "foo"], ["EndTag", "xmp"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "xmp"]]},
-
-{"description":"Commented entities in RCDATA",
-"initialStates":["RCDATA state"],
-"lastStartTag":"xmp",
-"input":" & & ",
-"output":[["Character", " & & "], ["EndTag", "xmp"]]},
-
-{"description":"Incorrect comment ending sequences in RCDATA or RAWTEXT",
-"initialStates":["RCDATA state", "RAWTEXT state"],
-"lastStartTag":"xmp",
-"input":"foox--<>",
-"output":[["Character", "foox--<>"], ["EndTag", "xmp"]]}
-
-]}
diff --git a/libs/html5lib/tests/testdata/tokenizer/namedEntities.test b/libs/html5lib/tests/testdata/tokenizer/namedEntities.test
deleted file mode 100644
index 14db2ede0..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/namedEntities.test
+++ /dev/null
@@ -1,42210 +0,0 @@
-{
- "tests": [
- {
- "input": "Æ",
- "description": "Named entity: AElig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c6"
- ]
- ]
- },
- {
- "input": "Æ",
- "description": "Named entity: AElig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c6"
- ]
- ]
- },
- {
- "input": "&",
- "description": "Named entity: AMP without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&",
- "description": "Named entity: AMP; with a semi-colon",
- "output": [
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "Á",
- "description": "Named entity: Aacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c1"
- ]
- ]
- },
- {
- "input": "Á",
- "description": "Named entity: Aacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c1"
- ]
- ]
- },
- {
- "input": "&Abreve",
- "description": "Bad named entity: Abreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Abreve"
- ]
- ]
- },
- {
- "input": "Ă",
- "description": "Named entity: Abreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0102"
- ]
- ]
- },
- {
- "input": "Â",
- "description": "Named entity: Acirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c2"
- ]
- ]
- },
- {
- "input": "Â",
- "description": "Named entity: Acirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c2"
- ]
- ]
- },
- {
- "input": "&Acy",
- "description": "Bad named entity: Acy without a semi-colon",
- "output": [
- [
- "Character",
- "&Acy"
- ]
- ]
- },
- {
- "input": "А",
- "description": "Named entity: Acy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0410"
- ]
- ]
- },
- {
- "input": "&Afr",
- "description": "Bad named entity: Afr without a semi-colon",
- "output": [
- [
- "Character",
- "&Afr"
- ]
- ]
- },
- {
- "input": "𝔄",
- "description": "Named entity: Afr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd04"
- ]
- ]
- },
- {
- "input": "À",
- "description": "Named entity: Agrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c0"
- ]
- ]
- },
- {
- "input": "À",
- "description": "Named entity: Agrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c0"
- ]
- ]
- },
- {
- "input": "&Alpha",
- "description": "Bad named entity: Alpha without a semi-colon",
- "output": [
- [
- "Character",
- "&Alpha"
- ]
- ]
- },
- {
- "input": "Α",
- "description": "Named entity: Alpha; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0391"
- ]
- ]
- },
- {
- "input": "&Amacr",
- "description": "Bad named entity: Amacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Amacr"
- ]
- ]
- },
- {
- "input": "Ā",
- "description": "Named entity: Amacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0100"
- ]
- ]
- },
- {
- "input": "&And",
- "description": "Bad named entity: And without a semi-colon",
- "output": [
- [
- "Character",
- "&And"
- ]
- ]
- },
- {
- "input": "⩓",
- "description": "Named entity: And; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a53"
- ]
- ]
- },
- {
- "input": "&Aogon",
- "description": "Bad named entity: Aogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Aogon"
- ]
- ]
- },
- {
- "input": "Ą",
- "description": "Named entity: Aogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0104"
- ]
- ]
- },
- {
- "input": "&Aopf",
- "description": "Bad named entity: Aopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Aopf"
- ]
- ]
- },
- {
- "input": "𝔸",
- "description": "Named entity: Aopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd38"
- ]
- ]
- },
- {
- "input": "&ApplyFunction",
- "description": "Bad named entity: ApplyFunction without a semi-colon",
- "output": [
- [
- "Character",
- "&ApplyFunction"
- ]
- ]
- },
- {
- "input": "⁡",
- "description": "Named entity: ApplyFunction; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2061"
- ]
- ]
- },
- {
- "input": "Å",
- "description": "Named entity: Aring without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "Å",
- "description": "Named entity: Aring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "&Ascr",
- "description": "Bad named entity: Ascr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ascr"
- ]
- ]
- },
- {
- "input": "𝒜",
- "description": "Named entity: Ascr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9c"
- ]
- ]
- },
- {
- "input": "&Assign",
- "description": "Bad named entity: Assign without a semi-colon",
- "output": [
- [
- "Character",
- "&Assign"
- ]
- ]
- },
- {
- "input": "≔",
- "description": "Named entity: Assign; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "Ã",
- "description": "Named entity: Atilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c3"
- ]
- ]
- },
- {
- "input": "Ã",
- "description": "Named entity: Atilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c3"
- ]
- ]
- },
- {
- "input": "Ä",
- "description": "Named entity: Auml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c4"
- ]
- ]
- },
- {
- "input": "Ä",
- "description": "Named entity: Auml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c4"
- ]
- ]
- },
- {
- "input": "&Backslash",
- "description": "Bad named entity: Backslash without a semi-colon",
- "output": [
- [
- "Character",
- "&Backslash"
- ]
- ]
- },
- {
- "input": "∖",
- "description": "Named entity: Backslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&Barv",
- "description": "Bad named entity: Barv without a semi-colon",
- "output": [
- [
- "Character",
- "&Barv"
- ]
- ]
- },
- {
- "input": "⫧",
- "description": "Named entity: Barv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae7"
- ]
- ]
- },
- {
- "input": "&Barwed",
- "description": "Bad named entity: Barwed without a semi-colon",
- "output": [
- [
- "Character",
- "&Barwed"
- ]
- ]
- },
- {
- "input": "⌆",
- "description": "Named entity: Barwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2306"
- ]
- ]
- },
- {
- "input": "&Bcy",
- "description": "Bad named entity: Bcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Bcy"
- ]
- ]
- },
- {
- "input": "Б",
- "description": "Named entity: Bcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0411"
- ]
- ]
- },
- {
- "input": "&Because",
- "description": "Bad named entity: Because without a semi-colon",
- "output": [
- [
- "Character",
- "&Because"
- ]
- ]
- },
- {
- "input": "∵",
- "description": "Named entity: Because; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&Bernoullis",
- "description": "Bad named entity: Bernoullis without a semi-colon",
- "output": [
- [
- "Character",
- "&Bernoullis"
- ]
- ]
- },
- {
- "input": "ℬ",
- "description": "Named entity: Bernoullis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&Beta",
- "description": "Bad named entity: Beta without a semi-colon",
- "output": [
- [
- "Character",
- "&Beta"
- ]
- ]
- },
- {
- "input": "Β",
- "description": "Named entity: Beta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0392"
- ]
- ]
- },
- {
- "input": "&Bfr",
- "description": "Bad named entity: Bfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Bfr"
- ]
- ]
- },
- {
- "input": "𝔅",
- "description": "Named entity: Bfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd05"
- ]
- ]
- },
- {
- "input": "&Bopf",
- "description": "Bad named entity: Bopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Bopf"
- ]
- ]
- },
- {
- "input": "𝔹",
- "description": "Named entity: Bopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd39"
- ]
- ]
- },
- {
- "input": "&Breve",
- "description": "Bad named entity: Breve without a semi-colon",
- "output": [
- [
- "Character",
- "&Breve"
- ]
- ]
- },
- {
- "input": "˘",
- "description": "Named entity: Breve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d8"
- ]
- ]
- },
- {
- "input": "&Bscr",
- "description": "Bad named entity: Bscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Bscr"
- ]
- ]
- },
- {
- "input": "ℬ",
- "description": "Named entity: Bscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&Bumpeq",
- "description": "Bad named entity: Bumpeq without a semi-colon",
- "output": [
- [
- "Character",
- "&Bumpeq"
- ]
- ]
- },
- {
- "input": "≎",
- "description": "Named entity: Bumpeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&CHcy",
- "description": "Bad named entity: CHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&CHcy"
- ]
- ]
- },
- {
- "input": "Ч",
- "description": "Named entity: CHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0427"
- ]
- ]
- },
- {
- "input": "©",
- "description": "Named entity: COPY without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "©",
- "description": "Named entity: COPY; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "&Cacute",
- "description": "Bad named entity: Cacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Cacute"
- ]
- ]
- },
- {
- "input": "Ć",
- "description": "Named entity: Cacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0106"
- ]
- ]
- },
- {
- "input": "&Cap",
- "description": "Bad named entity: Cap without a semi-colon",
- "output": [
- [
- "Character",
- "&Cap"
- ]
- ]
- },
- {
- "input": "⋒",
- "description": "Named entity: Cap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d2"
- ]
- ]
- },
- {
- "input": "&CapitalDifferentialD",
- "description": "Bad named entity: CapitalDifferentialD without a semi-colon",
- "output": [
- [
- "Character",
- "&CapitalDifferentialD"
- ]
- ]
- },
- {
- "input": "ⅅ",
- "description": "Named entity: CapitalDifferentialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2145"
- ]
- ]
- },
- {
- "input": "&Cayleys",
- "description": "Bad named entity: Cayleys without a semi-colon",
- "output": [
- [
- "Character",
- "&Cayleys"
- ]
- ]
- },
- {
- "input": "ℭ",
- "description": "Named entity: Cayleys; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212d"
- ]
- ]
- },
- {
- "input": "&Ccaron",
- "description": "Bad named entity: Ccaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ccaron"
- ]
- ]
- },
- {
- "input": "Č",
- "description": "Named entity: Ccaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010c"
- ]
- ]
- },
- {
- "input": "Ç",
- "description": "Named entity: Ccedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c7"
- ]
- ]
- },
- {
- "input": "Ç",
- "description": "Named entity: Ccedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c7"
- ]
- ]
- },
- {
- "input": "&Ccirc",
- "description": "Bad named entity: Ccirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Ccirc"
- ]
- ]
- },
- {
- "input": "Ĉ",
- "description": "Named entity: Ccirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0108"
- ]
- ]
- },
- {
- "input": "&Cconint",
- "description": "Bad named entity: Cconint without a semi-colon",
- "output": [
- [
- "Character",
- "&Cconint"
- ]
- ]
- },
- {
- "input": "∰",
- "description": "Named entity: Cconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2230"
- ]
- ]
- },
- {
- "input": "&Cdot",
- "description": "Bad named entity: Cdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Cdot"
- ]
- ]
- },
- {
- "input": "Ċ",
- "description": "Named entity: Cdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010a"
- ]
- ]
- },
- {
- "input": "&Cedilla",
- "description": "Bad named entity: Cedilla without a semi-colon",
- "output": [
- [
- "Character",
- "&Cedilla"
- ]
- ]
- },
- {
- "input": "¸",
- "description": "Named entity: Cedilla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "&CenterDot",
- "description": "Bad named entity: CenterDot without a semi-colon",
- "output": [
- [
- "Character",
- "&CenterDot"
- ]
- ]
- },
- {
- "input": "·",
- "description": "Named entity: CenterDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&Cfr",
- "description": "Bad named entity: Cfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Cfr"
- ]
- ]
- },
- {
- "input": "ℭ",
- "description": "Named entity: Cfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212d"
- ]
- ]
- },
- {
- "input": "&Chi",
- "description": "Bad named entity: Chi without a semi-colon",
- "output": [
- [
- "Character",
- "&Chi"
- ]
- ]
- },
- {
- "input": "Χ",
- "description": "Named entity: Chi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a7"
- ]
- ]
- },
- {
- "input": "&CircleDot",
- "description": "Bad named entity: CircleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleDot"
- ]
- ]
- },
- {
- "input": "⊙",
- "description": "Named entity: CircleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2299"
- ]
- ]
- },
- {
- "input": "&CircleMinus",
- "description": "Bad named entity: CircleMinus without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleMinus"
- ]
- ]
- },
- {
- "input": "⊖",
- "description": "Named entity: CircleMinus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2296"
- ]
- ]
- },
- {
- "input": "&CirclePlus",
- "description": "Bad named entity: CirclePlus without a semi-colon",
- "output": [
- [
- "Character",
- "&CirclePlus"
- ]
- ]
- },
- {
- "input": "⊕",
- "description": "Named entity: CirclePlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2295"
- ]
- ]
- },
- {
- "input": "&CircleTimes",
- "description": "Bad named entity: CircleTimes without a semi-colon",
- "output": [
- [
- "Character",
- "&CircleTimes"
- ]
- ]
- },
- {
- "input": "⊗",
- "description": "Named entity: CircleTimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2297"
- ]
- ]
- },
- {
- "input": "&ClockwiseContourIntegral",
- "description": "Bad named entity: ClockwiseContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&ClockwiseContourIntegral"
- ]
- ]
- },
- {
- "input": "∲",
- "description": "Named entity: ClockwiseContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2232"
- ]
- ]
- },
- {
- "input": "&CloseCurlyDoubleQuote",
- "description": "Bad named entity: CloseCurlyDoubleQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&CloseCurlyDoubleQuote"
- ]
- ]
- },
- {
- "input": "”",
- "description": "Named entity: CloseCurlyDoubleQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&CloseCurlyQuote",
- "description": "Bad named entity: CloseCurlyQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&CloseCurlyQuote"
- ]
- ]
- },
- {
- "input": "’",
- "description": "Named entity: CloseCurlyQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&Colon",
- "description": "Bad named entity: Colon without a semi-colon",
- "output": [
- [
- "Character",
- "&Colon"
- ]
- ]
- },
- {
- "input": "∷",
- "description": "Named entity: Colon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2237"
- ]
- ]
- },
- {
- "input": "&Colone",
- "description": "Bad named entity: Colone without a semi-colon",
- "output": [
- [
- "Character",
- "&Colone"
- ]
- ]
- },
- {
- "input": "⩴",
- "description": "Named entity: Colone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a74"
- ]
- ]
- },
- {
- "input": "&Congruent",
- "description": "Bad named entity: Congruent without a semi-colon",
- "output": [
- [
- "Character",
- "&Congruent"
- ]
- ]
- },
- {
- "input": "≡",
- "description": "Named entity: Congruent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261"
- ]
- ]
- },
- {
- "input": "&Conint",
- "description": "Bad named entity: Conint without a semi-colon",
- "output": [
- [
- "Character",
- "&Conint"
- ]
- ]
- },
- {
- "input": "∯",
- "description": "Named entity: Conint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222f"
- ]
- ]
- },
- {
- "input": "&ContourIntegral",
- "description": "Bad named entity: ContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&ContourIntegral"
- ]
- ]
- },
- {
- "input": "∮",
- "description": "Named entity: ContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&Copf",
- "description": "Bad named entity: Copf without a semi-colon",
- "output": [
- [
- "Character",
- "&Copf"
- ]
- ]
- },
- {
- "input": "ℂ",
- "description": "Named entity: Copf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2102"
- ]
- ]
- },
- {
- "input": "&Coproduct",
- "description": "Bad named entity: Coproduct without a semi-colon",
- "output": [
- [
- "Character",
- "&Coproduct"
- ]
- ]
- },
- {
- "input": "∐",
- "description": "Named entity: Coproduct; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2210"
- ]
- ]
- },
- {
- "input": "&CounterClockwiseContourIntegral",
- "description": "Bad named entity: CounterClockwiseContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&CounterClockwiseContourIntegral"
- ]
- ]
- },
- {
- "input": "∳",
- "description": "Named entity: CounterClockwiseContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2233"
- ]
- ]
- },
- {
- "input": "&Cross",
- "description": "Bad named entity: Cross without a semi-colon",
- "output": [
- [
- "Character",
- "&Cross"
- ]
- ]
- },
- {
- "input": "⨯",
- "description": "Named entity: Cross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2f"
- ]
- ]
- },
- {
- "input": "&Cscr",
- "description": "Bad named entity: Cscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Cscr"
- ]
- ]
- },
- {
- "input": "𝒞",
- "description": "Named entity: Cscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9e"
- ]
- ]
- },
- {
- "input": "&Cup",
- "description": "Bad named entity: Cup without a semi-colon",
- "output": [
- [
- "Character",
- "&Cup"
- ]
- ]
- },
- {
- "input": "⋓",
- "description": "Named entity: Cup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d3"
- ]
- ]
- },
- {
- "input": "&CupCap",
- "description": "Bad named entity: CupCap without a semi-colon",
- "output": [
- [
- "Character",
- "&CupCap"
- ]
- ]
- },
- {
- "input": "≍",
- "description": "Named entity: CupCap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d"
- ]
- ]
- },
- {
- "input": "&DD",
- "description": "Bad named entity: DD without a semi-colon",
- "output": [
- [
- "Character",
- "&DD"
- ]
- ]
- },
- {
- "input": "ⅅ",
- "description": "Named entity: DD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2145"
- ]
- ]
- },
- {
- "input": "&DDotrahd",
- "description": "Bad named entity: DDotrahd without a semi-colon",
- "output": [
- [
- "Character",
- "&DDotrahd"
- ]
- ]
- },
- {
- "input": "⤑",
- "description": "Named entity: DDotrahd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2911"
- ]
- ]
- },
- {
- "input": "&DJcy",
- "description": "Bad named entity: DJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&DJcy"
- ]
- ]
- },
- {
- "input": "Ђ",
- "description": "Named entity: DJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0402"
- ]
- ]
- },
- {
- "input": "&DScy",
- "description": "Bad named entity: DScy without a semi-colon",
- "output": [
- [
- "Character",
- "&DScy"
- ]
- ]
- },
- {
- "input": "Ѕ",
- "description": "Named entity: DScy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0405"
- ]
- ]
- },
- {
- "input": "&DZcy",
- "description": "Bad named entity: DZcy without a semi-colon",
- "output": [
- [
- "Character",
- "&DZcy"
- ]
- ]
- },
- {
- "input": "Џ",
- "description": "Named entity: DZcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040f"
- ]
- ]
- },
- {
- "input": "&Dagger",
- "description": "Bad named entity: Dagger without a semi-colon",
- "output": [
- [
- "Character",
- "&Dagger"
- ]
- ]
- },
- {
- "input": "‡",
- "description": "Named entity: Dagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2021"
- ]
- ]
- },
- {
- "input": "&Darr",
- "description": "Bad named entity: Darr without a semi-colon",
- "output": [
- [
- "Character",
- "&Darr"
- ]
- ]
- },
- {
- "input": "↡",
- "description": "Named entity: Darr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a1"
- ]
- ]
- },
- {
- "input": "&Dashv",
- "description": "Bad named entity: Dashv without a semi-colon",
- "output": [
- [
- "Character",
- "&Dashv"
- ]
- ]
- },
- {
- "input": "⫤",
- "description": "Named entity: Dashv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae4"
- ]
- ]
- },
- {
- "input": "&Dcaron",
- "description": "Bad named entity: Dcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Dcaron"
- ]
- ]
- },
- {
- "input": "Ď",
- "description": "Named entity: Dcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010e"
- ]
- ]
- },
- {
- "input": "&Dcy",
- "description": "Bad named entity: Dcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Dcy"
- ]
- ]
- },
- {
- "input": "Д",
- "description": "Named entity: Dcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0414"
- ]
- ]
- },
- {
- "input": "&Del",
- "description": "Bad named entity: Del without a semi-colon",
- "output": [
- [
- "Character",
- "&Del"
- ]
- ]
- },
- {
- "input": "∇",
- "description": "Named entity: Del; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2207"
- ]
- ]
- },
- {
- "input": "&Delta",
- "description": "Bad named entity: Delta without a semi-colon",
- "output": [
- [
- "Character",
- "&Delta"
- ]
- ]
- },
- {
- "input": "Δ",
- "description": "Named entity: Delta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0394"
- ]
- ]
- },
- {
- "input": "&Dfr",
- "description": "Bad named entity: Dfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Dfr"
- ]
- ]
- },
- {
- "input": "𝔇",
- "description": "Named entity: Dfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd07"
- ]
- ]
- },
- {
- "input": "&DiacriticalAcute",
- "description": "Bad named entity: DiacriticalAcute without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalAcute"
- ]
- ]
- },
- {
- "input": "´",
- "description": "Named entity: DiacriticalAcute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "&DiacriticalDot",
- "description": "Bad named entity: DiacriticalDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalDot"
- ]
- ]
- },
- {
- "input": "˙",
- "description": "Named entity: DiacriticalDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d9"
- ]
- ]
- },
- {
- "input": "&DiacriticalDoubleAcute",
- "description": "Bad named entity: DiacriticalDoubleAcute without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalDoubleAcute"
- ]
- ]
- },
- {
- "input": "˝",
- "description": "Named entity: DiacriticalDoubleAcute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dd"
- ]
- ]
- },
- {
- "input": "&DiacriticalGrave",
- "description": "Bad named entity: DiacriticalGrave without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalGrave"
- ]
- ]
- },
- {
- "input": "`",
- "description": "Named entity: DiacriticalGrave; with a semi-colon",
- "output": [
- [
- "Character",
- "`"
- ]
- ]
- },
- {
- "input": "&DiacriticalTilde",
- "description": "Bad named entity: DiacriticalTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&DiacriticalTilde"
- ]
- ]
- },
- {
- "input": "˜",
- "description": "Named entity: DiacriticalTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dc"
- ]
- ]
- },
- {
- "input": "&Diamond",
- "description": "Bad named entity: Diamond without a semi-colon",
- "output": [
- [
- "Character",
- "&Diamond"
- ]
- ]
- },
- {
- "input": "⋄",
- "description": "Named entity: Diamond; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&DifferentialD",
- "description": "Bad named entity: DifferentialD without a semi-colon",
- "output": [
- [
- "Character",
- "&DifferentialD"
- ]
- ]
- },
- {
- "input": "ⅆ",
- "description": "Named entity: DifferentialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2146"
- ]
- ]
- },
- {
- "input": "&Dopf",
- "description": "Bad named entity: Dopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Dopf"
- ]
- ]
- },
- {
- "input": "𝔻",
- "description": "Named entity: Dopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3b"
- ]
- ]
- },
- {
- "input": "&Dot",
- "description": "Bad named entity: Dot without a semi-colon",
- "output": [
- [
- "Character",
- "&Dot"
- ]
- ]
- },
- {
- "input": "¨",
- "description": "Named entity: Dot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&DotDot",
- "description": "Bad named entity: DotDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DotDot"
- ]
- ]
- },
- {
- "input": "⃜",
- "description": "Named entity: DotDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20dc"
- ]
- ]
- },
- {
- "input": "&DotEqual",
- "description": "Bad named entity: DotEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&DotEqual"
- ]
- ]
- },
- {
- "input": "≐",
- "description": "Named entity: DotEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&DoubleContourIntegral",
- "description": "Bad named entity: DoubleContourIntegral without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleContourIntegral"
- ]
- ]
- },
- {
- "input": "∯",
- "description": "Named entity: DoubleContourIntegral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222f"
- ]
- ]
- },
- {
- "input": "&DoubleDot",
- "description": "Bad named entity: DoubleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleDot"
- ]
- ]
- },
- {
- "input": "¨",
- "description": "Named entity: DoubleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&DoubleDownArrow",
- "description": "Bad named entity: DoubleDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleDownArrow"
- ]
- ]
- },
- {
- "input": "⇓",
- "description": "Named entity: DoubleDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&DoubleLeftArrow",
- "description": "Bad named entity: DoubleLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftArrow"
- ]
- ]
- },
- {
- "input": "⇐",
- "description": "Named entity: DoubleLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&DoubleLeftRightArrow",
- "description": "Bad named entity: DoubleLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftRightArrow"
- ]
- ]
- },
- {
- "input": "⇔",
- "description": "Named entity: DoubleLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&DoubleLeftTee",
- "description": "Bad named entity: DoubleLeftTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLeftTee"
- ]
- ]
- },
- {
- "input": "⫤",
- "description": "Named entity: DoubleLeftTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae4"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftArrow",
- "description": "Bad named entity: DoubleLongLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongLeftArrow"
- ]
- ]
- },
- {
- "input": "⟸",
- "description": "Named entity: DoubleLongLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&DoubleLongLeftRightArrow",
- "description": "Bad named entity: DoubleLongLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongLeftRightArrow"
- ]
- ]
- },
- {
- "input": "⟺",
- "description": "Named entity: DoubleLongLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&DoubleLongRightArrow",
- "description": "Bad named entity: DoubleLongRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleLongRightArrow"
- ]
- ]
- },
- {
- "input": "⟹",
- "description": "Named entity: DoubleLongRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&DoubleRightArrow",
- "description": "Bad named entity: DoubleRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleRightArrow"
- ]
- ]
- },
- {
- "input": "⇒",
- "description": "Named entity: DoubleRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&DoubleRightTee",
- "description": "Bad named entity: DoubleRightTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleRightTee"
- ]
- ]
- },
- {
- "input": "⊨",
- "description": "Named entity: DoubleRightTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a8"
- ]
- ]
- },
- {
- "input": "&DoubleUpArrow",
- "description": "Bad named entity: DoubleUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleUpArrow"
- ]
- ]
- },
- {
- "input": "⇑",
- "description": "Named entity: DoubleUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&DoubleUpDownArrow",
- "description": "Bad named entity: DoubleUpDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleUpDownArrow"
- ]
- ]
- },
- {
- "input": "⇕",
- "description": "Named entity: DoubleUpDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&DoubleVerticalBar",
- "description": "Bad named entity: DoubleVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DoubleVerticalBar"
- ]
- ]
- },
- {
- "input": "∥",
- "description": "Named entity: DoubleVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&DownArrow",
- "description": "Bad named entity: DownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrow"
- ]
- ]
- },
- {
- "input": "↓",
- "description": "Named entity: DownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&DownArrowBar",
- "description": "Bad named entity: DownArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrowBar"
- ]
- ]
- },
- {
- "input": "⤓",
- "description": "Named entity: DownArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2913"
- ]
- ]
- },
- {
- "input": "&DownArrowUpArrow",
- "description": "Bad named entity: DownArrowUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownArrowUpArrow"
- ]
- ]
- },
- {
- "input": "⇵",
- "description": "Named entity: DownArrowUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21f5"
- ]
- ]
- },
- {
- "input": "&DownBreve",
- "description": "Bad named entity: DownBreve without a semi-colon",
- "output": [
- [
- "Character",
- "&DownBreve"
- ]
- ]
- },
- {
- "input": "̑",
- "description": "Named entity: DownBreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0311"
- ]
- ]
- },
- {
- "input": "&DownLeftRightVector",
- "description": "Bad named entity: DownLeftRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftRightVector"
- ]
- ]
- },
- {
- "input": "⥐",
- "description": "Named entity: DownLeftRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2950"
- ]
- ]
- },
- {
- "input": "&DownLeftTeeVector",
- "description": "Bad named entity: DownLeftTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftTeeVector"
- ]
- ]
- },
- {
- "input": "⥞",
- "description": "Named entity: DownLeftTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295e"
- ]
- ]
- },
- {
- "input": "&DownLeftVector",
- "description": "Bad named entity: DownLeftVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftVector"
- ]
- ]
- },
- {
- "input": "↽",
- "description": "Named entity: DownLeftVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&DownLeftVectorBar",
- "description": "Bad named entity: DownLeftVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownLeftVectorBar"
- ]
- ]
- },
- {
- "input": "⥖",
- "description": "Named entity: DownLeftVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2956"
- ]
- ]
- },
- {
- "input": "&DownRightTeeVector",
- "description": "Bad named entity: DownRightTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightTeeVector"
- ]
- ]
- },
- {
- "input": "⥟",
- "description": "Named entity: DownRightTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295f"
- ]
- ]
- },
- {
- "input": "&DownRightVector",
- "description": "Bad named entity: DownRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightVector"
- ]
- ]
- },
- {
- "input": "⇁",
- "description": "Named entity: DownRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&DownRightVectorBar",
- "description": "Bad named entity: DownRightVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&DownRightVectorBar"
- ]
- ]
- },
- {
- "input": "⥗",
- "description": "Named entity: DownRightVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2957"
- ]
- ]
- },
- {
- "input": "&DownTee",
- "description": "Bad named entity: DownTee without a semi-colon",
- "output": [
- [
- "Character",
- "&DownTee"
- ]
- ]
- },
- {
- "input": "⊤",
- "description": "Named entity: DownTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a4"
- ]
- ]
- },
- {
- "input": "&DownTeeArrow",
- "description": "Bad named entity: DownTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&DownTeeArrow"
- ]
- ]
- },
- {
- "input": "↧",
- "description": "Named entity: DownTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a7"
- ]
- ]
- },
- {
- "input": "&Downarrow",
- "description": "Bad named entity: Downarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Downarrow"
- ]
- ]
- },
- {
- "input": "⇓",
- "description": "Named entity: Downarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&Dscr",
- "description": "Bad named entity: Dscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Dscr"
- ]
- ]
- },
- {
- "input": "𝒟",
- "description": "Named entity: Dscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udc9f"
- ]
- ]
- },
- {
- "input": "&Dstrok",
- "description": "Bad named entity: Dstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Dstrok"
- ]
- ]
- },
- {
- "input": "Đ",
- "description": "Named entity: Dstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0110"
- ]
- ]
- },
- {
- "input": "&ENG",
- "description": "Bad named entity: ENG without a semi-colon",
- "output": [
- [
- "Character",
- "&ENG"
- ]
- ]
- },
- {
- "input": "Ŋ",
- "description": "Named entity: ENG; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014a"
- ]
- ]
- },
- {
- "input": "Ð",
- "description": "Named entity: ETH without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d0"
- ]
- ]
- },
- {
- "input": "Ð",
- "description": "Named entity: ETH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d0"
- ]
- ]
- },
- {
- "input": "É",
- "description": "Named entity: Eacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c9"
- ]
- ]
- },
- {
- "input": "É",
- "description": "Named entity: Eacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c9"
- ]
- ]
- },
- {
- "input": "&Ecaron",
- "description": "Bad named entity: Ecaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ecaron"
- ]
- ]
- },
- {
- "input": "Ě",
- "description": "Named entity: Ecaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011a"
- ]
- ]
- },
- {
- "input": "Ê",
- "description": "Named entity: Ecirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ca"
- ]
- ]
- },
- {
- "input": "Ê",
- "description": "Named entity: Ecirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ca"
- ]
- ]
- },
- {
- "input": "&Ecy",
- "description": "Bad named entity: Ecy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ecy"
- ]
- ]
- },
- {
- "input": "Э",
- "description": "Named entity: Ecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042d"
- ]
- ]
- },
- {
- "input": "&Edot",
- "description": "Bad named entity: Edot without a semi-colon",
- "output": [
- [
- "Character",
- "&Edot"
- ]
- ]
- },
- {
- "input": "Ė",
- "description": "Named entity: Edot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0116"
- ]
- ]
- },
- {
- "input": "&Efr",
- "description": "Bad named entity: Efr without a semi-colon",
- "output": [
- [
- "Character",
- "&Efr"
- ]
- ]
- },
- {
- "input": "𝔈",
- "description": "Named entity: Efr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd08"
- ]
- ]
- },
- {
- "input": "È",
- "description": "Named entity: Egrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00c8"
- ]
- ]
- },
- {
- "input": "È",
- "description": "Named entity: Egrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c8"
- ]
- ]
- },
- {
- "input": "&Element",
- "description": "Bad named entity: Element without a semi-colon",
- "output": [
- [
- "Character",
- "&Element"
- ]
- ]
- },
- {
- "input": "∈",
- "description": "Named entity: Element; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&Emacr",
- "description": "Bad named entity: Emacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Emacr"
- ]
- ]
- },
- {
- "input": "Ē",
- "description": "Named entity: Emacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0112"
- ]
- ]
- },
- {
- "input": "&EmptySmallSquare",
- "description": "Bad named entity: EmptySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&EmptySmallSquare"
- ]
- ]
- },
- {
- "input": "◻",
- "description": "Named entity: EmptySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fb"
- ]
- ]
- },
- {
- "input": "&EmptyVerySmallSquare",
- "description": "Bad named entity: EmptyVerySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&EmptyVerySmallSquare"
- ]
- ]
- },
- {
- "input": "▫",
- "description": "Named entity: EmptyVerySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ab"
- ]
- ]
- },
- {
- "input": "&Eogon",
- "description": "Bad named entity: Eogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Eogon"
- ]
- ]
- },
- {
- "input": "Ę",
- "description": "Named entity: Eogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0118"
- ]
- ]
- },
- {
- "input": "&Eopf",
- "description": "Bad named entity: Eopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Eopf"
- ]
- ]
- },
- {
- "input": "𝔼",
- "description": "Named entity: Eopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3c"
- ]
- ]
- },
- {
- "input": "&Epsilon",
- "description": "Bad named entity: Epsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&Epsilon"
- ]
- ]
- },
- {
- "input": "Ε",
- "description": "Named entity: Epsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0395"
- ]
- ]
- },
- {
- "input": "&Equal",
- "description": "Bad named entity: Equal without a semi-colon",
- "output": [
- [
- "Character",
- "&Equal"
- ]
- ]
- },
- {
- "input": "⩵",
- "description": "Named entity: Equal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a75"
- ]
- ]
- },
- {
- "input": "&EqualTilde",
- "description": "Bad named entity: EqualTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&EqualTilde"
- ]
- ]
- },
- {
- "input": "≂",
- "description": "Named entity: EqualTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&Equilibrium",
- "description": "Bad named entity: Equilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&Equilibrium"
- ]
- ]
- },
- {
- "input": "⇌",
- "description": "Named entity: Equilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&Escr",
- "description": "Bad named entity: Escr without a semi-colon",
- "output": [
- [
- "Character",
- "&Escr"
- ]
- ]
- },
- {
- "input": "ℰ",
- "description": "Named entity: Escr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2130"
- ]
- ]
- },
- {
- "input": "&Esim",
- "description": "Bad named entity: Esim without a semi-colon",
- "output": [
- [
- "Character",
- "&Esim"
- ]
- ]
- },
- {
- "input": "⩳",
- "description": "Named entity: Esim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a73"
- ]
- ]
- },
- {
- "input": "&Eta",
- "description": "Bad named entity: Eta without a semi-colon",
- "output": [
- [
- "Character",
- "&Eta"
- ]
- ]
- },
- {
- "input": "Η",
- "description": "Named entity: Eta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0397"
- ]
- ]
- },
- {
- "input": "Ë",
- "description": "Named entity: Euml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cb"
- ]
- ]
- },
- {
- "input": "Ë",
- "description": "Named entity: Euml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cb"
- ]
- ]
- },
- {
- "input": "&Exists",
- "description": "Bad named entity: Exists without a semi-colon",
- "output": [
- [
- "Character",
- "&Exists"
- ]
- ]
- },
- {
- "input": "∃",
- "description": "Named entity: Exists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2203"
- ]
- ]
- },
- {
- "input": "&ExponentialE",
- "description": "Bad named entity: ExponentialE without a semi-colon",
- "output": [
- [
- "Character",
- "&ExponentialE"
- ]
- ]
- },
- {
- "input": "ⅇ",
- "description": "Named entity: ExponentialE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&Fcy",
- "description": "Bad named entity: Fcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Fcy"
- ]
- ]
- },
- {
- "input": "Ф",
- "description": "Named entity: Fcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0424"
- ]
- ]
- },
- {
- "input": "&Ffr",
- "description": "Bad named entity: Ffr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ffr"
- ]
- ]
- },
- {
- "input": "𝔉",
- "description": "Named entity: Ffr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd09"
- ]
- ]
- },
- {
- "input": "&FilledSmallSquare",
- "description": "Bad named entity: FilledSmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&FilledSmallSquare"
- ]
- ]
- },
- {
- "input": "◼",
- "description": "Named entity: FilledSmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fc"
- ]
- ]
- },
- {
- "input": "&FilledVerySmallSquare",
- "description": "Bad named entity: FilledVerySmallSquare without a semi-colon",
- "output": [
- [
- "Character",
- "&FilledVerySmallSquare"
- ]
- ]
- },
- {
- "input": "▪",
- "description": "Named entity: FilledVerySmallSquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&Fopf",
- "description": "Bad named entity: Fopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Fopf"
- ]
- ]
- },
- {
- "input": "𝔽",
- "description": "Named entity: Fopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3d"
- ]
- ]
- },
- {
- "input": "&ForAll",
- "description": "Bad named entity: ForAll without a semi-colon",
- "output": [
- [
- "Character",
- "&ForAll"
- ]
- ]
- },
- {
- "input": "∀",
- "description": "Named entity: ForAll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2200"
- ]
- ]
- },
- {
- "input": "&Fouriertrf",
- "description": "Bad named entity: Fouriertrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Fouriertrf"
- ]
- ]
- },
- {
- "input": "ℱ",
- "description": "Named entity: Fouriertrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2131"
- ]
- ]
- },
- {
- "input": "&Fscr",
- "description": "Bad named entity: Fscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Fscr"
- ]
- ]
- },
- {
- "input": "ℱ",
- "description": "Named entity: Fscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2131"
- ]
- ]
- },
- {
- "input": "&GJcy",
- "description": "Bad named entity: GJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&GJcy"
- ]
- ]
- },
- {
- "input": "Ѓ",
- "description": "Named entity: GJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0403"
- ]
- ]
- },
- {
- "input": ">",
- "description": "Named entity: GT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": ">",
- "description": "Named entity: GT; with a semi-colon",
- "output": [
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "&Gamma",
- "description": "Bad named entity: Gamma without a semi-colon",
- "output": [
- [
- "Character",
- "&Gamma"
- ]
- ]
- },
- {
- "input": "Γ",
- "description": "Named entity: Gamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0393"
- ]
- ]
- },
- {
- "input": "&Gammad",
- "description": "Bad named entity: Gammad without a semi-colon",
- "output": [
- [
- "Character",
- "&Gammad"
- ]
- ]
- },
- {
- "input": "Ϝ",
- "description": "Named entity: Gammad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dc"
- ]
- ]
- },
- {
- "input": "&Gbreve",
- "description": "Bad named entity: Gbreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Gbreve"
- ]
- ]
- },
- {
- "input": "Ğ",
- "description": "Named entity: Gbreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011e"
- ]
- ]
- },
- {
- "input": "&Gcedil",
- "description": "Bad named entity: Gcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcedil"
- ]
- ]
- },
- {
- "input": "Ģ",
- "description": "Named entity: Gcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0122"
- ]
- ]
- },
- {
- "input": "&Gcirc",
- "description": "Bad named entity: Gcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcirc"
- ]
- ]
- },
- {
- "input": "Ĝ",
- "description": "Named entity: Gcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011c"
- ]
- ]
- },
- {
- "input": "&Gcy",
- "description": "Bad named entity: Gcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Gcy"
- ]
- ]
- },
- {
- "input": "Г",
- "description": "Named entity: Gcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0413"
- ]
- ]
- },
- {
- "input": "&Gdot",
- "description": "Bad named entity: Gdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Gdot"
- ]
- ]
- },
- {
- "input": "Ġ",
- "description": "Named entity: Gdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0120"
- ]
- ]
- },
- {
- "input": "&Gfr",
- "description": "Bad named entity: Gfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Gfr"
- ]
- ]
- },
- {
- "input": "𝔊",
- "description": "Named entity: Gfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0a"
- ]
- ]
- },
- {
- "input": "&Gg",
- "description": "Bad named entity: Gg without a semi-colon",
- "output": [
- [
- "Character",
- "&Gg"
- ]
- ]
- },
- {
- "input": "⋙",
- "description": "Named entity: Gg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9"
- ]
- ]
- },
- {
- "input": "&Gopf",
- "description": "Bad named entity: Gopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Gopf"
- ]
- ]
- },
- {
- "input": "𝔾",
- "description": "Named entity: Gopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd3e"
- ]
- ]
- },
- {
- "input": "&GreaterEqual",
- "description": "Bad named entity: GreaterEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterEqual"
- ]
- ]
- },
- {
- "input": "≥",
- "description": "Named entity: GreaterEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&GreaterEqualLess",
- "description": "Bad named entity: GreaterEqualLess without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterEqualLess"
- ]
- ]
- },
- {
- "input": "⋛",
- "description": "Named entity: GreaterEqualLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "&GreaterFullEqual",
- "description": "Bad named entity: GreaterFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterFullEqual"
- ]
- ]
- },
- {
- "input": "≧",
- "description": "Named entity: GreaterFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&GreaterGreater",
- "description": "Bad named entity: GreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterGreater"
- ]
- ]
- },
- {
- "input": "⪢",
- "description": "Named entity: GreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa2"
- ]
- ]
- },
- {
- "input": "&GreaterLess",
- "description": "Bad named entity: GreaterLess without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterLess"
- ]
- ]
- },
- {
- "input": "≷",
- "description": "Named entity: GreaterLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "&GreaterSlantEqual",
- "description": "Bad named entity: GreaterSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterSlantEqual"
- ]
- ]
- },
- {
- "input": "⩾",
- "description": "Named entity: GreaterSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&GreaterTilde",
- "description": "Bad named entity: GreaterTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&GreaterTilde"
- ]
- ]
- },
- {
- "input": "≳",
- "description": "Named entity: GreaterTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&Gscr",
- "description": "Bad named entity: Gscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Gscr"
- ]
- ]
- },
- {
- "input": "𝒢",
- "description": "Named entity: Gscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca2"
- ]
- ]
- },
- {
- "input": "&Gt",
- "description": "Bad named entity: Gt without a semi-colon",
- "output": [
- [
- "Character",
- "&Gt"
- ]
- ]
- },
- {
- "input": "≫",
- "description": "Named entity: Gt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&HARDcy",
- "description": "Bad named entity: HARDcy without a semi-colon",
- "output": [
- [
- "Character",
- "&HARDcy"
- ]
- ]
- },
- {
- "input": "Ъ",
- "description": "Named entity: HARDcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042a"
- ]
- ]
- },
- {
- "input": "&Hacek",
- "description": "Bad named entity: Hacek without a semi-colon",
- "output": [
- [
- "Character",
- "&Hacek"
- ]
- ]
- },
- {
- "input": "ˇ",
- "description": "Named entity: Hacek; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c7"
- ]
- ]
- },
- {
- "input": "&Hat",
- "description": "Bad named entity: Hat without a semi-colon",
- "output": [
- [
- "Character",
- "&Hat"
- ]
- ]
- },
- {
- "input": "^",
- "description": "Named entity: Hat; with a semi-colon",
- "output": [
- [
- "Character",
- "^"
- ]
- ]
- },
- {
- "input": "&Hcirc",
- "description": "Bad named entity: Hcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Hcirc"
- ]
- ]
- },
- {
- "input": "Ĥ",
- "description": "Named entity: Hcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0124"
- ]
- ]
- },
- {
- "input": "&Hfr",
- "description": "Bad named entity: Hfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Hfr"
- ]
- ]
- },
- {
- "input": "ℌ",
- "description": "Named entity: Hfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210c"
- ]
- ]
- },
- {
- "input": "&HilbertSpace",
- "description": "Bad named entity: HilbertSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&HilbertSpace"
- ]
- ]
- },
- {
- "input": "ℋ",
- "description": "Named entity: HilbertSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&Hopf",
- "description": "Bad named entity: Hopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Hopf"
- ]
- ]
- },
- {
- "input": "ℍ",
- "description": "Named entity: Hopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210d"
- ]
- ]
- },
- {
- "input": "&HorizontalLine",
- "description": "Bad named entity: HorizontalLine without a semi-colon",
- "output": [
- [
- "Character",
- "&HorizontalLine"
- ]
- ]
- },
- {
- "input": "─",
- "description": "Named entity: HorizontalLine; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2500"
- ]
- ]
- },
- {
- "input": "&Hscr",
- "description": "Bad named entity: Hscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Hscr"
- ]
- ]
- },
- {
- "input": "ℋ",
- "description": "Named entity: Hscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&Hstrok",
- "description": "Bad named entity: Hstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Hstrok"
- ]
- ]
- },
- {
- "input": "Ħ",
- "description": "Named entity: Hstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0126"
- ]
- ]
- },
- {
- "input": "&HumpDownHump",
- "description": "Bad named entity: HumpDownHump without a semi-colon",
- "output": [
- [
- "Character",
- "&HumpDownHump"
- ]
- ]
- },
- {
- "input": "≎",
- "description": "Named entity: HumpDownHump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&HumpEqual",
- "description": "Bad named entity: HumpEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&HumpEqual"
- ]
- ]
- },
- {
- "input": "≏",
- "description": "Named entity: HumpEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&IEcy",
- "description": "Bad named entity: IEcy without a semi-colon",
- "output": [
- [
- "Character",
- "&IEcy"
- ]
- ]
- },
- {
- "input": "Е",
- "description": "Named entity: IEcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0415"
- ]
- ]
- },
- {
- "input": "&IJlig",
- "description": "Bad named entity: IJlig without a semi-colon",
- "output": [
- [
- "Character",
- "&IJlig"
- ]
- ]
- },
- {
- "input": "IJ",
- "description": "Named entity: IJlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0132"
- ]
- ]
- },
- {
- "input": "&IOcy",
- "description": "Bad named entity: IOcy without a semi-colon",
- "output": [
- [
- "Character",
- "&IOcy"
- ]
- ]
- },
- {
- "input": "Ё",
- "description": "Named entity: IOcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0401"
- ]
- ]
- },
- {
- "input": "Í",
- "description": "Named entity: Iacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cd"
- ]
- ]
- },
- {
- "input": "Í",
- "description": "Named entity: Iacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cd"
- ]
- ]
- },
- {
- "input": "Î",
- "description": "Named entity: Icirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ce"
- ]
- ]
- },
- {
- "input": "Î",
- "description": "Named entity: Icirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ce"
- ]
- ]
- },
- {
- "input": "&Icy",
- "description": "Bad named entity: Icy without a semi-colon",
- "output": [
- [
- "Character",
- "&Icy"
- ]
- ]
- },
- {
- "input": "И",
- "description": "Named entity: Icy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0418"
- ]
- ]
- },
- {
- "input": "&Idot",
- "description": "Bad named entity: Idot without a semi-colon",
- "output": [
- [
- "Character",
- "&Idot"
- ]
- ]
- },
- {
- "input": "İ",
- "description": "Named entity: Idot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0130"
- ]
- ]
- },
- {
- "input": "&Ifr",
- "description": "Bad named entity: Ifr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ifr"
- ]
- ]
- },
- {
- "input": "ℑ",
- "description": "Named entity: Ifr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "Ì",
- "description": "Named entity: Igrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cc"
- ]
- ]
- },
- {
- "input": "Ì",
- "description": "Named entity: Igrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cc"
- ]
- ]
- },
- {
- "input": "&Im",
- "description": "Bad named entity: Im without a semi-colon",
- "output": [
- [
- "Character",
- "&Im"
- ]
- ]
- },
- {
- "input": "ℑ",
- "description": "Named entity: Im; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&Imacr",
- "description": "Bad named entity: Imacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Imacr"
- ]
- ]
- },
- {
- "input": "Ī",
- "description": "Named entity: Imacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012a"
- ]
- ]
- },
- {
- "input": "&ImaginaryI",
- "description": "Bad named entity: ImaginaryI without a semi-colon",
- "output": [
- [
- "Character",
- "&ImaginaryI"
- ]
- ]
- },
- {
- "input": "ⅈ",
- "description": "Named entity: ImaginaryI; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2148"
- ]
- ]
- },
- {
- "input": "&Implies",
- "description": "Bad named entity: Implies without a semi-colon",
- "output": [
- [
- "Character",
- "&Implies"
- ]
- ]
- },
- {
- "input": "⇒",
- "description": "Named entity: Implies; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&Int",
- "description": "Bad named entity: Int without a semi-colon",
- "output": [
- [
- "Character",
- "&Int"
- ]
- ]
- },
- {
- "input": "∬",
- "description": "Named entity: Int; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222c"
- ]
- ]
- },
- {
- "input": "&Integral",
- "description": "Bad named entity: Integral without a semi-colon",
- "output": [
- [
- "Character",
- "&Integral"
- ]
- ]
- },
- {
- "input": "∫",
- "description": "Named entity: Integral; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222b"
- ]
- ]
- },
- {
- "input": "&Intersection",
- "description": "Bad named entity: Intersection without a semi-colon",
- "output": [
- [
- "Character",
- "&Intersection"
- ]
- ]
- },
- {
- "input": "⋂",
- "description": "Named entity: Intersection; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&InvisibleComma",
- "description": "Bad named entity: InvisibleComma without a semi-colon",
- "output": [
- [
- "Character",
- "&InvisibleComma"
- ]
- ]
- },
- {
- "input": "⁣",
- "description": "Named entity: InvisibleComma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2063"
- ]
- ]
- },
- {
- "input": "&InvisibleTimes",
- "description": "Bad named entity: InvisibleTimes without a semi-colon",
- "output": [
- [
- "Character",
- "&InvisibleTimes"
- ]
- ]
- },
- {
- "input": "⁢",
- "description": "Named entity: InvisibleTimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2062"
- ]
- ]
- },
- {
- "input": "&Iogon",
- "description": "Bad named entity: Iogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Iogon"
- ]
- ]
- },
- {
- "input": "Į",
- "description": "Named entity: Iogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012e"
- ]
- ]
- },
- {
- "input": "&Iopf",
- "description": "Bad named entity: Iopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Iopf"
- ]
- ]
- },
- {
- "input": "𝕀",
- "description": "Named entity: Iopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd40"
- ]
- ]
- },
- {
- "input": "&Iota",
- "description": "Bad named entity: Iota without a semi-colon",
- "output": [
- [
- "Character",
- "&Iota"
- ]
- ]
- },
- {
- "input": "Ι",
- "description": "Named entity: Iota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0399"
- ]
- ]
- },
- {
- "input": "&Iscr",
- "description": "Bad named entity: Iscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Iscr"
- ]
- ]
- },
- {
- "input": "ℐ",
- "description": "Named entity: Iscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2110"
- ]
- ]
- },
- {
- "input": "&Itilde",
- "description": "Bad named entity: Itilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Itilde"
- ]
- ]
- },
- {
- "input": "Ĩ",
- "description": "Named entity: Itilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0128"
- ]
- ]
- },
- {
- "input": "&Iukcy",
- "description": "Bad named entity: Iukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Iukcy"
- ]
- ]
- },
- {
- "input": "І",
- "description": "Named entity: Iukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0406"
- ]
- ]
- },
- {
- "input": "Ï",
- "description": "Named entity: Iuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00cf"
- ]
- ]
- },
- {
- "input": "Ï",
- "description": "Named entity: Iuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00cf"
- ]
- ]
- },
- {
- "input": "&Jcirc",
- "description": "Bad named entity: Jcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Jcirc"
- ]
- ]
- },
- {
- "input": "Ĵ",
- "description": "Named entity: Jcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0134"
- ]
- ]
- },
- {
- "input": "&Jcy",
- "description": "Bad named entity: Jcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jcy"
- ]
- ]
- },
- {
- "input": "Й",
- "description": "Named entity: Jcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0419"
- ]
- ]
- },
- {
- "input": "&Jfr",
- "description": "Bad named entity: Jfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Jfr"
- ]
- ]
- },
- {
- "input": "𝔍",
- "description": "Named entity: Jfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0d"
- ]
- ]
- },
- {
- "input": "&Jopf",
- "description": "Bad named entity: Jopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Jopf"
- ]
- ]
- },
- {
- "input": "𝕁",
- "description": "Named entity: Jopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd41"
- ]
- ]
- },
- {
- "input": "&Jscr",
- "description": "Bad named entity: Jscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Jscr"
- ]
- ]
- },
- {
- "input": "𝒥",
- "description": "Named entity: Jscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca5"
- ]
- ]
- },
- {
- "input": "&Jsercy",
- "description": "Bad named entity: Jsercy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jsercy"
- ]
- ]
- },
- {
- "input": "Ј",
- "description": "Named entity: Jsercy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0408"
- ]
- ]
- },
- {
- "input": "&Jukcy",
- "description": "Bad named entity: Jukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Jukcy"
- ]
- ]
- },
- {
- "input": "Є",
- "description": "Named entity: Jukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0404"
- ]
- ]
- },
- {
- "input": "&KHcy",
- "description": "Bad named entity: KHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&KHcy"
- ]
- ]
- },
- {
- "input": "Х",
- "description": "Named entity: KHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0425"
- ]
- ]
- },
- {
- "input": "&KJcy",
- "description": "Bad named entity: KJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&KJcy"
- ]
- ]
- },
- {
- "input": "Ќ",
- "description": "Named entity: KJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040c"
- ]
- ]
- },
- {
- "input": "&Kappa",
- "description": "Bad named entity: Kappa without a semi-colon",
- "output": [
- [
- "Character",
- "&Kappa"
- ]
- ]
- },
- {
- "input": "Κ",
- "description": "Named entity: Kappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039a"
- ]
- ]
- },
- {
- "input": "&Kcedil",
- "description": "Bad named entity: Kcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Kcedil"
- ]
- ]
- },
- {
- "input": "Ķ",
- "description": "Named entity: Kcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0136"
- ]
- ]
- },
- {
- "input": "&Kcy",
- "description": "Bad named entity: Kcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Kcy"
- ]
- ]
- },
- {
- "input": "К",
- "description": "Named entity: Kcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041a"
- ]
- ]
- },
- {
- "input": "&Kfr",
- "description": "Bad named entity: Kfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Kfr"
- ]
- ]
- },
- {
- "input": "𝔎",
- "description": "Named entity: Kfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0e"
- ]
- ]
- },
- {
- "input": "&Kopf",
- "description": "Bad named entity: Kopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Kopf"
- ]
- ]
- },
- {
- "input": "𝕂",
- "description": "Named entity: Kopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd42"
- ]
- ]
- },
- {
- "input": "&Kscr",
- "description": "Bad named entity: Kscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Kscr"
- ]
- ]
- },
- {
- "input": "𝒦",
- "description": "Named entity: Kscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca6"
- ]
- ]
- },
- {
- "input": "&LJcy",
- "description": "Bad named entity: LJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&LJcy"
- ]
- ]
- },
- {
- "input": "Љ",
- "description": "Named entity: LJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0409"
- ]
- ]
- },
- {
- "input": "<",
- "description": "Named entity: LT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "<",
- "description": "Named entity: LT; with a semi-colon",
- "output": [
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "&Lacute",
- "description": "Bad named entity: Lacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Lacute"
- ]
- ]
- },
- {
- "input": "Ĺ",
- "description": "Named entity: Lacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0139"
- ]
- ]
- },
- {
- "input": "&Lambda",
- "description": "Bad named entity: Lambda without a semi-colon",
- "output": [
- [
- "Character",
- "&Lambda"
- ]
- ]
- },
- {
- "input": "Λ",
- "description": "Named entity: Lambda; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039b"
- ]
- ]
- },
- {
- "input": "&Lang",
- "description": "Bad named entity: Lang without a semi-colon",
- "output": [
- [
- "Character",
- "&Lang"
- ]
- ]
- },
- {
- "input": "⟪",
- "description": "Named entity: Lang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ea"
- ]
- ]
- },
- {
- "input": "&Laplacetrf",
- "description": "Bad named entity: Laplacetrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Laplacetrf"
- ]
- ]
- },
- {
- "input": "ℒ",
- "description": "Named entity: Laplacetrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&Larr",
- "description": "Bad named entity: Larr without a semi-colon",
- "output": [
- [
- "Character",
- "&Larr"
- ]
- ]
- },
- {
- "input": "↞",
- "description": "Named entity: Larr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219e"
- ]
- ]
- },
- {
- "input": "&Lcaron",
- "description": "Bad named entity: Lcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcaron"
- ]
- ]
- },
- {
- "input": "Ľ",
- "description": "Named entity: Lcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013d"
- ]
- ]
- },
- {
- "input": "&Lcedil",
- "description": "Bad named entity: Lcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcedil"
- ]
- ]
- },
- {
- "input": "Ļ",
- "description": "Named entity: Lcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013b"
- ]
- ]
- },
- {
- "input": "&Lcy",
- "description": "Bad named entity: Lcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Lcy"
- ]
- ]
- },
- {
- "input": "Л",
- "description": "Named entity: Lcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041b"
- ]
- ]
- },
- {
- "input": "&LeftAngleBracket",
- "description": "Bad named entity: LeftAngleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftAngleBracket"
- ]
- ]
- },
- {
- "input": "⟨",
- "description": "Named entity: LeftAngleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&LeftArrow",
- "description": "Bad named entity: LeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrow"
- ]
- ]
- },
- {
- "input": "←",
- "description": "Named entity: LeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&LeftArrowBar",
- "description": "Bad named entity: LeftArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrowBar"
- ]
- ]
- },
- {
- "input": "⇤",
- "description": "Named entity: LeftArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e4"
- ]
- ]
- },
- {
- "input": "&LeftArrowRightArrow",
- "description": "Bad named entity: LeftArrowRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftArrowRightArrow"
- ]
- ]
- },
- {
- "input": "⇆",
- "description": "Named entity: LeftArrowRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&LeftCeiling",
- "description": "Bad named entity: LeftCeiling without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftCeiling"
- ]
- ]
- },
- {
- "input": "⌈",
- "description": "Named entity: LeftCeiling; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2308"
- ]
- ]
- },
- {
- "input": "&LeftDoubleBracket",
- "description": "Bad named entity: LeftDoubleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDoubleBracket"
- ]
- ]
- },
- {
- "input": "⟦",
- "description": "Named entity: LeftDoubleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e6"
- ]
- ]
- },
- {
- "input": "&LeftDownTeeVector",
- "description": "Bad named entity: LeftDownTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownTeeVector"
- ]
- ]
- },
- {
- "input": "⥡",
- "description": "Named entity: LeftDownTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2961"
- ]
- ]
- },
- {
- "input": "&LeftDownVector",
- "description": "Bad named entity: LeftDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownVector"
- ]
- ]
- },
- {
- "input": "⇃",
- "description": "Named entity: LeftDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&LeftDownVectorBar",
- "description": "Bad named entity: LeftDownVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftDownVectorBar"
- ]
- ]
- },
- {
- "input": "⥙",
- "description": "Named entity: LeftDownVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2959"
- ]
- ]
- },
- {
- "input": "&LeftFloor",
- "description": "Bad named entity: LeftFloor without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftFloor"
- ]
- ]
- },
- {
- "input": "⌊",
- "description": "Named entity: LeftFloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230a"
- ]
- ]
- },
- {
- "input": "&LeftRightArrow",
- "description": "Bad named entity: LeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftRightArrow"
- ]
- ]
- },
- {
- "input": "↔",
- "description": "Named entity: LeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&LeftRightVector",
- "description": "Bad named entity: LeftRightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftRightVector"
- ]
- ]
- },
- {
- "input": "⥎",
- "description": "Named entity: LeftRightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294e"
- ]
- ]
- },
- {
- "input": "&LeftTee",
- "description": "Bad named entity: LeftTee without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTee"
- ]
- ]
- },
- {
- "input": "⊣",
- "description": "Named entity: LeftTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a3"
- ]
- ]
- },
- {
- "input": "&LeftTeeArrow",
- "description": "Bad named entity: LeftTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTeeArrow"
- ]
- ]
- },
- {
- "input": "↤",
- "description": "Named entity: LeftTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a4"
- ]
- ]
- },
- {
- "input": "&LeftTeeVector",
- "description": "Bad named entity: LeftTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTeeVector"
- ]
- ]
- },
- {
- "input": "⥚",
- "description": "Named entity: LeftTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295a"
- ]
- ]
- },
- {
- "input": "&LeftTriangle",
- "description": "Bad named entity: LeftTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangle"
- ]
- ]
- },
- {
- "input": "⊲",
- "description": "Named entity: LeftTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&LeftTriangleBar",
- "description": "Bad named entity: LeftTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangleBar"
- ]
- ]
- },
- {
- "input": "⧏",
- "description": "Named entity: LeftTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cf"
- ]
- ]
- },
- {
- "input": "&LeftTriangleEqual",
- "description": "Bad named entity: LeftTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftTriangleEqual"
- ]
- ]
- },
- {
- "input": "⊴",
- "description": "Named entity: LeftTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "&LeftUpDownVector",
- "description": "Bad named entity: LeftUpDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpDownVector"
- ]
- ]
- },
- {
- "input": "⥑",
- "description": "Named entity: LeftUpDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2951"
- ]
- ]
- },
- {
- "input": "&LeftUpTeeVector",
- "description": "Bad named entity: LeftUpTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpTeeVector"
- ]
- ]
- },
- {
- "input": "⥠",
- "description": "Named entity: LeftUpTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2960"
- ]
- ]
- },
- {
- "input": "&LeftUpVector",
- "description": "Bad named entity: LeftUpVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpVector"
- ]
- ]
- },
- {
- "input": "↿",
- "description": "Named entity: LeftUpVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&LeftUpVectorBar",
- "description": "Bad named entity: LeftUpVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftUpVectorBar"
- ]
- ]
- },
- {
- "input": "⥘",
- "description": "Named entity: LeftUpVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2958"
- ]
- ]
- },
- {
- "input": "&LeftVector",
- "description": "Bad named entity: LeftVector without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftVector"
- ]
- ]
- },
- {
- "input": "↼",
- "description": "Named entity: LeftVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&LeftVectorBar",
- "description": "Bad named entity: LeftVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&LeftVectorBar"
- ]
- ]
- },
- {
- "input": "⥒",
- "description": "Named entity: LeftVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2952"
- ]
- ]
- },
- {
- "input": "&Leftarrow",
- "description": "Bad named entity: Leftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Leftarrow"
- ]
- ]
- },
- {
- "input": "⇐",
- "description": "Named entity: Leftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&Leftrightarrow",
- "description": "Bad named entity: Leftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Leftrightarrow"
- ]
- ]
- },
- {
- "input": "⇔",
- "description": "Named entity: Leftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&LessEqualGreater",
- "description": "Bad named entity: LessEqualGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&LessEqualGreater"
- ]
- ]
- },
- {
- "input": "⋚",
- "description": "Named entity: LessEqualGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&LessFullEqual",
- "description": "Bad named entity: LessFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LessFullEqual"
- ]
- ]
- },
- {
- "input": "≦",
- "description": "Named entity: LessFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&LessGreater",
- "description": "Bad named entity: LessGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&LessGreater"
- ]
- ]
- },
- {
- "input": "≶",
- "description": "Named entity: LessGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&LessLess",
- "description": "Bad named entity: LessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&LessLess"
- ]
- ]
- },
- {
- "input": "⪡",
- "description": "Named entity: LessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa1"
- ]
- ]
- },
- {
- "input": "&LessSlantEqual",
- "description": "Bad named entity: LessSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&LessSlantEqual"
- ]
- ]
- },
- {
- "input": "⩽",
- "description": "Named entity: LessSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&LessTilde",
- "description": "Bad named entity: LessTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&LessTilde"
- ]
- ]
- },
- {
- "input": "≲",
- "description": "Named entity: LessTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&Lfr",
- "description": "Bad named entity: Lfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Lfr"
- ]
- ]
- },
- {
- "input": "𝔏",
- "description": "Named entity: Lfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd0f"
- ]
- ]
- },
- {
- "input": "&Ll",
- "description": "Bad named entity: Ll without a semi-colon",
- "output": [
- [
- "Character",
- "&Ll"
- ]
- ]
- },
- {
- "input": "⋘",
- "description": "Named entity: Ll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d8"
- ]
- ]
- },
- {
- "input": "&Lleftarrow",
- "description": "Bad named entity: Lleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Lleftarrow"
- ]
- ]
- },
- {
- "input": "⇚",
- "description": "Named entity: Lleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21da"
- ]
- ]
- },
- {
- "input": "&Lmidot",
- "description": "Bad named entity: Lmidot without a semi-colon",
- "output": [
- [
- "Character",
- "&Lmidot"
- ]
- ]
- },
- {
- "input": "Ŀ",
- "description": "Named entity: Lmidot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013f"
- ]
- ]
- },
- {
- "input": "&LongLeftArrow",
- "description": "Bad named entity: LongLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongLeftArrow"
- ]
- ]
- },
- {
- "input": "⟵",
- "description": "Named entity: LongLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&LongLeftRightArrow",
- "description": "Bad named entity: LongLeftRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongLeftRightArrow"
- ]
- ]
- },
- {
- "input": "⟷",
- "description": "Named entity: LongLeftRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&LongRightArrow",
- "description": "Bad named entity: LongRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LongRightArrow"
- ]
- ]
- },
- {
- "input": "⟶",
- "description": "Named entity: LongRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&Longleftarrow",
- "description": "Bad named entity: Longleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longleftarrow"
- ]
- ]
- },
- {
- "input": "⟸",
- "description": "Named entity: Longleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&Longleftrightarrow",
- "description": "Bad named entity: Longleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longleftrightarrow"
- ]
- ]
- },
- {
- "input": "⟺",
- "description": "Named entity: Longleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&Longrightarrow",
- "description": "Bad named entity: Longrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Longrightarrow"
- ]
- ]
- },
- {
- "input": "⟹",
- "description": "Named entity: Longrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&Lopf",
- "description": "Bad named entity: Lopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Lopf"
- ]
- ]
- },
- {
- "input": "𝕃",
- "description": "Named entity: Lopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd43"
- ]
- ]
- },
- {
- "input": "&LowerLeftArrow",
- "description": "Bad named entity: LowerLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LowerLeftArrow"
- ]
- ]
- },
- {
- "input": "↙",
- "description": "Named entity: LowerLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&LowerRightArrow",
- "description": "Bad named entity: LowerRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&LowerRightArrow"
- ]
- ]
- },
- {
- "input": "↘",
- "description": "Named entity: LowerRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "&Lscr",
- "description": "Bad named entity: Lscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Lscr"
- ]
- ]
- },
- {
- "input": "ℒ",
- "description": "Named entity: Lscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&Lsh",
- "description": "Bad named entity: Lsh without a semi-colon",
- "output": [
- [
- "Character",
- "&Lsh"
- ]
- ]
- },
- {
- "input": "↰",
- "description": "Named entity: Lsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b0"
- ]
- ]
- },
- {
- "input": "&Lstrok",
- "description": "Bad named entity: Lstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Lstrok"
- ]
- ]
- },
- {
- "input": "Ł",
- "description": "Named entity: Lstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0141"
- ]
- ]
- },
- {
- "input": "&Lt",
- "description": "Bad named entity: Lt without a semi-colon",
- "output": [
- [
- "Character",
- "&Lt"
- ]
- ]
- },
- {
- "input": "≪",
- "description": "Named entity: Lt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&Map",
- "description": "Bad named entity: Map without a semi-colon",
- "output": [
- [
- "Character",
- "&Map"
- ]
- ]
- },
- {
- "input": "⤅",
- "description": "Named entity: Map; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2905"
- ]
- ]
- },
- {
- "input": "&Mcy",
- "description": "Bad named entity: Mcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Mcy"
- ]
- ]
- },
- {
- "input": "М",
- "description": "Named entity: Mcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041c"
- ]
- ]
- },
- {
- "input": "&MediumSpace",
- "description": "Bad named entity: MediumSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&MediumSpace"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: MediumSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u205f"
- ]
- ]
- },
- {
- "input": "&Mellintrf",
- "description": "Bad named entity: Mellintrf without a semi-colon",
- "output": [
- [
- "Character",
- "&Mellintrf"
- ]
- ]
- },
- {
- "input": "ℳ",
- "description": "Named entity: Mellintrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&Mfr",
- "description": "Bad named entity: Mfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Mfr"
- ]
- ]
- },
- {
- "input": "𝔐",
- "description": "Named entity: Mfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd10"
- ]
- ]
- },
- {
- "input": "&MinusPlus",
- "description": "Bad named entity: MinusPlus without a semi-colon",
- "output": [
- [
- "Character",
- "&MinusPlus"
- ]
- ]
- },
- {
- "input": "∓",
- "description": "Named entity: MinusPlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&Mopf",
- "description": "Bad named entity: Mopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Mopf"
- ]
- ]
- },
- {
- "input": "𝕄",
- "description": "Named entity: Mopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd44"
- ]
- ]
- },
- {
- "input": "&Mscr",
- "description": "Bad named entity: Mscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Mscr"
- ]
- ]
- },
- {
- "input": "ℳ",
- "description": "Named entity: Mscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&Mu",
- "description": "Bad named entity: Mu without a semi-colon",
- "output": [
- [
- "Character",
- "&Mu"
- ]
- ]
- },
- {
- "input": "Μ",
- "description": "Named entity: Mu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039c"
- ]
- ]
- },
- {
- "input": "&NJcy",
- "description": "Bad named entity: NJcy without a semi-colon",
- "output": [
- [
- "Character",
- "&NJcy"
- ]
- ]
- },
- {
- "input": "Њ",
- "description": "Named entity: NJcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040a"
- ]
- ]
- },
- {
- "input": "&Nacute",
- "description": "Bad named entity: Nacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Nacute"
- ]
- ]
- },
- {
- "input": "Ń",
- "description": "Named entity: Nacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0143"
- ]
- ]
- },
- {
- "input": "&Ncaron",
- "description": "Bad named entity: Ncaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncaron"
- ]
- ]
- },
- {
- "input": "Ň",
- "description": "Named entity: Ncaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0147"
- ]
- ]
- },
- {
- "input": "&Ncedil",
- "description": "Bad named entity: Ncedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncedil"
- ]
- ]
- },
- {
- "input": "Ņ",
- "description": "Named entity: Ncedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0145"
- ]
- ]
- },
- {
- "input": "&Ncy",
- "description": "Bad named entity: Ncy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ncy"
- ]
- ]
- },
- {
- "input": "Н",
- "description": "Named entity: Ncy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041d"
- ]
- ]
- },
- {
- "input": "&NegativeMediumSpace",
- "description": "Bad named entity: NegativeMediumSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeMediumSpace"
- ]
- ]
- },
- {
- "input": "​",
- "description": "Named entity: NegativeMediumSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeThickSpace",
- "description": "Bad named entity: NegativeThickSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeThickSpace"
- ]
- ]
- },
- {
- "input": "​",
- "description": "Named entity: NegativeThickSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeThinSpace",
- "description": "Bad named entity: NegativeThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeThinSpace"
- ]
- ]
- },
- {
- "input": "​",
- "description": "Named entity: NegativeThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NegativeVeryThinSpace",
- "description": "Bad named entity: NegativeVeryThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NegativeVeryThinSpace"
- ]
- ]
- },
- {
- "input": "​",
- "description": "Named entity: NegativeVeryThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&NestedGreaterGreater",
- "description": "Bad named entity: NestedGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NestedGreaterGreater"
- ]
- ]
- },
- {
- "input": "≫",
- "description": "Named entity: NestedGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&NestedLessLess",
- "description": "Bad named entity: NestedLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NestedLessLess"
- ]
- ]
- },
- {
- "input": "≪",
- "description": "Named entity: NestedLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&NewLine",
- "description": "Bad named entity: NewLine without a semi-colon",
- "output": [
- [
- "Character",
- "&NewLine"
- ]
- ]
- },
- {
- "input": "
",
- "description": "Named entity: NewLine; with a semi-colon",
- "output": [
- [
- "Character",
- "\n"
- ]
- ]
- },
- {
- "input": "&Nfr",
- "description": "Bad named entity: Nfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Nfr"
- ]
- ]
- },
- {
- "input": "𝔑",
- "description": "Named entity: Nfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd11"
- ]
- ]
- },
- {
- "input": "&NoBreak",
- "description": "Bad named entity: NoBreak without a semi-colon",
- "output": [
- [
- "Character",
- "&NoBreak"
- ]
- ]
- },
- {
- "input": "⁠",
- "description": "Named entity: NoBreak; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2060"
- ]
- ]
- },
- {
- "input": "&NonBreakingSpace",
- "description": "Bad named entity: NonBreakingSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&NonBreakingSpace"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: NonBreakingSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": "&Nopf",
- "description": "Bad named entity: Nopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Nopf"
- ]
- ]
- },
- {
- "input": "ℕ",
- "description": "Named entity: Nopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2115"
- ]
- ]
- },
- {
- "input": "&Not",
- "description": "Bad named entity: Not without a semi-colon",
- "output": [
- [
- "Character",
- "&Not"
- ]
- ]
- },
- {
- "input": "⫬",
- "description": "Named entity: Not; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aec"
- ]
- ]
- },
- {
- "input": "&NotCongruent",
- "description": "Bad named entity: NotCongruent without a semi-colon",
- "output": [
- [
- "Character",
- "&NotCongruent"
- ]
- ]
- },
- {
- "input": "≢",
- "description": "Named entity: NotCongruent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2262"
- ]
- ]
- },
- {
- "input": "&NotCupCap",
- "description": "Bad named entity: NotCupCap without a semi-colon",
- "output": [
- [
- "Character",
- "&NotCupCap"
- ]
- ]
- },
- {
- "input": "≭",
- "description": "Named entity: NotCupCap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226d"
- ]
- ]
- },
- {
- "input": "&NotDoubleVerticalBar",
- "description": "Bad named entity: NotDoubleVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotDoubleVerticalBar"
- ]
- ]
- },
- {
- "input": "∦",
- "description": "Named entity: NotDoubleVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&NotElement",
- "description": "Bad named entity: NotElement without a semi-colon",
- "output": [
- [
- "Character",
- "&NotElement"
- ]
- ]
- },
- {
- "input": "∉",
- "description": "Named entity: NotElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "&NotEqual",
- "description": "Bad named entity: NotEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotEqual"
- ]
- ]
- },
- {
- "input": "≠",
- "description": "Named entity: NotEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2260"
- ]
- ]
- },
- {
- "input": "&NotEqualTilde",
- "description": "Bad named entity: NotEqualTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotEqualTilde"
- ]
- ]
- },
- {
- "input": "≂̸",
- "description": "Named entity: NotEqualTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242\u0338"
- ]
- ]
- },
- {
- "input": "&NotExists",
- "description": "Bad named entity: NotExists without a semi-colon",
- "output": [
- [
- "Character",
- "&NotExists"
- ]
- ]
- },
- {
- "input": "∄",
- "description": "Named entity: NotExists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&NotGreater",
- "description": "Bad named entity: NotGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreater"
- ]
- ]
- },
- {
- "input": "≯",
- "description": "Named entity: NotGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&NotGreaterEqual",
- "description": "Bad named entity: NotGreaterEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterEqual"
- ]
- ]
- },
- {
- "input": "≱",
- "description": "Named entity: NotGreaterEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&NotGreaterFullEqual",
- "description": "Bad named entity: NotGreaterFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterFullEqual"
- ]
- ]
- },
- {
- "input": "≧̸",
- "description": "Named entity: NotGreaterFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterGreater",
- "description": "Bad named entity: NotGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterGreater"
- ]
- ]
- },
- {
- "input": "≫̸",
- "description": "Named entity: NotGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterLess",
- "description": "Bad named entity: NotGreaterLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterLess"
- ]
- ]
- },
- {
- "input": "≹",
- "description": "Named entity: NotGreaterLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2279"
- ]
- ]
- },
- {
- "input": "&NotGreaterSlantEqual",
- "description": "Bad named entity: NotGreaterSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterSlantEqual"
- ]
- ]
- },
- {
- "input": "⩾̸",
- "description": "Named entity: NotGreaterSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&NotGreaterTilde",
- "description": "Bad named entity: NotGreaterTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotGreaterTilde"
- ]
- ]
- },
- {
- "input": "≵",
- "description": "Named entity: NotGreaterTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2275"
- ]
- ]
- },
- {
- "input": "&NotHumpDownHump",
- "description": "Bad named entity: NotHumpDownHump without a semi-colon",
- "output": [
- [
- "Character",
- "&NotHumpDownHump"
- ]
- ]
- },
- {
- "input": "≎̸",
- "description": "Named entity: NotHumpDownHump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e\u0338"
- ]
- ]
- },
- {
- "input": "&NotHumpEqual",
- "description": "Bad named entity: NotHumpEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotHumpEqual"
- ]
- ]
- },
- {
- "input": "≏̸",
- "description": "Named entity: NotHumpEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f\u0338"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangle",
- "description": "Bad named entity: NotLeftTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangle"
- ]
- ]
- },
- {
- "input": "⋪",
- "description": "Named entity: NotLeftTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleBar",
- "description": "Bad named entity: NotLeftTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangleBar"
- ]
- ]
- },
- {
- "input": "⧏̸",
- "description": "Named entity: NotLeftTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cf\u0338"
- ]
- ]
- },
- {
- "input": "&NotLeftTriangleEqual",
- "description": "Bad named entity: NotLeftTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLeftTriangleEqual"
- ]
- ]
- },
- {
- "input": "⋬",
- "description": "Named entity: NotLeftTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&NotLess",
- "description": "Bad named entity: NotLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLess"
- ]
- ]
- },
- {
- "input": "≮",
- "description": "Named entity: NotLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&NotLessEqual",
- "description": "Bad named entity: NotLessEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessEqual"
- ]
- ]
- },
- {
- "input": "≰",
- "description": "Named entity: NotLessEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&NotLessGreater",
- "description": "Bad named entity: NotLessGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessGreater"
- ]
- ]
- },
- {
- "input": "≸",
- "description": "Named entity: NotLessGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2278"
- ]
- ]
- },
- {
- "input": "&NotLessLess",
- "description": "Bad named entity: NotLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessLess"
- ]
- ]
- },
- {
- "input": "≪̸",
- "description": "Named entity: NotLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u0338"
- ]
- ]
- },
- {
- "input": "&NotLessSlantEqual",
- "description": "Bad named entity: NotLessSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessSlantEqual"
- ]
- ]
- },
- {
- "input": "⩽̸",
- "description": "Named entity: NotLessSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&NotLessTilde",
- "description": "Bad named entity: NotLessTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotLessTilde"
- ]
- ]
- },
- {
- "input": "≴",
- "description": "Named entity: NotLessTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2274"
- ]
- ]
- },
- {
- "input": "&NotNestedGreaterGreater",
- "description": "Bad named entity: NotNestedGreaterGreater without a semi-colon",
- "output": [
- [
- "Character",
- "&NotNestedGreaterGreater"
- ]
- ]
- },
- {
- "input": "⪢̸",
- "description": "Named entity: NotNestedGreaterGreater; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa2\u0338"
- ]
- ]
- },
- {
- "input": "&NotNestedLessLess",
- "description": "Bad named entity: NotNestedLessLess without a semi-colon",
- "output": [
- [
- "Character",
- "&NotNestedLessLess"
- ]
- ]
- },
- {
- "input": "⪡̸",
- "description": "Named entity: NotNestedLessLess; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa1\u0338"
- ]
- ]
- },
- {
- "input": "&NotPrecedes",
- "description": "Bad named entity: NotPrecedes without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedes"
- ]
- ]
- },
- {
- "input": "⊀",
- "description": "Named entity: NotPrecedes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&NotPrecedesEqual",
- "description": "Bad named entity: NotPrecedesEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedesEqual"
- ]
- ]
- },
- {
- "input": "⪯̸",
- "description": "Named entity: NotPrecedesEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&NotPrecedesSlantEqual",
- "description": "Bad named entity: NotPrecedesSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotPrecedesSlantEqual"
- ]
- ]
- },
- {
- "input": "⋠",
- "description": "Named entity: NotPrecedesSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e0"
- ]
- ]
- },
- {
- "input": "&NotReverseElement",
- "description": "Bad named entity: NotReverseElement without a semi-colon",
- "output": [
- [
- "Character",
- "&NotReverseElement"
- ]
- ]
- },
- {
- "input": "∌",
- "description": "Named entity: NotReverseElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "&NotRightTriangle",
- "description": "Bad named entity: NotRightTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangle"
- ]
- ]
- },
- {
- "input": "⋫",
- "description": "Named entity: NotRightTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleBar",
- "description": "Bad named entity: NotRightTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangleBar"
- ]
- ]
- },
- {
- "input": "⧐̸",
- "description": "Named entity: NotRightTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29d0\u0338"
- ]
- ]
- },
- {
- "input": "&NotRightTriangleEqual",
- "description": "Bad named entity: NotRightTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotRightTriangleEqual"
- ]
- ]
- },
- {
- "input": "⋭",
- "description": "Named entity: NotRightTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&NotSquareSubset",
- "description": "Bad named entity: NotSquareSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSubset"
- ]
- ]
- },
- {
- "input": "⊏̸",
- "description": "Named entity: NotSquareSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f\u0338"
- ]
- ]
- },
- {
- "input": "&NotSquareSubsetEqual",
- "description": "Bad named entity: NotSquareSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSubsetEqual"
- ]
- ]
- },
- {
- "input": "⋢",
- "description": "Named entity: NotSquareSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e2"
- ]
- ]
- },
- {
- "input": "&NotSquareSuperset",
- "description": "Bad named entity: NotSquareSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSuperset"
- ]
- ]
- },
- {
- "input": "⊐̸",
- "description": "Named entity: NotSquareSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290\u0338"
- ]
- ]
- },
- {
- "input": "&NotSquareSupersetEqual",
- "description": "Bad named entity: NotSquareSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSquareSupersetEqual"
- ]
- ]
- },
- {
- "input": "⋣",
- "description": "Named entity: NotSquareSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e3"
- ]
- ]
- },
- {
- "input": "&NotSubset",
- "description": "Bad named entity: NotSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSubset"
- ]
- ]
- },
- {
- "input": "⊂⃒",
- "description": "Named entity: NotSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&NotSubsetEqual",
- "description": "Bad named entity: NotSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSubsetEqual"
- ]
- ]
- },
- {
- "input": "⊈",
- "description": "Named entity: NotSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&NotSucceeds",
- "description": "Bad named entity: NotSucceeds without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceeds"
- ]
- ]
- },
- {
- "input": "⊁",
- "description": "Named entity: NotSucceeds; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&NotSucceedsEqual",
- "description": "Bad named entity: NotSucceedsEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsEqual"
- ]
- ]
- },
- {
- "input": "⪰̸",
- "description": "Named entity: NotSucceedsEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&NotSucceedsSlantEqual",
- "description": "Bad named entity: NotSucceedsSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsSlantEqual"
- ]
- ]
- },
- {
- "input": "⋡",
- "description": "Named entity: NotSucceedsSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e1"
- ]
- ]
- },
- {
- "input": "&NotSucceedsTilde",
- "description": "Bad named entity: NotSucceedsTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSucceedsTilde"
- ]
- ]
- },
- {
- "input": "≿̸",
- "description": "Named entity: NotSucceedsTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f\u0338"
- ]
- ]
- },
- {
- "input": "&NotSuperset",
- "description": "Bad named entity: NotSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSuperset"
- ]
- ]
- },
- {
- "input": "⊃⃒",
- "description": "Named entity: NotSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&NotSupersetEqual",
- "description": "Bad named entity: NotSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotSupersetEqual"
- ]
- ]
- },
- {
- "input": "⊉",
- "description": "Named entity: NotSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&NotTilde",
- "description": "Bad named entity: NotTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTilde"
- ]
- ]
- },
- {
- "input": "≁",
- "description": "Named entity: NotTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2241"
- ]
- ]
- },
- {
- "input": "&NotTildeEqual",
- "description": "Bad named entity: NotTildeEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeEqual"
- ]
- ]
- },
- {
- "input": "≄",
- "description": "Named entity: NotTildeEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&NotTildeFullEqual",
- "description": "Bad named entity: NotTildeFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeFullEqual"
- ]
- ]
- },
- {
- "input": "≇",
- "description": "Named entity: NotTildeFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2247"
- ]
- ]
- },
- {
- "input": "&NotTildeTilde",
- "description": "Bad named entity: NotTildeTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&NotTildeTilde"
- ]
- ]
- },
- {
- "input": "≉",
- "description": "Named entity: NotTildeTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&NotVerticalBar",
- "description": "Bad named entity: NotVerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&NotVerticalBar"
- ]
- ]
- },
- {
- "input": "∤",
- "description": "Named entity: NotVerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&Nscr",
- "description": "Bad named entity: Nscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Nscr"
- ]
- ]
- },
- {
- "input": "𝒩",
- "description": "Named entity: Nscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udca9"
- ]
- ]
- },
- {
- "input": "Ñ",
- "description": "Named entity: Ntilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d1"
- ]
- ]
- },
- {
- "input": "Ñ",
- "description": "Named entity: Ntilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d1"
- ]
- ]
- },
- {
- "input": "&Nu",
- "description": "Bad named entity: Nu without a semi-colon",
- "output": [
- [
- "Character",
- "&Nu"
- ]
- ]
- },
- {
- "input": "Ν",
- "description": "Named entity: Nu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039d"
- ]
- ]
- },
- {
- "input": "&OElig",
- "description": "Bad named entity: OElig without a semi-colon",
- "output": [
- [
- "Character",
- "&OElig"
- ]
- ]
- },
- {
- "input": "Œ",
- "description": "Named entity: OElig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0152"
- ]
- ]
- },
- {
- "input": "Ó",
- "description": "Named entity: Oacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d3"
- ]
- ]
- },
- {
- "input": "Ó",
- "description": "Named entity: Oacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d3"
- ]
- ]
- },
- {
- "input": "Ô",
- "description": "Named entity: Ocirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d4"
- ]
- ]
- },
- {
- "input": "Ô",
- "description": "Named entity: Ocirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d4"
- ]
- ]
- },
- {
- "input": "&Ocy",
- "description": "Bad named entity: Ocy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ocy"
- ]
- ]
- },
- {
- "input": "О",
- "description": "Named entity: Ocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041e"
- ]
- ]
- },
- {
- "input": "&Odblac",
- "description": "Bad named entity: Odblac without a semi-colon",
- "output": [
- [
- "Character",
- "&Odblac"
- ]
- ]
- },
- {
- "input": "Ő",
- "description": "Named entity: Odblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0150"
- ]
- ]
- },
- {
- "input": "&Ofr",
- "description": "Bad named entity: Ofr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ofr"
- ]
- ]
- },
- {
- "input": "𝔒",
- "description": "Named entity: Ofr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd12"
- ]
- ]
- },
- {
- "input": "Ò",
- "description": "Named entity: Ograve without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d2"
- ]
- ]
- },
- {
- "input": "Ò",
- "description": "Named entity: Ograve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d2"
- ]
- ]
- },
- {
- "input": "&Omacr",
- "description": "Bad named entity: Omacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Omacr"
- ]
- ]
- },
- {
- "input": "Ō",
- "description": "Named entity: Omacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014c"
- ]
- ]
- },
- {
- "input": "&Omega",
- "description": "Bad named entity: Omega without a semi-colon",
- "output": [
- [
- "Character",
- "&Omega"
- ]
- ]
- },
- {
- "input": "Ω",
- "description": "Named entity: Omega; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a9"
- ]
- ]
- },
- {
- "input": "&Omicron",
- "description": "Bad named entity: Omicron without a semi-colon",
- "output": [
- [
- "Character",
- "&Omicron"
- ]
- ]
- },
- {
- "input": "Ο",
- "description": "Named entity: Omicron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039f"
- ]
- ]
- },
- {
- "input": "&Oopf",
- "description": "Bad named entity: Oopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Oopf"
- ]
- ]
- },
- {
- "input": "𝕆",
- "description": "Named entity: Oopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd46"
- ]
- ]
- },
- {
- "input": "&OpenCurlyDoubleQuote",
- "description": "Bad named entity: OpenCurlyDoubleQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&OpenCurlyDoubleQuote"
- ]
- ]
- },
- {
- "input": "“",
- "description": "Named entity: OpenCurlyDoubleQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201c"
- ]
- ]
- },
- {
- "input": "&OpenCurlyQuote",
- "description": "Bad named entity: OpenCurlyQuote without a semi-colon",
- "output": [
- [
- "Character",
- "&OpenCurlyQuote"
- ]
- ]
- },
- {
- "input": "‘",
- "description": "Named entity: OpenCurlyQuote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2018"
- ]
- ]
- },
- {
- "input": "&Or",
- "description": "Bad named entity: Or without a semi-colon",
- "output": [
- [
- "Character",
- "&Or"
- ]
- ]
- },
- {
- "input": "⩔",
- "description": "Named entity: Or; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a54"
- ]
- ]
- },
- {
- "input": "&Oscr",
- "description": "Bad named entity: Oscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Oscr"
- ]
- ]
- },
- {
- "input": "𝒪",
- "description": "Named entity: Oscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcaa"
- ]
- ]
- },
- {
- "input": "Ø",
- "description": "Named entity: Oslash without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d8"
- ]
- ]
- },
- {
- "input": "Ø",
- "description": "Named entity: Oslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d8"
- ]
- ]
- },
- {
- "input": "Õ",
- "description": "Named entity: Otilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d5"
- ]
- ]
- },
- {
- "input": "Õ",
- "description": "Named entity: Otilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d5"
- ]
- ]
- },
- {
- "input": "&Otimes",
- "description": "Bad named entity: Otimes without a semi-colon",
- "output": [
- [
- "Character",
- "&Otimes"
- ]
- ]
- },
- {
- "input": "⨷",
- "description": "Named entity: Otimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a37"
- ]
- ]
- },
- {
- "input": "Ö",
- "description": "Named entity: Ouml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d6"
- ]
- ]
- },
- {
- "input": "Ö",
- "description": "Named entity: Ouml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d6"
- ]
- ]
- },
- {
- "input": "&OverBar",
- "description": "Bad named entity: OverBar without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBar"
- ]
- ]
- },
- {
- "input": "‾",
- "description": "Named entity: OverBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203e"
- ]
- ]
- },
- {
- "input": "&OverBrace",
- "description": "Bad named entity: OverBrace without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBrace"
- ]
- ]
- },
- {
- "input": "⏞",
- "description": "Named entity: OverBrace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23de"
- ]
- ]
- },
- {
- "input": "&OverBracket",
- "description": "Bad named entity: OverBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&OverBracket"
- ]
- ]
- },
- {
- "input": "⎴",
- "description": "Named entity: OverBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b4"
- ]
- ]
- },
- {
- "input": "&OverParenthesis",
- "description": "Bad named entity: OverParenthesis without a semi-colon",
- "output": [
- [
- "Character",
- "&OverParenthesis"
- ]
- ]
- },
- {
- "input": "⏜",
- "description": "Named entity: OverParenthesis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23dc"
- ]
- ]
- },
- {
- "input": "&PartialD",
- "description": "Bad named entity: PartialD without a semi-colon",
- "output": [
- [
- "Character",
- "&PartialD"
- ]
- ]
- },
- {
- "input": "∂",
- "description": "Named entity: PartialD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202"
- ]
- ]
- },
- {
- "input": "&Pcy",
- "description": "Bad named entity: Pcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Pcy"
- ]
- ]
- },
- {
- "input": "П",
- "description": "Named entity: Pcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u041f"
- ]
- ]
- },
- {
- "input": "&Pfr",
- "description": "Bad named entity: Pfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pfr"
- ]
- ]
- },
- {
- "input": "𝔓",
- "description": "Named entity: Pfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd13"
- ]
- ]
- },
- {
- "input": "&Phi",
- "description": "Bad named entity: Phi without a semi-colon",
- "output": [
- [
- "Character",
- "&Phi"
- ]
- ]
- },
- {
- "input": "Φ",
- "description": "Named entity: Phi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a6"
- ]
- ]
- },
- {
- "input": "&Pi",
- "description": "Bad named entity: Pi without a semi-colon",
- "output": [
- [
- "Character",
- "&Pi"
- ]
- ]
- },
- {
- "input": "Π",
- "description": "Named entity: Pi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a0"
- ]
- ]
- },
- {
- "input": "&PlusMinus",
- "description": "Bad named entity: PlusMinus without a semi-colon",
- "output": [
- [
- "Character",
- "&PlusMinus"
- ]
- ]
- },
- {
- "input": "±",
- "description": "Named entity: PlusMinus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&Poincareplane",
- "description": "Bad named entity: Poincareplane without a semi-colon",
- "output": [
- [
- "Character",
- "&Poincareplane"
- ]
- ]
- },
- {
- "input": "ℌ",
- "description": "Named entity: Poincareplane; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210c"
- ]
- ]
- },
- {
- "input": "&Popf",
- "description": "Bad named entity: Popf without a semi-colon",
- "output": [
- [
- "Character",
- "&Popf"
- ]
- ]
- },
- {
- "input": "ℙ",
- "description": "Named entity: Popf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2119"
- ]
- ]
- },
- {
- "input": "&Pr",
- "description": "Bad named entity: Pr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pr"
- ]
- ]
- },
- {
- "input": "⪻",
- "description": "Named entity: Pr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abb"
- ]
- ]
- },
- {
- "input": "&Precedes",
- "description": "Bad named entity: Precedes without a semi-colon",
- "output": [
- [
- "Character",
- "&Precedes"
- ]
- ]
- },
- {
- "input": "≺",
- "description": "Named entity: Precedes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&PrecedesEqual",
- "description": "Bad named entity: PrecedesEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesEqual"
- ]
- ]
- },
- {
- "input": "⪯",
- "description": "Named entity: PrecedesEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&PrecedesSlantEqual",
- "description": "Bad named entity: PrecedesSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesSlantEqual"
- ]
- ]
- },
- {
- "input": "≼",
- "description": "Named entity: PrecedesSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&PrecedesTilde",
- "description": "Bad named entity: PrecedesTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&PrecedesTilde"
- ]
- ]
- },
- {
- "input": "≾",
- "description": "Named entity: PrecedesTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&Prime",
- "description": "Bad named entity: Prime without a semi-colon",
- "output": [
- [
- "Character",
- "&Prime"
- ]
- ]
- },
- {
- "input": "″",
- "description": "Named entity: Prime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2033"
- ]
- ]
- },
- {
- "input": "&Product",
- "description": "Bad named entity: Product without a semi-colon",
- "output": [
- [
- "Character",
- "&Product"
- ]
- ]
- },
- {
- "input": "∏",
- "description": "Named entity: Product; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220f"
- ]
- ]
- },
- {
- "input": "&Proportion",
- "description": "Bad named entity: Proportion without a semi-colon",
- "output": [
- [
- "Character",
- "&Proportion"
- ]
- ]
- },
- {
- "input": "∷",
- "description": "Named entity: Proportion; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2237"
- ]
- ]
- },
- {
- "input": "&Proportional",
- "description": "Bad named entity: Proportional without a semi-colon",
- "output": [
- [
- "Character",
- "&Proportional"
- ]
- ]
- },
- {
- "input": "∝",
- "description": "Named entity: Proportional; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&Pscr",
- "description": "Bad named entity: Pscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Pscr"
- ]
- ]
- },
- {
- "input": "𝒫",
- "description": "Named entity: Pscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcab"
- ]
- ]
- },
- {
- "input": "&Psi",
- "description": "Bad named entity: Psi without a semi-colon",
- "output": [
- [
- "Character",
- "&Psi"
- ]
- ]
- },
- {
- "input": "Ψ",
- "description": "Named entity: Psi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a8"
- ]
- ]
- },
- {
- "input": """,
- "description": "Named entity: QUOT without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": """,
- "description": "Named entity: QUOT; with a semi-colon",
- "output": [
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&Qfr",
- "description": "Bad named entity: Qfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Qfr"
- ]
- ]
- },
- {
- "input": "𝔔",
- "description": "Named entity: Qfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd14"
- ]
- ]
- },
- {
- "input": "&Qopf",
- "description": "Bad named entity: Qopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Qopf"
- ]
- ]
- },
- {
- "input": "ℚ",
- "description": "Named entity: Qopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211a"
- ]
- ]
- },
- {
- "input": "&Qscr",
- "description": "Bad named entity: Qscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Qscr"
- ]
- ]
- },
- {
- "input": "𝒬",
- "description": "Named entity: Qscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcac"
- ]
- ]
- },
- {
- "input": "&RBarr",
- "description": "Bad named entity: RBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&RBarr"
- ]
- ]
- },
- {
- "input": "⤐",
- "description": "Named entity: RBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2910"
- ]
- ]
- },
- {
- "input": "®",
- "description": "Named entity: REG without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "®",
- "description": "Named entity: REG; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&Racute",
- "description": "Bad named entity: Racute without a semi-colon",
- "output": [
- [
- "Character",
- "&Racute"
- ]
- ]
- },
- {
- "input": "Ŕ",
- "description": "Named entity: Racute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0154"
- ]
- ]
- },
- {
- "input": "&Rang",
- "description": "Bad named entity: Rang without a semi-colon",
- "output": [
- [
- "Character",
- "&Rang"
- ]
- ]
- },
- {
- "input": "⟫",
- "description": "Named entity: Rang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27eb"
- ]
- ]
- },
- {
- "input": "&Rarr",
- "description": "Bad named entity: Rarr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rarr"
- ]
- ]
- },
- {
- "input": "↠",
- "description": "Named entity: Rarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a0"
- ]
- ]
- },
- {
- "input": "&Rarrtl",
- "description": "Bad named entity: Rarrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&Rarrtl"
- ]
- ]
- },
- {
- "input": "⤖",
- "description": "Named entity: Rarrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2916"
- ]
- ]
- },
- {
- "input": "&Rcaron",
- "description": "Bad named entity: Rcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcaron"
- ]
- ]
- },
- {
- "input": "Ř",
- "description": "Named entity: Rcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0158"
- ]
- ]
- },
- {
- "input": "&Rcedil",
- "description": "Bad named entity: Rcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcedil"
- ]
- ]
- },
- {
- "input": "Ŗ",
- "description": "Named entity: Rcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0156"
- ]
- ]
- },
- {
- "input": "&Rcy",
- "description": "Bad named entity: Rcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Rcy"
- ]
- ]
- },
- {
- "input": "Р",
- "description": "Named entity: Rcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0420"
- ]
- ]
- },
- {
- "input": "&Re",
- "description": "Bad named entity: Re without a semi-colon",
- "output": [
- [
- "Character",
- "&Re"
- ]
- ]
- },
- {
- "input": "ℜ",
- "description": "Named entity: Re; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&ReverseElement",
- "description": "Bad named entity: ReverseElement without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseElement"
- ]
- ]
- },
- {
- "input": "∋",
- "description": "Named entity: ReverseElement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&ReverseEquilibrium",
- "description": "Bad named entity: ReverseEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseEquilibrium"
- ]
- ]
- },
- {
- "input": "⇋",
- "description": "Named entity: ReverseEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&ReverseUpEquilibrium",
- "description": "Bad named entity: ReverseUpEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&ReverseUpEquilibrium"
- ]
- ]
- },
- {
- "input": "⥯",
- "description": "Named entity: ReverseUpEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296f"
- ]
- ]
- },
- {
- "input": "&Rfr",
- "description": "Bad named entity: Rfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rfr"
- ]
- ]
- },
- {
- "input": "ℜ",
- "description": "Named entity: Rfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&Rho",
- "description": "Bad named entity: Rho without a semi-colon",
- "output": [
- [
- "Character",
- "&Rho"
- ]
- ]
- },
- {
- "input": "Ρ",
- "description": "Named entity: Rho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a1"
- ]
- ]
- },
- {
- "input": "&RightAngleBracket",
- "description": "Bad named entity: RightAngleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&RightAngleBracket"
- ]
- ]
- },
- {
- "input": "⟩",
- "description": "Named entity: RightAngleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "&RightArrow",
- "description": "Bad named entity: RightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrow"
- ]
- ]
- },
- {
- "input": "→",
- "description": "Named entity: RightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&RightArrowBar",
- "description": "Bad named entity: RightArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrowBar"
- ]
- ]
- },
- {
- "input": "⇥",
- "description": "Named entity: RightArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e5"
- ]
- ]
- },
- {
- "input": "&RightArrowLeftArrow",
- "description": "Bad named entity: RightArrowLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightArrowLeftArrow"
- ]
- ]
- },
- {
- "input": "⇄",
- "description": "Named entity: RightArrowLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&RightCeiling",
- "description": "Bad named entity: RightCeiling without a semi-colon",
- "output": [
- [
- "Character",
- "&RightCeiling"
- ]
- ]
- },
- {
- "input": "⌉",
- "description": "Named entity: RightCeiling; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2309"
- ]
- ]
- },
- {
- "input": "&RightDoubleBracket",
- "description": "Bad named entity: RightDoubleBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDoubleBracket"
- ]
- ]
- },
- {
- "input": "⟧",
- "description": "Named entity: RightDoubleBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e7"
- ]
- ]
- },
- {
- "input": "&RightDownTeeVector",
- "description": "Bad named entity: RightDownTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownTeeVector"
- ]
- ]
- },
- {
- "input": "⥝",
- "description": "Named entity: RightDownTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295d"
- ]
- ]
- },
- {
- "input": "&RightDownVector",
- "description": "Bad named entity: RightDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownVector"
- ]
- ]
- },
- {
- "input": "⇂",
- "description": "Named entity: RightDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&RightDownVectorBar",
- "description": "Bad named entity: RightDownVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightDownVectorBar"
- ]
- ]
- },
- {
- "input": "⥕",
- "description": "Named entity: RightDownVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2955"
- ]
- ]
- },
- {
- "input": "&RightFloor",
- "description": "Bad named entity: RightFloor without a semi-colon",
- "output": [
- [
- "Character",
- "&RightFloor"
- ]
- ]
- },
- {
- "input": "⌋",
- "description": "Named entity: RightFloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230b"
- ]
- ]
- },
- {
- "input": "&RightTee",
- "description": "Bad named entity: RightTee without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTee"
- ]
- ]
- },
- {
- "input": "⊢",
- "description": "Named entity: RightTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a2"
- ]
- ]
- },
- {
- "input": "&RightTeeArrow",
- "description": "Bad named entity: RightTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTeeArrow"
- ]
- ]
- },
- {
- "input": "↦",
- "description": "Named entity: RightTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&RightTeeVector",
- "description": "Bad named entity: RightTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTeeVector"
- ]
- ]
- },
- {
- "input": "⥛",
- "description": "Named entity: RightTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295b"
- ]
- ]
- },
- {
- "input": "&RightTriangle",
- "description": "Bad named entity: RightTriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangle"
- ]
- ]
- },
- {
- "input": "⊳",
- "description": "Named entity: RightTriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&RightTriangleBar",
- "description": "Bad named entity: RightTriangleBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangleBar"
- ]
- ]
- },
- {
- "input": "⧐",
- "description": "Named entity: RightTriangleBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29d0"
- ]
- ]
- },
- {
- "input": "&RightTriangleEqual",
- "description": "Bad named entity: RightTriangleEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&RightTriangleEqual"
- ]
- ]
- },
- {
- "input": "⊵",
- "description": "Named entity: RightTriangleEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&RightUpDownVector",
- "description": "Bad named entity: RightUpDownVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpDownVector"
- ]
- ]
- },
- {
- "input": "⥏",
- "description": "Named entity: RightUpDownVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294f"
- ]
- ]
- },
- {
- "input": "&RightUpTeeVector",
- "description": "Bad named entity: RightUpTeeVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpTeeVector"
- ]
- ]
- },
- {
- "input": "⥜",
- "description": "Named entity: RightUpTeeVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u295c"
- ]
- ]
- },
- {
- "input": "&RightUpVector",
- "description": "Bad named entity: RightUpVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpVector"
- ]
- ]
- },
- {
- "input": "↾",
- "description": "Named entity: RightUpVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&RightUpVectorBar",
- "description": "Bad named entity: RightUpVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightUpVectorBar"
- ]
- ]
- },
- {
- "input": "⥔",
- "description": "Named entity: RightUpVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2954"
- ]
- ]
- },
- {
- "input": "&RightVector",
- "description": "Bad named entity: RightVector without a semi-colon",
- "output": [
- [
- "Character",
- "&RightVector"
- ]
- ]
- },
- {
- "input": "⇀",
- "description": "Named entity: RightVector; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&RightVectorBar",
- "description": "Bad named entity: RightVectorBar without a semi-colon",
- "output": [
- [
- "Character",
- "&RightVectorBar"
- ]
- ]
- },
- {
- "input": "⥓",
- "description": "Named entity: RightVectorBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2953"
- ]
- ]
- },
- {
- "input": "&Rightarrow",
- "description": "Bad named entity: Rightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Rightarrow"
- ]
- ]
- },
- {
- "input": "⇒",
- "description": "Named entity: Rightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&Ropf",
- "description": "Bad named entity: Ropf without a semi-colon",
- "output": [
- [
- "Character",
- "&Ropf"
- ]
- ]
- },
- {
- "input": "ℝ",
- "description": "Named entity: Ropf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211d"
- ]
- ]
- },
- {
- "input": "&RoundImplies",
- "description": "Bad named entity: RoundImplies without a semi-colon",
- "output": [
- [
- "Character",
- "&RoundImplies"
- ]
- ]
- },
- {
- "input": "⥰",
- "description": "Named entity: RoundImplies; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2970"
- ]
- ]
- },
- {
- "input": "&Rrightarrow",
- "description": "Bad named entity: Rrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Rrightarrow"
- ]
- ]
- },
- {
- "input": "⇛",
- "description": "Named entity: Rrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21db"
- ]
- ]
- },
- {
- "input": "&Rscr",
- "description": "Bad named entity: Rscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Rscr"
- ]
- ]
- },
- {
- "input": "ℛ",
- "description": "Named entity: Rscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211b"
- ]
- ]
- },
- {
- "input": "&Rsh",
- "description": "Bad named entity: Rsh without a semi-colon",
- "output": [
- [
- "Character",
- "&Rsh"
- ]
- ]
- },
- {
- "input": "↱",
- "description": "Named entity: Rsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b1"
- ]
- ]
- },
- {
- "input": "&RuleDelayed",
- "description": "Bad named entity: RuleDelayed without a semi-colon",
- "output": [
- [
- "Character",
- "&RuleDelayed"
- ]
- ]
- },
- {
- "input": "⧴",
- "description": "Named entity: RuleDelayed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29f4"
- ]
- ]
- },
- {
- "input": "&SHCHcy",
- "description": "Bad named entity: SHCHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SHCHcy"
- ]
- ]
- },
- {
- "input": "Щ",
- "description": "Named entity: SHCHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0429"
- ]
- ]
- },
- {
- "input": "&SHcy",
- "description": "Bad named entity: SHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SHcy"
- ]
- ]
- },
- {
- "input": "Ш",
- "description": "Named entity: SHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0428"
- ]
- ]
- },
- {
- "input": "&SOFTcy",
- "description": "Bad named entity: SOFTcy without a semi-colon",
- "output": [
- [
- "Character",
- "&SOFTcy"
- ]
- ]
- },
- {
- "input": "Ь",
- "description": "Named entity: SOFTcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042c"
- ]
- ]
- },
- {
- "input": "&Sacute",
- "description": "Bad named entity: Sacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Sacute"
- ]
- ]
- },
- {
- "input": "Ś",
- "description": "Named entity: Sacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015a"
- ]
- ]
- },
- {
- "input": "&Sc",
- "description": "Bad named entity: Sc without a semi-colon",
- "output": [
- [
- "Character",
- "&Sc"
- ]
- ]
- },
- {
- "input": "⪼",
- "description": "Named entity: Sc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abc"
- ]
- ]
- },
- {
- "input": "&Scaron",
- "description": "Bad named entity: Scaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Scaron"
- ]
- ]
- },
- {
- "input": "Š",
- "description": "Named entity: Scaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0160"
- ]
- ]
- },
- {
- "input": "&Scedil",
- "description": "Bad named entity: Scedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Scedil"
- ]
- ]
- },
- {
- "input": "Ş",
- "description": "Named entity: Scedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015e"
- ]
- ]
- },
- {
- "input": "&Scirc",
- "description": "Bad named entity: Scirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Scirc"
- ]
- ]
- },
- {
- "input": "Ŝ",
- "description": "Named entity: Scirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015c"
- ]
- ]
- },
- {
- "input": "&Scy",
- "description": "Bad named entity: Scy without a semi-colon",
- "output": [
- [
- "Character",
- "&Scy"
- ]
- ]
- },
- {
- "input": "С",
- "description": "Named entity: Scy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0421"
- ]
- ]
- },
- {
- "input": "&Sfr",
- "description": "Bad named entity: Sfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Sfr"
- ]
- ]
- },
- {
- "input": "𝔖",
- "description": "Named entity: Sfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd16"
- ]
- ]
- },
- {
- "input": "&ShortDownArrow",
- "description": "Bad named entity: ShortDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortDownArrow"
- ]
- ]
- },
- {
- "input": "↓",
- "description": "Named entity: ShortDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&ShortLeftArrow",
- "description": "Bad named entity: ShortLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortLeftArrow"
- ]
- ]
- },
- {
- "input": "←",
- "description": "Named entity: ShortLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&ShortRightArrow",
- "description": "Bad named entity: ShortRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortRightArrow"
- ]
- ]
- },
- {
- "input": "→",
- "description": "Named entity: ShortRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&ShortUpArrow",
- "description": "Bad named entity: ShortUpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&ShortUpArrow"
- ]
- ]
- },
- {
- "input": "↑",
- "description": "Named entity: ShortUpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&Sigma",
- "description": "Bad named entity: Sigma without a semi-colon",
- "output": [
- [
- "Character",
- "&Sigma"
- ]
- ]
- },
- {
- "input": "Σ",
- "description": "Named entity: Sigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a3"
- ]
- ]
- },
- {
- "input": "&SmallCircle",
- "description": "Bad named entity: SmallCircle without a semi-colon",
- "output": [
- [
- "Character",
- "&SmallCircle"
- ]
- ]
- },
- {
- "input": "∘",
- "description": "Named entity: SmallCircle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2218"
- ]
- ]
- },
- {
- "input": "&Sopf",
- "description": "Bad named entity: Sopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Sopf"
- ]
- ]
- },
- {
- "input": "𝕊",
- "description": "Named entity: Sopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4a"
- ]
- ]
- },
- {
- "input": "&Sqrt",
- "description": "Bad named entity: Sqrt without a semi-colon",
- "output": [
- [
- "Character",
- "&Sqrt"
- ]
- ]
- },
- {
- "input": "√",
- "description": "Named entity: Sqrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221a"
- ]
- ]
- },
- {
- "input": "&Square",
- "description": "Bad named entity: Square without a semi-colon",
- "output": [
- [
- "Character",
- "&Square"
- ]
- ]
- },
- {
- "input": "□",
- "description": "Named entity: Square; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&SquareIntersection",
- "description": "Bad named entity: SquareIntersection without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareIntersection"
- ]
- ]
- },
- {
- "input": "⊓",
- "description": "Named entity: SquareIntersection; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293"
- ]
- ]
- },
- {
- "input": "&SquareSubset",
- "description": "Bad named entity: SquareSubset without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSubset"
- ]
- ]
- },
- {
- "input": "⊏",
- "description": "Named entity: SquareSubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&SquareSubsetEqual",
- "description": "Bad named entity: SquareSubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSubsetEqual"
- ]
- ]
- },
- {
- "input": "⊑",
- "description": "Named entity: SquareSubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&SquareSuperset",
- "description": "Bad named entity: SquareSuperset without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSuperset"
- ]
- ]
- },
- {
- "input": "⊐",
- "description": "Named entity: SquareSuperset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&SquareSupersetEqual",
- "description": "Bad named entity: SquareSupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareSupersetEqual"
- ]
- ]
- },
- {
- "input": "⊒",
- "description": "Named entity: SquareSupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&SquareUnion",
- "description": "Bad named entity: SquareUnion without a semi-colon",
- "output": [
- [
- "Character",
- "&SquareUnion"
- ]
- ]
- },
- {
- "input": "⊔",
- "description": "Named entity: SquareUnion; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294"
- ]
- ]
- },
- {
- "input": "&Sscr",
- "description": "Bad named entity: Sscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Sscr"
- ]
- ]
- },
- {
- "input": "𝒮",
- "description": "Named entity: Sscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcae"
- ]
- ]
- },
- {
- "input": "&Star",
- "description": "Bad named entity: Star without a semi-colon",
- "output": [
- [
- "Character",
- "&Star"
- ]
- ]
- },
- {
- "input": "⋆",
- "description": "Named entity: Star; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c6"
- ]
- ]
- },
- {
- "input": "&Sub",
- "description": "Bad named entity: Sub without a semi-colon",
- "output": [
- [
- "Character",
- "&Sub"
- ]
- ]
- },
- {
- "input": "⋐",
- "description": "Named entity: Sub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d0"
- ]
- ]
- },
- {
- "input": "&Subset",
- "description": "Bad named entity: Subset without a semi-colon",
- "output": [
- [
- "Character",
- "&Subset"
- ]
- ]
- },
- {
- "input": "⋐",
- "description": "Named entity: Subset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d0"
- ]
- ]
- },
- {
- "input": "&SubsetEqual",
- "description": "Bad named entity: SubsetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SubsetEqual"
- ]
- ]
- },
- {
- "input": "⊆",
- "description": "Named entity: SubsetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&Succeeds",
- "description": "Bad named entity: Succeeds without a semi-colon",
- "output": [
- [
- "Character",
- "&Succeeds"
- ]
- ]
- },
- {
- "input": "≻",
- "description": "Named entity: Succeeds; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&SucceedsEqual",
- "description": "Bad named entity: SucceedsEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsEqual"
- ]
- ]
- },
- {
- "input": "⪰",
- "description": "Named entity: SucceedsEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&SucceedsSlantEqual",
- "description": "Bad named entity: SucceedsSlantEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsSlantEqual"
- ]
- ]
- },
- {
- "input": "≽",
- "description": "Named entity: SucceedsSlantEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&SucceedsTilde",
- "description": "Bad named entity: SucceedsTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&SucceedsTilde"
- ]
- ]
- },
- {
- "input": "≿",
- "description": "Named entity: SucceedsTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&SuchThat",
- "description": "Bad named entity: SuchThat without a semi-colon",
- "output": [
- [
- "Character",
- "&SuchThat"
- ]
- ]
- },
- {
- "input": "∋",
- "description": "Named entity: SuchThat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&Sum",
- "description": "Bad named entity: Sum without a semi-colon",
- "output": [
- [
- "Character",
- "&Sum"
- ]
- ]
- },
- {
- "input": "∑",
- "description": "Named entity: Sum; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2211"
- ]
- ]
- },
- {
- "input": "&Sup",
- "description": "Bad named entity: Sup without a semi-colon",
- "output": [
- [
- "Character",
- "&Sup"
- ]
- ]
- },
- {
- "input": "⋑",
- "description": "Named entity: Sup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d1"
- ]
- ]
- },
- {
- "input": "&Superset",
- "description": "Bad named entity: Superset without a semi-colon",
- "output": [
- [
- "Character",
- "&Superset"
- ]
- ]
- },
- {
- "input": "⊃",
- "description": "Named entity: Superset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&SupersetEqual",
- "description": "Bad named entity: SupersetEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&SupersetEqual"
- ]
- ]
- },
- {
- "input": "⊇",
- "description": "Named entity: SupersetEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&Supset",
- "description": "Bad named entity: Supset without a semi-colon",
- "output": [
- [
- "Character",
- "&Supset"
- ]
- ]
- },
- {
- "input": "⋑",
- "description": "Named entity: Supset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d1"
- ]
- ]
- },
- {
- "input": "Þ",
- "description": "Named entity: THORN without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00de"
- ]
- ]
- },
- {
- "input": "Þ",
- "description": "Named entity: THORN; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00de"
- ]
- ]
- },
- {
- "input": "&TRADE",
- "description": "Bad named entity: TRADE without a semi-colon",
- "output": [
- [
- "Character",
- "&TRADE"
- ]
- ]
- },
- {
- "input": "™",
- "description": "Named entity: TRADE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2122"
- ]
- ]
- },
- {
- "input": "&TSHcy",
- "description": "Bad named entity: TSHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&TSHcy"
- ]
- ]
- },
- {
- "input": "Ћ",
- "description": "Named entity: TSHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040b"
- ]
- ]
- },
- {
- "input": "&TScy",
- "description": "Bad named entity: TScy without a semi-colon",
- "output": [
- [
- "Character",
- "&TScy"
- ]
- ]
- },
- {
- "input": "Ц",
- "description": "Named entity: TScy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0426"
- ]
- ]
- },
- {
- "input": "&Tab",
- "description": "Bad named entity: Tab without a semi-colon",
- "output": [
- [
- "Character",
- "&Tab"
- ]
- ]
- },
- {
- "input": "	",
- "description": "Named entity: Tab; with a semi-colon",
- "output": [
- [
- "Character",
- "\t"
- ]
- ]
- },
- {
- "input": "&Tau",
- "description": "Bad named entity: Tau without a semi-colon",
- "output": [
- [
- "Character",
- "&Tau"
- ]
- ]
- },
- {
- "input": "Τ",
- "description": "Named entity: Tau; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a4"
- ]
- ]
- },
- {
- "input": "&Tcaron",
- "description": "Bad named entity: Tcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcaron"
- ]
- ]
- },
- {
- "input": "Ť",
- "description": "Named entity: Tcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0164"
- ]
- ]
- },
- {
- "input": "&Tcedil",
- "description": "Bad named entity: Tcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcedil"
- ]
- ]
- },
- {
- "input": "Ţ",
- "description": "Named entity: Tcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0162"
- ]
- ]
- },
- {
- "input": "&Tcy",
- "description": "Bad named entity: Tcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Tcy"
- ]
- ]
- },
- {
- "input": "Т",
- "description": "Named entity: Tcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0422"
- ]
- ]
- },
- {
- "input": "&Tfr",
- "description": "Bad named entity: Tfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Tfr"
- ]
- ]
- },
- {
- "input": "𝔗",
- "description": "Named entity: Tfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd17"
- ]
- ]
- },
- {
- "input": "&Therefore",
- "description": "Bad named entity: Therefore without a semi-colon",
- "output": [
- [
- "Character",
- "&Therefore"
- ]
- ]
- },
- {
- "input": "∴",
- "description": "Named entity: Therefore; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&Theta",
- "description": "Bad named entity: Theta without a semi-colon",
- "output": [
- [
- "Character",
- "&Theta"
- ]
- ]
- },
- {
- "input": "Θ",
- "description": "Named entity: Theta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0398"
- ]
- ]
- },
- {
- "input": "&ThickSpace",
- "description": "Bad named entity: ThickSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ThickSpace"
- ]
- ]
- },
- {
- "input": "  ",
- "description": "Named entity: ThickSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u205f\u200a"
- ]
- ]
- },
- {
- "input": "&ThinSpace",
- "description": "Bad named entity: ThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ThinSpace"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: ThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2009"
- ]
- ]
- },
- {
- "input": "&Tilde",
- "description": "Bad named entity: Tilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Tilde"
- ]
- ]
- },
- {
- "input": "∼",
- "description": "Named entity: Tilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&TildeEqual",
- "description": "Bad named entity: TildeEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeEqual"
- ]
- ]
- },
- {
- "input": "≃",
- "description": "Named entity: TildeEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&TildeFullEqual",
- "description": "Bad named entity: TildeFullEqual without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeFullEqual"
- ]
- ]
- },
- {
- "input": "≅",
- "description": "Named entity: TildeFullEqual; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2245"
- ]
- ]
- },
- {
- "input": "&TildeTilde",
- "description": "Bad named entity: TildeTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&TildeTilde"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: TildeTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&Topf",
- "description": "Bad named entity: Topf without a semi-colon",
- "output": [
- [
- "Character",
- "&Topf"
- ]
- ]
- },
- {
- "input": "𝕋",
- "description": "Named entity: Topf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4b"
- ]
- ]
- },
- {
- "input": "&TripleDot",
- "description": "Bad named entity: TripleDot without a semi-colon",
- "output": [
- [
- "Character",
- "&TripleDot"
- ]
- ]
- },
- {
- "input": "⃛",
- "description": "Named entity: TripleDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20db"
- ]
- ]
- },
- {
- "input": "&Tscr",
- "description": "Bad named entity: Tscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Tscr"
- ]
- ]
- },
- {
- "input": "𝒯",
- "description": "Named entity: Tscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcaf"
- ]
- ]
- },
- {
- "input": "&Tstrok",
- "description": "Bad named entity: Tstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&Tstrok"
- ]
- ]
- },
- {
- "input": "Ŧ",
- "description": "Named entity: Tstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0166"
- ]
- ]
- },
- {
- "input": "Ú",
- "description": "Named entity: Uacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00da"
- ]
- ]
- },
- {
- "input": "Ú",
- "description": "Named entity: Uacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00da"
- ]
- ]
- },
- {
- "input": "&Uarr",
- "description": "Bad named entity: Uarr without a semi-colon",
- "output": [
- [
- "Character",
- "&Uarr"
- ]
- ]
- },
- {
- "input": "↟",
- "description": "Named entity: Uarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219f"
- ]
- ]
- },
- {
- "input": "&Uarrocir",
- "description": "Bad named entity: Uarrocir without a semi-colon",
- "output": [
- [
- "Character",
- "&Uarrocir"
- ]
- ]
- },
- {
- "input": "⥉",
- "description": "Named entity: Uarrocir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2949"
- ]
- ]
- },
- {
- "input": "&Ubrcy",
- "description": "Bad named entity: Ubrcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ubrcy"
- ]
- ]
- },
- {
- "input": "Ў",
- "description": "Named entity: Ubrcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u040e"
- ]
- ]
- },
- {
- "input": "&Ubreve",
- "description": "Bad named entity: Ubreve without a semi-colon",
- "output": [
- [
- "Character",
- "&Ubreve"
- ]
- ]
- },
- {
- "input": "Ŭ",
- "description": "Named entity: Ubreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016c"
- ]
- ]
- },
- {
- "input": "Û",
- "description": "Named entity: Ucirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00db"
- ]
- ]
- },
- {
- "input": "Û",
- "description": "Named entity: Ucirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00db"
- ]
- ]
- },
- {
- "input": "&Ucy",
- "description": "Bad named entity: Ucy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ucy"
- ]
- ]
- },
- {
- "input": "У",
- "description": "Named entity: Ucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0423"
- ]
- ]
- },
- {
- "input": "&Udblac",
- "description": "Bad named entity: Udblac without a semi-colon",
- "output": [
- [
- "Character",
- "&Udblac"
- ]
- ]
- },
- {
- "input": "Ű",
- "description": "Named entity: Udblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0170"
- ]
- ]
- },
- {
- "input": "&Ufr",
- "description": "Bad named entity: Ufr without a semi-colon",
- "output": [
- [
- "Character",
- "&Ufr"
- ]
- ]
- },
- {
- "input": "𝔘",
- "description": "Named entity: Ufr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd18"
- ]
- ]
- },
- {
- "input": "Ù",
- "description": "Named entity: Ugrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d9"
- ]
- ]
- },
- {
- "input": "Ù",
- "description": "Named entity: Ugrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d9"
- ]
- ]
- },
- {
- "input": "&Umacr",
- "description": "Bad named entity: Umacr without a semi-colon",
- "output": [
- [
- "Character",
- "&Umacr"
- ]
- ]
- },
- {
- "input": "Ū",
- "description": "Named entity: Umacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016a"
- ]
- ]
- },
- {
- "input": "&UnderBar",
- "description": "Bad named entity: UnderBar without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBar"
- ]
- ]
- },
- {
- "input": "_",
- "description": "Named entity: UnderBar; with a semi-colon",
- "output": [
- [
- "Character",
- "_"
- ]
- ]
- },
- {
- "input": "&UnderBrace",
- "description": "Bad named entity: UnderBrace without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBrace"
- ]
- ]
- },
- {
- "input": "⏟",
- "description": "Named entity: UnderBrace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23df"
- ]
- ]
- },
- {
- "input": "&UnderBracket",
- "description": "Bad named entity: UnderBracket without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderBracket"
- ]
- ]
- },
- {
- "input": "⎵",
- "description": "Named entity: UnderBracket; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b5"
- ]
- ]
- },
- {
- "input": "&UnderParenthesis",
- "description": "Bad named entity: UnderParenthesis without a semi-colon",
- "output": [
- [
- "Character",
- "&UnderParenthesis"
- ]
- ]
- },
- {
- "input": "⏝",
- "description": "Named entity: UnderParenthesis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23dd"
- ]
- ]
- },
- {
- "input": "&Union",
- "description": "Bad named entity: Union without a semi-colon",
- "output": [
- [
- "Character",
- "&Union"
- ]
- ]
- },
- {
- "input": "⋃",
- "description": "Named entity: Union; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&UnionPlus",
- "description": "Bad named entity: UnionPlus without a semi-colon",
- "output": [
- [
- "Character",
- "&UnionPlus"
- ]
- ]
- },
- {
- "input": "⊎",
- "description": "Named entity: UnionPlus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228e"
- ]
- ]
- },
- {
- "input": "&Uogon",
- "description": "Bad named entity: Uogon without a semi-colon",
- "output": [
- [
- "Character",
- "&Uogon"
- ]
- ]
- },
- {
- "input": "Ų",
- "description": "Named entity: Uogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0172"
- ]
- ]
- },
- {
- "input": "&Uopf",
- "description": "Bad named entity: Uopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Uopf"
- ]
- ]
- },
- {
- "input": "𝕌",
- "description": "Named entity: Uopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4c"
- ]
- ]
- },
- {
- "input": "&UpArrow",
- "description": "Bad named entity: UpArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrow"
- ]
- ]
- },
- {
- "input": "↑",
- "description": "Named entity: UpArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&UpArrowBar",
- "description": "Bad named entity: UpArrowBar without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrowBar"
- ]
- ]
- },
- {
- "input": "⤒",
- "description": "Named entity: UpArrowBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2912"
- ]
- ]
- },
- {
- "input": "&UpArrowDownArrow",
- "description": "Bad named entity: UpArrowDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpArrowDownArrow"
- ]
- ]
- },
- {
- "input": "⇅",
- "description": "Named entity: UpArrowDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c5"
- ]
- ]
- },
- {
- "input": "&UpDownArrow",
- "description": "Bad named entity: UpDownArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpDownArrow"
- ]
- ]
- },
- {
- "input": "↕",
- "description": "Named entity: UpDownArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&UpEquilibrium",
- "description": "Bad named entity: UpEquilibrium without a semi-colon",
- "output": [
- [
- "Character",
- "&UpEquilibrium"
- ]
- ]
- },
- {
- "input": "⥮",
- "description": "Named entity: UpEquilibrium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296e"
- ]
- ]
- },
- {
- "input": "&UpTee",
- "description": "Bad named entity: UpTee without a semi-colon",
- "output": [
- [
- "Character",
- "&UpTee"
- ]
- ]
- },
- {
- "input": "⊥",
- "description": "Named entity: UpTee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&UpTeeArrow",
- "description": "Bad named entity: UpTeeArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpTeeArrow"
- ]
- ]
- },
- {
- "input": "↥",
- "description": "Named entity: UpTeeArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a5"
- ]
- ]
- },
- {
- "input": "&Uparrow",
- "description": "Bad named entity: Uparrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Uparrow"
- ]
- ]
- },
- {
- "input": "⇑",
- "description": "Named entity: Uparrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&Updownarrow",
- "description": "Bad named entity: Updownarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&Updownarrow"
- ]
- ]
- },
- {
- "input": "⇕",
- "description": "Named entity: Updownarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&UpperLeftArrow",
- "description": "Bad named entity: UpperLeftArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpperLeftArrow"
- ]
- ]
- },
- {
- "input": "↖",
- "description": "Named entity: UpperLeftArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&UpperRightArrow",
- "description": "Bad named entity: UpperRightArrow without a semi-colon",
- "output": [
- [
- "Character",
- "&UpperRightArrow"
- ]
- ]
- },
- {
- "input": "↗",
- "description": "Named entity: UpperRightArrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&Upsi",
- "description": "Bad named entity: Upsi without a semi-colon",
- "output": [
- [
- "Character",
- "&Upsi"
- ]
- ]
- },
- {
- "input": "ϒ",
- "description": "Named entity: Upsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d2"
- ]
- ]
- },
- {
- "input": "&Upsilon",
- "description": "Bad named entity: Upsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&Upsilon"
- ]
- ]
- },
- {
- "input": "Υ",
- "description": "Named entity: Upsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a5"
- ]
- ]
- },
- {
- "input": "&Uring",
- "description": "Bad named entity: Uring without a semi-colon",
- "output": [
- [
- "Character",
- "&Uring"
- ]
- ]
- },
- {
- "input": "Ů",
- "description": "Named entity: Uring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016e"
- ]
- ]
- },
- {
- "input": "&Uscr",
- "description": "Bad named entity: Uscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Uscr"
- ]
- ]
- },
- {
- "input": "𝒰",
- "description": "Named entity: Uscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb0"
- ]
- ]
- },
- {
- "input": "&Utilde",
- "description": "Bad named entity: Utilde without a semi-colon",
- "output": [
- [
- "Character",
- "&Utilde"
- ]
- ]
- },
- {
- "input": "Ũ",
- "description": "Named entity: Utilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0168"
- ]
- ]
- },
- {
- "input": "Ü",
- "description": "Named entity: Uuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00dc"
- ]
- ]
- },
- {
- "input": "Ü",
- "description": "Named entity: Uuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00dc"
- ]
- ]
- },
- {
- "input": "&VDash",
- "description": "Bad named entity: VDash without a semi-colon",
- "output": [
- [
- "Character",
- "&VDash"
- ]
- ]
- },
- {
- "input": "⊫",
- "description": "Named entity: VDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ab"
- ]
- ]
- },
- {
- "input": "&Vbar",
- "description": "Bad named entity: Vbar without a semi-colon",
- "output": [
- [
- "Character",
- "&Vbar"
- ]
- ]
- },
- {
- "input": "⫫",
- "description": "Named entity: Vbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aeb"
- ]
- ]
- },
- {
- "input": "&Vcy",
- "description": "Bad named entity: Vcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Vcy"
- ]
- ]
- },
- {
- "input": "В",
- "description": "Named entity: Vcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0412"
- ]
- ]
- },
- {
- "input": "&Vdash",
- "description": "Bad named entity: Vdash without a semi-colon",
- "output": [
- [
- "Character",
- "&Vdash"
- ]
- ]
- },
- {
- "input": "⊩",
- "description": "Named entity: Vdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a9"
- ]
- ]
- },
- {
- "input": "&Vdashl",
- "description": "Bad named entity: Vdashl without a semi-colon",
- "output": [
- [
- "Character",
- "&Vdashl"
- ]
- ]
- },
- {
- "input": "⫦",
- "description": "Named entity: Vdashl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae6"
- ]
- ]
- },
- {
- "input": "&Vee",
- "description": "Bad named entity: Vee without a semi-colon",
- "output": [
- [
- "Character",
- "&Vee"
- ]
- ]
- },
- {
- "input": "⋁",
- "description": "Named entity: Vee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&Verbar",
- "description": "Bad named entity: Verbar without a semi-colon",
- "output": [
- [
- "Character",
- "&Verbar"
- ]
- ]
- },
- {
- "input": "‖",
- "description": "Named entity: Verbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2016"
- ]
- ]
- },
- {
- "input": "&Vert",
- "description": "Bad named entity: Vert without a semi-colon",
- "output": [
- [
- "Character",
- "&Vert"
- ]
- ]
- },
- {
- "input": "‖",
- "description": "Named entity: Vert; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2016"
- ]
- ]
- },
- {
- "input": "&VerticalBar",
- "description": "Bad named entity: VerticalBar without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalBar"
- ]
- ]
- },
- {
- "input": "∣",
- "description": "Named entity: VerticalBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&VerticalLine",
- "description": "Bad named entity: VerticalLine without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalLine"
- ]
- ]
- },
- {
- "input": "|",
- "description": "Named entity: VerticalLine; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&VerticalSeparator",
- "description": "Bad named entity: VerticalSeparator without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalSeparator"
- ]
- ]
- },
- {
- "input": "❘",
- "description": "Named entity: VerticalSeparator; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2758"
- ]
- ]
- },
- {
- "input": "&VerticalTilde",
- "description": "Bad named entity: VerticalTilde without a semi-colon",
- "output": [
- [
- "Character",
- "&VerticalTilde"
- ]
- ]
- },
- {
- "input": "≀",
- "description": "Named entity: VerticalTilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&VeryThinSpace",
- "description": "Bad named entity: VeryThinSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&VeryThinSpace"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: VeryThinSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200a"
- ]
- ]
- },
- {
- "input": "&Vfr",
- "description": "Bad named entity: Vfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Vfr"
- ]
- ]
- },
- {
- "input": "𝔙",
- "description": "Named entity: Vfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd19"
- ]
- ]
- },
- {
- "input": "&Vopf",
- "description": "Bad named entity: Vopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Vopf"
- ]
- ]
- },
- {
- "input": "𝕍",
- "description": "Named entity: Vopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4d"
- ]
- ]
- },
- {
- "input": "&Vscr",
- "description": "Bad named entity: Vscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Vscr"
- ]
- ]
- },
- {
- "input": "𝒱",
- "description": "Named entity: Vscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb1"
- ]
- ]
- },
- {
- "input": "&Vvdash",
- "description": "Bad named entity: Vvdash without a semi-colon",
- "output": [
- [
- "Character",
- "&Vvdash"
- ]
- ]
- },
- {
- "input": "⊪",
- "description": "Named entity: Vvdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22aa"
- ]
- ]
- },
- {
- "input": "&Wcirc",
- "description": "Bad named entity: Wcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Wcirc"
- ]
- ]
- },
- {
- "input": "Ŵ",
- "description": "Named entity: Wcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0174"
- ]
- ]
- },
- {
- "input": "&Wedge",
- "description": "Bad named entity: Wedge without a semi-colon",
- "output": [
- [
- "Character",
- "&Wedge"
- ]
- ]
- },
- {
- "input": "⋀",
- "description": "Named entity: Wedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "&Wfr",
- "description": "Bad named entity: Wfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Wfr"
- ]
- ]
- },
- {
- "input": "𝔚",
- "description": "Named entity: Wfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1a"
- ]
- ]
- },
- {
- "input": "&Wopf",
- "description": "Bad named entity: Wopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Wopf"
- ]
- ]
- },
- {
- "input": "𝕎",
- "description": "Named entity: Wopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4e"
- ]
- ]
- },
- {
- "input": "&Wscr",
- "description": "Bad named entity: Wscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Wscr"
- ]
- ]
- },
- {
- "input": "𝒲",
- "description": "Named entity: Wscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb2"
- ]
- ]
- },
- {
- "input": "&Xfr",
- "description": "Bad named entity: Xfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Xfr"
- ]
- ]
- },
- {
- "input": "𝔛",
- "description": "Named entity: Xfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1b"
- ]
- ]
- },
- {
- "input": "&Xi",
- "description": "Bad named entity: Xi without a semi-colon",
- "output": [
- [
- "Character",
- "&Xi"
- ]
- ]
- },
- {
- "input": "Ξ",
- "description": "Named entity: Xi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u039e"
- ]
- ]
- },
- {
- "input": "&Xopf",
- "description": "Bad named entity: Xopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Xopf"
- ]
- ]
- },
- {
- "input": "𝕏",
- "description": "Named entity: Xopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd4f"
- ]
- ]
- },
- {
- "input": "&Xscr",
- "description": "Bad named entity: Xscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Xscr"
- ]
- ]
- },
- {
- "input": "𝒳",
- "description": "Named entity: Xscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb3"
- ]
- ]
- },
- {
- "input": "&YAcy",
- "description": "Bad named entity: YAcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YAcy"
- ]
- ]
- },
- {
- "input": "Я",
- "description": "Named entity: YAcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042f"
- ]
- ]
- },
- {
- "input": "&YIcy",
- "description": "Bad named entity: YIcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YIcy"
- ]
- ]
- },
- {
- "input": "Ї",
- "description": "Named entity: YIcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0407"
- ]
- ]
- },
- {
- "input": "&YUcy",
- "description": "Bad named entity: YUcy without a semi-colon",
- "output": [
- [
- "Character",
- "&YUcy"
- ]
- ]
- },
- {
- "input": "Ю",
- "description": "Named entity: YUcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042e"
- ]
- ]
- },
- {
- "input": "Ý",
- "description": "Named entity: Yacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00dd"
- ]
- ]
- },
- {
- "input": "Ý",
- "description": "Named entity: Yacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00dd"
- ]
- ]
- },
- {
- "input": "&Ycirc",
- "description": "Bad named entity: Ycirc without a semi-colon",
- "output": [
- [
- "Character",
- "&Ycirc"
- ]
- ]
- },
- {
- "input": "Ŷ",
- "description": "Named entity: Ycirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0176"
- ]
- ]
- },
- {
- "input": "&Ycy",
- "description": "Bad named entity: Ycy without a semi-colon",
- "output": [
- [
- "Character",
- "&Ycy"
- ]
- ]
- },
- {
- "input": "Ы",
- "description": "Named entity: Ycy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u042b"
- ]
- ]
- },
- {
- "input": "&Yfr",
- "description": "Bad named entity: Yfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Yfr"
- ]
- ]
- },
- {
- "input": "𝔜",
- "description": "Named entity: Yfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1c"
- ]
- ]
- },
- {
- "input": "&Yopf",
- "description": "Bad named entity: Yopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Yopf"
- ]
- ]
- },
- {
- "input": "𝕐",
- "description": "Named entity: Yopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd50"
- ]
- ]
- },
- {
- "input": "&Yscr",
- "description": "Bad named entity: Yscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Yscr"
- ]
- ]
- },
- {
- "input": "𝒴",
- "description": "Named entity: Yscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb4"
- ]
- ]
- },
- {
- "input": "&Yuml",
- "description": "Bad named entity: Yuml without a semi-colon",
- "output": [
- [
- "Character",
- "&Yuml"
- ]
- ]
- },
- {
- "input": "Ÿ",
- "description": "Named entity: Yuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0178"
- ]
- ]
- },
- {
- "input": "&ZHcy",
- "description": "Bad named entity: ZHcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ZHcy"
- ]
- ]
- },
- {
- "input": "Ж",
- "description": "Named entity: ZHcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0416"
- ]
- ]
- },
- {
- "input": "&Zacute",
- "description": "Bad named entity: Zacute without a semi-colon",
- "output": [
- [
- "Character",
- "&Zacute"
- ]
- ]
- },
- {
- "input": "Ź",
- "description": "Named entity: Zacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0179"
- ]
- ]
- },
- {
- "input": "&Zcaron",
- "description": "Bad named entity: Zcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&Zcaron"
- ]
- ]
- },
- {
- "input": "Ž",
- "description": "Named entity: Zcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017d"
- ]
- ]
- },
- {
- "input": "&Zcy",
- "description": "Bad named entity: Zcy without a semi-colon",
- "output": [
- [
- "Character",
- "&Zcy"
- ]
- ]
- },
- {
- "input": "З",
- "description": "Named entity: Zcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0417"
- ]
- ]
- },
- {
- "input": "&Zdot",
- "description": "Bad named entity: Zdot without a semi-colon",
- "output": [
- [
- "Character",
- "&Zdot"
- ]
- ]
- },
- {
- "input": "Ż",
- "description": "Named entity: Zdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017b"
- ]
- ]
- },
- {
- "input": "&ZeroWidthSpace",
- "description": "Bad named entity: ZeroWidthSpace without a semi-colon",
- "output": [
- [
- "Character",
- "&ZeroWidthSpace"
- ]
- ]
- },
- {
- "input": "​",
- "description": "Named entity: ZeroWidthSpace; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200b"
- ]
- ]
- },
- {
- "input": "&Zeta",
- "description": "Bad named entity: Zeta without a semi-colon",
- "output": [
- [
- "Character",
- "&Zeta"
- ]
- ]
- },
- {
- "input": "Ζ",
- "description": "Named entity: Zeta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0396"
- ]
- ]
- },
- {
- "input": "&Zfr",
- "description": "Bad named entity: Zfr without a semi-colon",
- "output": [
- [
- "Character",
- "&Zfr"
- ]
- ]
- },
- {
- "input": "ℨ",
- "description": "Named entity: Zfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2128"
- ]
- ]
- },
- {
- "input": "&Zopf",
- "description": "Bad named entity: Zopf without a semi-colon",
- "output": [
- [
- "Character",
- "&Zopf"
- ]
- ]
- },
- {
- "input": "ℤ",
- "description": "Named entity: Zopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2124"
- ]
- ]
- },
- {
- "input": "&Zscr",
- "description": "Bad named entity: Zscr without a semi-colon",
- "output": [
- [
- "Character",
- "&Zscr"
- ]
- ]
- },
- {
- "input": "𝒵",
- "description": "Named entity: Zscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb5"
- ]
- ]
- },
- {
- "input": "á",
- "description": "Named entity: aacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e1"
- ]
- ]
- },
- {
- "input": "á",
- "description": "Named entity: aacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e1"
- ]
- ]
- },
- {
- "input": "&abreve",
- "description": "Bad named entity: abreve without a semi-colon",
- "output": [
- [
- "Character",
- "&abreve"
- ]
- ]
- },
- {
- "input": "ă",
- "description": "Named entity: abreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0103"
- ]
- ]
- },
- {
- "input": "&ac",
- "description": "Bad named entity: ac without a semi-colon",
- "output": [
- [
- "Character",
- "&ac"
- ]
- ]
- },
- {
- "input": "∾",
- "description": "Named entity: ac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e"
- ]
- ]
- },
- {
- "input": "&acE",
- "description": "Bad named entity: acE without a semi-colon",
- "output": [
- [
- "Character",
- "&acE"
- ]
- ]
- },
- {
- "input": "∾̳",
- "description": "Named entity: acE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e\u0333"
- ]
- ]
- },
- {
- "input": "&acd",
- "description": "Bad named entity: acd without a semi-colon",
- "output": [
- [
- "Character",
- "&acd"
- ]
- ]
- },
- {
- "input": "∿",
- "description": "Named entity: acd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223f"
- ]
- ]
- },
- {
- "input": "â",
- "description": "Named entity: acirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e2"
- ]
- ]
- },
- {
- "input": "â",
- "description": "Named entity: acirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e2"
- ]
- ]
- },
- {
- "input": "´",
- "description": "Named entity: acute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "´",
- "description": "Named entity: acute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b4"
- ]
- ]
- },
- {
- "input": "&acy",
- "description": "Bad named entity: acy without a semi-colon",
- "output": [
- [
- "Character",
- "&acy"
- ]
- ]
- },
- {
- "input": "а",
- "description": "Named entity: acy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0430"
- ]
- ]
- },
- {
- "input": "æ",
- "description": "Named entity: aelig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e6"
- ]
- ]
- },
- {
- "input": "æ",
- "description": "Named entity: aelig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e6"
- ]
- ]
- },
- {
- "input": "&af",
- "description": "Bad named entity: af without a semi-colon",
- "output": [
- [
- "Character",
- "&af"
- ]
- ]
- },
- {
- "input": "⁡",
- "description": "Named entity: af; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2061"
- ]
- ]
- },
- {
- "input": "&afr",
- "description": "Bad named entity: afr without a semi-colon",
- "output": [
- [
- "Character",
- "&afr"
- ]
- ]
- },
- {
- "input": "𝔞",
- "description": "Named entity: afr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1e"
- ]
- ]
- },
- {
- "input": "à",
- "description": "Named entity: agrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e0"
- ]
- ]
- },
- {
- "input": "à",
- "description": "Named entity: agrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e0"
- ]
- ]
- },
- {
- "input": "&alefsym",
- "description": "Bad named entity: alefsym without a semi-colon",
- "output": [
- [
- "Character",
- "&alefsym"
- ]
- ]
- },
- {
- "input": "ℵ",
- "description": "Named entity: alefsym; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2135"
- ]
- ]
- },
- {
- "input": "&aleph",
- "description": "Bad named entity: aleph without a semi-colon",
- "output": [
- [
- "Character",
- "&aleph"
- ]
- ]
- },
- {
- "input": "ℵ",
- "description": "Named entity: aleph; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2135"
- ]
- ]
- },
- {
- "input": "&alpha",
- "description": "Bad named entity: alpha without a semi-colon",
- "output": [
- [
- "Character",
- "&alpha"
- ]
- ]
- },
- {
- "input": "α",
- "description": "Named entity: alpha; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b1"
- ]
- ]
- },
- {
- "input": "&amacr",
- "description": "Bad named entity: amacr without a semi-colon",
- "output": [
- [
- "Character",
- "&amacr"
- ]
- ]
- },
- {
- "input": "ā",
- "description": "Named entity: amacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0101"
- ]
- ]
- },
- {
- "input": "&amalg",
- "description": "Bad named entity: amalg without a semi-colon",
- "output": [
- [
- "Character",
- "&amalg"
- ]
- ]
- },
- {
- "input": "⨿",
- "description": "Named entity: amalg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3f"
- ]
- ]
- },
- {
- "input": "&",
- "description": "Named entity: amp without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&",
- "description": "Named entity: amp; with a semi-colon",
- "output": [
- [
- "Character",
- "&"
- ]
- ]
- },
- {
- "input": "&and",
- "description": "Bad named entity: and without a semi-colon",
- "output": [
- [
- "Character",
- "&and"
- ]
- ]
- },
- {
- "input": "∧",
- "description": "Named entity: and; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2227"
- ]
- ]
- },
- {
- "input": "&andand",
- "description": "Bad named entity: andand without a semi-colon",
- "output": [
- [
- "Character",
- "&andand"
- ]
- ]
- },
- {
- "input": "⩕",
- "description": "Named entity: andand; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a55"
- ]
- ]
- },
- {
- "input": "&andd",
- "description": "Bad named entity: andd without a semi-colon",
- "output": [
- [
- "Character",
- "&andd"
- ]
- ]
- },
- {
- "input": "⩜",
- "description": "Named entity: andd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5c"
- ]
- ]
- },
- {
- "input": "&andslope",
- "description": "Bad named entity: andslope without a semi-colon",
- "output": [
- [
- "Character",
- "&andslope"
- ]
- ]
- },
- {
- "input": "⩘",
- "description": "Named entity: andslope; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a58"
- ]
- ]
- },
- {
- "input": "&andv",
- "description": "Bad named entity: andv without a semi-colon",
- "output": [
- [
- "Character",
- "&andv"
- ]
- ]
- },
- {
- "input": "⩚",
- "description": "Named entity: andv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5a"
- ]
- ]
- },
- {
- "input": "&ang",
- "description": "Bad named entity: ang without a semi-colon",
- "output": [
- [
- "Character",
- "&ang"
- ]
- ]
- },
- {
- "input": "∠",
- "description": "Named entity: ang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220"
- ]
- ]
- },
- {
- "input": "&ange",
- "description": "Bad named entity: ange without a semi-colon",
- "output": [
- [
- "Character",
- "&ange"
- ]
- ]
- },
- {
- "input": "⦤",
- "description": "Named entity: ange; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a4"
- ]
- ]
- },
- {
- "input": "&angle",
- "description": "Bad named entity: angle without a semi-colon",
- "output": [
- [
- "Character",
- "&angle"
- ]
- ]
- },
- {
- "input": "∠",
- "description": "Named entity: angle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220"
- ]
- ]
- },
- {
- "input": "&angmsd",
- "description": "Bad named entity: angmsd without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsd"
- ]
- ]
- },
- {
- "input": "∡",
- "description": "Named entity: angmsd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2221"
- ]
- ]
- },
- {
- "input": "&angmsdaa",
- "description": "Bad named entity: angmsdaa without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdaa"
- ]
- ]
- },
- {
- "input": "⦨",
- "description": "Named entity: angmsdaa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a8"
- ]
- ]
- },
- {
- "input": "&angmsdab",
- "description": "Bad named entity: angmsdab without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdab"
- ]
- ]
- },
- {
- "input": "⦩",
- "description": "Named entity: angmsdab; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a9"
- ]
- ]
- },
- {
- "input": "&angmsdac",
- "description": "Bad named entity: angmsdac without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdac"
- ]
- ]
- },
- {
- "input": "⦪",
- "description": "Named entity: angmsdac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29aa"
- ]
- ]
- },
- {
- "input": "&angmsdad",
- "description": "Bad named entity: angmsdad without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdad"
- ]
- ]
- },
- {
- "input": "⦫",
- "description": "Named entity: angmsdad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ab"
- ]
- ]
- },
- {
- "input": "&angmsdae",
- "description": "Bad named entity: angmsdae without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdae"
- ]
- ]
- },
- {
- "input": "⦬",
- "description": "Named entity: angmsdae; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ac"
- ]
- ]
- },
- {
- "input": "&angmsdaf",
- "description": "Bad named entity: angmsdaf without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdaf"
- ]
- ]
- },
- {
- "input": "⦭",
- "description": "Named entity: angmsdaf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ad"
- ]
- ]
- },
- {
- "input": "&angmsdag",
- "description": "Bad named entity: angmsdag without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdag"
- ]
- ]
- },
- {
- "input": "⦮",
- "description": "Named entity: angmsdag; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ae"
- ]
- ]
- },
- {
- "input": "&angmsdah",
- "description": "Bad named entity: angmsdah without a semi-colon",
- "output": [
- [
- "Character",
- "&angmsdah"
- ]
- ]
- },
- {
- "input": "⦯",
- "description": "Named entity: angmsdah; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29af"
- ]
- ]
- },
- {
- "input": "&angrt",
- "description": "Bad named entity: angrt without a semi-colon",
- "output": [
- [
- "Character",
- "&angrt"
- ]
- ]
- },
- {
- "input": "∟",
- "description": "Named entity: angrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221f"
- ]
- ]
- },
- {
- "input": "&angrtvb",
- "description": "Bad named entity: angrtvb without a semi-colon",
- "output": [
- [
- "Character",
- "&angrtvb"
- ]
- ]
- },
- {
- "input": "⊾",
- "description": "Named entity: angrtvb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22be"
- ]
- ]
- },
- {
- "input": "&angrtvbd",
- "description": "Bad named entity: angrtvbd without a semi-colon",
- "output": [
- [
- "Character",
- "&angrtvbd"
- ]
- ]
- },
- {
- "input": "⦝",
- "description": "Named entity: angrtvbd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299d"
- ]
- ]
- },
- {
- "input": "&angsph",
- "description": "Bad named entity: angsph without a semi-colon",
- "output": [
- [
- "Character",
- "&angsph"
- ]
- ]
- },
- {
- "input": "∢",
- "description": "Named entity: angsph; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2222"
- ]
- ]
- },
- {
- "input": "&angst",
- "description": "Bad named entity: angst without a semi-colon",
- "output": [
- [
- "Character",
- "&angst"
- ]
- ]
- },
- {
- "input": "Å",
- "description": "Named entity: angst; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00c5"
- ]
- ]
- },
- {
- "input": "&angzarr",
- "description": "Bad named entity: angzarr without a semi-colon",
- "output": [
- [
- "Character",
- "&angzarr"
- ]
- ]
- },
- {
- "input": "⍼",
- "description": "Named entity: angzarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u237c"
- ]
- ]
- },
- {
- "input": "&aogon",
- "description": "Bad named entity: aogon without a semi-colon",
- "output": [
- [
- "Character",
- "&aogon"
- ]
- ]
- },
- {
- "input": "ą",
- "description": "Named entity: aogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0105"
- ]
- ]
- },
- {
- "input": "&aopf",
- "description": "Bad named entity: aopf without a semi-colon",
- "output": [
- [
- "Character",
- "&aopf"
- ]
- ]
- },
- {
- "input": "𝕒",
- "description": "Named entity: aopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd52"
- ]
- ]
- },
- {
- "input": "&ap",
- "description": "Bad named entity: ap without a semi-colon",
- "output": [
- [
- "Character",
- "&ap"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: ap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&apE",
- "description": "Bad named entity: apE without a semi-colon",
- "output": [
- [
- "Character",
- "&apE"
- ]
- ]
- },
- {
- "input": "⩰",
- "description": "Named entity: apE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a70"
- ]
- ]
- },
- {
- "input": "&apacir",
- "description": "Bad named entity: apacir without a semi-colon",
- "output": [
- [
- "Character",
- "&apacir"
- ]
- ]
- },
- {
- "input": "⩯",
- "description": "Named entity: apacir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6f"
- ]
- ]
- },
- {
- "input": "&ape",
- "description": "Bad named entity: ape without a semi-colon",
- "output": [
- [
- "Character",
- "&ape"
- ]
- ]
- },
- {
- "input": "≊",
- "description": "Named entity: ape; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224a"
- ]
- ]
- },
- {
- "input": "&apid",
- "description": "Bad named entity: apid without a semi-colon",
- "output": [
- [
- "Character",
- "&apid"
- ]
- ]
- },
- {
- "input": "≋",
- "description": "Named entity: apid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224b"
- ]
- ]
- },
- {
- "input": "&apos",
- "description": "Bad named entity: apos without a semi-colon",
- "output": [
- [
- "Character",
- "&apos"
- ]
- ]
- },
- {
- "input": "'",
- "description": "Named entity: apos; with a semi-colon",
- "output": [
- [
- "Character",
- "'"
- ]
- ]
- },
- {
- "input": "&approx",
- "description": "Bad named entity: approx without a semi-colon",
- "output": [
- [
- "Character",
- "&approx"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: approx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&approxeq",
- "description": "Bad named entity: approxeq without a semi-colon",
- "output": [
- [
- "Character",
- "&approxeq"
- ]
- ]
- },
- {
- "input": "≊",
- "description": "Named entity: approxeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224a"
- ]
- ]
- },
- {
- "input": "å",
- "description": "Named entity: aring without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e5"
- ]
- ]
- },
- {
- "input": "å",
- "description": "Named entity: aring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e5"
- ]
- ]
- },
- {
- "input": "&ascr",
- "description": "Bad named entity: ascr without a semi-colon",
- "output": [
- [
- "Character",
- "&ascr"
- ]
- ]
- },
- {
- "input": "𝒶",
- "description": "Named entity: ascr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb6"
- ]
- ]
- },
- {
- "input": "&ast",
- "description": "Bad named entity: ast without a semi-colon",
- "output": [
- [
- "Character",
- "&ast"
- ]
- ]
- },
- {
- "input": "*",
- "description": "Named entity: ast; with a semi-colon",
- "output": [
- [
- "Character",
- "*"
- ]
- ]
- },
- {
- "input": "&asymp",
- "description": "Bad named entity: asymp without a semi-colon",
- "output": [
- [
- "Character",
- "&asymp"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: asymp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&asympeq",
- "description": "Bad named entity: asympeq without a semi-colon",
- "output": [
- [
- "Character",
- "&asympeq"
- ]
- ]
- },
- {
- "input": "≍",
- "description": "Named entity: asympeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d"
- ]
- ]
- },
- {
- "input": "ã",
- "description": "Named entity: atilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e3"
- ]
- ]
- },
- {
- "input": "ã",
- "description": "Named entity: atilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e3"
- ]
- ]
- },
- {
- "input": "ä",
- "description": "Named entity: auml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e4"
- ]
- ]
- },
- {
- "input": "ä",
- "description": "Named entity: auml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e4"
- ]
- ]
- },
- {
- "input": "&awconint",
- "description": "Bad named entity: awconint without a semi-colon",
- "output": [
- [
- "Character",
- "&awconint"
- ]
- ]
- },
- {
- "input": "∳",
- "description": "Named entity: awconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2233"
- ]
- ]
- },
- {
- "input": "&awint",
- "description": "Bad named entity: awint without a semi-colon",
- "output": [
- [
- "Character",
- "&awint"
- ]
- ]
- },
- {
- "input": "⨑",
- "description": "Named entity: awint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a11"
- ]
- ]
- },
- {
- "input": "&bNot",
- "description": "Bad named entity: bNot without a semi-colon",
- "output": [
- [
- "Character",
- "&bNot"
- ]
- ]
- },
- {
- "input": "⫭",
- "description": "Named entity: bNot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aed"
- ]
- ]
- },
- {
- "input": "&backcong",
- "description": "Bad named entity: backcong without a semi-colon",
- "output": [
- [
- "Character",
- "&backcong"
- ]
- ]
- },
- {
- "input": "≌",
- "description": "Named entity: backcong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224c"
- ]
- ]
- },
- {
- "input": "&backepsilon",
- "description": "Bad named entity: backepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&backepsilon"
- ]
- ]
- },
- {
- "input": "϶",
- "description": "Named entity: backepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f6"
- ]
- ]
- },
- {
- "input": "&backprime",
- "description": "Bad named entity: backprime without a semi-colon",
- "output": [
- [
- "Character",
- "&backprime"
- ]
- ]
- },
- {
- "input": "‵",
- "description": "Named entity: backprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2035"
- ]
- ]
- },
- {
- "input": "&backsim",
- "description": "Bad named entity: backsim without a semi-colon",
- "output": [
- [
- "Character",
- "&backsim"
- ]
- ]
- },
- {
- "input": "∽",
- "description": "Named entity: backsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d"
- ]
- ]
- },
- {
- "input": "&backsimeq",
- "description": "Bad named entity: backsimeq without a semi-colon",
- "output": [
- [
- "Character",
- "&backsimeq"
- ]
- ]
- },
- {
- "input": "⋍",
- "description": "Named entity: backsimeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cd"
- ]
- ]
- },
- {
- "input": "&barvee",
- "description": "Bad named entity: barvee without a semi-colon",
- "output": [
- [
- "Character",
- "&barvee"
- ]
- ]
- },
- {
- "input": "⊽",
- "description": "Named entity: barvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bd"
- ]
- ]
- },
- {
- "input": "&barwed",
- "description": "Bad named entity: barwed without a semi-colon",
- "output": [
- [
- "Character",
- "&barwed"
- ]
- ]
- },
- {
- "input": "⌅",
- "description": "Named entity: barwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2305"
- ]
- ]
- },
- {
- "input": "&barwedge",
- "description": "Bad named entity: barwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&barwedge"
- ]
- ]
- },
- {
- "input": "⌅",
- "description": "Named entity: barwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2305"
- ]
- ]
- },
- {
- "input": "&bbrk",
- "description": "Bad named entity: bbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&bbrk"
- ]
- ]
- },
- {
- "input": "⎵",
- "description": "Named entity: bbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b5"
- ]
- ]
- },
- {
- "input": "&bbrktbrk",
- "description": "Bad named entity: bbrktbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&bbrktbrk"
- ]
- ]
- },
- {
- "input": "⎶",
- "description": "Named entity: bbrktbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b6"
- ]
- ]
- },
- {
- "input": "&bcong",
- "description": "Bad named entity: bcong without a semi-colon",
- "output": [
- [
- "Character",
- "&bcong"
- ]
- ]
- },
- {
- "input": "≌",
- "description": "Named entity: bcong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224c"
- ]
- ]
- },
- {
- "input": "&bcy",
- "description": "Bad named entity: bcy without a semi-colon",
- "output": [
- [
- "Character",
- "&bcy"
- ]
- ]
- },
- {
- "input": "б",
- "description": "Named entity: bcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0431"
- ]
- ]
- },
- {
- "input": "&bdquo",
- "description": "Bad named entity: bdquo without a semi-colon",
- "output": [
- [
- "Character",
- "&bdquo"
- ]
- ]
- },
- {
- "input": "„",
- "description": "Named entity: bdquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201e"
- ]
- ]
- },
- {
- "input": "&becaus",
- "description": "Bad named entity: becaus without a semi-colon",
- "output": [
- [
- "Character",
- "&becaus"
- ]
- ]
- },
- {
- "input": "∵",
- "description": "Named entity: becaus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&because",
- "description": "Bad named entity: because without a semi-colon",
- "output": [
- [
- "Character",
- "&because"
- ]
- ]
- },
- {
- "input": "∵",
- "description": "Named entity: because; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2235"
- ]
- ]
- },
- {
- "input": "&bemptyv",
- "description": "Bad named entity: bemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&bemptyv"
- ]
- ]
- },
- {
- "input": "⦰",
- "description": "Named entity: bemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b0"
- ]
- ]
- },
- {
- "input": "&bepsi",
- "description": "Bad named entity: bepsi without a semi-colon",
- "output": [
- [
- "Character",
- "&bepsi"
- ]
- ]
- },
- {
- "input": "϶",
- "description": "Named entity: bepsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f6"
- ]
- ]
- },
- {
- "input": "&bernou",
- "description": "Bad named entity: bernou without a semi-colon",
- "output": [
- [
- "Character",
- "&bernou"
- ]
- ]
- },
- {
- "input": "ℬ",
- "description": "Named entity: bernou; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212c"
- ]
- ]
- },
- {
- "input": "&beta",
- "description": "Bad named entity: beta without a semi-colon",
- "output": [
- [
- "Character",
- "&beta"
- ]
- ]
- },
- {
- "input": "β",
- "description": "Named entity: beta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b2"
- ]
- ]
- },
- {
- "input": "&beth",
- "description": "Bad named entity: beth without a semi-colon",
- "output": [
- [
- "Character",
- "&beth"
- ]
- ]
- },
- {
- "input": "ℶ",
- "description": "Named entity: beth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2136"
- ]
- ]
- },
- {
- "input": "&between",
- "description": "Bad named entity: between without a semi-colon",
- "output": [
- [
- "Character",
- "&between"
- ]
- ]
- },
- {
- "input": "≬",
- "description": "Named entity: between; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226c"
- ]
- ]
- },
- {
- "input": "&bfr",
- "description": "Bad named entity: bfr without a semi-colon",
- "output": [
- [
- "Character",
- "&bfr"
- ]
- ]
- },
- {
- "input": "𝔟",
- "description": "Named entity: bfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd1f"
- ]
- ]
- },
- {
- "input": "&bigcap",
- "description": "Bad named entity: bigcap without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcap"
- ]
- ]
- },
- {
- "input": "⋂",
- "description": "Named entity: bigcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&bigcirc",
- "description": "Bad named entity: bigcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcirc"
- ]
- ]
- },
- {
- "input": "◯",
- "description": "Named entity: bigcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ef"
- ]
- ]
- },
- {
- "input": "&bigcup",
- "description": "Bad named entity: bigcup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigcup"
- ]
- ]
- },
- {
- "input": "⋃",
- "description": "Named entity: bigcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&bigodot",
- "description": "Bad named entity: bigodot without a semi-colon",
- "output": [
- [
- "Character",
- "&bigodot"
- ]
- ]
- },
- {
- "input": "⨀",
- "description": "Named entity: bigodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a00"
- ]
- ]
- },
- {
- "input": "&bigoplus",
- "description": "Bad named entity: bigoplus without a semi-colon",
- "output": [
- [
- "Character",
- "&bigoplus"
- ]
- ]
- },
- {
- "input": "⨁",
- "description": "Named entity: bigoplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a01"
- ]
- ]
- },
- {
- "input": "&bigotimes",
- "description": "Bad named entity: bigotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&bigotimes"
- ]
- ]
- },
- {
- "input": "⨂",
- "description": "Named entity: bigotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a02"
- ]
- ]
- },
- {
- "input": "&bigsqcup",
- "description": "Bad named entity: bigsqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigsqcup"
- ]
- ]
- },
- {
- "input": "⨆",
- "description": "Named entity: bigsqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a06"
- ]
- ]
- },
- {
- "input": "&bigstar",
- "description": "Bad named entity: bigstar without a semi-colon",
- "output": [
- [
- "Character",
- "&bigstar"
- ]
- ]
- },
- {
- "input": "★",
- "description": "Named entity: bigstar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2605"
- ]
- ]
- },
- {
- "input": "&bigtriangledown",
- "description": "Bad named entity: bigtriangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&bigtriangledown"
- ]
- ]
- },
- {
- "input": "▽",
- "description": "Named entity: bigtriangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bd"
- ]
- ]
- },
- {
- "input": "&bigtriangleup",
- "description": "Bad named entity: bigtriangleup without a semi-colon",
- "output": [
- [
- "Character",
- "&bigtriangleup"
- ]
- ]
- },
- {
- "input": "△",
- "description": "Named entity: bigtriangleup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b3"
- ]
- ]
- },
- {
- "input": "&biguplus",
- "description": "Bad named entity: biguplus without a semi-colon",
- "output": [
- [
- "Character",
- "&biguplus"
- ]
- ]
- },
- {
- "input": "⨄",
- "description": "Named entity: biguplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a04"
- ]
- ]
- },
- {
- "input": "&bigvee",
- "description": "Bad named entity: bigvee without a semi-colon",
- "output": [
- [
- "Character",
- "&bigvee"
- ]
- ]
- },
- {
- "input": "⋁",
- "description": "Named entity: bigvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&bigwedge",
- "description": "Bad named entity: bigwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&bigwedge"
- ]
- ]
- },
- {
- "input": "⋀",
- "description": "Named entity: bigwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "&bkarow",
- "description": "Bad named entity: bkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&bkarow"
- ]
- ]
- },
- {
- "input": "⤍",
- "description": "Named entity: bkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290d"
- ]
- ]
- },
- {
- "input": "&blacklozenge",
- "description": "Bad named entity: blacklozenge without a semi-colon",
- "output": [
- [
- "Character",
- "&blacklozenge"
- ]
- ]
- },
- {
- "input": "⧫",
- "description": "Named entity: blacklozenge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29eb"
- ]
- ]
- },
- {
- "input": "&blacksquare",
- "description": "Bad named entity: blacksquare without a semi-colon",
- "output": [
- [
- "Character",
- "&blacksquare"
- ]
- ]
- },
- {
- "input": "▪",
- "description": "Named entity: blacksquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&blacktriangle",
- "description": "Bad named entity: blacktriangle without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangle"
- ]
- ]
- },
- {
- "input": "▴",
- "description": "Named entity: blacktriangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b4"
- ]
- ]
- },
- {
- "input": "&blacktriangledown",
- "description": "Bad named entity: blacktriangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangledown"
- ]
- ]
- },
- {
- "input": "▾",
- "description": "Named entity: blacktriangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25be"
- ]
- ]
- },
- {
- "input": "&blacktriangleleft",
- "description": "Bad named entity: blacktriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangleleft"
- ]
- ]
- },
- {
- "input": "◂",
- "description": "Named entity: blacktriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c2"
- ]
- ]
- },
- {
- "input": "&blacktriangleright",
- "description": "Bad named entity: blacktriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&blacktriangleright"
- ]
- ]
- },
- {
- "input": "▸",
- "description": "Named entity: blacktriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b8"
- ]
- ]
- },
- {
- "input": "&blank",
- "description": "Bad named entity: blank without a semi-colon",
- "output": [
- [
- "Character",
- "&blank"
- ]
- ]
- },
- {
- "input": "␣",
- "description": "Named entity: blank; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2423"
- ]
- ]
- },
- {
- "input": "&blk12",
- "description": "Bad named entity: blk12 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk12"
- ]
- ]
- },
- {
- "input": "▒",
- "description": "Named entity: blk12; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2592"
- ]
- ]
- },
- {
- "input": "&blk14",
- "description": "Bad named entity: blk14 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk14"
- ]
- ]
- },
- {
- "input": "░",
- "description": "Named entity: blk14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2591"
- ]
- ]
- },
- {
- "input": "&blk34",
- "description": "Bad named entity: blk34 without a semi-colon",
- "output": [
- [
- "Character",
- "&blk34"
- ]
- ]
- },
- {
- "input": "▓",
- "description": "Named entity: blk34; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2593"
- ]
- ]
- },
- {
- "input": "&block",
- "description": "Bad named entity: block without a semi-colon",
- "output": [
- [
- "Character",
- "&block"
- ]
- ]
- },
- {
- "input": "█",
- "description": "Named entity: block; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2588"
- ]
- ]
- },
- {
- "input": "&bne",
- "description": "Bad named entity: bne without a semi-colon",
- "output": [
- [
- "Character",
- "&bne"
- ]
- ]
- },
- {
- "input": "=⃥",
- "description": "Named entity: bne; with a semi-colon",
- "output": [
- [
- "Character",
- "=\u20e5"
- ]
- ]
- },
- {
- "input": "&bnequiv",
- "description": "Bad named entity: bnequiv without a semi-colon",
- "output": [
- [
- "Character",
- "&bnequiv"
- ]
- ]
- },
- {
- "input": "≡⃥",
- "description": "Named entity: bnequiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261\u20e5"
- ]
- ]
- },
- {
- "input": "&bnot",
- "description": "Bad named entity: bnot without a semi-colon",
- "output": [
- [
- "Character",
- "&bnot"
- ]
- ]
- },
- {
- "input": "⌐",
- "description": "Named entity: bnot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2310"
- ]
- ]
- },
- {
- "input": "&bopf",
- "description": "Bad named entity: bopf without a semi-colon",
- "output": [
- [
- "Character",
- "&bopf"
- ]
- ]
- },
- {
- "input": "𝕓",
- "description": "Named entity: bopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd53"
- ]
- ]
- },
- {
- "input": "&bot",
- "description": "Bad named entity: bot without a semi-colon",
- "output": [
- [
- "Character",
- "&bot"
- ]
- ]
- },
- {
- "input": "⊥",
- "description": "Named entity: bot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&bottom",
- "description": "Bad named entity: bottom without a semi-colon",
- "output": [
- [
- "Character",
- "&bottom"
- ]
- ]
- },
- {
- "input": "⊥",
- "description": "Named entity: bottom; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&bowtie",
- "description": "Bad named entity: bowtie without a semi-colon",
- "output": [
- [
- "Character",
- "&bowtie"
- ]
- ]
- },
- {
- "input": "⋈",
- "description": "Named entity: bowtie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c8"
- ]
- ]
- },
- {
- "input": "&boxDL",
- "description": "Bad named entity: boxDL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDL"
- ]
- ]
- },
- {
- "input": "╗",
- "description": "Named entity: boxDL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2557"
- ]
- ]
- },
- {
- "input": "&boxDR",
- "description": "Bad named entity: boxDR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDR"
- ]
- ]
- },
- {
- "input": "╔",
- "description": "Named entity: boxDR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2554"
- ]
- ]
- },
- {
- "input": "&boxDl",
- "description": "Bad named entity: boxDl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDl"
- ]
- ]
- },
- {
- "input": "╖",
- "description": "Named entity: boxDl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2556"
- ]
- ]
- },
- {
- "input": "&boxDr",
- "description": "Bad named entity: boxDr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxDr"
- ]
- ]
- },
- {
- "input": "╓",
- "description": "Named entity: boxDr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2553"
- ]
- ]
- },
- {
- "input": "&boxH",
- "description": "Bad named entity: boxH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxH"
- ]
- ]
- },
- {
- "input": "═",
- "description": "Named entity: boxH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2550"
- ]
- ]
- },
- {
- "input": "&boxHD",
- "description": "Bad named entity: boxHD without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHD"
- ]
- ]
- },
- {
- "input": "╦",
- "description": "Named entity: boxHD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2566"
- ]
- ]
- },
- {
- "input": "&boxHU",
- "description": "Bad named entity: boxHU without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHU"
- ]
- ]
- },
- {
- "input": "╩",
- "description": "Named entity: boxHU; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2569"
- ]
- ]
- },
- {
- "input": "&boxHd",
- "description": "Bad named entity: boxHd without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHd"
- ]
- ]
- },
- {
- "input": "╤",
- "description": "Named entity: boxHd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2564"
- ]
- ]
- },
- {
- "input": "&boxHu",
- "description": "Bad named entity: boxHu without a semi-colon",
- "output": [
- [
- "Character",
- "&boxHu"
- ]
- ]
- },
- {
- "input": "╧",
- "description": "Named entity: boxHu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2567"
- ]
- ]
- },
- {
- "input": "&boxUL",
- "description": "Bad named entity: boxUL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUL"
- ]
- ]
- },
- {
- "input": "╝",
- "description": "Named entity: boxUL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255d"
- ]
- ]
- },
- {
- "input": "&boxUR",
- "description": "Bad named entity: boxUR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUR"
- ]
- ]
- },
- {
- "input": "╚",
- "description": "Named entity: boxUR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255a"
- ]
- ]
- },
- {
- "input": "&boxUl",
- "description": "Bad named entity: boxUl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUl"
- ]
- ]
- },
- {
- "input": "╜",
- "description": "Named entity: boxUl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255c"
- ]
- ]
- },
- {
- "input": "&boxUr",
- "description": "Bad named entity: boxUr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxUr"
- ]
- ]
- },
- {
- "input": "╙",
- "description": "Named entity: boxUr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2559"
- ]
- ]
- },
- {
- "input": "&boxV",
- "description": "Bad named entity: boxV without a semi-colon",
- "output": [
- [
- "Character",
- "&boxV"
- ]
- ]
- },
- {
- "input": "║",
- "description": "Named entity: boxV; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2551"
- ]
- ]
- },
- {
- "input": "&boxVH",
- "description": "Bad named entity: boxVH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVH"
- ]
- ]
- },
- {
- "input": "╬",
- "description": "Named entity: boxVH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256c"
- ]
- ]
- },
- {
- "input": "&boxVL",
- "description": "Bad named entity: boxVL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVL"
- ]
- ]
- },
- {
- "input": "╣",
- "description": "Named entity: boxVL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2563"
- ]
- ]
- },
- {
- "input": "&boxVR",
- "description": "Bad named entity: boxVR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVR"
- ]
- ]
- },
- {
- "input": "╠",
- "description": "Named entity: boxVR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2560"
- ]
- ]
- },
- {
- "input": "&boxVh",
- "description": "Bad named entity: boxVh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVh"
- ]
- ]
- },
- {
- "input": "╫",
- "description": "Named entity: boxVh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256b"
- ]
- ]
- },
- {
- "input": "&boxVl",
- "description": "Bad named entity: boxVl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVl"
- ]
- ]
- },
- {
- "input": "╢",
- "description": "Named entity: boxVl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2562"
- ]
- ]
- },
- {
- "input": "&boxVr",
- "description": "Bad named entity: boxVr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxVr"
- ]
- ]
- },
- {
- "input": "╟",
- "description": "Named entity: boxVr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255f"
- ]
- ]
- },
- {
- "input": "&boxbox",
- "description": "Bad named entity: boxbox without a semi-colon",
- "output": [
- [
- "Character",
- "&boxbox"
- ]
- ]
- },
- {
- "input": "⧉",
- "description": "Named entity: boxbox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c9"
- ]
- ]
- },
- {
- "input": "&boxdL",
- "description": "Bad named entity: boxdL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdL"
- ]
- ]
- },
- {
- "input": "╕",
- "description": "Named entity: boxdL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2555"
- ]
- ]
- },
- {
- "input": "&boxdR",
- "description": "Bad named entity: boxdR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdR"
- ]
- ]
- },
- {
- "input": "╒",
- "description": "Named entity: boxdR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2552"
- ]
- ]
- },
- {
- "input": "&boxdl",
- "description": "Bad named entity: boxdl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdl"
- ]
- ]
- },
- {
- "input": "┐",
- "description": "Named entity: boxdl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2510"
- ]
- ]
- },
- {
- "input": "&boxdr",
- "description": "Bad named entity: boxdr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxdr"
- ]
- ]
- },
- {
- "input": "┌",
- "description": "Named entity: boxdr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u250c"
- ]
- ]
- },
- {
- "input": "&boxh",
- "description": "Bad named entity: boxh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxh"
- ]
- ]
- },
- {
- "input": "─",
- "description": "Named entity: boxh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2500"
- ]
- ]
- },
- {
- "input": "&boxhD",
- "description": "Bad named entity: boxhD without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhD"
- ]
- ]
- },
- {
- "input": "╥",
- "description": "Named entity: boxhD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2565"
- ]
- ]
- },
- {
- "input": "&boxhU",
- "description": "Bad named entity: boxhU without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhU"
- ]
- ]
- },
- {
- "input": "╨",
- "description": "Named entity: boxhU; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2568"
- ]
- ]
- },
- {
- "input": "&boxhd",
- "description": "Bad named entity: boxhd without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhd"
- ]
- ]
- },
- {
- "input": "┬",
- "description": "Named entity: boxhd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u252c"
- ]
- ]
- },
- {
- "input": "&boxhu",
- "description": "Bad named entity: boxhu without a semi-colon",
- "output": [
- [
- "Character",
- "&boxhu"
- ]
- ]
- },
- {
- "input": "┴",
- "description": "Named entity: boxhu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2534"
- ]
- ]
- },
- {
- "input": "&boxminus",
- "description": "Bad named entity: boxminus without a semi-colon",
- "output": [
- [
- "Character",
- "&boxminus"
- ]
- ]
- },
- {
- "input": "⊟",
- "description": "Named entity: boxminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229f"
- ]
- ]
- },
- {
- "input": "&boxplus",
- "description": "Bad named entity: boxplus without a semi-colon",
- "output": [
- [
- "Character",
- "&boxplus"
- ]
- ]
- },
- {
- "input": "⊞",
- "description": "Named entity: boxplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229e"
- ]
- ]
- },
- {
- "input": "&boxtimes",
- "description": "Bad named entity: boxtimes without a semi-colon",
- "output": [
- [
- "Character",
- "&boxtimes"
- ]
- ]
- },
- {
- "input": "⊠",
- "description": "Named entity: boxtimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a0"
- ]
- ]
- },
- {
- "input": "&boxuL",
- "description": "Bad named entity: boxuL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxuL"
- ]
- ]
- },
- {
- "input": "╛",
- "description": "Named entity: boxuL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255b"
- ]
- ]
- },
- {
- "input": "&boxuR",
- "description": "Bad named entity: boxuR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxuR"
- ]
- ]
- },
- {
- "input": "╘",
- "description": "Named entity: boxuR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2558"
- ]
- ]
- },
- {
- "input": "&boxul",
- "description": "Bad named entity: boxul without a semi-colon",
- "output": [
- [
- "Character",
- "&boxul"
- ]
- ]
- },
- {
- "input": "┘",
- "description": "Named entity: boxul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2518"
- ]
- ]
- },
- {
- "input": "&boxur",
- "description": "Bad named entity: boxur without a semi-colon",
- "output": [
- [
- "Character",
- "&boxur"
- ]
- ]
- },
- {
- "input": "└",
- "description": "Named entity: boxur; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2514"
- ]
- ]
- },
- {
- "input": "&boxv",
- "description": "Bad named entity: boxv without a semi-colon",
- "output": [
- [
- "Character",
- "&boxv"
- ]
- ]
- },
- {
- "input": "│",
- "description": "Named entity: boxv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2502"
- ]
- ]
- },
- {
- "input": "&boxvH",
- "description": "Bad named entity: boxvH without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvH"
- ]
- ]
- },
- {
- "input": "╪",
- "description": "Named entity: boxvH; with a semi-colon",
- "output": [
- [
- "Character",
- "\u256a"
- ]
- ]
- },
- {
- "input": "&boxvL",
- "description": "Bad named entity: boxvL without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvL"
- ]
- ]
- },
- {
- "input": "╡",
- "description": "Named entity: boxvL; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2561"
- ]
- ]
- },
- {
- "input": "&boxvR",
- "description": "Bad named entity: boxvR without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvR"
- ]
- ]
- },
- {
- "input": "╞",
- "description": "Named entity: boxvR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u255e"
- ]
- ]
- },
- {
- "input": "&boxvh",
- "description": "Bad named entity: boxvh without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvh"
- ]
- ]
- },
- {
- "input": "┼",
- "description": "Named entity: boxvh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u253c"
- ]
- ]
- },
- {
- "input": "&boxvl",
- "description": "Bad named entity: boxvl without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvl"
- ]
- ]
- },
- {
- "input": "┤",
- "description": "Named entity: boxvl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2524"
- ]
- ]
- },
- {
- "input": "&boxvr",
- "description": "Bad named entity: boxvr without a semi-colon",
- "output": [
- [
- "Character",
- "&boxvr"
- ]
- ]
- },
- {
- "input": "├",
- "description": "Named entity: boxvr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u251c"
- ]
- ]
- },
- {
- "input": "&bprime",
- "description": "Bad named entity: bprime without a semi-colon",
- "output": [
- [
- "Character",
- "&bprime"
- ]
- ]
- },
- {
- "input": "‵",
- "description": "Named entity: bprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2035"
- ]
- ]
- },
- {
- "input": "&breve",
- "description": "Bad named entity: breve without a semi-colon",
- "output": [
- [
- "Character",
- "&breve"
- ]
- ]
- },
- {
- "input": "˘",
- "description": "Named entity: breve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d8"
- ]
- ]
- },
- {
- "input": "¦",
- "description": "Named entity: brvbar without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a6"
- ]
- ]
- },
- {
- "input": "¦",
- "description": "Named entity: brvbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a6"
- ]
- ]
- },
- {
- "input": "&bscr",
- "description": "Bad named entity: bscr without a semi-colon",
- "output": [
- [
- "Character",
- "&bscr"
- ]
- ]
- },
- {
- "input": "𝒷",
- "description": "Named entity: bscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb7"
- ]
- ]
- },
- {
- "input": "&bsemi",
- "description": "Bad named entity: bsemi without a semi-colon",
- "output": [
- [
- "Character",
- "&bsemi"
- ]
- ]
- },
- {
- "input": "⁏",
- "description": "Named entity: bsemi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u204f"
- ]
- ]
- },
- {
- "input": "&bsim",
- "description": "Bad named entity: bsim without a semi-colon",
- "output": [
- [
- "Character",
- "&bsim"
- ]
- ]
- },
- {
- "input": "∽",
- "description": "Named entity: bsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d"
- ]
- ]
- },
- {
- "input": "&bsime",
- "description": "Bad named entity: bsime without a semi-colon",
- "output": [
- [
- "Character",
- "&bsime"
- ]
- ]
- },
- {
- "input": "⋍",
- "description": "Named entity: bsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cd"
- ]
- ]
- },
- {
- "input": "&bsol",
- "description": "Bad named entity: bsol without a semi-colon",
- "output": [
- [
- "Character",
- "&bsol"
- ]
- ]
- },
- {
- "input": "\",
- "description": "Named entity: bsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\\"
- ]
- ]
- },
- {
- "input": "&bsolb",
- "description": "Bad named entity: bsolb without a semi-colon",
- "output": [
- [
- "Character",
- "&bsolb"
- ]
- ]
- },
- {
- "input": "⧅",
- "description": "Named entity: bsolb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c5"
- ]
- ]
- },
- {
- "input": "&bsolhsub",
- "description": "Bad named entity: bsolhsub without a semi-colon",
- "output": [
- [
- "Character",
- "&bsolhsub"
- ]
- ]
- },
- {
- "input": "⟈",
- "description": "Named entity: bsolhsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27c8"
- ]
- ]
- },
- {
- "input": "&bull",
- "description": "Bad named entity: bull without a semi-colon",
- "output": [
- [
- "Character",
- "&bull"
- ]
- ]
- },
- {
- "input": "•",
- "description": "Named entity: bull; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2022"
- ]
- ]
- },
- {
- "input": "&bullet",
- "description": "Bad named entity: bullet without a semi-colon",
- "output": [
- [
- "Character",
- "&bullet"
- ]
- ]
- },
- {
- "input": "•",
- "description": "Named entity: bullet; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2022"
- ]
- ]
- },
- {
- "input": "&bump",
- "description": "Bad named entity: bump without a semi-colon",
- "output": [
- [
- "Character",
- "&bump"
- ]
- ]
- },
- {
- "input": "≎",
- "description": "Named entity: bump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e"
- ]
- ]
- },
- {
- "input": "&bumpE",
- "description": "Bad named entity: bumpE without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpE"
- ]
- ]
- },
- {
- "input": "⪮",
- "description": "Named entity: bumpE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aae"
- ]
- ]
- },
- {
- "input": "&bumpe",
- "description": "Bad named entity: bumpe without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpe"
- ]
- ]
- },
- {
- "input": "≏",
- "description": "Named entity: bumpe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&bumpeq",
- "description": "Bad named entity: bumpeq without a semi-colon",
- "output": [
- [
- "Character",
- "&bumpeq"
- ]
- ]
- },
- {
- "input": "≏",
- "description": "Named entity: bumpeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f"
- ]
- ]
- },
- {
- "input": "&cacute",
- "description": "Bad named entity: cacute without a semi-colon",
- "output": [
- [
- "Character",
- "&cacute"
- ]
- ]
- },
- {
- "input": "ć",
- "description": "Named entity: cacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0107"
- ]
- ]
- },
- {
- "input": "&cap",
- "description": "Bad named entity: cap without a semi-colon",
- "output": [
- [
- "Character",
- "&cap"
- ]
- ]
- },
- {
- "input": "∩",
- "description": "Named entity: cap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2229"
- ]
- ]
- },
- {
- "input": "&capand",
- "description": "Bad named entity: capand without a semi-colon",
- "output": [
- [
- "Character",
- "&capand"
- ]
- ]
- },
- {
- "input": "⩄",
- "description": "Named entity: capand; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a44"
- ]
- ]
- },
- {
- "input": "&capbrcup",
- "description": "Bad named entity: capbrcup without a semi-colon",
- "output": [
- [
- "Character",
- "&capbrcup"
- ]
- ]
- },
- {
- "input": "⩉",
- "description": "Named entity: capbrcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a49"
- ]
- ]
- },
- {
- "input": "&capcap",
- "description": "Bad named entity: capcap without a semi-colon",
- "output": [
- [
- "Character",
- "&capcap"
- ]
- ]
- },
- {
- "input": "⩋",
- "description": "Named entity: capcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4b"
- ]
- ]
- },
- {
- "input": "&capcup",
- "description": "Bad named entity: capcup without a semi-colon",
- "output": [
- [
- "Character",
- "&capcup"
- ]
- ]
- },
- {
- "input": "⩇",
- "description": "Named entity: capcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a47"
- ]
- ]
- },
- {
- "input": "&capdot",
- "description": "Bad named entity: capdot without a semi-colon",
- "output": [
- [
- "Character",
- "&capdot"
- ]
- ]
- },
- {
- "input": "⩀",
- "description": "Named entity: capdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a40"
- ]
- ]
- },
- {
- "input": "&caps",
- "description": "Bad named entity: caps without a semi-colon",
- "output": [
- [
- "Character",
- "&caps"
- ]
- ]
- },
- {
- "input": "∩︀",
- "description": "Named entity: caps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2229\ufe00"
- ]
- ]
- },
- {
- "input": "&caret",
- "description": "Bad named entity: caret without a semi-colon",
- "output": [
- [
- "Character",
- "&caret"
- ]
- ]
- },
- {
- "input": "⁁",
- "description": "Named entity: caret; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2041"
- ]
- ]
- },
- {
- "input": "&caron",
- "description": "Bad named entity: caron without a semi-colon",
- "output": [
- [
- "Character",
- "&caron"
- ]
- ]
- },
- {
- "input": "ˇ",
- "description": "Named entity: caron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c7"
- ]
- ]
- },
- {
- "input": "&ccaps",
- "description": "Bad named entity: ccaps without a semi-colon",
- "output": [
- [
- "Character",
- "&ccaps"
- ]
- ]
- },
- {
- "input": "⩍",
- "description": "Named entity: ccaps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4d"
- ]
- ]
- },
- {
- "input": "&ccaron",
- "description": "Bad named entity: ccaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ccaron"
- ]
- ]
- },
- {
- "input": "č",
- "description": "Named entity: ccaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010d"
- ]
- ]
- },
- {
- "input": "ç",
- "description": "Named entity: ccedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e7"
- ]
- ]
- },
- {
- "input": "ç",
- "description": "Named entity: ccedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e7"
- ]
- ]
- },
- {
- "input": "&ccirc",
- "description": "Bad named entity: ccirc without a semi-colon",
- "output": [
- [
- "Character",
- "&ccirc"
- ]
- ]
- },
- {
- "input": "ĉ",
- "description": "Named entity: ccirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0109"
- ]
- ]
- },
- {
- "input": "&ccups",
- "description": "Bad named entity: ccups without a semi-colon",
- "output": [
- [
- "Character",
- "&ccups"
- ]
- ]
- },
- {
- "input": "⩌",
- "description": "Named entity: ccups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4c"
- ]
- ]
- },
- {
- "input": "&ccupssm",
- "description": "Bad named entity: ccupssm without a semi-colon",
- "output": [
- [
- "Character",
- "&ccupssm"
- ]
- ]
- },
- {
- "input": "⩐",
- "description": "Named entity: ccupssm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a50"
- ]
- ]
- },
- {
- "input": "&cdot",
- "description": "Bad named entity: cdot without a semi-colon",
- "output": [
- [
- "Character",
- "&cdot"
- ]
- ]
- },
- {
- "input": "ċ",
- "description": "Named entity: cdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010b"
- ]
- ]
- },
- {
- "input": "¸",
- "description": "Named entity: cedil without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "¸",
- "description": "Named entity: cedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b8"
- ]
- ]
- },
- {
- "input": "&cemptyv",
- "description": "Bad named entity: cemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&cemptyv"
- ]
- ]
- },
- {
- "input": "⦲",
- "description": "Named entity: cemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b2"
- ]
- ]
- },
- {
- "input": "¢",
- "description": "Named entity: cent without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a2"
- ]
- ]
- },
- {
- "input": "¢",
- "description": "Named entity: cent; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a2"
- ]
- ]
- },
- {
- "input": "·",
- "description": "Named entity: centerdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&cfr",
- "description": "Bad named entity: cfr without a semi-colon",
- "output": [
- [
- "Character",
- "&cfr"
- ]
- ]
- },
- {
- "input": "𝔠",
- "description": "Named entity: cfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd20"
- ]
- ]
- },
- {
- "input": "&chcy",
- "description": "Bad named entity: chcy without a semi-colon",
- "output": [
- [
- "Character",
- "&chcy"
- ]
- ]
- },
- {
- "input": "ч",
- "description": "Named entity: chcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0447"
- ]
- ]
- },
- {
- "input": "&check",
- "description": "Bad named entity: check without a semi-colon",
- "output": [
- [
- "Character",
- "&check"
- ]
- ]
- },
- {
- "input": "✓",
- "description": "Named entity: check; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2713"
- ]
- ]
- },
- {
- "input": "&checkmark",
- "description": "Bad named entity: checkmark without a semi-colon",
- "output": [
- [
- "Character",
- "&checkmark"
- ]
- ]
- },
- {
- "input": "✓",
- "description": "Named entity: checkmark; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2713"
- ]
- ]
- },
- {
- "input": "&chi",
- "description": "Bad named entity: chi without a semi-colon",
- "output": [
- [
- "Character",
- "&chi"
- ]
- ]
- },
- {
- "input": "χ",
- "description": "Named entity: chi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c7"
- ]
- ]
- },
- {
- "input": "&cir",
- "description": "Bad named entity: cir without a semi-colon",
- "output": [
- [
- "Character",
- "&cir"
- ]
- ]
- },
- {
- "input": "○",
- "description": "Named entity: cir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25cb"
- ]
- ]
- },
- {
- "input": "&cirE",
- "description": "Bad named entity: cirE without a semi-colon",
- "output": [
- [
- "Character",
- "&cirE"
- ]
- ]
- },
- {
- "input": "⧃",
- "description": "Named entity: cirE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c3"
- ]
- ]
- },
- {
- "input": "&circ",
- "description": "Bad named entity: circ without a semi-colon",
- "output": [
- [
- "Character",
- "&circ"
- ]
- ]
- },
- {
- "input": "ˆ",
- "description": "Named entity: circ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02c6"
- ]
- ]
- },
- {
- "input": "&circeq",
- "description": "Bad named entity: circeq without a semi-colon",
- "output": [
- [
- "Character",
- "&circeq"
- ]
- ]
- },
- {
- "input": "≗",
- "description": "Named entity: circeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2257"
- ]
- ]
- },
- {
- "input": "&circlearrowleft",
- "description": "Bad named entity: circlearrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&circlearrowleft"
- ]
- ]
- },
- {
- "input": "↺",
- "description": "Named entity: circlearrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ba"
- ]
- ]
- },
- {
- "input": "&circlearrowright",
- "description": "Bad named entity: circlearrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&circlearrowright"
- ]
- ]
- },
- {
- "input": "↻",
- "description": "Named entity: circlearrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bb"
- ]
- ]
- },
- {
- "input": "&circledR",
- "description": "Bad named entity: circledR without a semi-colon",
- "output": [
- [
- "Character",
- "&circledR"
- ]
- ]
- },
- {
- "input": "®",
- "description": "Named entity: circledR; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&circledS",
- "description": "Bad named entity: circledS without a semi-colon",
- "output": [
- [
- "Character",
- "&circledS"
- ]
- ]
- },
- {
- "input": "Ⓢ",
- "description": "Named entity: circledS; with a semi-colon",
- "output": [
- [
- "Character",
- "\u24c8"
- ]
- ]
- },
- {
- "input": "&circledast",
- "description": "Bad named entity: circledast without a semi-colon",
- "output": [
- [
- "Character",
- "&circledast"
- ]
- ]
- },
- {
- "input": "⊛",
- "description": "Named entity: circledast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229b"
- ]
- ]
- },
- {
- "input": "&circledcirc",
- "description": "Bad named entity: circledcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&circledcirc"
- ]
- ]
- },
- {
- "input": "⊚",
- "description": "Named entity: circledcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229a"
- ]
- ]
- },
- {
- "input": "&circleddash",
- "description": "Bad named entity: circleddash without a semi-colon",
- "output": [
- [
- "Character",
- "&circleddash"
- ]
- ]
- },
- {
- "input": "⊝",
- "description": "Named entity: circleddash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229d"
- ]
- ]
- },
- {
- "input": "&cire",
- "description": "Bad named entity: cire without a semi-colon",
- "output": [
- [
- "Character",
- "&cire"
- ]
- ]
- },
- {
- "input": "≗",
- "description": "Named entity: cire; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2257"
- ]
- ]
- },
- {
- "input": "&cirfnint",
- "description": "Bad named entity: cirfnint without a semi-colon",
- "output": [
- [
- "Character",
- "&cirfnint"
- ]
- ]
- },
- {
- "input": "⨐",
- "description": "Named entity: cirfnint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a10"
- ]
- ]
- },
- {
- "input": "&cirmid",
- "description": "Bad named entity: cirmid without a semi-colon",
- "output": [
- [
- "Character",
- "&cirmid"
- ]
- ]
- },
- {
- "input": "⫯",
- "description": "Named entity: cirmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aef"
- ]
- ]
- },
- {
- "input": "&cirscir",
- "description": "Bad named entity: cirscir without a semi-colon",
- "output": [
- [
- "Character",
- "&cirscir"
- ]
- ]
- },
- {
- "input": "⧂",
- "description": "Named entity: cirscir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c2"
- ]
- ]
- },
- {
- "input": "&clubs",
- "description": "Bad named entity: clubs without a semi-colon",
- "output": [
- [
- "Character",
- "&clubs"
- ]
- ]
- },
- {
- "input": "♣",
- "description": "Named entity: clubs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2663"
- ]
- ]
- },
- {
- "input": "&clubsuit",
- "description": "Bad named entity: clubsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&clubsuit"
- ]
- ]
- },
- {
- "input": "♣",
- "description": "Named entity: clubsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2663"
- ]
- ]
- },
- {
- "input": "&colon",
- "description": "Bad named entity: colon without a semi-colon",
- "output": [
- [
- "Character",
- "&colon"
- ]
- ]
- },
- {
- "input": ":",
- "description": "Named entity: colon; with a semi-colon",
- "output": [
- [
- "Character",
- ":"
- ]
- ]
- },
- {
- "input": "&colone",
- "description": "Bad named entity: colone without a semi-colon",
- "output": [
- [
- "Character",
- "&colone"
- ]
- ]
- },
- {
- "input": "≔",
- "description": "Named entity: colone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "&coloneq",
- "description": "Bad named entity: coloneq without a semi-colon",
- "output": [
- [
- "Character",
- "&coloneq"
- ]
- ]
- },
- {
- "input": "≔",
- "description": "Named entity: coloneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2254"
- ]
- ]
- },
- {
- "input": "&comma",
- "description": "Bad named entity: comma without a semi-colon",
- "output": [
- [
- "Character",
- "&comma"
- ]
- ]
- },
- {
- "input": ",",
- "description": "Named entity: comma; with a semi-colon",
- "output": [
- [
- "Character",
- ","
- ]
- ]
- },
- {
- "input": "&commat",
- "description": "Bad named entity: commat without a semi-colon",
- "output": [
- [
- "Character",
- "&commat"
- ]
- ]
- },
- {
- "input": "@",
- "description": "Named entity: commat; with a semi-colon",
- "output": [
- [
- "Character",
- "@"
- ]
- ]
- },
- {
- "input": "&comp",
- "description": "Bad named entity: comp without a semi-colon",
- "output": [
- [
- "Character",
- "&comp"
- ]
- ]
- },
- {
- "input": "∁",
- "description": "Named entity: comp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2201"
- ]
- ]
- },
- {
- "input": "&compfn",
- "description": "Bad named entity: compfn without a semi-colon",
- "output": [
- [
- "Character",
- "&compfn"
- ]
- ]
- },
- {
- "input": "∘",
- "description": "Named entity: compfn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2218"
- ]
- ]
- },
- {
- "input": "&complement",
- "description": "Bad named entity: complement without a semi-colon",
- "output": [
- [
- "Character",
- "&complement"
- ]
- ]
- },
- {
- "input": "∁",
- "description": "Named entity: complement; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2201"
- ]
- ]
- },
- {
- "input": "&complexes",
- "description": "Bad named entity: complexes without a semi-colon",
- "output": [
- [
- "Character",
- "&complexes"
- ]
- ]
- },
- {
- "input": "ℂ",
- "description": "Named entity: complexes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2102"
- ]
- ]
- },
- {
- "input": "&cong",
- "description": "Bad named entity: cong without a semi-colon",
- "output": [
- [
- "Character",
- "&cong"
- ]
- ]
- },
- {
- "input": "≅",
- "description": "Named entity: cong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2245"
- ]
- ]
- },
- {
- "input": "&congdot",
- "description": "Bad named entity: congdot without a semi-colon",
- "output": [
- [
- "Character",
- "&congdot"
- ]
- ]
- },
- {
- "input": "⩭",
- "description": "Named entity: congdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6d"
- ]
- ]
- },
- {
- "input": "&conint",
- "description": "Bad named entity: conint without a semi-colon",
- "output": [
- [
- "Character",
- "&conint"
- ]
- ]
- },
- {
- "input": "∮",
- "description": "Named entity: conint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&copf",
- "description": "Bad named entity: copf without a semi-colon",
- "output": [
- [
- "Character",
- "&copf"
- ]
- ]
- },
- {
- "input": "𝕔",
- "description": "Named entity: copf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd54"
- ]
- ]
- },
- {
- "input": "&coprod",
- "description": "Bad named entity: coprod without a semi-colon",
- "output": [
- [
- "Character",
- "&coprod"
- ]
- ]
- },
- {
- "input": "∐",
- "description": "Named entity: coprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2210"
- ]
- ]
- },
- {
- "input": "©",
- "description": "Named entity: copy without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "©",
- "description": "Named entity: copy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a9"
- ]
- ]
- },
- {
- "input": "℗",
- "description": "Named entity: copysr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2117"
- ]
- ]
- },
- {
- "input": "&crarr",
- "description": "Bad named entity: crarr without a semi-colon",
- "output": [
- [
- "Character",
- "&crarr"
- ]
- ]
- },
- {
- "input": "↵",
- "description": "Named entity: crarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b5"
- ]
- ]
- },
- {
- "input": "&cross",
- "description": "Bad named entity: cross without a semi-colon",
- "output": [
- [
- "Character",
- "&cross"
- ]
- ]
- },
- {
- "input": "✗",
- "description": "Named entity: cross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2717"
- ]
- ]
- },
- {
- "input": "&cscr",
- "description": "Bad named entity: cscr without a semi-colon",
- "output": [
- [
- "Character",
- "&cscr"
- ]
- ]
- },
- {
- "input": "𝒸",
- "description": "Named entity: cscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb8"
- ]
- ]
- },
- {
- "input": "&csub",
- "description": "Bad named entity: csub without a semi-colon",
- "output": [
- [
- "Character",
- "&csub"
- ]
- ]
- },
- {
- "input": "⫏",
- "description": "Named entity: csub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acf"
- ]
- ]
- },
- {
- "input": "&csube",
- "description": "Bad named entity: csube without a semi-colon",
- "output": [
- [
- "Character",
- "&csube"
- ]
- ]
- },
- {
- "input": "⫑",
- "description": "Named entity: csube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad1"
- ]
- ]
- },
- {
- "input": "&csup",
- "description": "Bad named entity: csup without a semi-colon",
- "output": [
- [
- "Character",
- "&csup"
- ]
- ]
- },
- {
- "input": "⫐",
- "description": "Named entity: csup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad0"
- ]
- ]
- },
- {
- "input": "&csupe",
- "description": "Bad named entity: csupe without a semi-colon",
- "output": [
- [
- "Character",
- "&csupe"
- ]
- ]
- },
- {
- "input": "⫒",
- "description": "Named entity: csupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad2"
- ]
- ]
- },
- {
- "input": "&ctdot",
- "description": "Bad named entity: ctdot without a semi-colon",
- "output": [
- [
- "Character",
- "&ctdot"
- ]
- ]
- },
- {
- "input": "⋯",
- "description": "Named entity: ctdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ef"
- ]
- ]
- },
- {
- "input": "&cudarrl",
- "description": "Bad named entity: cudarrl without a semi-colon",
- "output": [
- [
- "Character",
- "&cudarrl"
- ]
- ]
- },
- {
- "input": "⤸",
- "description": "Named entity: cudarrl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2938"
- ]
- ]
- },
- {
- "input": "&cudarrr",
- "description": "Bad named entity: cudarrr without a semi-colon",
- "output": [
- [
- "Character",
- "&cudarrr"
- ]
- ]
- },
- {
- "input": "⤵",
- "description": "Named entity: cudarrr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2935"
- ]
- ]
- },
- {
- "input": "&cuepr",
- "description": "Bad named entity: cuepr without a semi-colon",
- "output": [
- [
- "Character",
- "&cuepr"
- ]
- ]
- },
- {
- "input": "⋞",
- "description": "Named entity: cuepr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22de"
- ]
- ]
- },
- {
- "input": "&cuesc",
- "description": "Bad named entity: cuesc without a semi-colon",
- "output": [
- [
- "Character",
- "&cuesc"
- ]
- ]
- },
- {
- "input": "⋟",
- "description": "Named entity: cuesc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22df"
- ]
- ]
- },
- {
- "input": "&cularr",
- "description": "Bad named entity: cularr without a semi-colon",
- "output": [
- [
- "Character",
- "&cularr"
- ]
- ]
- },
- {
- "input": "↶",
- "description": "Named entity: cularr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b6"
- ]
- ]
- },
- {
- "input": "&cularrp",
- "description": "Bad named entity: cularrp without a semi-colon",
- "output": [
- [
- "Character",
- "&cularrp"
- ]
- ]
- },
- {
- "input": "⤽",
- "description": "Named entity: cularrp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u293d"
- ]
- ]
- },
- {
- "input": "&cup",
- "description": "Bad named entity: cup without a semi-colon",
- "output": [
- [
- "Character",
- "&cup"
- ]
- ]
- },
- {
- "input": "∪",
- "description": "Named entity: cup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222a"
- ]
- ]
- },
- {
- "input": "&cupbrcap",
- "description": "Bad named entity: cupbrcap without a semi-colon",
- "output": [
- [
- "Character",
- "&cupbrcap"
- ]
- ]
- },
- {
- "input": "⩈",
- "description": "Named entity: cupbrcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a48"
- ]
- ]
- },
- {
- "input": "&cupcap",
- "description": "Bad named entity: cupcap without a semi-colon",
- "output": [
- [
- "Character",
- "&cupcap"
- ]
- ]
- },
- {
- "input": "⩆",
- "description": "Named entity: cupcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a46"
- ]
- ]
- },
- {
- "input": "&cupcup",
- "description": "Bad named entity: cupcup without a semi-colon",
- "output": [
- [
- "Character",
- "&cupcup"
- ]
- ]
- },
- {
- "input": "⩊",
- "description": "Named entity: cupcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a4a"
- ]
- ]
- },
- {
- "input": "&cupdot",
- "description": "Bad named entity: cupdot without a semi-colon",
- "output": [
- [
- "Character",
- "&cupdot"
- ]
- ]
- },
- {
- "input": "⊍",
- "description": "Named entity: cupdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228d"
- ]
- ]
- },
- {
- "input": "&cupor",
- "description": "Bad named entity: cupor without a semi-colon",
- "output": [
- [
- "Character",
- "&cupor"
- ]
- ]
- },
- {
- "input": "⩅",
- "description": "Named entity: cupor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a45"
- ]
- ]
- },
- {
- "input": "&cups",
- "description": "Bad named entity: cups without a semi-colon",
- "output": [
- [
- "Character",
- "&cups"
- ]
- ]
- },
- {
- "input": "∪︀",
- "description": "Named entity: cups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222a\ufe00"
- ]
- ]
- },
- {
- "input": "&curarr",
- "description": "Bad named entity: curarr without a semi-colon",
- "output": [
- [
- "Character",
- "&curarr"
- ]
- ]
- },
- {
- "input": "↷",
- "description": "Named entity: curarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b7"
- ]
- ]
- },
- {
- "input": "&curarrm",
- "description": "Bad named entity: curarrm without a semi-colon",
- "output": [
- [
- "Character",
- "&curarrm"
- ]
- ]
- },
- {
- "input": "⤼",
- "description": "Named entity: curarrm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u293c"
- ]
- ]
- },
- {
- "input": "&curlyeqprec",
- "description": "Bad named entity: curlyeqprec without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyeqprec"
- ]
- ]
- },
- {
- "input": "⋞",
- "description": "Named entity: curlyeqprec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22de"
- ]
- ]
- },
- {
- "input": "&curlyeqsucc",
- "description": "Bad named entity: curlyeqsucc without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyeqsucc"
- ]
- ]
- },
- {
- "input": "⋟",
- "description": "Named entity: curlyeqsucc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22df"
- ]
- ]
- },
- {
- "input": "&curlyvee",
- "description": "Bad named entity: curlyvee without a semi-colon",
- "output": [
- [
- "Character",
- "&curlyvee"
- ]
- ]
- },
- {
- "input": "⋎",
- "description": "Named entity: curlyvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ce"
- ]
- ]
- },
- {
- "input": "&curlywedge",
- "description": "Bad named entity: curlywedge without a semi-colon",
- "output": [
- [
- "Character",
- "&curlywedge"
- ]
- ]
- },
- {
- "input": "⋏",
- "description": "Named entity: curlywedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cf"
- ]
- ]
- },
- {
- "input": "¤",
- "description": "Named entity: curren without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a4"
- ]
- ]
- },
- {
- "input": "¤",
- "description": "Named entity: curren; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a4"
- ]
- ]
- },
- {
- "input": "&curvearrowleft",
- "description": "Bad named entity: curvearrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&curvearrowleft"
- ]
- ]
- },
- {
- "input": "↶",
- "description": "Named entity: curvearrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b6"
- ]
- ]
- },
- {
- "input": "&curvearrowright",
- "description": "Bad named entity: curvearrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&curvearrowright"
- ]
- ]
- },
- {
- "input": "↷",
- "description": "Named entity: curvearrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b7"
- ]
- ]
- },
- {
- "input": "&cuvee",
- "description": "Bad named entity: cuvee without a semi-colon",
- "output": [
- [
- "Character",
- "&cuvee"
- ]
- ]
- },
- {
- "input": "⋎",
- "description": "Named entity: cuvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ce"
- ]
- ]
- },
- {
- "input": "&cuwed",
- "description": "Bad named entity: cuwed without a semi-colon",
- "output": [
- [
- "Character",
- "&cuwed"
- ]
- ]
- },
- {
- "input": "⋏",
- "description": "Named entity: cuwed; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cf"
- ]
- ]
- },
- {
- "input": "&cwconint",
- "description": "Bad named entity: cwconint without a semi-colon",
- "output": [
- [
- "Character",
- "&cwconint"
- ]
- ]
- },
- {
- "input": "∲",
- "description": "Named entity: cwconint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2232"
- ]
- ]
- },
- {
- "input": "&cwint",
- "description": "Bad named entity: cwint without a semi-colon",
- "output": [
- [
- "Character",
- "&cwint"
- ]
- ]
- },
- {
- "input": "∱",
- "description": "Named entity: cwint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2231"
- ]
- ]
- },
- {
- "input": "&cylcty",
- "description": "Bad named entity: cylcty without a semi-colon",
- "output": [
- [
- "Character",
- "&cylcty"
- ]
- ]
- },
- {
- "input": "⌭",
- "description": "Named entity: cylcty; with a semi-colon",
- "output": [
- [
- "Character",
- "\u232d"
- ]
- ]
- },
- {
- "input": "&dArr",
- "description": "Bad named entity: dArr without a semi-colon",
- "output": [
- [
- "Character",
- "&dArr"
- ]
- ]
- },
- {
- "input": "⇓",
- "description": "Named entity: dArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d3"
- ]
- ]
- },
- {
- "input": "&dHar",
- "description": "Bad named entity: dHar without a semi-colon",
- "output": [
- [
- "Character",
- "&dHar"
- ]
- ]
- },
- {
- "input": "⥥",
- "description": "Named entity: dHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2965"
- ]
- ]
- },
- {
- "input": "&dagger",
- "description": "Bad named entity: dagger without a semi-colon",
- "output": [
- [
- "Character",
- "&dagger"
- ]
- ]
- },
- {
- "input": "†",
- "description": "Named entity: dagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2020"
- ]
- ]
- },
- {
- "input": "&daleth",
- "description": "Bad named entity: daleth without a semi-colon",
- "output": [
- [
- "Character",
- "&daleth"
- ]
- ]
- },
- {
- "input": "ℸ",
- "description": "Named entity: daleth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2138"
- ]
- ]
- },
- {
- "input": "&darr",
- "description": "Bad named entity: darr without a semi-colon",
- "output": [
- [
- "Character",
- "&darr"
- ]
- ]
- },
- {
- "input": "↓",
- "description": "Named entity: darr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&dash",
- "description": "Bad named entity: dash without a semi-colon",
- "output": [
- [
- "Character",
- "&dash"
- ]
- ]
- },
- {
- "input": "‐",
- "description": "Named entity: dash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2010"
- ]
- ]
- },
- {
- "input": "&dashv",
- "description": "Bad named entity: dashv without a semi-colon",
- "output": [
- [
- "Character",
- "&dashv"
- ]
- ]
- },
- {
- "input": "⊣",
- "description": "Named entity: dashv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a3"
- ]
- ]
- },
- {
- "input": "&dbkarow",
- "description": "Bad named entity: dbkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&dbkarow"
- ]
- ]
- },
- {
- "input": "⤏",
- "description": "Named entity: dbkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290f"
- ]
- ]
- },
- {
- "input": "&dblac",
- "description": "Bad named entity: dblac without a semi-colon",
- "output": [
- [
- "Character",
- "&dblac"
- ]
- ]
- },
- {
- "input": "˝",
- "description": "Named entity: dblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dd"
- ]
- ]
- },
- {
- "input": "&dcaron",
- "description": "Bad named entity: dcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&dcaron"
- ]
- ]
- },
- {
- "input": "ď",
- "description": "Named entity: dcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u010f"
- ]
- ]
- },
- {
- "input": "&dcy",
- "description": "Bad named entity: dcy without a semi-colon",
- "output": [
- [
- "Character",
- "&dcy"
- ]
- ]
- },
- {
- "input": "д",
- "description": "Named entity: dcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0434"
- ]
- ]
- },
- {
- "input": "&dd",
- "description": "Bad named entity: dd without a semi-colon",
- "output": [
- [
- "Character",
- "&dd"
- ]
- ]
- },
- {
- "input": "ⅆ",
- "description": "Named entity: dd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2146"
- ]
- ]
- },
- {
- "input": "&ddagger",
- "description": "Bad named entity: ddagger without a semi-colon",
- "output": [
- [
- "Character",
- "&ddagger"
- ]
- ]
- },
- {
- "input": "‡",
- "description": "Named entity: ddagger; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2021"
- ]
- ]
- },
- {
- "input": "&ddarr",
- "description": "Bad named entity: ddarr without a semi-colon",
- "output": [
- [
- "Character",
- "&ddarr"
- ]
- ]
- },
- {
- "input": "⇊",
- "description": "Named entity: ddarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ca"
- ]
- ]
- },
- {
- "input": "&ddotseq",
- "description": "Bad named entity: ddotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&ddotseq"
- ]
- ]
- },
- {
- "input": "⩷",
- "description": "Named entity: ddotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a77"
- ]
- ]
- },
- {
- "input": "°",
- "description": "Named entity: deg without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b0"
- ]
- ]
- },
- {
- "input": "°",
- "description": "Named entity: deg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b0"
- ]
- ]
- },
- {
- "input": "&delta",
- "description": "Bad named entity: delta without a semi-colon",
- "output": [
- [
- "Character",
- "&delta"
- ]
- ]
- },
- {
- "input": "δ",
- "description": "Named entity: delta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b4"
- ]
- ]
- },
- {
- "input": "&demptyv",
- "description": "Bad named entity: demptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&demptyv"
- ]
- ]
- },
- {
- "input": "⦱",
- "description": "Named entity: demptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b1"
- ]
- ]
- },
- {
- "input": "&dfisht",
- "description": "Bad named entity: dfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&dfisht"
- ]
- ]
- },
- {
- "input": "⥿",
- "description": "Named entity: dfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297f"
- ]
- ]
- },
- {
- "input": "&dfr",
- "description": "Bad named entity: dfr without a semi-colon",
- "output": [
- [
- "Character",
- "&dfr"
- ]
- ]
- },
- {
- "input": "𝔡",
- "description": "Named entity: dfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd21"
- ]
- ]
- },
- {
- "input": "&dharl",
- "description": "Bad named entity: dharl without a semi-colon",
- "output": [
- [
- "Character",
- "&dharl"
- ]
- ]
- },
- {
- "input": "⇃",
- "description": "Named entity: dharl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&dharr",
- "description": "Bad named entity: dharr without a semi-colon",
- "output": [
- [
- "Character",
- "&dharr"
- ]
- ]
- },
- {
- "input": "⇂",
- "description": "Named entity: dharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&diam",
- "description": "Bad named entity: diam without a semi-colon",
- "output": [
- [
- "Character",
- "&diam"
- ]
- ]
- },
- {
- "input": "⋄",
- "description": "Named entity: diam; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&diamond",
- "description": "Bad named entity: diamond without a semi-colon",
- "output": [
- [
- "Character",
- "&diamond"
- ]
- ]
- },
- {
- "input": "⋄",
- "description": "Named entity: diamond; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c4"
- ]
- ]
- },
- {
- "input": "&diamondsuit",
- "description": "Bad named entity: diamondsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&diamondsuit"
- ]
- ]
- },
- {
- "input": "♦",
- "description": "Named entity: diamondsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2666"
- ]
- ]
- },
- {
- "input": "&diams",
- "description": "Bad named entity: diams without a semi-colon",
- "output": [
- [
- "Character",
- "&diams"
- ]
- ]
- },
- {
- "input": "♦",
- "description": "Named entity: diams; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2666"
- ]
- ]
- },
- {
- "input": "&die",
- "description": "Bad named entity: die without a semi-colon",
- "output": [
- [
- "Character",
- "&die"
- ]
- ]
- },
- {
- "input": "¨",
- "description": "Named entity: die; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&digamma",
- "description": "Bad named entity: digamma without a semi-colon",
- "output": [
- [
- "Character",
- "&digamma"
- ]
- ]
- },
- {
- "input": "ϝ",
- "description": "Named entity: digamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dd"
- ]
- ]
- },
- {
- "input": "&disin",
- "description": "Bad named entity: disin without a semi-colon",
- "output": [
- [
- "Character",
- "&disin"
- ]
- ]
- },
- {
- "input": "⋲",
- "description": "Named entity: disin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f2"
- ]
- ]
- },
- {
- "input": "&div",
- "description": "Bad named entity: div without a semi-colon",
- "output": [
- [
- "Character",
- "&div"
- ]
- ]
- },
- {
- "input": "÷",
- "description": "Named entity: div; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "÷",
- "description": "Named entity: divide without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "÷",
- "description": "Named entity: divide; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f7"
- ]
- ]
- },
- {
- "input": "⋇",
- "description": "Named entity: divideontimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c7"
- ]
- ]
- },
- {
- "input": "&divonx",
- "description": "Bad named entity: divonx without a semi-colon",
- "output": [
- [
- "Character",
- "&divonx"
- ]
- ]
- },
- {
- "input": "⋇",
- "description": "Named entity: divonx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c7"
- ]
- ]
- },
- {
- "input": "&djcy",
- "description": "Bad named entity: djcy without a semi-colon",
- "output": [
- [
- "Character",
- "&djcy"
- ]
- ]
- },
- {
- "input": "ђ",
- "description": "Named entity: djcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0452"
- ]
- ]
- },
- {
- "input": "&dlcorn",
- "description": "Bad named entity: dlcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&dlcorn"
- ]
- ]
- },
- {
- "input": "⌞",
- "description": "Named entity: dlcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231e"
- ]
- ]
- },
- {
- "input": "&dlcrop",
- "description": "Bad named entity: dlcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&dlcrop"
- ]
- ]
- },
- {
- "input": "⌍",
- "description": "Named entity: dlcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230d"
- ]
- ]
- },
- {
- "input": "&dollar",
- "description": "Bad named entity: dollar without a semi-colon",
- "output": [
- [
- "Character",
- "&dollar"
- ]
- ]
- },
- {
- "input": "$",
- "description": "Named entity: dollar; with a semi-colon",
- "output": [
- [
- "Character",
- "$"
- ]
- ]
- },
- {
- "input": "&dopf",
- "description": "Bad named entity: dopf without a semi-colon",
- "output": [
- [
- "Character",
- "&dopf"
- ]
- ]
- },
- {
- "input": "𝕕",
- "description": "Named entity: dopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd55"
- ]
- ]
- },
- {
- "input": "&dot",
- "description": "Bad named entity: dot without a semi-colon",
- "output": [
- [
- "Character",
- "&dot"
- ]
- ]
- },
- {
- "input": "˙",
- "description": "Named entity: dot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02d9"
- ]
- ]
- },
- {
- "input": "&doteq",
- "description": "Bad named entity: doteq without a semi-colon",
- "output": [
- [
- "Character",
- "&doteq"
- ]
- ]
- },
- {
- "input": "≐",
- "description": "Named entity: doteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&doteqdot",
- "description": "Bad named entity: doteqdot without a semi-colon",
- "output": [
- [
- "Character",
- "&doteqdot"
- ]
- ]
- },
- {
- "input": "≑",
- "description": "Named entity: doteqdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2251"
- ]
- ]
- },
- {
- "input": "&dotminus",
- "description": "Bad named entity: dotminus without a semi-colon",
- "output": [
- [
- "Character",
- "&dotminus"
- ]
- ]
- },
- {
- "input": "∸",
- "description": "Named entity: dotminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2238"
- ]
- ]
- },
- {
- "input": "&dotplus",
- "description": "Bad named entity: dotplus without a semi-colon",
- "output": [
- [
- "Character",
- "&dotplus"
- ]
- ]
- },
- {
- "input": "∔",
- "description": "Named entity: dotplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2214"
- ]
- ]
- },
- {
- "input": "&dotsquare",
- "description": "Bad named entity: dotsquare without a semi-colon",
- "output": [
- [
- "Character",
- "&dotsquare"
- ]
- ]
- },
- {
- "input": "⊡",
- "description": "Named entity: dotsquare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a1"
- ]
- ]
- },
- {
- "input": "&doublebarwedge",
- "description": "Bad named entity: doublebarwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&doublebarwedge"
- ]
- ]
- },
- {
- "input": "⌆",
- "description": "Named entity: doublebarwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2306"
- ]
- ]
- },
- {
- "input": "&downarrow",
- "description": "Bad named entity: downarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&downarrow"
- ]
- ]
- },
- {
- "input": "↓",
- "description": "Named entity: downarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2193"
- ]
- ]
- },
- {
- "input": "&downdownarrows",
- "description": "Bad named entity: downdownarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&downdownarrows"
- ]
- ]
- },
- {
- "input": "⇊",
- "description": "Named entity: downdownarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ca"
- ]
- ]
- },
- {
- "input": "&downharpoonleft",
- "description": "Bad named entity: downharpoonleft without a semi-colon",
- "output": [
- [
- "Character",
- "&downharpoonleft"
- ]
- ]
- },
- {
- "input": "⇃",
- "description": "Named entity: downharpoonleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c3"
- ]
- ]
- },
- {
- "input": "&downharpoonright",
- "description": "Bad named entity: downharpoonright without a semi-colon",
- "output": [
- [
- "Character",
- "&downharpoonright"
- ]
- ]
- },
- {
- "input": "⇂",
- "description": "Named entity: downharpoonright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c2"
- ]
- ]
- },
- {
- "input": "&drbkarow",
- "description": "Bad named entity: drbkarow without a semi-colon",
- "output": [
- [
- "Character",
- "&drbkarow"
- ]
- ]
- },
- {
- "input": "⤐",
- "description": "Named entity: drbkarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2910"
- ]
- ]
- },
- {
- "input": "&drcorn",
- "description": "Bad named entity: drcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&drcorn"
- ]
- ]
- },
- {
- "input": "⌟",
- "description": "Named entity: drcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231f"
- ]
- ]
- },
- {
- "input": "&drcrop",
- "description": "Bad named entity: drcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&drcrop"
- ]
- ]
- },
- {
- "input": "⌌",
- "description": "Named entity: drcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230c"
- ]
- ]
- },
- {
- "input": "&dscr",
- "description": "Bad named entity: dscr without a semi-colon",
- "output": [
- [
- "Character",
- "&dscr"
- ]
- ]
- },
- {
- "input": "𝒹",
- "description": "Named entity: dscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcb9"
- ]
- ]
- },
- {
- "input": "&dscy",
- "description": "Bad named entity: dscy without a semi-colon",
- "output": [
- [
- "Character",
- "&dscy"
- ]
- ]
- },
- {
- "input": "ѕ",
- "description": "Named entity: dscy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0455"
- ]
- ]
- },
- {
- "input": "&dsol",
- "description": "Bad named entity: dsol without a semi-colon",
- "output": [
- [
- "Character",
- "&dsol"
- ]
- ]
- },
- {
- "input": "⧶",
- "description": "Named entity: dsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29f6"
- ]
- ]
- },
- {
- "input": "&dstrok",
- "description": "Bad named entity: dstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&dstrok"
- ]
- ]
- },
- {
- "input": "đ",
- "description": "Named entity: dstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0111"
- ]
- ]
- },
- {
- "input": "&dtdot",
- "description": "Bad named entity: dtdot without a semi-colon",
- "output": [
- [
- "Character",
- "&dtdot"
- ]
- ]
- },
- {
- "input": "⋱",
- "description": "Named entity: dtdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f1"
- ]
- ]
- },
- {
- "input": "&dtri",
- "description": "Bad named entity: dtri without a semi-colon",
- "output": [
- [
- "Character",
- "&dtri"
- ]
- ]
- },
- {
- "input": "▿",
- "description": "Named entity: dtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bf"
- ]
- ]
- },
- {
- "input": "&dtrif",
- "description": "Bad named entity: dtrif without a semi-colon",
- "output": [
- [
- "Character",
- "&dtrif"
- ]
- ]
- },
- {
- "input": "▾",
- "description": "Named entity: dtrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25be"
- ]
- ]
- },
- {
- "input": "&duarr",
- "description": "Bad named entity: duarr without a semi-colon",
- "output": [
- [
- "Character",
- "&duarr"
- ]
- ]
- },
- {
- "input": "⇵",
- "description": "Named entity: duarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21f5"
- ]
- ]
- },
- {
- "input": "&duhar",
- "description": "Bad named entity: duhar without a semi-colon",
- "output": [
- [
- "Character",
- "&duhar"
- ]
- ]
- },
- {
- "input": "⥯",
- "description": "Named entity: duhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296f"
- ]
- ]
- },
- {
- "input": "&dwangle",
- "description": "Bad named entity: dwangle without a semi-colon",
- "output": [
- [
- "Character",
- "&dwangle"
- ]
- ]
- },
- {
- "input": "⦦",
- "description": "Named entity: dwangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a6"
- ]
- ]
- },
- {
- "input": "&dzcy",
- "description": "Bad named entity: dzcy without a semi-colon",
- "output": [
- [
- "Character",
- "&dzcy"
- ]
- ]
- },
- {
- "input": "џ",
- "description": "Named entity: dzcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045f"
- ]
- ]
- },
- {
- "input": "&dzigrarr",
- "description": "Bad named entity: dzigrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&dzigrarr"
- ]
- ]
- },
- {
- "input": "⟿",
- "description": "Named entity: dzigrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ff"
- ]
- ]
- },
- {
- "input": "&eDDot",
- "description": "Bad named entity: eDDot without a semi-colon",
- "output": [
- [
- "Character",
- "&eDDot"
- ]
- ]
- },
- {
- "input": "⩷",
- "description": "Named entity: eDDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a77"
- ]
- ]
- },
- {
- "input": "&eDot",
- "description": "Bad named entity: eDot without a semi-colon",
- "output": [
- [
- "Character",
- "&eDot"
- ]
- ]
- },
- {
- "input": "≑",
- "description": "Named entity: eDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2251"
- ]
- ]
- },
- {
- "input": "é",
- "description": "Named entity: eacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e9"
- ]
- ]
- },
- {
- "input": "é",
- "description": "Named entity: eacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e9"
- ]
- ]
- },
- {
- "input": "&easter",
- "description": "Bad named entity: easter without a semi-colon",
- "output": [
- [
- "Character",
- "&easter"
- ]
- ]
- },
- {
- "input": "⩮",
- "description": "Named entity: easter; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6e"
- ]
- ]
- },
- {
- "input": "&ecaron",
- "description": "Bad named entity: ecaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ecaron"
- ]
- ]
- },
- {
- "input": "ě",
- "description": "Named entity: ecaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011b"
- ]
- ]
- },
- {
- "input": "&ecir",
- "description": "Bad named entity: ecir without a semi-colon",
- "output": [
- [
- "Character",
- "&ecir"
- ]
- ]
- },
- {
- "input": "≖",
- "description": "Named entity: ecir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2256"
- ]
- ]
- },
- {
- "input": "ê",
- "description": "Named entity: ecirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ea"
- ]
- ]
- },
- {
- "input": "ê",
- "description": "Named entity: ecirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ea"
- ]
- ]
- },
- {
- "input": "&ecolon",
- "description": "Bad named entity: ecolon without a semi-colon",
- "output": [
- [
- "Character",
- "&ecolon"
- ]
- ]
- },
- {
- "input": "≕",
- "description": "Named entity: ecolon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2255"
- ]
- ]
- },
- {
- "input": "&ecy",
- "description": "Bad named entity: ecy without a semi-colon",
- "output": [
- [
- "Character",
- "&ecy"
- ]
- ]
- },
- {
- "input": "э",
- "description": "Named entity: ecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044d"
- ]
- ]
- },
- {
- "input": "&edot",
- "description": "Bad named entity: edot without a semi-colon",
- "output": [
- [
- "Character",
- "&edot"
- ]
- ]
- },
- {
- "input": "ė",
- "description": "Named entity: edot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0117"
- ]
- ]
- },
- {
- "input": "&ee",
- "description": "Bad named entity: ee without a semi-colon",
- "output": [
- [
- "Character",
- "&ee"
- ]
- ]
- },
- {
- "input": "ⅇ",
- "description": "Named entity: ee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&efDot",
- "description": "Bad named entity: efDot without a semi-colon",
- "output": [
- [
- "Character",
- "&efDot"
- ]
- ]
- },
- {
- "input": "≒",
- "description": "Named entity: efDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2252"
- ]
- ]
- },
- {
- "input": "&efr",
- "description": "Bad named entity: efr without a semi-colon",
- "output": [
- [
- "Character",
- "&efr"
- ]
- ]
- },
- {
- "input": "𝔢",
- "description": "Named entity: efr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd22"
- ]
- ]
- },
- {
- "input": "&eg",
- "description": "Bad named entity: eg without a semi-colon",
- "output": [
- [
- "Character",
- "&eg"
- ]
- ]
- },
- {
- "input": "⪚",
- "description": "Named entity: eg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9a"
- ]
- ]
- },
- {
- "input": "è",
- "description": "Named entity: egrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00e8"
- ]
- ]
- },
- {
- "input": "è",
- "description": "Named entity: egrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00e8"
- ]
- ]
- },
- {
- "input": "&egs",
- "description": "Bad named entity: egs without a semi-colon",
- "output": [
- [
- "Character",
- "&egs"
- ]
- ]
- },
- {
- "input": "⪖",
- "description": "Named entity: egs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a96"
- ]
- ]
- },
- {
- "input": "&egsdot",
- "description": "Bad named entity: egsdot without a semi-colon",
- "output": [
- [
- "Character",
- "&egsdot"
- ]
- ]
- },
- {
- "input": "⪘",
- "description": "Named entity: egsdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a98"
- ]
- ]
- },
- {
- "input": "&el",
- "description": "Bad named entity: el without a semi-colon",
- "output": [
- [
- "Character",
- "&el"
- ]
- ]
- },
- {
- "input": "⪙",
- "description": "Named entity: el; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a99"
- ]
- ]
- },
- {
- "input": "&elinters",
- "description": "Bad named entity: elinters without a semi-colon",
- "output": [
- [
- "Character",
- "&elinters"
- ]
- ]
- },
- {
- "input": "⏧",
- "description": "Named entity: elinters; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23e7"
- ]
- ]
- },
- {
- "input": "&ell",
- "description": "Bad named entity: ell without a semi-colon",
- "output": [
- [
- "Character",
- "&ell"
- ]
- ]
- },
- {
- "input": "ℓ",
- "description": "Named entity: ell; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2113"
- ]
- ]
- },
- {
- "input": "&els",
- "description": "Bad named entity: els without a semi-colon",
- "output": [
- [
- "Character",
- "&els"
- ]
- ]
- },
- {
- "input": "⪕",
- "description": "Named entity: els; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a95"
- ]
- ]
- },
- {
- "input": "&elsdot",
- "description": "Bad named entity: elsdot without a semi-colon",
- "output": [
- [
- "Character",
- "&elsdot"
- ]
- ]
- },
- {
- "input": "⪗",
- "description": "Named entity: elsdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a97"
- ]
- ]
- },
- {
- "input": "&emacr",
- "description": "Bad named entity: emacr without a semi-colon",
- "output": [
- [
- "Character",
- "&emacr"
- ]
- ]
- },
- {
- "input": "ē",
- "description": "Named entity: emacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0113"
- ]
- ]
- },
- {
- "input": "&empty",
- "description": "Bad named entity: empty without a semi-colon",
- "output": [
- [
- "Character",
- "&empty"
- ]
- ]
- },
- {
- "input": "∅",
- "description": "Named entity: empty; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emptyset",
- "description": "Bad named entity: emptyset without a semi-colon",
- "output": [
- [
- "Character",
- "&emptyset"
- ]
- ]
- },
- {
- "input": "∅",
- "description": "Named entity: emptyset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emptyv",
- "description": "Bad named entity: emptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&emptyv"
- ]
- ]
- },
- {
- "input": "∅",
- "description": "Named entity: emptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&emsp",
- "description": "Bad named entity: emsp without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp"
- ]
- ]
- },
- {
- "input": "&emsp13",
- "description": "Bad named entity: emsp13 without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp13"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: emsp13; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2004"
- ]
- ]
- },
- {
- "input": "&emsp14",
- "description": "Bad named entity: emsp14 without a semi-colon",
- "output": [
- [
- "Character",
- "&emsp14"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: emsp14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2005"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: emsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2003"
- ]
- ]
- },
- {
- "input": "&eng",
- "description": "Bad named entity: eng without a semi-colon",
- "output": [
- [
- "Character",
- "&eng"
- ]
- ]
- },
- {
- "input": "ŋ",
- "description": "Named entity: eng; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014b"
- ]
- ]
- },
- {
- "input": "&ensp",
- "description": "Bad named entity: ensp without a semi-colon",
- "output": [
- [
- "Character",
- "&ensp"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: ensp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2002"
- ]
- ]
- },
- {
- "input": "&eogon",
- "description": "Bad named entity: eogon without a semi-colon",
- "output": [
- [
- "Character",
- "&eogon"
- ]
- ]
- },
- {
- "input": "ę",
- "description": "Named entity: eogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0119"
- ]
- ]
- },
- {
- "input": "&eopf",
- "description": "Bad named entity: eopf without a semi-colon",
- "output": [
- [
- "Character",
- "&eopf"
- ]
- ]
- },
- {
- "input": "𝕖",
- "description": "Named entity: eopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd56"
- ]
- ]
- },
- {
- "input": "&epar",
- "description": "Bad named entity: epar without a semi-colon",
- "output": [
- [
- "Character",
- "&epar"
- ]
- ]
- },
- {
- "input": "⋕",
- "description": "Named entity: epar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d5"
- ]
- ]
- },
- {
- "input": "&eparsl",
- "description": "Bad named entity: eparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&eparsl"
- ]
- ]
- },
- {
- "input": "⧣",
- "description": "Named entity: eparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e3"
- ]
- ]
- },
- {
- "input": "&eplus",
- "description": "Bad named entity: eplus without a semi-colon",
- "output": [
- [
- "Character",
- "&eplus"
- ]
- ]
- },
- {
- "input": "⩱",
- "description": "Named entity: eplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a71"
- ]
- ]
- },
- {
- "input": "&epsi",
- "description": "Bad named entity: epsi without a semi-colon",
- "output": [
- [
- "Character",
- "&epsi"
- ]
- ]
- },
- {
- "input": "ε",
- "description": "Named entity: epsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b5"
- ]
- ]
- },
- {
- "input": "&epsilon",
- "description": "Bad named entity: epsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&epsilon"
- ]
- ]
- },
- {
- "input": "ε",
- "description": "Named entity: epsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b5"
- ]
- ]
- },
- {
- "input": "&epsiv",
- "description": "Bad named entity: epsiv without a semi-colon",
- "output": [
- [
- "Character",
- "&epsiv"
- ]
- ]
- },
- {
- "input": "ϵ",
- "description": "Named entity: epsiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&eqcirc",
- "description": "Bad named entity: eqcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&eqcirc"
- ]
- ]
- },
- {
- "input": "≖",
- "description": "Named entity: eqcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2256"
- ]
- ]
- },
- {
- "input": "&eqcolon",
- "description": "Bad named entity: eqcolon without a semi-colon",
- "output": [
- [
- "Character",
- "&eqcolon"
- ]
- ]
- },
- {
- "input": "≕",
- "description": "Named entity: eqcolon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2255"
- ]
- ]
- },
- {
- "input": "&eqsim",
- "description": "Bad named entity: eqsim without a semi-colon",
- "output": [
- [
- "Character",
- "&eqsim"
- ]
- ]
- },
- {
- "input": "≂",
- "description": "Named entity: eqsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&eqslantgtr",
- "description": "Bad named entity: eqslantgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&eqslantgtr"
- ]
- ]
- },
- {
- "input": "⪖",
- "description": "Named entity: eqslantgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a96"
- ]
- ]
- },
- {
- "input": "&eqslantless",
- "description": "Bad named entity: eqslantless without a semi-colon",
- "output": [
- [
- "Character",
- "&eqslantless"
- ]
- ]
- },
- {
- "input": "⪕",
- "description": "Named entity: eqslantless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a95"
- ]
- ]
- },
- {
- "input": "&equals",
- "description": "Bad named entity: equals without a semi-colon",
- "output": [
- [
- "Character",
- "&equals"
- ]
- ]
- },
- {
- "input": "=",
- "description": "Named entity: equals; with a semi-colon",
- "output": [
- [
- "Character",
- "="
- ]
- ]
- },
- {
- "input": "&equest",
- "description": "Bad named entity: equest without a semi-colon",
- "output": [
- [
- "Character",
- "&equest"
- ]
- ]
- },
- {
- "input": "≟",
- "description": "Named entity: equest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225f"
- ]
- ]
- },
- {
- "input": "&equiv",
- "description": "Bad named entity: equiv without a semi-colon",
- "output": [
- [
- "Character",
- "&equiv"
- ]
- ]
- },
- {
- "input": "≡",
- "description": "Named entity: equiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2261"
- ]
- ]
- },
- {
- "input": "&equivDD",
- "description": "Bad named entity: equivDD without a semi-colon",
- "output": [
- [
- "Character",
- "&equivDD"
- ]
- ]
- },
- {
- "input": "⩸",
- "description": "Named entity: equivDD; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a78"
- ]
- ]
- },
- {
- "input": "&eqvparsl",
- "description": "Bad named entity: eqvparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&eqvparsl"
- ]
- ]
- },
- {
- "input": "⧥",
- "description": "Named entity: eqvparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e5"
- ]
- ]
- },
- {
- "input": "&erDot",
- "description": "Bad named entity: erDot without a semi-colon",
- "output": [
- [
- "Character",
- "&erDot"
- ]
- ]
- },
- {
- "input": "≓",
- "description": "Named entity: erDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2253"
- ]
- ]
- },
- {
- "input": "&erarr",
- "description": "Bad named entity: erarr without a semi-colon",
- "output": [
- [
- "Character",
- "&erarr"
- ]
- ]
- },
- {
- "input": "⥱",
- "description": "Named entity: erarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2971"
- ]
- ]
- },
- {
- "input": "&escr",
- "description": "Bad named entity: escr without a semi-colon",
- "output": [
- [
- "Character",
- "&escr"
- ]
- ]
- },
- {
- "input": "ℯ",
- "description": "Named entity: escr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u212f"
- ]
- ]
- },
- {
- "input": "&esdot",
- "description": "Bad named entity: esdot without a semi-colon",
- "output": [
- [
- "Character",
- "&esdot"
- ]
- ]
- },
- {
- "input": "≐",
- "description": "Named entity: esdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250"
- ]
- ]
- },
- {
- "input": "&esim",
- "description": "Bad named entity: esim without a semi-colon",
- "output": [
- [
- "Character",
- "&esim"
- ]
- ]
- },
- {
- "input": "≂",
- "description": "Named entity: esim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242"
- ]
- ]
- },
- {
- "input": "&eta",
- "description": "Bad named entity: eta without a semi-colon",
- "output": [
- [
- "Character",
- "&eta"
- ]
- ]
- },
- {
- "input": "η",
- "description": "Named entity: eta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b7"
- ]
- ]
- },
- {
- "input": "ð",
- "description": "Named entity: eth without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f0"
- ]
- ]
- },
- {
- "input": "ð",
- "description": "Named entity: eth; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f0"
- ]
- ]
- },
- {
- "input": "ë",
- "description": "Named entity: euml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00eb"
- ]
- ]
- },
- {
- "input": "ë",
- "description": "Named entity: euml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00eb"
- ]
- ]
- },
- {
- "input": "&euro",
- "description": "Bad named entity: euro without a semi-colon",
- "output": [
- [
- "Character",
- "&euro"
- ]
- ]
- },
- {
- "input": "€",
- "description": "Named entity: euro; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20ac"
- ]
- ]
- },
- {
- "input": "&excl",
- "description": "Bad named entity: excl without a semi-colon",
- "output": [
- [
- "Character",
- "&excl"
- ]
- ]
- },
- {
- "input": "!",
- "description": "Named entity: excl; with a semi-colon",
- "output": [
- [
- "Character",
- "!"
- ]
- ]
- },
- {
- "input": "&exist",
- "description": "Bad named entity: exist without a semi-colon",
- "output": [
- [
- "Character",
- "&exist"
- ]
- ]
- },
- {
- "input": "∃",
- "description": "Named entity: exist; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2203"
- ]
- ]
- },
- {
- "input": "&expectation",
- "description": "Bad named entity: expectation without a semi-colon",
- "output": [
- [
- "Character",
- "&expectation"
- ]
- ]
- },
- {
- "input": "ℰ",
- "description": "Named entity: expectation; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2130"
- ]
- ]
- },
- {
- "input": "&exponentiale",
- "description": "Bad named entity: exponentiale without a semi-colon",
- "output": [
- [
- "Character",
- "&exponentiale"
- ]
- ]
- },
- {
- "input": "ⅇ",
- "description": "Named entity: exponentiale; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2147"
- ]
- ]
- },
- {
- "input": "&fallingdotseq",
- "description": "Bad named entity: fallingdotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&fallingdotseq"
- ]
- ]
- },
- {
- "input": "≒",
- "description": "Named entity: fallingdotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2252"
- ]
- ]
- },
- {
- "input": "&fcy",
- "description": "Bad named entity: fcy without a semi-colon",
- "output": [
- [
- "Character",
- "&fcy"
- ]
- ]
- },
- {
- "input": "ф",
- "description": "Named entity: fcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0444"
- ]
- ]
- },
- {
- "input": "&female",
- "description": "Bad named entity: female without a semi-colon",
- "output": [
- [
- "Character",
- "&female"
- ]
- ]
- },
- {
- "input": "♀",
- "description": "Named entity: female; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2640"
- ]
- ]
- },
- {
- "input": "&ffilig",
- "description": "Bad named entity: ffilig without a semi-colon",
- "output": [
- [
- "Character",
- "&ffilig"
- ]
- ]
- },
- {
- "input": "ffi",
- "description": "Named entity: ffilig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb03"
- ]
- ]
- },
- {
- "input": "&fflig",
- "description": "Bad named entity: fflig without a semi-colon",
- "output": [
- [
- "Character",
- "&fflig"
- ]
- ]
- },
- {
- "input": "ff",
- "description": "Named entity: fflig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb00"
- ]
- ]
- },
- {
- "input": "&ffllig",
- "description": "Bad named entity: ffllig without a semi-colon",
- "output": [
- [
- "Character",
- "&ffllig"
- ]
- ]
- },
- {
- "input": "ffl",
- "description": "Named entity: ffllig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb04"
- ]
- ]
- },
- {
- "input": "&ffr",
- "description": "Bad named entity: ffr without a semi-colon",
- "output": [
- [
- "Character",
- "&ffr"
- ]
- ]
- },
- {
- "input": "𝔣",
- "description": "Named entity: ffr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd23"
- ]
- ]
- },
- {
- "input": "&filig",
- "description": "Bad named entity: filig without a semi-colon",
- "output": [
- [
- "Character",
- "&filig"
- ]
- ]
- },
- {
- "input": "fi",
- "description": "Named entity: filig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb01"
- ]
- ]
- },
- {
- "input": "&fjlig",
- "description": "Bad named entity: fjlig without a semi-colon",
- "output": [
- [
- "Character",
- "&fjlig"
- ]
- ]
- },
- {
- "input": "fj",
- "description": "Named entity: fjlig; with a semi-colon",
- "output": [
- [
- "Character",
- "fj"
- ]
- ]
- },
- {
- "input": "&flat",
- "description": "Bad named entity: flat without a semi-colon",
- "output": [
- [
- "Character",
- "&flat"
- ]
- ]
- },
- {
- "input": "♭",
- "description": "Named entity: flat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266d"
- ]
- ]
- },
- {
- "input": "&fllig",
- "description": "Bad named entity: fllig without a semi-colon",
- "output": [
- [
- "Character",
- "&fllig"
- ]
- ]
- },
- {
- "input": "fl",
- "description": "Named entity: fllig; with a semi-colon",
- "output": [
- [
- "Character",
- "\ufb02"
- ]
- ]
- },
- {
- "input": "&fltns",
- "description": "Bad named entity: fltns without a semi-colon",
- "output": [
- [
- "Character",
- "&fltns"
- ]
- ]
- },
- {
- "input": "▱",
- "description": "Named entity: fltns; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b1"
- ]
- ]
- },
- {
- "input": "&fnof",
- "description": "Bad named entity: fnof without a semi-colon",
- "output": [
- [
- "Character",
- "&fnof"
- ]
- ]
- },
- {
- "input": "ƒ",
- "description": "Named entity: fnof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0192"
- ]
- ]
- },
- {
- "input": "&fopf",
- "description": "Bad named entity: fopf without a semi-colon",
- "output": [
- [
- "Character",
- "&fopf"
- ]
- ]
- },
- {
- "input": "𝕗",
- "description": "Named entity: fopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd57"
- ]
- ]
- },
- {
- "input": "&forall",
- "description": "Bad named entity: forall without a semi-colon",
- "output": [
- [
- "Character",
- "&forall"
- ]
- ]
- },
- {
- "input": "∀",
- "description": "Named entity: forall; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2200"
- ]
- ]
- },
- {
- "input": "&fork",
- "description": "Bad named entity: fork without a semi-colon",
- "output": [
- [
- "Character",
- "&fork"
- ]
- ]
- },
- {
- "input": "⋔",
- "description": "Named entity: fork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d4"
- ]
- ]
- },
- {
- "input": "&forkv",
- "description": "Bad named entity: forkv without a semi-colon",
- "output": [
- [
- "Character",
- "&forkv"
- ]
- ]
- },
- {
- "input": "⫙",
- "description": "Named entity: forkv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad9"
- ]
- ]
- },
- {
- "input": "&fpartint",
- "description": "Bad named entity: fpartint without a semi-colon",
- "output": [
- [
- "Character",
- "&fpartint"
- ]
- ]
- },
- {
- "input": "⨍",
- "description": "Named entity: fpartint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0d"
- ]
- ]
- },
- {
- "input": "½",
- "description": "Named entity: frac12 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "½",
- "description": "Named entity: frac12; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "&frac13",
- "description": "Bad named entity: frac13 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac13"
- ]
- ]
- },
- {
- "input": "⅓",
- "description": "Named entity: frac13; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2153"
- ]
- ]
- },
- {
- "input": "¼",
- "description": "Named entity: frac14 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bc"
- ]
- ]
- },
- {
- "input": "¼",
- "description": "Named entity: frac14; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bc"
- ]
- ]
- },
- {
- "input": "&frac15",
- "description": "Bad named entity: frac15 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac15"
- ]
- ]
- },
- {
- "input": "⅕",
- "description": "Named entity: frac15; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2155"
- ]
- ]
- },
- {
- "input": "&frac16",
- "description": "Bad named entity: frac16 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac16"
- ]
- ]
- },
- {
- "input": "⅙",
- "description": "Named entity: frac16; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2159"
- ]
- ]
- },
- {
- "input": "&frac18",
- "description": "Bad named entity: frac18 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac18"
- ]
- ]
- },
- {
- "input": "⅛",
- "description": "Named entity: frac18; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215b"
- ]
- ]
- },
- {
- "input": "&frac23",
- "description": "Bad named entity: frac23 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac23"
- ]
- ]
- },
- {
- "input": "⅔",
- "description": "Named entity: frac23; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2154"
- ]
- ]
- },
- {
- "input": "&frac25",
- "description": "Bad named entity: frac25 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac25"
- ]
- ]
- },
- {
- "input": "⅖",
- "description": "Named entity: frac25; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2156"
- ]
- ]
- },
- {
- "input": "¾",
- "description": "Named entity: frac34 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00be"
- ]
- ]
- },
- {
- "input": "¾",
- "description": "Named entity: frac34; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00be"
- ]
- ]
- },
- {
- "input": "&frac35",
- "description": "Bad named entity: frac35 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac35"
- ]
- ]
- },
- {
- "input": "⅗",
- "description": "Named entity: frac35; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2157"
- ]
- ]
- },
- {
- "input": "&frac38",
- "description": "Bad named entity: frac38 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac38"
- ]
- ]
- },
- {
- "input": "⅜",
- "description": "Named entity: frac38; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215c"
- ]
- ]
- },
- {
- "input": "&frac45",
- "description": "Bad named entity: frac45 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac45"
- ]
- ]
- },
- {
- "input": "⅘",
- "description": "Named entity: frac45; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2158"
- ]
- ]
- },
- {
- "input": "&frac56",
- "description": "Bad named entity: frac56 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac56"
- ]
- ]
- },
- {
- "input": "⅚",
- "description": "Named entity: frac56; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215a"
- ]
- ]
- },
- {
- "input": "&frac58",
- "description": "Bad named entity: frac58 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac58"
- ]
- ]
- },
- {
- "input": "⅝",
- "description": "Named entity: frac58; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215d"
- ]
- ]
- },
- {
- "input": "&frac78",
- "description": "Bad named entity: frac78 without a semi-colon",
- "output": [
- [
- "Character",
- "&frac78"
- ]
- ]
- },
- {
- "input": "⅞",
- "description": "Named entity: frac78; with a semi-colon",
- "output": [
- [
- "Character",
- "\u215e"
- ]
- ]
- },
- {
- "input": "&frasl",
- "description": "Bad named entity: frasl without a semi-colon",
- "output": [
- [
- "Character",
- "&frasl"
- ]
- ]
- },
- {
- "input": "⁄",
- "description": "Named entity: frasl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2044"
- ]
- ]
- },
- {
- "input": "&frown",
- "description": "Bad named entity: frown without a semi-colon",
- "output": [
- [
- "Character",
- "&frown"
- ]
- ]
- },
- {
- "input": "⌢",
- "description": "Named entity: frown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2322"
- ]
- ]
- },
- {
- "input": "&fscr",
- "description": "Bad named entity: fscr without a semi-colon",
- "output": [
- [
- "Character",
- "&fscr"
- ]
- ]
- },
- {
- "input": "𝒻",
- "description": "Named entity: fscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbb"
- ]
- ]
- },
- {
- "input": "&gE",
- "description": "Bad named entity: gE without a semi-colon",
- "output": [
- [
- "Character",
- "&gE"
- ]
- ]
- },
- {
- "input": "≧",
- "description": "Named entity: gE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&gEl",
- "description": "Bad named entity: gEl without a semi-colon",
- "output": [
- [
- "Character",
- "&gEl"
- ]
- ]
- },
- {
- "input": "⪌",
- "description": "Named entity: gEl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8c"
- ]
- ]
- },
- {
- "input": "&gacute",
- "description": "Bad named entity: gacute without a semi-colon",
- "output": [
- [
- "Character",
- "&gacute"
- ]
- ]
- },
- {
- "input": "ǵ",
- "description": "Named entity: gacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u01f5"
- ]
- ]
- },
- {
- "input": "&gamma",
- "description": "Bad named entity: gamma without a semi-colon",
- "output": [
- [
- "Character",
- "&gamma"
- ]
- ]
- },
- {
- "input": "γ",
- "description": "Named entity: gamma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b3"
- ]
- ]
- },
- {
- "input": "&gammad",
- "description": "Bad named entity: gammad without a semi-colon",
- "output": [
- [
- "Character",
- "&gammad"
- ]
- ]
- },
- {
- "input": "ϝ",
- "description": "Named entity: gammad; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03dd"
- ]
- ]
- },
- {
- "input": "&gap",
- "description": "Bad named entity: gap without a semi-colon",
- "output": [
- [
- "Character",
- "&gap"
- ]
- ]
- },
- {
- "input": "⪆",
- "description": "Named entity: gap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a86"
- ]
- ]
- },
- {
- "input": "&gbreve",
- "description": "Bad named entity: gbreve without a semi-colon",
- "output": [
- [
- "Character",
- "&gbreve"
- ]
- ]
- },
- {
- "input": "ğ",
- "description": "Named entity: gbreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011f"
- ]
- ]
- },
- {
- "input": "&gcirc",
- "description": "Bad named entity: gcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&gcirc"
- ]
- ]
- },
- {
- "input": "ĝ",
- "description": "Named entity: gcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u011d"
- ]
- ]
- },
- {
- "input": "&gcy",
- "description": "Bad named entity: gcy without a semi-colon",
- "output": [
- [
- "Character",
- "&gcy"
- ]
- ]
- },
- {
- "input": "г",
- "description": "Named entity: gcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0433"
- ]
- ]
- },
- {
- "input": "&gdot",
- "description": "Bad named entity: gdot without a semi-colon",
- "output": [
- [
- "Character",
- "&gdot"
- ]
- ]
- },
- {
- "input": "ġ",
- "description": "Named entity: gdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0121"
- ]
- ]
- },
- {
- "input": "&ge",
- "description": "Bad named entity: ge without a semi-colon",
- "output": [
- [
- "Character",
- "&ge"
- ]
- ]
- },
- {
- "input": "≥",
- "description": "Named entity: ge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&gel",
- "description": "Bad named entity: gel without a semi-colon",
- "output": [
- [
- "Character",
- "&gel"
- ]
- ]
- },
- {
- "input": "⋛",
- "description": "Named entity: gel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "&geq",
- "description": "Bad named entity: geq without a semi-colon",
- "output": [
- [
- "Character",
- "&geq"
- ]
- ]
- },
- {
- "input": "≥",
- "description": "Named entity: geq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265"
- ]
- ]
- },
- {
- "input": "&geqq",
- "description": "Bad named entity: geqq without a semi-colon",
- "output": [
- [
- "Character",
- "&geqq"
- ]
- ]
- },
- {
- "input": "≧",
- "description": "Named entity: geqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267"
- ]
- ]
- },
- {
- "input": "&geqslant",
- "description": "Bad named entity: geqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&geqslant"
- ]
- ]
- },
- {
- "input": "⩾",
- "description": "Named entity: geqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&ges",
- "description": "Bad named entity: ges without a semi-colon",
- "output": [
- [
- "Character",
- "&ges"
- ]
- ]
- },
- {
- "input": "⩾",
- "description": "Named entity: ges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e"
- ]
- ]
- },
- {
- "input": "&gescc",
- "description": "Bad named entity: gescc without a semi-colon",
- "output": [
- [
- "Character",
- "&gescc"
- ]
- ]
- },
- {
- "input": "⪩",
- "description": "Named entity: gescc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa9"
- ]
- ]
- },
- {
- "input": "&gesdot",
- "description": "Bad named entity: gesdot without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdot"
- ]
- ]
- },
- {
- "input": "⪀",
- "description": "Named entity: gesdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a80"
- ]
- ]
- },
- {
- "input": "&gesdoto",
- "description": "Bad named entity: gesdoto without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdoto"
- ]
- ]
- },
- {
- "input": "⪂",
- "description": "Named entity: gesdoto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a82"
- ]
- ]
- },
- {
- "input": "&gesdotol",
- "description": "Bad named entity: gesdotol without a semi-colon",
- "output": [
- [
- "Character",
- "&gesdotol"
- ]
- ]
- },
- {
- "input": "⪄",
- "description": "Named entity: gesdotol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a84"
- ]
- ]
- },
- {
- "input": "&gesl",
- "description": "Bad named entity: gesl without a semi-colon",
- "output": [
- [
- "Character",
- "&gesl"
- ]
- ]
- },
- {
- "input": "⋛︀",
- "description": "Named entity: gesl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db\ufe00"
- ]
- ]
- },
- {
- "input": "&gesles",
- "description": "Bad named entity: gesles without a semi-colon",
- "output": [
- [
- "Character",
- "&gesles"
- ]
- ]
- },
- {
- "input": "⪔",
- "description": "Named entity: gesles; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a94"
- ]
- ]
- },
- {
- "input": "&gfr",
- "description": "Bad named entity: gfr without a semi-colon",
- "output": [
- [
- "Character",
- "&gfr"
- ]
- ]
- },
- {
- "input": "𝔤",
- "description": "Named entity: gfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd24"
- ]
- ]
- },
- {
- "input": "&gg",
- "description": "Bad named entity: gg without a semi-colon",
- "output": [
- [
- "Character",
- "&gg"
- ]
- ]
- },
- {
- "input": "≫",
- "description": "Named entity: gg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b"
- ]
- ]
- },
- {
- "input": "&ggg",
- "description": "Bad named entity: ggg without a semi-colon",
- "output": [
- [
- "Character",
- "&ggg"
- ]
- ]
- },
- {
- "input": "⋙",
- "description": "Named entity: ggg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9"
- ]
- ]
- },
- {
- "input": "&gimel",
- "description": "Bad named entity: gimel without a semi-colon",
- "output": [
- [
- "Character",
- "&gimel"
- ]
- ]
- },
- {
- "input": "ℷ",
- "description": "Named entity: gimel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2137"
- ]
- ]
- },
- {
- "input": "&gjcy",
- "description": "Bad named entity: gjcy without a semi-colon",
- "output": [
- [
- "Character",
- "&gjcy"
- ]
- ]
- },
- {
- "input": "ѓ",
- "description": "Named entity: gjcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0453"
- ]
- ]
- },
- {
- "input": "&gl",
- "description": "Bad named entity: gl without a semi-colon",
- "output": [
- [
- "Character",
- "&gl"
- ]
- ]
- },
- {
- "input": "≷",
- "description": "Named entity: gl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "&glE",
- "description": "Bad named entity: glE without a semi-colon",
- "output": [
- [
- "Character",
- "&glE"
- ]
- ]
- },
- {
- "input": "⪒",
- "description": "Named entity: glE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a92"
- ]
- ]
- },
- {
- "input": "&gla",
- "description": "Bad named entity: gla without a semi-colon",
- "output": [
- [
- "Character",
- "&gla"
- ]
- ]
- },
- {
- "input": "⪥",
- "description": "Named entity: gla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa5"
- ]
- ]
- },
- {
- "input": "&glj",
- "description": "Bad named entity: glj without a semi-colon",
- "output": [
- [
- "Character",
- "&glj"
- ]
- ]
- },
- {
- "input": "⪤",
- "description": "Named entity: glj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa4"
- ]
- ]
- },
- {
- "input": "&gnE",
- "description": "Bad named entity: gnE without a semi-colon",
- "output": [
- [
- "Character",
- "&gnE"
- ]
- ]
- },
- {
- "input": "≩",
- "description": "Named entity: gnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269"
- ]
- ]
- },
- {
- "input": "&gnap",
- "description": "Bad named entity: gnap without a semi-colon",
- "output": [
- [
- "Character",
- "&gnap"
- ]
- ]
- },
- {
- "input": "⪊",
- "description": "Named entity: gnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8a"
- ]
- ]
- },
- {
- "input": "&gnapprox",
- "description": "Bad named entity: gnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&gnapprox"
- ]
- ]
- },
- {
- "input": "⪊",
- "description": "Named entity: gnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8a"
- ]
- ]
- },
- {
- "input": "&gne",
- "description": "Bad named entity: gne without a semi-colon",
- "output": [
- [
- "Character",
- "&gne"
- ]
- ]
- },
- {
- "input": "⪈",
- "description": "Named entity: gne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a88"
- ]
- ]
- },
- {
- "input": "&gneq",
- "description": "Bad named entity: gneq without a semi-colon",
- "output": [
- [
- "Character",
- "&gneq"
- ]
- ]
- },
- {
- "input": "⪈",
- "description": "Named entity: gneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a88"
- ]
- ]
- },
- {
- "input": "&gneqq",
- "description": "Bad named entity: gneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&gneqq"
- ]
- ]
- },
- {
- "input": "≩",
- "description": "Named entity: gneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269"
- ]
- ]
- },
- {
- "input": "&gnsim",
- "description": "Bad named entity: gnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&gnsim"
- ]
- ]
- },
- {
- "input": "⋧",
- "description": "Named entity: gnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e7"
- ]
- ]
- },
- {
- "input": "&gopf",
- "description": "Bad named entity: gopf without a semi-colon",
- "output": [
- [
- "Character",
- "&gopf"
- ]
- ]
- },
- {
- "input": "𝕘",
- "description": "Named entity: gopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd58"
- ]
- ]
- },
- {
- "input": "&grave",
- "description": "Bad named entity: grave without a semi-colon",
- "output": [
- [
- "Character",
- "&grave"
- ]
- ]
- },
- {
- "input": "`",
- "description": "Named entity: grave; with a semi-colon",
- "output": [
- [
- "Character",
- "`"
- ]
- ]
- },
- {
- "input": "&gscr",
- "description": "Bad named entity: gscr without a semi-colon",
- "output": [
- [
- "Character",
- "&gscr"
- ]
- ]
- },
- {
- "input": "ℊ",
- "description": "Named entity: gscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210a"
- ]
- ]
- },
- {
- "input": "&gsim",
- "description": "Bad named entity: gsim without a semi-colon",
- "output": [
- [
- "Character",
- "&gsim"
- ]
- ]
- },
- {
- "input": "≳",
- "description": "Named entity: gsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&gsime",
- "description": "Bad named entity: gsime without a semi-colon",
- "output": [
- [
- "Character",
- "&gsime"
- ]
- ]
- },
- {
- "input": "⪎",
- "description": "Named entity: gsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8e"
- ]
- ]
- },
- {
- "input": "&gsiml",
- "description": "Bad named entity: gsiml without a semi-colon",
- "output": [
- [
- "Character",
- "&gsiml"
- ]
- ]
- },
- {
- "input": "⪐",
- "description": "Named entity: gsiml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a90"
- ]
- ]
- },
- {
- "input": ">",
- "description": "Named entity: gt without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": ">",
- "description": "Named entity: gt; with a semi-colon",
- "output": [
- [
- "Character",
- ">"
- ]
- ]
- },
- {
- "input": "⪧",
- "description": "Named entity: gtcc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa7"
- ]
- ]
- },
- {
- "input": "⩺",
- "description": "Named entity: gtcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7a"
- ]
- ]
- },
- {
- "input": "⋗",
- "description": "Named entity: gtdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d7"
- ]
- ]
- },
- {
- "input": "⦕",
- "description": "Named entity: gtlPar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2995"
- ]
- ]
- },
- {
- "input": "⩼",
- "description": "Named entity: gtquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7c"
- ]
- ]
- },
- {
- "input": "⪆",
- "description": "Named entity: gtrapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a86"
- ]
- ]
- },
- {
- "input": "⥸",
- "description": "Named entity: gtrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2978"
- ]
- ]
- },
- {
- "input": "⋗",
- "description": "Named entity: gtrdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d7"
- ]
- ]
- },
- {
- "input": "⋛",
- "description": "Named entity: gtreqless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22db"
- ]
- ]
- },
- {
- "input": "⪌",
- "description": "Named entity: gtreqqless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8c"
- ]
- ]
- },
- {
- "input": "≷",
- "description": "Named entity: gtrless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2277"
- ]
- ]
- },
- {
- "input": "≳",
- "description": "Named entity: gtrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2273"
- ]
- ]
- },
- {
- "input": "&gvertneqq",
- "description": "Bad named entity: gvertneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&gvertneqq"
- ]
- ]
- },
- {
- "input": "≩︀",
- "description": "Named entity: gvertneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269\ufe00"
- ]
- ]
- },
- {
- "input": "&gvnE",
- "description": "Bad named entity: gvnE without a semi-colon",
- "output": [
- [
- "Character",
- "&gvnE"
- ]
- ]
- },
- {
- "input": "≩︀",
- "description": "Named entity: gvnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2269\ufe00"
- ]
- ]
- },
- {
- "input": "&hArr",
- "description": "Bad named entity: hArr without a semi-colon",
- "output": [
- [
- "Character",
- "&hArr"
- ]
- ]
- },
- {
- "input": "⇔",
- "description": "Named entity: hArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&hairsp",
- "description": "Bad named entity: hairsp without a semi-colon",
- "output": [
- [
- "Character",
- "&hairsp"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: hairsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200a"
- ]
- ]
- },
- {
- "input": "&half",
- "description": "Bad named entity: half without a semi-colon",
- "output": [
- [
- "Character",
- "&half"
- ]
- ]
- },
- {
- "input": "½",
- "description": "Named entity: half; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bd"
- ]
- ]
- },
- {
- "input": "&hamilt",
- "description": "Bad named entity: hamilt without a semi-colon",
- "output": [
- [
- "Character",
- "&hamilt"
- ]
- ]
- },
- {
- "input": "ℋ",
- "description": "Named entity: hamilt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210b"
- ]
- ]
- },
- {
- "input": "&hardcy",
- "description": "Bad named entity: hardcy without a semi-colon",
- "output": [
- [
- "Character",
- "&hardcy"
- ]
- ]
- },
- {
- "input": "ъ",
- "description": "Named entity: hardcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044a"
- ]
- ]
- },
- {
- "input": "&harr",
- "description": "Bad named entity: harr without a semi-colon",
- "output": [
- [
- "Character",
- "&harr"
- ]
- ]
- },
- {
- "input": "↔",
- "description": "Named entity: harr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&harrcir",
- "description": "Bad named entity: harrcir without a semi-colon",
- "output": [
- [
- "Character",
- "&harrcir"
- ]
- ]
- },
- {
- "input": "⥈",
- "description": "Named entity: harrcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2948"
- ]
- ]
- },
- {
- "input": "&harrw",
- "description": "Bad named entity: harrw without a semi-colon",
- "output": [
- [
- "Character",
- "&harrw"
- ]
- ]
- },
- {
- "input": "↭",
- "description": "Named entity: harrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ad"
- ]
- ]
- },
- {
- "input": "&hbar",
- "description": "Bad named entity: hbar without a semi-colon",
- "output": [
- [
- "Character",
- "&hbar"
- ]
- ]
- },
- {
- "input": "ℏ",
- "description": "Named entity: hbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&hcirc",
- "description": "Bad named entity: hcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&hcirc"
- ]
- ]
- },
- {
- "input": "ĥ",
- "description": "Named entity: hcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0125"
- ]
- ]
- },
- {
- "input": "&hearts",
- "description": "Bad named entity: hearts without a semi-colon",
- "output": [
- [
- "Character",
- "&hearts"
- ]
- ]
- },
- {
- "input": "♥",
- "description": "Named entity: hearts; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2665"
- ]
- ]
- },
- {
- "input": "&heartsuit",
- "description": "Bad named entity: heartsuit without a semi-colon",
- "output": [
- [
- "Character",
- "&heartsuit"
- ]
- ]
- },
- {
- "input": "♥",
- "description": "Named entity: heartsuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2665"
- ]
- ]
- },
- {
- "input": "&hellip",
- "description": "Bad named entity: hellip without a semi-colon",
- "output": [
- [
- "Character",
- "&hellip"
- ]
- ]
- },
- {
- "input": "…",
- "description": "Named entity: hellip; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2026"
- ]
- ]
- },
- {
- "input": "&hercon",
- "description": "Bad named entity: hercon without a semi-colon",
- "output": [
- [
- "Character",
- "&hercon"
- ]
- ]
- },
- {
- "input": "⊹",
- "description": "Named entity: hercon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b9"
- ]
- ]
- },
- {
- "input": "&hfr",
- "description": "Bad named entity: hfr without a semi-colon",
- "output": [
- [
- "Character",
- "&hfr"
- ]
- ]
- },
- {
- "input": "𝔥",
- "description": "Named entity: hfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd25"
- ]
- ]
- },
- {
- "input": "&hksearow",
- "description": "Bad named entity: hksearow without a semi-colon",
- "output": [
- [
- "Character",
- "&hksearow"
- ]
- ]
- },
- {
- "input": "⤥",
- "description": "Named entity: hksearow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2925"
- ]
- ]
- },
- {
- "input": "&hkswarow",
- "description": "Bad named entity: hkswarow without a semi-colon",
- "output": [
- [
- "Character",
- "&hkswarow"
- ]
- ]
- },
- {
- "input": "⤦",
- "description": "Named entity: hkswarow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2926"
- ]
- ]
- },
- {
- "input": "&hoarr",
- "description": "Bad named entity: hoarr without a semi-colon",
- "output": [
- [
- "Character",
- "&hoarr"
- ]
- ]
- },
- {
- "input": "⇿",
- "description": "Named entity: hoarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ff"
- ]
- ]
- },
- {
- "input": "&homtht",
- "description": "Bad named entity: homtht without a semi-colon",
- "output": [
- [
- "Character",
- "&homtht"
- ]
- ]
- },
- {
- "input": "∻",
- "description": "Named entity: homtht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223b"
- ]
- ]
- },
- {
- "input": "&hookleftarrow",
- "description": "Bad named entity: hookleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&hookleftarrow"
- ]
- ]
- },
- {
- "input": "↩",
- "description": "Named entity: hookleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a9"
- ]
- ]
- },
- {
- "input": "&hookrightarrow",
- "description": "Bad named entity: hookrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&hookrightarrow"
- ]
- ]
- },
- {
- "input": "↪",
- "description": "Named entity: hookrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21aa"
- ]
- ]
- },
- {
- "input": "&hopf",
- "description": "Bad named entity: hopf without a semi-colon",
- "output": [
- [
- "Character",
- "&hopf"
- ]
- ]
- },
- {
- "input": "𝕙",
- "description": "Named entity: hopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd59"
- ]
- ]
- },
- {
- "input": "&horbar",
- "description": "Bad named entity: horbar without a semi-colon",
- "output": [
- [
- "Character",
- "&horbar"
- ]
- ]
- },
- {
- "input": "―",
- "description": "Named entity: horbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2015"
- ]
- ]
- },
- {
- "input": "&hscr",
- "description": "Bad named entity: hscr without a semi-colon",
- "output": [
- [
- "Character",
- "&hscr"
- ]
- ]
- },
- {
- "input": "𝒽",
- "description": "Named entity: hscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbd"
- ]
- ]
- },
- {
- "input": "&hslash",
- "description": "Bad named entity: hslash without a semi-colon",
- "output": [
- [
- "Character",
- "&hslash"
- ]
- ]
- },
- {
- "input": "ℏ",
- "description": "Named entity: hslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&hstrok",
- "description": "Bad named entity: hstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&hstrok"
- ]
- ]
- },
- {
- "input": "ħ",
- "description": "Named entity: hstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0127"
- ]
- ]
- },
- {
- "input": "&hybull",
- "description": "Bad named entity: hybull without a semi-colon",
- "output": [
- [
- "Character",
- "&hybull"
- ]
- ]
- },
- {
- "input": "⁃",
- "description": "Named entity: hybull; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2043"
- ]
- ]
- },
- {
- "input": "&hyphen",
- "description": "Bad named entity: hyphen without a semi-colon",
- "output": [
- [
- "Character",
- "&hyphen"
- ]
- ]
- },
- {
- "input": "‐",
- "description": "Named entity: hyphen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2010"
- ]
- ]
- },
- {
- "input": "í",
- "description": "Named entity: iacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ed"
- ]
- ]
- },
- {
- "input": "í",
- "description": "Named entity: iacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ed"
- ]
- ]
- },
- {
- "input": "&ic",
- "description": "Bad named entity: ic without a semi-colon",
- "output": [
- [
- "Character",
- "&ic"
- ]
- ]
- },
- {
- "input": "⁣",
- "description": "Named entity: ic; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2063"
- ]
- ]
- },
- {
- "input": "î",
- "description": "Named entity: icirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ee"
- ]
- ]
- },
- {
- "input": "î",
- "description": "Named entity: icirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ee"
- ]
- ]
- },
- {
- "input": "&icy",
- "description": "Bad named entity: icy without a semi-colon",
- "output": [
- [
- "Character",
- "&icy"
- ]
- ]
- },
- {
- "input": "и",
- "description": "Named entity: icy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0438"
- ]
- ]
- },
- {
- "input": "&iecy",
- "description": "Bad named entity: iecy without a semi-colon",
- "output": [
- [
- "Character",
- "&iecy"
- ]
- ]
- },
- {
- "input": "е",
- "description": "Named entity: iecy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0435"
- ]
- ]
- },
- {
- "input": "¡",
- "description": "Named entity: iexcl without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a1"
- ]
- ]
- },
- {
- "input": "¡",
- "description": "Named entity: iexcl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a1"
- ]
- ]
- },
- {
- "input": "&iff",
- "description": "Bad named entity: iff without a semi-colon",
- "output": [
- [
- "Character",
- "&iff"
- ]
- ]
- },
- {
- "input": "⇔",
- "description": "Named entity: iff; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d4"
- ]
- ]
- },
- {
- "input": "&ifr",
- "description": "Bad named entity: ifr without a semi-colon",
- "output": [
- [
- "Character",
- "&ifr"
- ]
- ]
- },
- {
- "input": "𝔦",
- "description": "Named entity: ifr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd26"
- ]
- ]
- },
- {
- "input": "ì",
- "description": "Named entity: igrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ec"
- ]
- ]
- },
- {
- "input": "ì",
- "description": "Named entity: igrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ec"
- ]
- ]
- },
- {
- "input": "&ii",
- "description": "Bad named entity: ii without a semi-colon",
- "output": [
- [
- "Character",
- "&ii"
- ]
- ]
- },
- {
- "input": "ⅈ",
- "description": "Named entity: ii; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2148"
- ]
- ]
- },
- {
- "input": "&iiiint",
- "description": "Bad named entity: iiiint without a semi-colon",
- "output": [
- [
- "Character",
- "&iiiint"
- ]
- ]
- },
- {
- "input": "⨌",
- "description": "Named entity: iiiint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0c"
- ]
- ]
- },
- {
- "input": "&iiint",
- "description": "Bad named entity: iiint without a semi-colon",
- "output": [
- [
- "Character",
- "&iiint"
- ]
- ]
- },
- {
- "input": "∭",
- "description": "Named entity: iiint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222d"
- ]
- ]
- },
- {
- "input": "&iinfin",
- "description": "Bad named entity: iinfin without a semi-colon",
- "output": [
- [
- "Character",
- "&iinfin"
- ]
- ]
- },
- {
- "input": "⧜",
- "description": "Named entity: iinfin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29dc"
- ]
- ]
- },
- {
- "input": "&iiota",
- "description": "Bad named entity: iiota without a semi-colon",
- "output": [
- [
- "Character",
- "&iiota"
- ]
- ]
- },
- {
- "input": "℩",
- "description": "Named entity: iiota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2129"
- ]
- ]
- },
- {
- "input": "&ijlig",
- "description": "Bad named entity: ijlig without a semi-colon",
- "output": [
- [
- "Character",
- "&ijlig"
- ]
- ]
- },
- {
- "input": "ij",
- "description": "Named entity: ijlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0133"
- ]
- ]
- },
- {
- "input": "&imacr",
- "description": "Bad named entity: imacr without a semi-colon",
- "output": [
- [
- "Character",
- "&imacr"
- ]
- ]
- },
- {
- "input": "ī",
- "description": "Named entity: imacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012b"
- ]
- ]
- },
- {
- "input": "&image",
- "description": "Bad named entity: image without a semi-colon",
- "output": [
- [
- "Character",
- "&image"
- ]
- ]
- },
- {
- "input": "ℑ",
- "description": "Named entity: image; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&imagline",
- "description": "Bad named entity: imagline without a semi-colon",
- "output": [
- [
- "Character",
- "&imagline"
- ]
- ]
- },
- {
- "input": "ℐ",
- "description": "Named entity: imagline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2110"
- ]
- ]
- },
- {
- "input": "&imagpart",
- "description": "Bad named entity: imagpart without a semi-colon",
- "output": [
- [
- "Character",
- "&imagpart"
- ]
- ]
- },
- {
- "input": "ℑ",
- "description": "Named entity: imagpart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2111"
- ]
- ]
- },
- {
- "input": "&imath",
- "description": "Bad named entity: imath without a semi-colon",
- "output": [
- [
- "Character",
- "&imath"
- ]
- ]
- },
- {
- "input": "ı",
- "description": "Named entity: imath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0131"
- ]
- ]
- },
- {
- "input": "&imof",
- "description": "Bad named entity: imof without a semi-colon",
- "output": [
- [
- "Character",
- "&imof"
- ]
- ]
- },
- {
- "input": "⊷",
- "description": "Named entity: imof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b7"
- ]
- ]
- },
- {
- "input": "&imped",
- "description": "Bad named entity: imped without a semi-colon",
- "output": [
- [
- "Character",
- "&imped"
- ]
- ]
- },
- {
- "input": "Ƶ",
- "description": "Named entity: imped; with a semi-colon",
- "output": [
- [
- "Character",
- "\u01b5"
- ]
- ]
- },
- {
- "input": "&in",
- "description": "Bad named entity: in without a semi-colon",
- "output": [
- [
- "Character",
- "&in"
- ]
- ]
- },
- {
- "input": "∈",
- "description": "Named entity: in; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&incare",
- "description": "Bad named entity: incare without a semi-colon",
- "output": [
- [
- "Character",
- "&incare"
- ]
- ]
- },
- {
- "input": "℅",
- "description": "Named entity: incare; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2105"
- ]
- ]
- },
- {
- "input": "&infin",
- "description": "Bad named entity: infin without a semi-colon",
- "output": [
- [
- "Character",
- "&infin"
- ]
- ]
- },
- {
- "input": "∞",
- "description": "Named entity: infin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221e"
- ]
- ]
- },
- {
- "input": "&infintie",
- "description": "Bad named entity: infintie without a semi-colon",
- "output": [
- [
- "Character",
- "&infintie"
- ]
- ]
- },
- {
- "input": "⧝",
- "description": "Named entity: infintie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29dd"
- ]
- ]
- },
- {
- "input": "&inodot",
- "description": "Bad named entity: inodot without a semi-colon",
- "output": [
- [
- "Character",
- "&inodot"
- ]
- ]
- },
- {
- "input": "ı",
- "description": "Named entity: inodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0131"
- ]
- ]
- },
- {
- "input": "&int",
- "description": "Bad named entity: int without a semi-colon",
- "output": [
- [
- "Character",
- "&int"
- ]
- ]
- },
- {
- "input": "∫",
- "description": "Named entity: int; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222b"
- ]
- ]
- },
- {
- "input": "&intcal",
- "description": "Bad named entity: intcal without a semi-colon",
- "output": [
- [
- "Character",
- "&intcal"
- ]
- ]
- },
- {
- "input": "⊺",
- "description": "Named entity: intcal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ba"
- ]
- ]
- },
- {
- "input": "&integers",
- "description": "Bad named entity: integers without a semi-colon",
- "output": [
- [
- "Character",
- "&integers"
- ]
- ]
- },
- {
- "input": "ℤ",
- "description": "Named entity: integers; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2124"
- ]
- ]
- },
- {
- "input": "&intercal",
- "description": "Bad named entity: intercal without a semi-colon",
- "output": [
- [
- "Character",
- "&intercal"
- ]
- ]
- },
- {
- "input": "⊺",
- "description": "Named entity: intercal; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ba"
- ]
- ]
- },
- {
- "input": "&intlarhk",
- "description": "Bad named entity: intlarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&intlarhk"
- ]
- ]
- },
- {
- "input": "⨗",
- "description": "Named entity: intlarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a17"
- ]
- ]
- },
- {
- "input": "&intprod",
- "description": "Bad named entity: intprod without a semi-colon",
- "output": [
- [
- "Character",
- "&intprod"
- ]
- ]
- },
- {
- "input": "⨼",
- "description": "Named entity: intprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3c"
- ]
- ]
- },
- {
- "input": "&iocy",
- "description": "Bad named entity: iocy without a semi-colon",
- "output": [
- [
- "Character",
- "&iocy"
- ]
- ]
- },
- {
- "input": "ё",
- "description": "Named entity: iocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0451"
- ]
- ]
- },
- {
- "input": "&iogon",
- "description": "Bad named entity: iogon without a semi-colon",
- "output": [
- [
- "Character",
- "&iogon"
- ]
- ]
- },
- {
- "input": "į",
- "description": "Named entity: iogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u012f"
- ]
- ]
- },
- {
- "input": "&iopf",
- "description": "Bad named entity: iopf without a semi-colon",
- "output": [
- [
- "Character",
- "&iopf"
- ]
- ]
- },
- {
- "input": "𝕚",
- "description": "Named entity: iopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5a"
- ]
- ]
- },
- {
- "input": "&iota",
- "description": "Bad named entity: iota without a semi-colon",
- "output": [
- [
- "Character",
- "&iota"
- ]
- ]
- },
- {
- "input": "ι",
- "description": "Named entity: iota; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b9"
- ]
- ]
- },
- {
- "input": "&iprod",
- "description": "Bad named entity: iprod without a semi-colon",
- "output": [
- [
- "Character",
- "&iprod"
- ]
- ]
- },
- {
- "input": "⨼",
- "description": "Named entity: iprod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3c"
- ]
- ]
- },
- {
- "input": "¿",
- "description": "Named entity: iquest without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bf"
- ]
- ]
- },
- {
- "input": "¿",
- "description": "Named entity: iquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bf"
- ]
- ]
- },
- {
- "input": "&iscr",
- "description": "Bad named entity: iscr without a semi-colon",
- "output": [
- [
- "Character",
- "&iscr"
- ]
- ]
- },
- {
- "input": "𝒾",
- "description": "Named entity: iscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbe"
- ]
- ]
- },
- {
- "input": "&isin",
- "description": "Bad named entity: isin without a semi-colon",
- "output": [
- [
- "Character",
- "&isin"
- ]
- ]
- },
- {
- "input": "∈",
- "description": "Named entity: isin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&isinE",
- "description": "Bad named entity: isinE without a semi-colon",
- "output": [
- [
- "Character",
- "&isinE"
- ]
- ]
- },
- {
- "input": "⋹",
- "description": "Named entity: isinE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f9"
- ]
- ]
- },
- {
- "input": "&isindot",
- "description": "Bad named entity: isindot without a semi-colon",
- "output": [
- [
- "Character",
- "&isindot"
- ]
- ]
- },
- {
- "input": "⋵",
- "description": "Named entity: isindot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f5"
- ]
- ]
- },
- {
- "input": "&isins",
- "description": "Bad named entity: isins without a semi-colon",
- "output": [
- [
- "Character",
- "&isins"
- ]
- ]
- },
- {
- "input": "⋴",
- "description": "Named entity: isins; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f4"
- ]
- ]
- },
- {
- "input": "&isinsv",
- "description": "Bad named entity: isinsv without a semi-colon",
- "output": [
- [
- "Character",
- "&isinsv"
- ]
- ]
- },
- {
- "input": "⋳",
- "description": "Named entity: isinsv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f3"
- ]
- ]
- },
- {
- "input": "&isinv",
- "description": "Bad named entity: isinv without a semi-colon",
- "output": [
- [
- "Character",
- "&isinv"
- ]
- ]
- },
- {
- "input": "∈",
- "description": "Named entity: isinv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2208"
- ]
- ]
- },
- {
- "input": "&it",
- "description": "Bad named entity: it without a semi-colon",
- "output": [
- [
- "Character",
- "&it"
- ]
- ]
- },
- {
- "input": "⁢",
- "description": "Named entity: it; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2062"
- ]
- ]
- },
- {
- "input": "&itilde",
- "description": "Bad named entity: itilde without a semi-colon",
- "output": [
- [
- "Character",
- "&itilde"
- ]
- ]
- },
- {
- "input": "ĩ",
- "description": "Named entity: itilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0129"
- ]
- ]
- },
- {
- "input": "&iukcy",
- "description": "Bad named entity: iukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&iukcy"
- ]
- ]
- },
- {
- "input": "і",
- "description": "Named entity: iukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0456"
- ]
- ]
- },
- {
- "input": "ï",
- "description": "Named entity: iuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ef"
- ]
- ]
- },
- {
- "input": "ï",
- "description": "Named entity: iuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ef"
- ]
- ]
- },
- {
- "input": "&jcirc",
- "description": "Bad named entity: jcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&jcirc"
- ]
- ]
- },
- {
- "input": "ĵ",
- "description": "Named entity: jcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0135"
- ]
- ]
- },
- {
- "input": "&jcy",
- "description": "Bad named entity: jcy without a semi-colon",
- "output": [
- [
- "Character",
- "&jcy"
- ]
- ]
- },
- {
- "input": "й",
- "description": "Named entity: jcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0439"
- ]
- ]
- },
- {
- "input": "&jfr",
- "description": "Bad named entity: jfr without a semi-colon",
- "output": [
- [
- "Character",
- "&jfr"
- ]
- ]
- },
- {
- "input": "𝔧",
- "description": "Named entity: jfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd27"
- ]
- ]
- },
- {
- "input": "&jmath",
- "description": "Bad named entity: jmath without a semi-colon",
- "output": [
- [
- "Character",
- "&jmath"
- ]
- ]
- },
- {
- "input": "ȷ",
- "description": "Named entity: jmath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0237"
- ]
- ]
- },
- {
- "input": "&jopf",
- "description": "Bad named entity: jopf without a semi-colon",
- "output": [
- [
- "Character",
- "&jopf"
- ]
- ]
- },
- {
- "input": "𝕛",
- "description": "Named entity: jopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5b"
- ]
- ]
- },
- {
- "input": "&jscr",
- "description": "Bad named entity: jscr without a semi-colon",
- "output": [
- [
- "Character",
- "&jscr"
- ]
- ]
- },
- {
- "input": "𝒿",
- "description": "Named entity: jscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcbf"
- ]
- ]
- },
- {
- "input": "&jsercy",
- "description": "Bad named entity: jsercy without a semi-colon",
- "output": [
- [
- "Character",
- "&jsercy"
- ]
- ]
- },
- {
- "input": "ј",
- "description": "Named entity: jsercy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0458"
- ]
- ]
- },
- {
- "input": "&jukcy",
- "description": "Bad named entity: jukcy without a semi-colon",
- "output": [
- [
- "Character",
- "&jukcy"
- ]
- ]
- },
- {
- "input": "є",
- "description": "Named entity: jukcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0454"
- ]
- ]
- },
- {
- "input": "&kappa",
- "description": "Bad named entity: kappa without a semi-colon",
- "output": [
- [
- "Character",
- "&kappa"
- ]
- ]
- },
- {
- "input": "κ",
- "description": "Named entity: kappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03ba"
- ]
- ]
- },
- {
- "input": "&kappav",
- "description": "Bad named entity: kappav without a semi-colon",
- "output": [
- [
- "Character",
- "&kappav"
- ]
- ]
- },
- {
- "input": "ϰ",
- "description": "Named entity: kappav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f0"
- ]
- ]
- },
- {
- "input": "&kcedil",
- "description": "Bad named entity: kcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&kcedil"
- ]
- ]
- },
- {
- "input": "ķ",
- "description": "Named entity: kcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0137"
- ]
- ]
- },
- {
- "input": "&kcy",
- "description": "Bad named entity: kcy without a semi-colon",
- "output": [
- [
- "Character",
- "&kcy"
- ]
- ]
- },
- {
- "input": "к",
- "description": "Named entity: kcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043a"
- ]
- ]
- },
- {
- "input": "&kfr",
- "description": "Bad named entity: kfr without a semi-colon",
- "output": [
- [
- "Character",
- "&kfr"
- ]
- ]
- },
- {
- "input": "𝔨",
- "description": "Named entity: kfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd28"
- ]
- ]
- },
- {
- "input": "&kgreen",
- "description": "Bad named entity: kgreen without a semi-colon",
- "output": [
- [
- "Character",
- "&kgreen"
- ]
- ]
- },
- {
- "input": "ĸ",
- "description": "Named entity: kgreen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0138"
- ]
- ]
- },
- {
- "input": "&khcy",
- "description": "Bad named entity: khcy without a semi-colon",
- "output": [
- [
- "Character",
- "&khcy"
- ]
- ]
- },
- {
- "input": "х",
- "description": "Named entity: khcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0445"
- ]
- ]
- },
- {
- "input": "&kjcy",
- "description": "Bad named entity: kjcy without a semi-colon",
- "output": [
- [
- "Character",
- "&kjcy"
- ]
- ]
- },
- {
- "input": "ќ",
- "description": "Named entity: kjcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045c"
- ]
- ]
- },
- {
- "input": "&kopf",
- "description": "Bad named entity: kopf without a semi-colon",
- "output": [
- [
- "Character",
- "&kopf"
- ]
- ]
- },
- {
- "input": "𝕜",
- "description": "Named entity: kopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5c"
- ]
- ]
- },
- {
- "input": "&kscr",
- "description": "Bad named entity: kscr without a semi-colon",
- "output": [
- [
- "Character",
- "&kscr"
- ]
- ]
- },
- {
- "input": "𝓀",
- "description": "Named entity: kscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc0"
- ]
- ]
- },
- {
- "input": "&lAarr",
- "description": "Bad named entity: lAarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lAarr"
- ]
- ]
- },
- {
- "input": "⇚",
- "description": "Named entity: lAarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21da"
- ]
- ]
- },
- {
- "input": "&lArr",
- "description": "Bad named entity: lArr without a semi-colon",
- "output": [
- [
- "Character",
- "&lArr"
- ]
- ]
- },
- {
- "input": "⇐",
- "description": "Named entity: lArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d0"
- ]
- ]
- },
- {
- "input": "&lAtail",
- "description": "Bad named entity: lAtail without a semi-colon",
- "output": [
- [
- "Character",
- "&lAtail"
- ]
- ]
- },
- {
- "input": "⤛",
- "description": "Named entity: lAtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291b"
- ]
- ]
- },
- {
- "input": "&lBarr",
- "description": "Bad named entity: lBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lBarr"
- ]
- ]
- },
- {
- "input": "⤎",
- "description": "Named entity: lBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290e"
- ]
- ]
- },
- {
- "input": "&lE",
- "description": "Bad named entity: lE without a semi-colon",
- "output": [
- [
- "Character",
- "&lE"
- ]
- ]
- },
- {
- "input": "≦",
- "description": "Named entity: lE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&lEg",
- "description": "Bad named entity: lEg without a semi-colon",
- "output": [
- [
- "Character",
- "&lEg"
- ]
- ]
- },
- {
- "input": "⪋",
- "description": "Named entity: lEg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8b"
- ]
- ]
- },
- {
- "input": "&lHar",
- "description": "Bad named entity: lHar without a semi-colon",
- "output": [
- [
- "Character",
- "&lHar"
- ]
- ]
- },
- {
- "input": "⥢",
- "description": "Named entity: lHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2962"
- ]
- ]
- },
- {
- "input": "&lacute",
- "description": "Bad named entity: lacute without a semi-colon",
- "output": [
- [
- "Character",
- "&lacute"
- ]
- ]
- },
- {
- "input": "ĺ",
- "description": "Named entity: lacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013a"
- ]
- ]
- },
- {
- "input": "&laemptyv",
- "description": "Bad named entity: laemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&laemptyv"
- ]
- ]
- },
- {
- "input": "⦴",
- "description": "Named entity: laemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b4"
- ]
- ]
- },
- {
- "input": "&lagran",
- "description": "Bad named entity: lagran without a semi-colon",
- "output": [
- [
- "Character",
- "&lagran"
- ]
- ]
- },
- {
- "input": "ℒ",
- "description": "Named entity: lagran; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2112"
- ]
- ]
- },
- {
- "input": "&lambda",
- "description": "Bad named entity: lambda without a semi-colon",
- "output": [
- [
- "Character",
- "&lambda"
- ]
- ]
- },
- {
- "input": "λ",
- "description": "Named entity: lambda; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bb"
- ]
- ]
- },
- {
- "input": "&lang",
- "description": "Bad named entity: lang without a semi-colon",
- "output": [
- [
- "Character",
- "&lang"
- ]
- ]
- },
- {
- "input": "〈",
- "description": "Named entity: lang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&langd",
- "description": "Bad named entity: langd without a semi-colon",
- "output": [
- [
- "Character",
- "&langd"
- ]
- ]
- },
- {
- "input": "⦑",
- "description": "Named entity: langd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2991"
- ]
- ]
- },
- {
- "input": "&langle",
- "description": "Bad named entity: langle without a semi-colon",
- "output": [
- [
- "Character",
- "&langle"
- ]
- ]
- },
- {
- "input": "⟨",
- "description": "Named entity: langle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e8"
- ]
- ]
- },
- {
- "input": "&lap",
- "description": "Bad named entity: lap without a semi-colon",
- "output": [
- [
- "Character",
- "&lap"
- ]
- ]
- },
- {
- "input": "⪅",
- "description": "Named entity: lap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a85"
- ]
- ]
- },
- {
- "input": "«",
- "description": "Named entity: laquo without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ab"
- ]
- ]
- },
- {
- "input": "«",
- "description": "Named entity: laquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ab"
- ]
- ]
- },
- {
- "input": "&larr",
- "description": "Bad named entity: larr without a semi-colon",
- "output": [
- [
- "Character",
- "&larr"
- ]
- ]
- },
- {
- "input": "←",
- "description": "Named entity: larr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&larrb",
- "description": "Bad named entity: larrb without a semi-colon",
- "output": [
- [
- "Character",
- "&larrb"
- ]
- ]
- },
- {
- "input": "⇤",
- "description": "Named entity: larrb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e4"
- ]
- ]
- },
- {
- "input": "&larrbfs",
- "description": "Bad named entity: larrbfs without a semi-colon",
- "output": [
- [
- "Character",
- "&larrbfs"
- ]
- ]
- },
- {
- "input": "⤟",
- "description": "Named entity: larrbfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291f"
- ]
- ]
- },
- {
- "input": "&larrfs",
- "description": "Bad named entity: larrfs without a semi-colon",
- "output": [
- [
- "Character",
- "&larrfs"
- ]
- ]
- },
- {
- "input": "⤝",
- "description": "Named entity: larrfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291d"
- ]
- ]
- },
- {
- "input": "&larrhk",
- "description": "Bad named entity: larrhk without a semi-colon",
- "output": [
- [
- "Character",
- "&larrhk"
- ]
- ]
- },
- {
- "input": "↩",
- "description": "Named entity: larrhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a9"
- ]
- ]
- },
- {
- "input": "&larrlp",
- "description": "Bad named entity: larrlp without a semi-colon",
- "output": [
- [
- "Character",
- "&larrlp"
- ]
- ]
- },
- {
- "input": "↫",
- "description": "Named entity: larrlp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ab"
- ]
- ]
- },
- {
- "input": "&larrpl",
- "description": "Bad named entity: larrpl without a semi-colon",
- "output": [
- [
- "Character",
- "&larrpl"
- ]
- ]
- },
- {
- "input": "⤹",
- "description": "Named entity: larrpl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2939"
- ]
- ]
- },
- {
- "input": "&larrsim",
- "description": "Bad named entity: larrsim without a semi-colon",
- "output": [
- [
- "Character",
- "&larrsim"
- ]
- ]
- },
- {
- "input": "⥳",
- "description": "Named entity: larrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2973"
- ]
- ]
- },
- {
- "input": "&larrtl",
- "description": "Bad named entity: larrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&larrtl"
- ]
- ]
- },
- {
- "input": "↢",
- "description": "Named entity: larrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a2"
- ]
- ]
- },
- {
- "input": "&lat",
- "description": "Bad named entity: lat without a semi-colon",
- "output": [
- [
- "Character",
- "&lat"
- ]
- ]
- },
- {
- "input": "⪫",
- "description": "Named entity: lat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aab"
- ]
- ]
- },
- {
- "input": "&latail",
- "description": "Bad named entity: latail without a semi-colon",
- "output": [
- [
- "Character",
- "&latail"
- ]
- ]
- },
- {
- "input": "⤙",
- "description": "Named entity: latail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2919"
- ]
- ]
- },
- {
- "input": "&late",
- "description": "Bad named entity: late without a semi-colon",
- "output": [
- [
- "Character",
- "&late"
- ]
- ]
- },
- {
- "input": "⪭",
- "description": "Named entity: late; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aad"
- ]
- ]
- },
- {
- "input": "&lates",
- "description": "Bad named entity: lates without a semi-colon",
- "output": [
- [
- "Character",
- "&lates"
- ]
- ]
- },
- {
- "input": "⪭︀",
- "description": "Named entity: lates; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aad\ufe00"
- ]
- ]
- },
- {
- "input": "&lbarr",
- "description": "Bad named entity: lbarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lbarr"
- ]
- ]
- },
- {
- "input": "⤌",
- "description": "Named entity: lbarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290c"
- ]
- ]
- },
- {
- "input": "&lbbrk",
- "description": "Bad named entity: lbbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&lbbrk"
- ]
- ]
- },
- {
- "input": "❲",
- "description": "Named entity: lbbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2772"
- ]
- ]
- },
- {
- "input": "&lbrace",
- "description": "Bad named entity: lbrace without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrace"
- ]
- ]
- },
- {
- "input": "{",
- "description": "Named entity: lbrace; with a semi-colon",
- "output": [
- [
- "Character",
- "{"
- ]
- ]
- },
- {
- "input": "&lbrack",
- "description": "Bad named entity: lbrack without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrack"
- ]
- ]
- },
- {
- "input": "[",
- "description": "Named entity: lbrack; with a semi-colon",
- "output": [
- [
- "Character",
- "["
- ]
- ]
- },
- {
- "input": "&lbrke",
- "description": "Bad named entity: lbrke without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrke"
- ]
- ]
- },
- {
- "input": "⦋",
- "description": "Named entity: lbrke; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298b"
- ]
- ]
- },
- {
- "input": "&lbrksld",
- "description": "Bad named entity: lbrksld without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrksld"
- ]
- ]
- },
- {
- "input": "⦏",
- "description": "Named entity: lbrksld; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298f"
- ]
- ]
- },
- {
- "input": "&lbrkslu",
- "description": "Bad named entity: lbrkslu without a semi-colon",
- "output": [
- [
- "Character",
- "&lbrkslu"
- ]
- ]
- },
- {
- "input": "⦍",
- "description": "Named entity: lbrkslu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298d"
- ]
- ]
- },
- {
- "input": "&lcaron",
- "description": "Bad named entity: lcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&lcaron"
- ]
- ]
- },
- {
- "input": "ľ",
- "description": "Named entity: lcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013e"
- ]
- ]
- },
- {
- "input": "&lcedil",
- "description": "Bad named entity: lcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&lcedil"
- ]
- ]
- },
- {
- "input": "ļ",
- "description": "Named entity: lcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u013c"
- ]
- ]
- },
- {
- "input": "&lceil",
- "description": "Bad named entity: lceil without a semi-colon",
- "output": [
- [
- "Character",
- "&lceil"
- ]
- ]
- },
- {
- "input": "⌈",
- "description": "Named entity: lceil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2308"
- ]
- ]
- },
- {
- "input": "&lcub",
- "description": "Bad named entity: lcub without a semi-colon",
- "output": [
- [
- "Character",
- "&lcub"
- ]
- ]
- },
- {
- "input": "{",
- "description": "Named entity: lcub; with a semi-colon",
- "output": [
- [
- "Character",
- "{"
- ]
- ]
- },
- {
- "input": "&lcy",
- "description": "Bad named entity: lcy without a semi-colon",
- "output": [
- [
- "Character",
- "&lcy"
- ]
- ]
- },
- {
- "input": "л",
- "description": "Named entity: lcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043b"
- ]
- ]
- },
- {
- "input": "&ldca",
- "description": "Bad named entity: ldca without a semi-colon",
- "output": [
- [
- "Character",
- "&ldca"
- ]
- ]
- },
- {
- "input": "⤶",
- "description": "Named entity: ldca; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2936"
- ]
- ]
- },
- {
- "input": "&ldquo",
- "description": "Bad named entity: ldquo without a semi-colon",
- "output": [
- [
- "Character",
- "&ldquo"
- ]
- ]
- },
- {
- "input": "“",
- "description": "Named entity: ldquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201c"
- ]
- ]
- },
- {
- "input": "&ldquor",
- "description": "Bad named entity: ldquor without a semi-colon",
- "output": [
- [
- "Character",
- "&ldquor"
- ]
- ]
- },
- {
- "input": "„",
- "description": "Named entity: ldquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201e"
- ]
- ]
- },
- {
- "input": "&ldrdhar",
- "description": "Bad named entity: ldrdhar without a semi-colon",
- "output": [
- [
- "Character",
- "&ldrdhar"
- ]
- ]
- },
- {
- "input": "⥧",
- "description": "Named entity: ldrdhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2967"
- ]
- ]
- },
- {
- "input": "&ldrushar",
- "description": "Bad named entity: ldrushar without a semi-colon",
- "output": [
- [
- "Character",
- "&ldrushar"
- ]
- ]
- },
- {
- "input": "⥋",
- "description": "Named entity: ldrushar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294b"
- ]
- ]
- },
- {
- "input": "&ldsh",
- "description": "Bad named entity: ldsh without a semi-colon",
- "output": [
- [
- "Character",
- "&ldsh"
- ]
- ]
- },
- {
- "input": "↲",
- "description": "Named entity: ldsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b2"
- ]
- ]
- },
- {
- "input": "&le",
- "description": "Bad named entity: le without a semi-colon",
- "output": [
- [
- "Character",
- "&le"
- ]
- ]
- },
- {
- "input": "≤",
- "description": "Named entity: le; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264"
- ]
- ]
- },
- {
- "input": "&leftarrow",
- "description": "Bad named entity: leftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftarrow"
- ]
- ]
- },
- {
- "input": "←",
- "description": "Named entity: leftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&leftarrowtail",
- "description": "Bad named entity: leftarrowtail without a semi-colon",
- "output": [
- [
- "Character",
- "&leftarrowtail"
- ]
- ]
- },
- {
- "input": "↢",
- "description": "Named entity: leftarrowtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a2"
- ]
- ]
- },
- {
- "input": "&leftharpoondown",
- "description": "Bad named entity: leftharpoondown without a semi-colon",
- "output": [
- [
- "Character",
- "&leftharpoondown"
- ]
- ]
- },
- {
- "input": "↽",
- "description": "Named entity: leftharpoondown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&leftharpoonup",
- "description": "Bad named entity: leftharpoonup without a semi-colon",
- "output": [
- [
- "Character",
- "&leftharpoonup"
- ]
- ]
- },
- {
- "input": "↼",
- "description": "Named entity: leftharpoonup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&leftleftarrows",
- "description": "Bad named entity: leftleftarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&leftleftarrows"
- ]
- ]
- },
- {
- "input": "⇇",
- "description": "Named entity: leftleftarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c7"
- ]
- ]
- },
- {
- "input": "&leftrightarrow",
- "description": "Bad named entity: leftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightarrow"
- ]
- ]
- },
- {
- "input": "↔",
- "description": "Named entity: leftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2194"
- ]
- ]
- },
- {
- "input": "&leftrightarrows",
- "description": "Bad named entity: leftrightarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightarrows"
- ]
- ]
- },
- {
- "input": "⇆",
- "description": "Named entity: leftrightarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&leftrightharpoons",
- "description": "Bad named entity: leftrightharpoons without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightharpoons"
- ]
- ]
- },
- {
- "input": "⇋",
- "description": "Named entity: leftrightharpoons; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&leftrightsquigarrow",
- "description": "Bad named entity: leftrightsquigarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&leftrightsquigarrow"
- ]
- ]
- },
- {
- "input": "↭",
- "description": "Named entity: leftrightsquigarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ad"
- ]
- ]
- },
- {
- "input": "&leftthreetimes",
- "description": "Bad named entity: leftthreetimes without a semi-colon",
- "output": [
- [
- "Character",
- "&leftthreetimes"
- ]
- ]
- },
- {
- "input": "⋋",
- "description": "Named entity: leftthreetimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cb"
- ]
- ]
- },
- {
- "input": "&leg",
- "description": "Bad named entity: leg without a semi-colon",
- "output": [
- [
- "Character",
- "&leg"
- ]
- ]
- },
- {
- "input": "⋚",
- "description": "Named entity: leg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&leq",
- "description": "Bad named entity: leq without a semi-colon",
- "output": [
- [
- "Character",
- "&leq"
- ]
- ]
- },
- {
- "input": "≤",
- "description": "Named entity: leq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264"
- ]
- ]
- },
- {
- "input": "&leqq",
- "description": "Bad named entity: leqq without a semi-colon",
- "output": [
- [
- "Character",
- "&leqq"
- ]
- ]
- },
- {
- "input": "≦",
- "description": "Named entity: leqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266"
- ]
- ]
- },
- {
- "input": "&leqslant",
- "description": "Bad named entity: leqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&leqslant"
- ]
- ]
- },
- {
- "input": "⩽",
- "description": "Named entity: leqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&les",
- "description": "Bad named entity: les without a semi-colon",
- "output": [
- [
- "Character",
- "&les"
- ]
- ]
- },
- {
- "input": "⩽",
- "description": "Named entity: les; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d"
- ]
- ]
- },
- {
- "input": "&lescc",
- "description": "Bad named entity: lescc without a semi-colon",
- "output": [
- [
- "Character",
- "&lescc"
- ]
- ]
- },
- {
- "input": "⪨",
- "description": "Named entity: lescc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa8"
- ]
- ]
- },
- {
- "input": "&lesdot",
- "description": "Bad named entity: lesdot without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdot"
- ]
- ]
- },
- {
- "input": "⩿",
- "description": "Named entity: lesdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7f"
- ]
- ]
- },
- {
- "input": "&lesdoto",
- "description": "Bad named entity: lesdoto without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdoto"
- ]
- ]
- },
- {
- "input": "⪁",
- "description": "Named entity: lesdoto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a81"
- ]
- ]
- },
- {
- "input": "&lesdotor",
- "description": "Bad named entity: lesdotor without a semi-colon",
- "output": [
- [
- "Character",
- "&lesdotor"
- ]
- ]
- },
- {
- "input": "⪃",
- "description": "Named entity: lesdotor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a83"
- ]
- ]
- },
- {
- "input": "&lesg",
- "description": "Bad named entity: lesg without a semi-colon",
- "output": [
- [
- "Character",
- "&lesg"
- ]
- ]
- },
- {
- "input": "⋚︀",
- "description": "Named entity: lesg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da\ufe00"
- ]
- ]
- },
- {
- "input": "&lesges",
- "description": "Bad named entity: lesges without a semi-colon",
- "output": [
- [
- "Character",
- "&lesges"
- ]
- ]
- },
- {
- "input": "⪓",
- "description": "Named entity: lesges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a93"
- ]
- ]
- },
- {
- "input": "&lessapprox",
- "description": "Bad named entity: lessapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&lessapprox"
- ]
- ]
- },
- {
- "input": "⪅",
- "description": "Named entity: lessapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a85"
- ]
- ]
- },
- {
- "input": "&lessdot",
- "description": "Bad named entity: lessdot without a semi-colon",
- "output": [
- [
- "Character",
- "&lessdot"
- ]
- ]
- },
- {
- "input": "⋖",
- "description": "Named entity: lessdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d6"
- ]
- ]
- },
- {
- "input": "&lesseqgtr",
- "description": "Bad named entity: lesseqgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lesseqgtr"
- ]
- ]
- },
- {
- "input": "⋚",
- "description": "Named entity: lesseqgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22da"
- ]
- ]
- },
- {
- "input": "&lesseqqgtr",
- "description": "Bad named entity: lesseqqgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lesseqqgtr"
- ]
- ]
- },
- {
- "input": "⪋",
- "description": "Named entity: lesseqqgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8b"
- ]
- ]
- },
- {
- "input": "&lessgtr",
- "description": "Bad named entity: lessgtr without a semi-colon",
- "output": [
- [
- "Character",
- "&lessgtr"
- ]
- ]
- },
- {
- "input": "≶",
- "description": "Named entity: lessgtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&lesssim",
- "description": "Bad named entity: lesssim without a semi-colon",
- "output": [
- [
- "Character",
- "&lesssim"
- ]
- ]
- },
- {
- "input": "≲",
- "description": "Named entity: lesssim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&lfisht",
- "description": "Bad named entity: lfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&lfisht"
- ]
- ]
- },
- {
- "input": "⥼",
- "description": "Named entity: lfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297c"
- ]
- ]
- },
- {
- "input": "&lfloor",
- "description": "Bad named entity: lfloor without a semi-colon",
- "output": [
- [
- "Character",
- "&lfloor"
- ]
- ]
- },
- {
- "input": "⌊",
- "description": "Named entity: lfloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230a"
- ]
- ]
- },
- {
- "input": "&lfr",
- "description": "Bad named entity: lfr without a semi-colon",
- "output": [
- [
- "Character",
- "&lfr"
- ]
- ]
- },
- {
- "input": "𝔩",
- "description": "Named entity: lfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd29"
- ]
- ]
- },
- {
- "input": "&lg",
- "description": "Bad named entity: lg without a semi-colon",
- "output": [
- [
- "Character",
- "&lg"
- ]
- ]
- },
- {
- "input": "≶",
- "description": "Named entity: lg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2276"
- ]
- ]
- },
- {
- "input": "&lgE",
- "description": "Bad named entity: lgE without a semi-colon",
- "output": [
- [
- "Character",
- "&lgE"
- ]
- ]
- },
- {
- "input": "⪑",
- "description": "Named entity: lgE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a91"
- ]
- ]
- },
- {
- "input": "&lhard",
- "description": "Bad named entity: lhard without a semi-colon",
- "output": [
- [
- "Character",
- "&lhard"
- ]
- ]
- },
- {
- "input": "↽",
- "description": "Named entity: lhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bd"
- ]
- ]
- },
- {
- "input": "&lharu",
- "description": "Bad named entity: lharu without a semi-colon",
- "output": [
- [
- "Character",
- "&lharu"
- ]
- ]
- },
- {
- "input": "↼",
- "description": "Named entity: lharu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bc"
- ]
- ]
- },
- {
- "input": "&lharul",
- "description": "Bad named entity: lharul without a semi-colon",
- "output": [
- [
- "Character",
- "&lharul"
- ]
- ]
- },
- {
- "input": "⥪",
- "description": "Named entity: lharul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296a"
- ]
- ]
- },
- {
- "input": "&lhblk",
- "description": "Bad named entity: lhblk without a semi-colon",
- "output": [
- [
- "Character",
- "&lhblk"
- ]
- ]
- },
- {
- "input": "▄",
- "description": "Named entity: lhblk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2584"
- ]
- ]
- },
- {
- "input": "&ljcy",
- "description": "Bad named entity: ljcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ljcy"
- ]
- ]
- },
- {
- "input": "љ",
- "description": "Named entity: ljcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0459"
- ]
- ]
- },
- {
- "input": "&ll",
- "description": "Bad named entity: ll without a semi-colon",
- "output": [
- [
- "Character",
- "&ll"
- ]
- ]
- },
- {
- "input": "≪",
- "description": "Named entity: ll; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a"
- ]
- ]
- },
- {
- "input": "&llarr",
- "description": "Bad named entity: llarr without a semi-colon",
- "output": [
- [
- "Character",
- "&llarr"
- ]
- ]
- },
- {
- "input": "⇇",
- "description": "Named entity: llarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c7"
- ]
- ]
- },
- {
- "input": "&llcorner",
- "description": "Bad named entity: llcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&llcorner"
- ]
- ]
- },
- {
- "input": "⌞",
- "description": "Named entity: llcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231e"
- ]
- ]
- },
- {
- "input": "&llhard",
- "description": "Bad named entity: llhard without a semi-colon",
- "output": [
- [
- "Character",
- "&llhard"
- ]
- ]
- },
- {
- "input": "⥫",
- "description": "Named entity: llhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296b"
- ]
- ]
- },
- {
- "input": "&lltri",
- "description": "Bad named entity: lltri without a semi-colon",
- "output": [
- [
- "Character",
- "&lltri"
- ]
- ]
- },
- {
- "input": "◺",
- "description": "Named entity: lltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25fa"
- ]
- ]
- },
- {
- "input": "&lmidot",
- "description": "Bad named entity: lmidot without a semi-colon",
- "output": [
- [
- "Character",
- "&lmidot"
- ]
- ]
- },
- {
- "input": "ŀ",
- "description": "Named entity: lmidot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0140"
- ]
- ]
- },
- {
- "input": "&lmoust",
- "description": "Bad named entity: lmoust without a semi-colon",
- "output": [
- [
- "Character",
- "&lmoust"
- ]
- ]
- },
- {
- "input": "⎰",
- "description": "Named entity: lmoust; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b0"
- ]
- ]
- },
- {
- "input": "&lmoustache",
- "description": "Bad named entity: lmoustache without a semi-colon",
- "output": [
- [
- "Character",
- "&lmoustache"
- ]
- ]
- },
- {
- "input": "⎰",
- "description": "Named entity: lmoustache; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b0"
- ]
- ]
- },
- {
- "input": "&lnE",
- "description": "Bad named entity: lnE without a semi-colon",
- "output": [
- [
- "Character",
- "&lnE"
- ]
- ]
- },
- {
- "input": "≨",
- "description": "Named entity: lnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268"
- ]
- ]
- },
- {
- "input": "&lnap",
- "description": "Bad named entity: lnap without a semi-colon",
- "output": [
- [
- "Character",
- "&lnap"
- ]
- ]
- },
- {
- "input": "⪉",
- "description": "Named entity: lnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a89"
- ]
- ]
- },
- {
- "input": "&lnapprox",
- "description": "Bad named entity: lnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&lnapprox"
- ]
- ]
- },
- {
- "input": "⪉",
- "description": "Named entity: lnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a89"
- ]
- ]
- },
- {
- "input": "&lne",
- "description": "Bad named entity: lne without a semi-colon",
- "output": [
- [
- "Character",
- "&lne"
- ]
- ]
- },
- {
- "input": "⪇",
- "description": "Named entity: lne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a87"
- ]
- ]
- },
- {
- "input": "&lneq",
- "description": "Bad named entity: lneq without a semi-colon",
- "output": [
- [
- "Character",
- "&lneq"
- ]
- ]
- },
- {
- "input": "⪇",
- "description": "Named entity: lneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a87"
- ]
- ]
- },
- {
- "input": "&lneqq",
- "description": "Bad named entity: lneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&lneqq"
- ]
- ]
- },
- {
- "input": "≨",
- "description": "Named entity: lneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268"
- ]
- ]
- },
- {
- "input": "&lnsim",
- "description": "Bad named entity: lnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&lnsim"
- ]
- ]
- },
- {
- "input": "⋦",
- "description": "Named entity: lnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e6"
- ]
- ]
- },
- {
- "input": "&loang",
- "description": "Bad named entity: loang without a semi-colon",
- "output": [
- [
- "Character",
- "&loang"
- ]
- ]
- },
- {
- "input": "⟬",
- "description": "Named entity: loang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ec"
- ]
- ]
- },
- {
- "input": "&loarr",
- "description": "Bad named entity: loarr without a semi-colon",
- "output": [
- [
- "Character",
- "&loarr"
- ]
- ]
- },
- {
- "input": "⇽",
- "description": "Named entity: loarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21fd"
- ]
- ]
- },
- {
- "input": "&lobrk",
- "description": "Bad named entity: lobrk without a semi-colon",
- "output": [
- [
- "Character",
- "&lobrk"
- ]
- ]
- },
- {
- "input": "⟦",
- "description": "Named entity: lobrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e6"
- ]
- ]
- },
- {
- "input": "&longleftarrow",
- "description": "Bad named entity: longleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longleftarrow"
- ]
- ]
- },
- {
- "input": "⟵",
- "description": "Named entity: longleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&longleftrightarrow",
- "description": "Bad named entity: longleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longleftrightarrow"
- ]
- ]
- },
- {
- "input": "⟷",
- "description": "Named entity: longleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&longmapsto",
- "description": "Bad named entity: longmapsto without a semi-colon",
- "output": [
- [
- "Character",
- "&longmapsto"
- ]
- ]
- },
- {
- "input": "⟼",
- "description": "Named entity: longmapsto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fc"
- ]
- ]
- },
- {
- "input": "&longrightarrow",
- "description": "Bad named entity: longrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&longrightarrow"
- ]
- ]
- },
- {
- "input": "⟶",
- "description": "Named entity: longrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&looparrowleft",
- "description": "Bad named entity: looparrowleft without a semi-colon",
- "output": [
- [
- "Character",
- "&looparrowleft"
- ]
- ]
- },
- {
- "input": "↫",
- "description": "Named entity: looparrowleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ab"
- ]
- ]
- },
- {
- "input": "&looparrowright",
- "description": "Bad named entity: looparrowright without a semi-colon",
- "output": [
- [
- "Character",
- "&looparrowright"
- ]
- ]
- },
- {
- "input": "↬",
- "description": "Named entity: looparrowright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ac"
- ]
- ]
- },
- {
- "input": "&lopar",
- "description": "Bad named entity: lopar without a semi-colon",
- "output": [
- [
- "Character",
- "&lopar"
- ]
- ]
- },
- {
- "input": "⦅",
- "description": "Named entity: lopar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2985"
- ]
- ]
- },
- {
- "input": "&lopf",
- "description": "Bad named entity: lopf without a semi-colon",
- "output": [
- [
- "Character",
- "&lopf"
- ]
- ]
- },
- {
- "input": "𝕝",
- "description": "Named entity: lopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5d"
- ]
- ]
- },
- {
- "input": "&loplus",
- "description": "Bad named entity: loplus without a semi-colon",
- "output": [
- [
- "Character",
- "&loplus"
- ]
- ]
- },
- {
- "input": "⨭",
- "description": "Named entity: loplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2d"
- ]
- ]
- },
- {
- "input": "&lotimes",
- "description": "Bad named entity: lotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&lotimes"
- ]
- ]
- },
- {
- "input": "⨴",
- "description": "Named entity: lotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a34"
- ]
- ]
- },
- {
- "input": "&lowast",
- "description": "Bad named entity: lowast without a semi-colon",
- "output": [
- [
- "Character",
- "&lowast"
- ]
- ]
- },
- {
- "input": "∗",
- "description": "Named entity: lowast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2217"
- ]
- ]
- },
- {
- "input": "&lowbar",
- "description": "Bad named entity: lowbar without a semi-colon",
- "output": [
- [
- "Character",
- "&lowbar"
- ]
- ]
- },
- {
- "input": "_",
- "description": "Named entity: lowbar; with a semi-colon",
- "output": [
- [
- "Character",
- "_"
- ]
- ]
- },
- {
- "input": "&loz",
- "description": "Bad named entity: loz without a semi-colon",
- "output": [
- [
- "Character",
- "&loz"
- ]
- ]
- },
- {
- "input": "◊",
- "description": "Named entity: loz; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ca"
- ]
- ]
- },
- {
- "input": "&lozenge",
- "description": "Bad named entity: lozenge without a semi-colon",
- "output": [
- [
- "Character",
- "&lozenge"
- ]
- ]
- },
- {
- "input": "◊",
- "description": "Named entity: lozenge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ca"
- ]
- ]
- },
- {
- "input": "&lozf",
- "description": "Bad named entity: lozf without a semi-colon",
- "output": [
- [
- "Character",
- "&lozf"
- ]
- ]
- },
- {
- "input": "⧫",
- "description": "Named entity: lozf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29eb"
- ]
- ]
- },
- {
- "input": "&lpar",
- "description": "Bad named entity: lpar without a semi-colon",
- "output": [
- [
- "Character",
- "&lpar"
- ]
- ]
- },
- {
- "input": "(",
- "description": "Named entity: lpar; with a semi-colon",
- "output": [
- [
- "Character",
- "("
- ]
- ]
- },
- {
- "input": "&lparlt",
- "description": "Bad named entity: lparlt without a semi-colon",
- "output": [
- [
- "Character",
- "&lparlt"
- ]
- ]
- },
- {
- "input": "⦓",
- "description": "Named entity: lparlt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2993"
- ]
- ]
- },
- {
- "input": "&lrarr",
- "description": "Bad named entity: lrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&lrarr"
- ]
- ]
- },
- {
- "input": "⇆",
- "description": "Named entity: lrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c6"
- ]
- ]
- },
- {
- "input": "&lrcorner",
- "description": "Bad named entity: lrcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&lrcorner"
- ]
- ]
- },
- {
- "input": "⌟",
- "description": "Named entity: lrcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231f"
- ]
- ]
- },
- {
- "input": "&lrhar",
- "description": "Bad named entity: lrhar without a semi-colon",
- "output": [
- [
- "Character",
- "&lrhar"
- ]
- ]
- },
- {
- "input": "⇋",
- "description": "Named entity: lrhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cb"
- ]
- ]
- },
- {
- "input": "&lrhard",
- "description": "Bad named entity: lrhard without a semi-colon",
- "output": [
- [
- "Character",
- "&lrhard"
- ]
- ]
- },
- {
- "input": "⥭",
- "description": "Named entity: lrhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296d"
- ]
- ]
- },
- {
- "input": "&lrm",
- "description": "Bad named entity: lrm without a semi-colon",
- "output": [
- [
- "Character",
- "&lrm"
- ]
- ]
- },
- {
- "input": "",
- "description": "Named entity: lrm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200e"
- ]
- ]
- },
- {
- "input": "&lrtri",
- "description": "Bad named entity: lrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&lrtri"
- ]
- ]
- },
- {
- "input": "⊿",
- "description": "Named entity: lrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bf"
- ]
- ]
- },
- {
- "input": "&lsaquo",
- "description": "Bad named entity: lsaquo without a semi-colon",
- "output": [
- [
- "Character",
- "&lsaquo"
- ]
- ]
- },
- {
- "input": "‹",
- "description": "Named entity: lsaquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2039"
- ]
- ]
- },
- {
- "input": "&lscr",
- "description": "Bad named entity: lscr without a semi-colon",
- "output": [
- [
- "Character",
- "&lscr"
- ]
- ]
- },
- {
- "input": "𝓁",
- "description": "Named entity: lscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc1"
- ]
- ]
- },
- {
- "input": "&lsh",
- "description": "Bad named entity: lsh without a semi-colon",
- "output": [
- [
- "Character",
- "&lsh"
- ]
- ]
- },
- {
- "input": "↰",
- "description": "Named entity: lsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b0"
- ]
- ]
- },
- {
- "input": "&lsim",
- "description": "Bad named entity: lsim without a semi-colon",
- "output": [
- [
- "Character",
- "&lsim"
- ]
- ]
- },
- {
- "input": "≲",
- "description": "Named entity: lsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2272"
- ]
- ]
- },
- {
- "input": "&lsime",
- "description": "Bad named entity: lsime without a semi-colon",
- "output": [
- [
- "Character",
- "&lsime"
- ]
- ]
- },
- {
- "input": "⪍",
- "description": "Named entity: lsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8d"
- ]
- ]
- },
- {
- "input": "&lsimg",
- "description": "Bad named entity: lsimg without a semi-colon",
- "output": [
- [
- "Character",
- "&lsimg"
- ]
- ]
- },
- {
- "input": "⪏",
- "description": "Named entity: lsimg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a8f"
- ]
- ]
- },
- {
- "input": "&lsqb",
- "description": "Bad named entity: lsqb without a semi-colon",
- "output": [
- [
- "Character",
- "&lsqb"
- ]
- ]
- },
- {
- "input": "[",
- "description": "Named entity: lsqb; with a semi-colon",
- "output": [
- [
- "Character",
- "["
- ]
- ]
- },
- {
- "input": "&lsquo",
- "description": "Bad named entity: lsquo without a semi-colon",
- "output": [
- [
- "Character",
- "&lsquo"
- ]
- ]
- },
- {
- "input": "‘",
- "description": "Named entity: lsquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2018"
- ]
- ]
- },
- {
- "input": "&lsquor",
- "description": "Bad named entity: lsquor without a semi-colon",
- "output": [
- [
- "Character",
- "&lsquor"
- ]
- ]
- },
- {
- "input": "‚",
- "description": "Named entity: lsquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201a"
- ]
- ]
- },
- {
- "input": "&lstrok",
- "description": "Bad named entity: lstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&lstrok"
- ]
- ]
- },
- {
- "input": "ł",
- "description": "Named entity: lstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0142"
- ]
- ]
- },
- {
- "input": "<",
- "description": "Named entity: lt without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "<",
- "description": "Named entity: lt; with a semi-colon",
- "output": [
- [
- "Character",
- "<"
- ]
- ]
- },
- {
- "input": "⪦",
- "description": "Named entity: ltcc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa6"
- ]
- ]
- },
- {
- "input": "⩹",
- "description": "Named entity: ltcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a79"
- ]
- ]
- },
- {
- "input": "⋖",
- "description": "Named entity: ltdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d6"
- ]
- ]
- },
- {
- "input": "⋋",
- "description": "Named entity: lthree; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cb"
- ]
- ]
- },
- {
- "input": "⋉",
- "description": "Named entity: ltimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c9"
- ]
- ]
- },
- {
- "input": "⥶",
- "description": "Named entity: ltlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2976"
- ]
- ]
- },
- {
- "input": "⩻",
- "description": "Named entity: ltquest; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7b"
- ]
- ]
- },
- {
- "input": "⦖",
- "description": "Named entity: ltrPar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2996"
- ]
- ]
- },
- {
- "input": "◃",
- "description": "Named entity: ltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c3"
- ]
- ]
- },
- {
- "input": "⊴",
- "description": "Named entity: ltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "◂",
- "description": "Named entity: ltrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c2"
- ]
- ]
- },
- {
- "input": "&lurdshar",
- "description": "Bad named entity: lurdshar without a semi-colon",
- "output": [
- [
- "Character",
- "&lurdshar"
- ]
- ]
- },
- {
- "input": "⥊",
- "description": "Named entity: lurdshar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u294a"
- ]
- ]
- },
- {
- "input": "&luruhar",
- "description": "Bad named entity: luruhar without a semi-colon",
- "output": [
- [
- "Character",
- "&luruhar"
- ]
- ]
- },
- {
- "input": "⥦",
- "description": "Named entity: luruhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2966"
- ]
- ]
- },
- {
- "input": "&lvertneqq",
- "description": "Bad named entity: lvertneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&lvertneqq"
- ]
- ]
- },
- {
- "input": "≨︀",
- "description": "Named entity: lvertneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268\ufe00"
- ]
- ]
- },
- {
- "input": "&lvnE",
- "description": "Bad named entity: lvnE without a semi-colon",
- "output": [
- [
- "Character",
- "&lvnE"
- ]
- ]
- },
- {
- "input": "≨︀",
- "description": "Named entity: lvnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2268\ufe00"
- ]
- ]
- },
- {
- "input": "&mDDot",
- "description": "Bad named entity: mDDot without a semi-colon",
- "output": [
- [
- "Character",
- "&mDDot"
- ]
- ]
- },
- {
- "input": "∺",
- "description": "Named entity: mDDot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223a"
- ]
- ]
- },
- {
- "input": "¯",
- "description": "Named entity: macr without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "¯",
- "description": "Named entity: macr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "&male",
- "description": "Bad named entity: male without a semi-colon",
- "output": [
- [
- "Character",
- "&male"
- ]
- ]
- },
- {
- "input": "♂",
- "description": "Named entity: male; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2642"
- ]
- ]
- },
- {
- "input": "&malt",
- "description": "Bad named entity: malt without a semi-colon",
- "output": [
- [
- "Character",
- "&malt"
- ]
- ]
- },
- {
- "input": "✠",
- "description": "Named entity: malt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2720"
- ]
- ]
- },
- {
- "input": "&maltese",
- "description": "Bad named entity: maltese without a semi-colon",
- "output": [
- [
- "Character",
- "&maltese"
- ]
- ]
- },
- {
- "input": "✠",
- "description": "Named entity: maltese; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2720"
- ]
- ]
- },
- {
- "input": "&map",
- "description": "Bad named entity: map without a semi-colon",
- "output": [
- [
- "Character",
- "&map"
- ]
- ]
- },
- {
- "input": "↦",
- "description": "Named entity: map; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&mapsto",
- "description": "Bad named entity: mapsto without a semi-colon",
- "output": [
- [
- "Character",
- "&mapsto"
- ]
- ]
- },
- {
- "input": "↦",
- "description": "Named entity: mapsto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a6"
- ]
- ]
- },
- {
- "input": "&mapstodown",
- "description": "Bad named entity: mapstodown without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstodown"
- ]
- ]
- },
- {
- "input": "↧",
- "description": "Named entity: mapstodown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a7"
- ]
- ]
- },
- {
- "input": "&mapstoleft",
- "description": "Bad named entity: mapstoleft without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstoleft"
- ]
- ]
- },
- {
- "input": "↤",
- "description": "Named entity: mapstoleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a4"
- ]
- ]
- },
- {
- "input": "&mapstoup",
- "description": "Bad named entity: mapstoup without a semi-colon",
- "output": [
- [
- "Character",
- "&mapstoup"
- ]
- ]
- },
- {
- "input": "↥",
- "description": "Named entity: mapstoup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a5"
- ]
- ]
- },
- {
- "input": "&marker",
- "description": "Bad named entity: marker without a semi-colon",
- "output": [
- [
- "Character",
- "&marker"
- ]
- ]
- },
- {
- "input": "▮",
- "description": "Named entity: marker; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ae"
- ]
- ]
- },
- {
- "input": "&mcomma",
- "description": "Bad named entity: mcomma without a semi-colon",
- "output": [
- [
- "Character",
- "&mcomma"
- ]
- ]
- },
- {
- "input": "⨩",
- "description": "Named entity: mcomma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a29"
- ]
- ]
- },
- {
- "input": "&mcy",
- "description": "Bad named entity: mcy without a semi-colon",
- "output": [
- [
- "Character",
- "&mcy"
- ]
- ]
- },
- {
- "input": "м",
- "description": "Named entity: mcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043c"
- ]
- ]
- },
- {
- "input": "&mdash",
- "description": "Bad named entity: mdash without a semi-colon",
- "output": [
- [
- "Character",
- "&mdash"
- ]
- ]
- },
- {
- "input": "—",
- "description": "Named entity: mdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2014"
- ]
- ]
- },
- {
- "input": "&measuredangle",
- "description": "Bad named entity: measuredangle without a semi-colon",
- "output": [
- [
- "Character",
- "&measuredangle"
- ]
- ]
- },
- {
- "input": "∡",
- "description": "Named entity: measuredangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2221"
- ]
- ]
- },
- {
- "input": "&mfr",
- "description": "Bad named entity: mfr without a semi-colon",
- "output": [
- [
- "Character",
- "&mfr"
- ]
- ]
- },
- {
- "input": "𝔪",
- "description": "Named entity: mfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2a"
- ]
- ]
- },
- {
- "input": "&mho",
- "description": "Bad named entity: mho without a semi-colon",
- "output": [
- [
- "Character",
- "&mho"
- ]
- ]
- },
- {
- "input": "℧",
- "description": "Named entity: mho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2127"
- ]
- ]
- },
- {
- "input": "µ",
- "description": "Named entity: micro without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b5"
- ]
- ]
- },
- {
- "input": "µ",
- "description": "Named entity: micro; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b5"
- ]
- ]
- },
- {
- "input": "&mid",
- "description": "Bad named entity: mid without a semi-colon",
- "output": [
- [
- "Character",
- "&mid"
- ]
- ]
- },
- {
- "input": "∣",
- "description": "Named entity: mid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&midast",
- "description": "Bad named entity: midast without a semi-colon",
- "output": [
- [
- "Character",
- "&midast"
- ]
- ]
- },
- {
- "input": "*",
- "description": "Named entity: midast; with a semi-colon",
- "output": [
- [
- "Character",
- "*"
- ]
- ]
- },
- {
- "input": "&midcir",
- "description": "Bad named entity: midcir without a semi-colon",
- "output": [
- [
- "Character",
- "&midcir"
- ]
- ]
- },
- {
- "input": "⫰",
- "description": "Named entity: midcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af0"
- ]
- ]
- },
- {
- "input": "·",
- "description": "Named entity: middot without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "·",
- "description": "Named entity: middot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b7"
- ]
- ]
- },
- {
- "input": "&minus",
- "description": "Bad named entity: minus without a semi-colon",
- "output": [
- [
- "Character",
- "&minus"
- ]
- ]
- },
- {
- "input": "−",
- "description": "Named entity: minus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2212"
- ]
- ]
- },
- {
- "input": "&minusb",
- "description": "Bad named entity: minusb without a semi-colon",
- "output": [
- [
- "Character",
- "&minusb"
- ]
- ]
- },
- {
- "input": "⊟",
- "description": "Named entity: minusb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229f"
- ]
- ]
- },
- {
- "input": "&minusd",
- "description": "Bad named entity: minusd without a semi-colon",
- "output": [
- [
- "Character",
- "&minusd"
- ]
- ]
- },
- {
- "input": "∸",
- "description": "Named entity: minusd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2238"
- ]
- ]
- },
- {
- "input": "&minusdu",
- "description": "Bad named entity: minusdu without a semi-colon",
- "output": [
- [
- "Character",
- "&minusdu"
- ]
- ]
- },
- {
- "input": "⨪",
- "description": "Named entity: minusdu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2a"
- ]
- ]
- },
- {
- "input": "&mlcp",
- "description": "Bad named entity: mlcp without a semi-colon",
- "output": [
- [
- "Character",
- "&mlcp"
- ]
- ]
- },
- {
- "input": "⫛",
- "description": "Named entity: mlcp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2adb"
- ]
- ]
- },
- {
- "input": "&mldr",
- "description": "Bad named entity: mldr without a semi-colon",
- "output": [
- [
- "Character",
- "&mldr"
- ]
- ]
- },
- {
- "input": "…",
- "description": "Named entity: mldr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2026"
- ]
- ]
- },
- {
- "input": "&mnplus",
- "description": "Bad named entity: mnplus without a semi-colon",
- "output": [
- [
- "Character",
- "&mnplus"
- ]
- ]
- },
- {
- "input": "∓",
- "description": "Named entity: mnplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&models",
- "description": "Bad named entity: models without a semi-colon",
- "output": [
- [
- "Character",
- "&models"
- ]
- ]
- },
- {
- "input": "⊧",
- "description": "Named entity: models; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a7"
- ]
- ]
- },
- {
- "input": "&mopf",
- "description": "Bad named entity: mopf without a semi-colon",
- "output": [
- [
- "Character",
- "&mopf"
- ]
- ]
- },
- {
- "input": "𝕞",
- "description": "Named entity: mopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5e"
- ]
- ]
- },
- {
- "input": "&mp",
- "description": "Bad named entity: mp without a semi-colon",
- "output": [
- [
- "Character",
- "&mp"
- ]
- ]
- },
- {
- "input": "∓",
- "description": "Named entity: mp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2213"
- ]
- ]
- },
- {
- "input": "&mscr",
- "description": "Bad named entity: mscr without a semi-colon",
- "output": [
- [
- "Character",
- "&mscr"
- ]
- ]
- },
- {
- "input": "𝓂",
- "description": "Named entity: mscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc2"
- ]
- ]
- },
- {
- "input": "&mstpos",
- "description": "Bad named entity: mstpos without a semi-colon",
- "output": [
- [
- "Character",
- "&mstpos"
- ]
- ]
- },
- {
- "input": "∾",
- "description": "Named entity: mstpos; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223e"
- ]
- ]
- },
- {
- "input": "&mu",
- "description": "Bad named entity: mu without a semi-colon",
- "output": [
- [
- "Character",
- "&mu"
- ]
- ]
- },
- {
- "input": "μ",
- "description": "Named entity: mu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bc"
- ]
- ]
- },
- {
- "input": "&multimap",
- "description": "Bad named entity: multimap without a semi-colon",
- "output": [
- [
- "Character",
- "&multimap"
- ]
- ]
- },
- {
- "input": "⊸",
- "description": "Named entity: multimap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b8"
- ]
- ]
- },
- {
- "input": "&mumap",
- "description": "Bad named entity: mumap without a semi-colon",
- "output": [
- [
- "Character",
- "&mumap"
- ]
- ]
- },
- {
- "input": "⊸",
- "description": "Named entity: mumap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b8"
- ]
- ]
- },
- {
- "input": "&nGg",
- "description": "Bad named entity: nGg without a semi-colon",
- "output": [
- [
- "Character",
- "&nGg"
- ]
- ]
- },
- {
- "input": "⋙̸",
- "description": "Named entity: nGg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d9\u0338"
- ]
- ]
- },
- {
- "input": "&nGt",
- "description": "Bad named entity: nGt without a semi-colon",
- "output": [
- [
- "Character",
- "&nGt"
- ]
- ]
- },
- {
- "input": "≫⃒",
- "description": "Named entity: nGt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u20d2"
- ]
- ]
- },
- {
- "input": "&nGtv",
- "description": "Bad named entity: nGtv without a semi-colon",
- "output": [
- [
- "Character",
- "&nGtv"
- ]
- ]
- },
- {
- "input": "≫̸",
- "description": "Named entity: nGtv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226b\u0338"
- ]
- ]
- },
- {
- "input": "&nLeftarrow",
- "description": "Bad named entity: nLeftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nLeftarrow"
- ]
- ]
- },
- {
- "input": "⇍",
- "description": "Named entity: nLeftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cd"
- ]
- ]
- },
- {
- "input": "&nLeftrightarrow",
- "description": "Bad named entity: nLeftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nLeftrightarrow"
- ]
- ]
- },
- {
- "input": "⇎",
- "description": "Named entity: nLeftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ce"
- ]
- ]
- },
- {
- "input": "&nLl",
- "description": "Bad named entity: nLl without a semi-colon",
- "output": [
- [
- "Character",
- "&nLl"
- ]
- ]
- },
- {
- "input": "⋘̸",
- "description": "Named entity: nLl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d8\u0338"
- ]
- ]
- },
- {
- "input": "&nLt",
- "description": "Bad named entity: nLt without a semi-colon",
- "output": [
- [
- "Character",
- "&nLt"
- ]
- ]
- },
- {
- "input": "≪⃒",
- "description": "Named entity: nLt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u20d2"
- ]
- ]
- },
- {
- "input": "&nLtv",
- "description": "Bad named entity: nLtv without a semi-colon",
- "output": [
- [
- "Character",
- "&nLtv"
- ]
- ]
- },
- {
- "input": "≪̸",
- "description": "Named entity: nLtv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226a\u0338"
- ]
- ]
- },
- {
- "input": "&nRightarrow",
- "description": "Bad named entity: nRightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nRightarrow"
- ]
- ]
- },
- {
- "input": "⇏",
- "description": "Named entity: nRightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cf"
- ]
- ]
- },
- {
- "input": "&nVDash",
- "description": "Bad named entity: nVDash without a semi-colon",
- "output": [
- [
- "Character",
- "&nVDash"
- ]
- ]
- },
- {
- "input": "⊯",
- "description": "Named entity: nVDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22af"
- ]
- ]
- },
- {
- "input": "&nVdash",
- "description": "Bad named entity: nVdash without a semi-colon",
- "output": [
- [
- "Character",
- "&nVdash"
- ]
- ]
- },
- {
- "input": "⊮",
- "description": "Named entity: nVdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ae"
- ]
- ]
- },
- {
- "input": "&nabla",
- "description": "Bad named entity: nabla without a semi-colon",
- "output": [
- [
- "Character",
- "&nabla"
- ]
- ]
- },
- {
- "input": "∇",
- "description": "Named entity: nabla; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2207"
- ]
- ]
- },
- {
- "input": "&nacute",
- "description": "Bad named entity: nacute without a semi-colon",
- "output": [
- [
- "Character",
- "&nacute"
- ]
- ]
- },
- {
- "input": "ń",
- "description": "Named entity: nacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0144"
- ]
- ]
- },
- {
- "input": "&nang",
- "description": "Bad named entity: nang without a semi-colon",
- "output": [
- [
- "Character",
- "&nang"
- ]
- ]
- },
- {
- "input": "∠⃒",
- "description": "Named entity: nang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2220\u20d2"
- ]
- ]
- },
- {
- "input": "&nap",
- "description": "Bad named entity: nap without a semi-colon",
- "output": [
- [
- "Character",
- "&nap"
- ]
- ]
- },
- {
- "input": "≉",
- "description": "Named entity: nap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&napE",
- "description": "Bad named entity: napE without a semi-colon",
- "output": [
- [
- "Character",
- "&napE"
- ]
- ]
- },
- {
- "input": "⩰̸",
- "description": "Named entity: napE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a70\u0338"
- ]
- ]
- },
- {
- "input": "&napid",
- "description": "Bad named entity: napid without a semi-colon",
- "output": [
- [
- "Character",
- "&napid"
- ]
- ]
- },
- {
- "input": "≋̸",
- "description": "Named entity: napid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224b\u0338"
- ]
- ]
- },
- {
- "input": "&napos",
- "description": "Bad named entity: napos without a semi-colon",
- "output": [
- [
- "Character",
- "&napos"
- ]
- ]
- },
- {
- "input": "ʼn",
- "description": "Named entity: napos; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0149"
- ]
- ]
- },
- {
- "input": "&napprox",
- "description": "Bad named entity: napprox without a semi-colon",
- "output": [
- [
- "Character",
- "&napprox"
- ]
- ]
- },
- {
- "input": "≉",
- "description": "Named entity: napprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2249"
- ]
- ]
- },
- {
- "input": "&natur",
- "description": "Bad named entity: natur without a semi-colon",
- "output": [
- [
- "Character",
- "&natur"
- ]
- ]
- },
- {
- "input": "♮",
- "description": "Named entity: natur; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266e"
- ]
- ]
- },
- {
- "input": "&natural",
- "description": "Bad named entity: natural without a semi-colon",
- "output": [
- [
- "Character",
- "&natural"
- ]
- ]
- },
- {
- "input": "♮",
- "description": "Named entity: natural; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266e"
- ]
- ]
- },
- {
- "input": "&naturals",
- "description": "Bad named entity: naturals without a semi-colon",
- "output": [
- [
- "Character",
- "&naturals"
- ]
- ]
- },
- {
- "input": "ℕ",
- "description": "Named entity: naturals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2115"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: nbsp without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: nbsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a0"
- ]
- ]
- },
- {
- "input": "&nbump",
- "description": "Bad named entity: nbump without a semi-colon",
- "output": [
- [
- "Character",
- "&nbump"
- ]
- ]
- },
- {
- "input": "≎̸",
- "description": "Named entity: nbump; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224e\u0338"
- ]
- ]
- },
- {
- "input": "&nbumpe",
- "description": "Bad named entity: nbumpe without a semi-colon",
- "output": [
- [
- "Character",
- "&nbumpe"
- ]
- ]
- },
- {
- "input": "≏̸",
- "description": "Named entity: nbumpe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224f\u0338"
- ]
- ]
- },
- {
- "input": "&ncap",
- "description": "Bad named entity: ncap without a semi-colon",
- "output": [
- [
- "Character",
- "&ncap"
- ]
- ]
- },
- {
- "input": "⩃",
- "description": "Named entity: ncap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a43"
- ]
- ]
- },
- {
- "input": "&ncaron",
- "description": "Bad named entity: ncaron without a semi-colon",
- "output": [
- [
- "Character",
- "&ncaron"
- ]
- ]
- },
- {
- "input": "ň",
- "description": "Named entity: ncaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0148"
- ]
- ]
- },
- {
- "input": "&ncedil",
- "description": "Bad named entity: ncedil without a semi-colon",
- "output": [
- [
- "Character",
- "&ncedil"
- ]
- ]
- },
- {
- "input": "ņ",
- "description": "Named entity: ncedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0146"
- ]
- ]
- },
- {
- "input": "&ncong",
- "description": "Bad named entity: ncong without a semi-colon",
- "output": [
- [
- "Character",
- "&ncong"
- ]
- ]
- },
- {
- "input": "≇",
- "description": "Named entity: ncong; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2247"
- ]
- ]
- },
- {
- "input": "&ncongdot",
- "description": "Bad named entity: ncongdot without a semi-colon",
- "output": [
- [
- "Character",
- "&ncongdot"
- ]
- ]
- },
- {
- "input": "⩭̸",
- "description": "Named entity: ncongdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6d\u0338"
- ]
- ]
- },
- {
- "input": "&ncup",
- "description": "Bad named entity: ncup without a semi-colon",
- "output": [
- [
- "Character",
- "&ncup"
- ]
- ]
- },
- {
- "input": "⩂",
- "description": "Named entity: ncup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a42"
- ]
- ]
- },
- {
- "input": "&ncy",
- "description": "Bad named entity: ncy without a semi-colon",
- "output": [
- [
- "Character",
- "&ncy"
- ]
- ]
- },
- {
- "input": "н",
- "description": "Named entity: ncy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043d"
- ]
- ]
- },
- {
- "input": "&ndash",
- "description": "Bad named entity: ndash without a semi-colon",
- "output": [
- [
- "Character",
- "&ndash"
- ]
- ]
- },
- {
- "input": "–",
- "description": "Named entity: ndash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2013"
- ]
- ]
- },
- {
- "input": "&ne",
- "description": "Bad named entity: ne without a semi-colon",
- "output": [
- [
- "Character",
- "&ne"
- ]
- ]
- },
- {
- "input": "≠",
- "description": "Named entity: ne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2260"
- ]
- ]
- },
- {
- "input": "&neArr",
- "description": "Bad named entity: neArr without a semi-colon",
- "output": [
- [
- "Character",
- "&neArr"
- ]
- ]
- },
- {
- "input": "⇗",
- "description": "Named entity: neArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d7"
- ]
- ]
- },
- {
- "input": "&nearhk",
- "description": "Bad named entity: nearhk without a semi-colon",
- "output": [
- [
- "Character",
- "&nearhk"
- ]
- ]
- },
- {
- "input": "⤤",
- "description": "Named entity: nearhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2924"
- ]
- ]
- },
- {
- "input": "&nearr",
- "description": "Bad named entity: nearr without a semi-colon",
- "output": [
- [
- "Character",
- "&nearr"
- ]
- ]
- },
- {
- "input": "↗",
- "description": "Named entity: nearr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&nearrow",
- "description": "Bad named entity: nearrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nearrow"
- ]
- ]
- },
- {
- "input": "↗",
- "description": "Named entity: nearrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2197"
- ]
- ]
- },
- {
- "input": "&nedot",
- "description": "Bad named entity: nedot without a semi-colon",
- "output": [
- [
- "Character",
- "&nedot"
- ]
- ]
- },
- {
- "input": "≐̸",
- "description": "Named entity: nedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2250\u0338"
- ]
- ]
- },
- {
- "input": "&nequiv",
- "description": "Bad named entity: nequiv without a semi-colon",
- "output": [
- [
- "Character",
- "&nequiv"
- ]
- ]
- },
- {
- "input": "≢",
- "description": "Named entity: nequiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2262"
- ]
- ]
- },
- {
- "input": "&nesear",
- "description": "Bad named entity: nesear without a semi-colon",
- "output": [
- [
- "Character",
- "&nesear"
- ]
- ]
- },
- {
- "input": "⤨",
- "description": "Named entity: nesear; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2928"
- ]
- ]
- },
- {
- "input": "&nesim",
- "description": "Bad named entity: nesim without a semi-colon",
- "output": [
- [
- "Character",
- "&nesim"
- ]
- ]
- },
- {
- "input": "≂̸",
- "description": "Named entity: nesim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2242\u0338"
- ]
- ]
- },
- {
- "input": "&nexist",
- "description": "Bad named entity: nexist without a semi-colon",
- "output": [
- [
- "Character",
- "&nexist"
- ]
- ]
- },
- {
- "input": "∄",
- "description": "Named entity: nexist; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&nexists",
- "description": "Bad named entity: nexists without a semi-colon",
- "output": [
- [
- "Character",
- "&nexists"
- ]
- ]
- },
- {
- "input": "∄",
- "description": "Named entity: nexists; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2204"
- ]
- ]
- },
- {
- "input": "&nfr",
- "description": "Bad named entity: nfr without a semi-colon",
- "output": [
- [
- "Character",
- "&nfr"
- ]
- ]
- },
- {
- "input": "𝔫",
- "description": "Named entity: nfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2b"
- ]
- ]
- },
- {
- "input": "&ngE",
- "description": "Bad named entity: ngE without a semi-colon",
- "output": [
- [
- "Character",
- "&ngE"
- ]
- ]
- },
- {
- "input": "≧̸",
- "description": "Named entity: ngE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&nge",
- "description": "Bad named entity: nge without a semi-colon",
- "output": [
- [
- "Character",
- "&nge"
- ]
- ]
- },
- {
- "input": "≱",
- "description": "Named entity: nge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&ngeq",
- "description": "Bad named entity: ngeq without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeq"
- ]
- ]
- },
- {
- "input": "≱",
- "description": "Named entity: ngeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2271"
- ]
- ]
- },
- {
- "input": "&ngeqq",
- "description": "Bad named entity: ngeqq without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeqq"
- ]
- ]
- },
- {
- "input": "≧̸",
- "description": "Named entity: ngeqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2267\u0338"
- ]
- ]
- },
- {
- "input": "&ngeqslant",
- "description": "Bad named entity: ngeqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&ngeqslant"
- ]
- ]
- },
- {
- "input": "⩾̸",
- "description": "Named entity: ngeqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&nges",
- "description": "Bad named entity: nges without a semi-colon",
- "output": [
- [
- "Character",
- "&nges"
- ]
- ]
- },
- {
- "input": "⩾̸",
- "description": "Named entity: nges; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7e\u0338"
- ]
- ]
- },
- {
- "input": "&ngsim",
- "description": "Bad named entity: ngsim without a semi-colon",
- "output": [
- [
- "Character",
- "&ngsim"
- ]
- ]
- },
- {
- "input": "≵",
- "description": "Named entity: ngsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2275"
- ]
- ]
- },
- {
- "input": "&ngt",
- "description": "Bad named entity: ngt without a semi-colon",
- "output": [
- [
- "Character",
- "&ngt"
- ]
- ]
- },
- {
- "input": "≯",
- "description": "Named entity: ngt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&ngtr",
- "description": "Bad named entity: ngtr without a semi-colon",
- "output": [
- [
- "Character",
- "&ngtr"
- ]
- ]
- },
- {
- "input": "≯",
- "description": "Named entity: ngtr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226f"
- ]
- ]
- },
- {
- "input": "&nhArr",
- "description": "Bad named entity: nhArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nhArr"
- ]
- ]
- },
- {
- "input": "⇎",
- "description": "Named entity: nhArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ce"
- ]
- ]
- },
- {
- "input": "&nharr",
- "description": "Bad named entity: nharr without a semi-colon",
- "output": [
- [
- "Character",
- "&nharr"
- ]
- ]
- },
- {
- "input": "↮",
- "description": "Named entity: nharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ae"
- ]
- ]
- },
- {
- "input": "&nhpar",
- "description": "Bad named entity: nhpar without a semi-colon",
- "output": [
- [
- "Character",
- "&nhpar"
- ]
- ]
- },
- {
- "input": "⫲",
- "description": "Named entity: nhpar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af2"
- ]
- ]
- },
- {
- "input": "&ni",
- "description": "Bad named entity: ni without a semi-colon",
- "output": [
- [
- "Character",
- "&ni"
- ]
- ]
- },
- {
- "input": "∋",
- "description": "Named entity: ni; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&nis",
- "description": "Bad named entity: nis without a semi-colon",
- "output": [
- [
- "Character",
- "&nis"
- ]
- ]
- },
- {
- "input": "⋼",
- "description": "Named entity: nis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fc"
- ]
- ]
- },
- {
- "input": "&nisd",
- "description": "Bad named entity: nisd without a semi-colon",
- "output": [
- [
- "Character",
- "&nisd"
- ]
- ]
- },
- {
- "input": "⋺",
- "description": "Named entity: nisd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fa"
- ]
- ]
- },
- {
- "input": "&niv",
- "description": "Bad named entity: niv without a semi-colon",
- "output": [
- [
- "Character",
- "&niv"
- ]
- ]
- },
- {
- "input": "∋",
- "description": "Named entity: niv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220b"
- ]
- ]
- },
- {
- "input": "&njcy",
- "description": "Bad named entity: njcy without a semi-colon",
- "output": [
- [
- "Character",
- "&njcy"
- ]
- ]
- },
- {
- "input": "њ",
- "description": "Named entity: njcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045a"
- ]
- ]
- },
- {
- "input": "&nlArr",
- "description": "Bad named entity: nlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nlArr"
- ]
- ]
- },
- {
- "input": "⇍",
- "description": "Named entity: nlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cd"
- ]
- ]
- },
- {
- "input": "&nlE",
- "description": "Bad named entity: nlE without a semi-colon",
- "output": [
- [
- "Character",
- "&nlE"
- ]
- ]
- },
- {
- "input": "≦̸",
- "description": "Named entity: nlE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266\u0338"
- ]
- ]
- },
- {
- "input": "&nlarr",
- "description": "Bad named entity: nlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nlarr"
- ]
- ]
- },
- {
- "input": "↚",
- "description": "Named entity: nlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219a"
- ]
- ]
- },
- {
- "input": "&nldr",
- "description": "Bad named entity: nldr without a semi-colon",
- "output": [
- [
- "Character",
- "&nldr"
- ]
- ]
- },
- {
- "input": "‥",
- "description": "Named entity: nldr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2025"
- ]
- ]
- },
- {
- "input": "&nle",
- "description": "Bad named entity: nle without a semi-colon",
- "output": [
- [
- "Character",
- "&nle"
- ]
- ]
- },
- {
- "input": "≰",
- "description": "Named entity: nle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&nleftarrow",
- "description": "Bad named entity: nleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nleftarrow"
- ]
- ]
- },
- {
- "input": "↚",
- "description": "Named entity: nleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219a"
- ]
- ]
- },
- {
- "input": "&nleftrightarrow",
- "description": "Bad named entity: nleftrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nleftrightarrow"
- ]
- ]
- },
- {
- "input": "↮",
- "description": "Named entity: nleftrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ae"
- ]
- ]
- },
- {
- "input": "&nleq",
- "description": "Bad named entity: nleq without a semi-colon",
- "output": [
- [
- "Character",
- "&nleq"
- ]
- ]
- },
- {
- "input": "≰",
- "description": "Named entity: nleq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2270"
- ]
- ]
- },
- {
- "input": "&nleqq",
- "description": "Bad named entity: nleqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nleqq"
- ]
- ]
- },
- {
- "input": "≦̸",
- "description": "Named entity: nleqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2266\u0338"
- ]
- ]
- },
- {
- "input": "&nleqslant",
- "description": "Bad named entity: nleqslant without a semi-colon",
- "output": [
- [
- "Character",
- "&nleqslant"
- ]
- ]
- },
- {
- "input": "⩽̸",
- "description": "Named entity: nleqslant; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&nles",
- "description": "Bad named entity: nles without a semi-colon",
- "output": [
- [
- "Character",
- "&nles"
- ]
- ]
- },
- {
- "input": "⩽̸",
- "description": "Named entity: nles; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a7d\u0338"
- ]
- ]
- },
- {
- "input": "&nless",
- "description": "Bad named entity: nless without a semi-colon",
- "output": [
- [
- "Character",
- "&nless"
- ]
- ]
- },
- {
- "input": "≮",
- "description": "Named entity: nless; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&nlsim",
- "description": "Bad named entity: nlsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nlsim"
- ]
- ]
- },
- {
- "input": "≴",
- "description": "Named entity: nlsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2274"
- ]
- ]
- },
- {
- "input": "&nlt",
- "description": "Bad named entity: nlt without a semi-colon",
- "output": [
- [
- "Character",
- "&nlt"
- ]
- ]
- },
- {
- "input": "≮",
- "description": "Named entity: nlt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226e"
- ]
- ]
- },
- {
- "input": "&nltri",
- "description": "Bad named entity: nltri without a semi-colon",
- "output": [
- [
- "Character",
- "&nltri"
- ]
- ]
- },
- {
- "input": "⋪",
- "description": "Named entity: nltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&nltrie",
- "description": "Bad named entity: nltrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nltrie"
- ]
- ]
- },
- {
- "input": "⋬",
- "description": "Named entity: nltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&nmid",
- "description": "Bad named entity: nmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nmid"
- ]
- ]
- },
- {
- "input": "∤",
- "description": "Named entity: nmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nopf",
- "description": "Bad named entity: nopf without a semi-colon",
- "output": [
- [
- "Character",
- "&nopf"
- ]
- ]
- },
- {
- "input": "𝕟",
- "description": "Named entity: nopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd5f"
- ]
- ]
- },
- {
- "input": "¬",
- "description": "Named entity: not without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ac"
- ]
- ]
- },
- {
- "input": "¬",
- "description": "Named entity: not; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ac"
- ]
- ]
- },
- {
- "input": "∉",
- "description": "Named entity: notin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "⋹̸",
- "description": "Named entity: notinE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f9\u0338"
- ]
- ]
- },
- {
- "input": "⋵̸",
- "description": "Named entity: notindot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f5\u0338"
- ]
- ]
- },
- {
- "input": "∉",
- "description": "Named entity: notinva; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2209"
- ]
- ]
- },
- {
- "input": "⋷",
- "description": "Named entity: notinvb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f7"
- ]
- ]
- },
- {
- "input": "⋶",
- "description": "Named entity: notinvc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f6"
- ]
- ]
- },
- {
- "input": "∌",
- "description": "Named entity: notni; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "∌",
- "description": "Named entity: notniva; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220c"
- ]
- ]
- },
- {
- "input": "⋾",
- "description": "Named entity: notnivb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fe"
- ]
- ]
- },
- {
- "input": "⋽",
- "description": "Named entity: notnivc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fd"
- ]
- ]
- },
- {
- "input": "&npar",
- "description": "Bad named entity: npar without a semi-colon",
- "output": [
- [
- "Character",
- "&npar"
- ]
- ]
- },
- {
- "input": "∦",
- "description": "Named entity: npar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nparallel",
- "description": "Bad named entity: nparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&nparallel"
- ]
- ]
- },
- {
- "input": "∦",
- "description": "Named entity: nparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nparsl",
- "description": "Bad named entity: nparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&nparsl"
- ]
- ]
- },
- {
- "input": "⫽⃥",
- "description": "Named entity: nparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2afd\u20e5"
- ]
- ]
- },
- {
- "input": "&npart",
- "description": "Bad named entity: npart without a semi-colon",
- "output": [
- [
- "Character",
- "&npart"
- ]
- ]
- },
- {
- "input": "∂̸",
- "description": "Named entity: npart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202\u0338"
- ]
- ]
- },
- {
- "input": "&npolint",
- "description": "Bad named entity: npolint without a semi-colon",
- "output": [
- [
- "Character",
- "&npolint"
- ]
- ]
- },
- {
- "input": "⨔",
- "description": "Named entity: npolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a14"
- ]
- ]
- },
- {
- "input": "&npr",
- "description": "Bad named entity: npr without a semi-colon",
- "output": [
- [
- "Character",
- "&npr"
- ]
- ]
- },
- {
- "input": "⊀",
- "description": "Named entity: npr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&nprcue",
- "description": "Bad named entity: nprcue without a semi-colon",
- "output": [
- [
- "Character",
- "&nprcue"
- ]
- ]
- },
- {
- "input": "⋠",
- "description": "Named entity: nprcue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e0"
- ]
- ]
- },
- {
- "input": "&npre",
- "description": "Bad named entity: npre without a semi-colon",
- "output": [
- [
- "Character",
- "&npre"
- ]
- ]
- },
- {
- "input": "⪯̸",
- "description": "Named entity: npre; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&nprec",
- "description": "Bad named entity: nprec without a semi-colon",
- "output": [
- [
- "Character",
- "&nprec"
- ]
- ]
- },
- {
- "input": "⊀",
- "description": "Named entity: nprec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2280"
- ]
- ]
- },
- {
- "input": "&npreceq",
- "description": "Bad named entity: npreceq without a semi-colon",
- "output": [
- [
- "Character",
- "&npreceq"
- ]
- ]
- },
- {
- "input": "⪯̸",
- "description": "Named entity: npreceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf\u0338"
- ]
- ]
- },
- {
- "input": "&nrArr",
- "description": "Bad named entity: nrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nrArr"
- ]
- ]
- },
- {
- "input": "⇏",
- "description": "Named entity: nrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cf"
- ]
- ]
- },
- {
- "input": "&nrarr",
- "description": "Bad named entity: nrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarr"
- ]
- ]
- },
- {
- "input": "↛",
- "description": "Named entity: nrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219b"
- ]
- ]
- },
- {
- "input": "&nrarrc",
- "description": "Bad named entity: nrarrc without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarrc"
- ]
- ]
- },
- {
- "input": "⤳̸",
- "description": "Named entity: nrarrc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2933\u0338"
- ]
- ]
- },
- {
- "input": "&nrarrw",
- "description": "Bad named entity: nrarrw without a semi-colon",
- "output": [
- [
- "Character",
- "&nrarrw"
- ]
- ]
- },
- {
- "input": "↝̸",
- "description": "Named entity: nrarrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d\u0338"
- ]
- ]
- },
- {
- "input": "&nrightarrow",
- "description": "Bad named entity: nrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nrightarrow"
- ]
- ]
- },
- {
- "input": "↛",
- "description": "Named entity: nrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219b"
- ]
- ]
- },
- {
- "input": "&nrtri",
- "description": "Bad named entity: nrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&nrtri"
- ]
- ]
- },
- {
- "input": "⋫",
- "description": "Named entity: nrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&nrtrie",
- "description": "Bad named entity: nrtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nrtrie"
- ]
- ]
- },
- {
- "input": "⋭",
- "description": "Named entity: nrtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&nsc",
- "description": "Bad named entity: nsc without a semi-colon",
- "output": [
- [
- "Character",
- "&nsc"
- ]
- ]
- },
- {
- "input": "⊁",
- "description": "Named entity: nsc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&nsccue",
- "description": "Bad named entity: nsccue without a semi-colon",
- "output": [
- [
- "Character",
- "&nsccue"
- ]
- ]
- },
- {
- "input": "⋡",
- "description": "Named entity: nsccue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e1"
- ]
- ]
- },
- {
- "input": "&nsce",
- "description": "Bad named entity: nsce without a semi-colon",
- "output": [
- [
- "Character",
- "&nsce"
- ]
- ]
- },
- {
- "input": "⪰̸",
- "description": "Named entity: nsce; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&nscr",
- "description": "Bad named entity: nscr without a semi-colon",
- "output": [
- [
- "Character",
- "&nscr"
- ]
- ]
- },
- {
- "input": "𝓃",
- "description": "Named entity: nscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc3"
- ]
- ]
- },
- {
- "input": "&nshortmid",
- "description": "Bad named entity: nshortmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nshortmid"
- ]
- ]
- },
- {
- "input": "∤",
- "description": "Named entity: nshortmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nshortparallel",
- "description": "Bad named entity: nshortparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&nshortparallel"
- ]
- ]
- },
- {
- "input": "∦",
- "description": "Named entity: nshortparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nsim",
- "description": "Bad named entity: nsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nsim"
- ]
- ]
- },
- {
- "input": "≁",
- "description": "Named entity: nsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2241"
- ]
- ]
- },
- {
- "input": "&nsime",
- "description": "Bad named entity: nsime without a semi-colon",
- "output": [
- [
- "Character",
- "&nsime"
- ]
- ]
- },
- {
- "input": "≄",
- "description": "Named entity: nsime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&nsimeq",
- "description": "Bad named entity: nsimeq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsimeq"
- ]
- ]
- },
- {
- "input": "≄",
- "description": "Named entity: nsimeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2244"
- ]
- ]
- },
- {
- "input": "&nsmid",
- "description": "Bad named entity: nsmid without a semi-colon",
- "output": [
- [
- "Character",
- "&nsmid"
- ]
- ]
- },
- {
- "input": "∤",
- "description": "Named entity: nsmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2224"
- ]
- ]
- },
- {
- "input": "&nspar",
- "description": "Bad named entity: nspar without a semi-colon",
- "output": [
- [
- "Character",
- "&nspar"
- ]
- ]
- },
- {
- "input": "∦",
- "description": "Named entity: nspar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2226"
- ]
- ]
- },
- {
- "input": "&nsqsube",
- "description": "Bad named entity: nsqsube without a semi-colon",
- "output": [
- [
- "Character",
- "&nsqsube"
- ]
- ]
- },
- {
- "input": "⋢",
- "description": "Named entity: nsqsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e2"
- ]
- ]
- },
- {
- "input": "&nsqsupe",
- "description": "Bad named entity: nsqsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&nsqsupe"
- ]
- ]
- },
- {
- "input": "⋣",
- "description": "Named entity: nsqsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e3"
- ]
- ]
- },
- {
- "input": "&nsub",
- "description": "Bad named entity: nsub without a semi-colon",
- "output": [
- [
- "Character",
- "&nsub"
- ]
- ]
- },
- {
- "input": "⊄",
- "description": "Named entity: nsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2284"
- ]
- ]
- },
- {
- "input": "&nsubE",
- "description": "Bad named entity: nsubE without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubE"
- ]
- ]
- },
- {
- "input": "⫅̸",
- "description": "Named entity: nsubE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5\u0338"
- ]
- ]
- },
- {
- "input": "&nsube",
- "description": "Bad named entity: nsube without a semi-colon",
- "output": [
- [
- "Character",
- "&nsube"
- ]
- ]
- },
- {
- "input": "⊈",
- "description": "Named entity: nsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&nsubset",
- "description": "Bad named entity: nsubset without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubset"
- ]
- ]
- },
- {
- "input": "⊂⃒",
- "description": "Named entity: nsubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&nsubseteq",
- "description": "Bad named entity: nsubseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubseteq"
- ]
- ]
- },
- {
- "input": "⊈",
- "description": "Named entity: nsubseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2288"
- ]
- ]
- },
- {
- "input": "&nsubseteqq",
- "description": "Bad named entity: nsubseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsubseteqq"
- ]
- ]
- },
- {
- "input": "⫅̸",
- "description": "Named entity: nsubseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5\u0338"
- ]
- ]
- },
- {
- "input": "&nsucc",
- "description": "Bad named entity: nsucc without a semi-colon",
- "output": [
- [
- "Character",
- "&nsucc"
- ]
- ]
- },
- {
- "input": "⊁",
- "description": "Named entity: nsucc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2281"
- ]
- ]
- },
- {
- "input": "&nsucceq",
- "description": "Bad named entity: nsucceq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsucceq"
- ]
- ]
- },
- {
- "input": "⪰̸",
- "description": "Named entity: nsucceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0\u0338"
- ]
- ]
- },
- {
- "input": "&nsup",
- "description": "Bad named entity: nsup without a semi-colon",
- "output": [
- [
- "Character",
- "&nsup"
- ]
- ]
- },
- {
- "input": "⊅",
- "description": "Named entity: nsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2285"
- ]
- ]
- },
- {
- "input": "&nsupE",
- "description": "Bad named entity: nsupE without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupE"
- ]
- ]
- },
- {
- "input": "⫆̸",
- "description": "Named entity: nsupE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6\u0338"
- ]
- ]
- },
- {
- "input": "&nsupe",
- "description": "Bad named entity: nsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupe"
- ]
- ]
- },
- {
- "input": "⊉",
- "description": "Named entity: nsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&nsupset",
- "description": "Bad named entity: nsupset without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupset"
- ]
- ]
- },
- {
- "input": "⊃⃒",
- "description": "Named entity: nsupset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&nsupseteq",
- "description": "Bad named entity: nsupseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupseteq"
- ]
- ]
- },
- {
- "input": "⊉",
- "description": "Named entity: nsupseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2289"
- ]
- ]
- },
- {
- "input": "&nsupseteqq",
- "description": "Bad named entity: nsupseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&nsupseteqq"
- ]
- ]
- },
- {
- "input": "⫆̸",
- "description": "Named entity: nsupseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6\u0338"
- ]
- ]
- },
- {
- "input": "&ntgl",
- "description": "Bad named entity: ntgl without a semi-colon",
- "output": [
- [
- "Character",
- "&ntgl"
- ]
- ]
- },
- {
- "input": "≹",
- "description": "Named entity: ntgl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2279"
- ]
- ]
- },
- {
- "input": "ñ",
- "description": "Named entity: ntilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f1"
- ]
- ]
- },
- {
- "input": "ñ",
- "description": "Named entity: ntilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f1"
- ]
- ]
- },
- {
- "input": "&ntlg",
- "description": "Bad named entity: ntlg without a semi-colon",
- "output": [
- [
- "Character",
- "&ntlg"
- ]
- ]
- },
- {
- "input": "≸",
- "description": "Named entity: ntlg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2278"
- ]
- ]
- },
- {
- "input": "&ntriangleleft",
- "description": "Bad named entity: ntriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&ntriangleleft"
- ]
- ]
- },
- {
- "input": "⋪",
- "description": "Named entity: ntriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ea"
- ]
- ]
- },
- {
- "input": "&ntrianglelefteq",
- "description": "Bad named entity: ntrianglelefteq without a semi-colon",
- "output": [
- [
- "Character",
- "&ntrianglelefteq"
- ]
- ]
- },
- {
- "input": "⋬",
- "description": "Named entity: ntrianglelefteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ec"
- ]
- ]
- },
- {
- "input": "&ntriangleright",
- "description": "Bad named entity: ntriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&ntriangleright"
- ]
- ]
- },
- {
- "input": "⋫",
- "description": "Named entity: ntriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22eb"
- ]
- ]
- },
- {
- "input": "&ntrianglerighteq",
- "description": "Bad named entity: ntrianglerighteq without a semi-colon",
- "output": [
- [
- "Character",
- "&ntrianglerighteq"
- ]
- ]
- },
- {
- "input": "⋭",
- "description": "Named entity: ntrianglerighteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ed"
- ]
- ]
- },
- {
- "input": "&nu",
- "description": "Bad named entity: nu without a semi-colon",
- "output": [
- [
- "Character",
- "&nu"
- ]
- ]
- },
- {
- "input": "ν",
- "description": "Named entity: nu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bd"
- ]
- ]
- },
- {
- "input": "&num",
- "description": "Bad named entity: num without a semi-colon",
- "output": [
- [
- "Character",
- "&num"
- ]
- ]
- },
- {
- "input": "#",
- "description": "Named entity: num; with a semi-colon",
- "output": [
- [
- "Character",
- "#"
- ]
- ]
- },
- {
- "input": "&numero",
- "description": "Bad named entity: numero without a semi-colon",
- "output": [
- [
- "Character",
- "&numero"
- ]
- ]
- },
- {
- "input": "№",
- "description": "Named entity: numero; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2116"
- ]
- ]
- },
- {
- "input": "&numsp",
- "description": "Bad named entity: numsp without a semi-colon",
- "output": [
- [
- "Character",
- "&numsp"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: numsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2007"
- ]
- ]
- },
- {
- "input": "&nvDash",
- "description": "Bad named entity: nvDash without a semi-colon",
- "output": [
- [
- "Character",
- "&nvDash"
- ]
- ]
- },
- {
- "input": "⊭",
- "description": "Named entity: nvDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ad"
- ]
- ]
- },
- {
- "input": "&nvHarr",
- "description": "Bad named entity: nvHarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvHarr"
- ]
- ]
- },
- {
- "input": "⤄",
- "description": "Named entity: nvHarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2904"
- ]
- ]
- },
- {
- "input": "&nvap",
- "description": "Bad named entity: nvap without a semi-colon",
- "output": [
- [
- "Character",
- "&nvap"
- ]
- ]
- },
- {
- "input": "≍⃒",
- "description": "Named entity: nvap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u224d\u20d2"
- ]
- ]
- },
- {
- "input": "&nvdash",
- "description": "Bad named entity: nvdash without a semi-colon",
- "output": [
- [
- "Character",
- "&nvdash"
- ]
- ]
- },
- {
- "input": "⊬",
- "description": "Named entity: nvdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ac"
- ]
- ]
- },
- {
- "input": "&nvge",
- "description": "Bad named entity: nvge without a semi-colon",
- "output": [
- [
- "Character",
- "&nvge"
- ]
- ]
- },
- {
- "input": "≥⃒",
- "description": "Named entity: nvge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2265\u20d2"
- ]
- ]
- },
- {
- "input": "&nvgt",
- "description": "Bad named entity: nvgt without a semi-colon",
- "output": [
- [
- "Character",
- "&nvgt"
- ]
- ]
- },
- {
- "input": ">⃒",
- "description": "Named entity: nvgt; with a semi-colon",
- "output": [
- [
- "Character",
- ">\u20d2"
- ]
- ]
- },
- {
- "input": "&nvinfin",
- "description": "Bad named entity: nvinfin without a semi-colon",
- "output": [
- [
- "Character",
- "&nvinfin"
- ]
- ]
- },
- {
- "input": "⧞",
- "description": "Named entity: nvinfin; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29de"
- ]
- ]
- },
- {
- "input": "&nvlArr",
- "description": "Bad named entity: nvlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvlArr"
- ]
- ]
- },
- {
- "input": "⤂",
- "description": "Named entity: nvlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2902"
- ]
- ]
- },
- {
- "input": "&nvle",
- "description": "Bad named entity: nvle without a semi-colon",
- "output": [
- [
- "Character",
- "&nvle"
- ]
- ]
- },
- {
- "input": "≤⃒",
- "description": "Named entity: nvle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2264\u20d2"
- ]
- ]
- },
- {
- "input": "&nvlt",
- "description": "Bad named entity: nvlt without a semi-colon",
- "output": [
- [
- "Character",
- "&nvlt"
- ]
- ]
- },
- {
- "input": "<⃒",
- "description": "Named entity: nvlt; with a semi-colon",
- "output": [
- [
- "Character",
- "<\u20d2"
- ]
- ]
- },
- {
- "input": "&nvltrie",
- "description": "Bad named entity: nvltrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nvltrie"
- ]
- ]
- },
- {
- "input": "⊴⃒",
- "description": "Named entity: nvltrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4\u20d2"
- ]
- ]
- },
- {
- "input": "&nvrArr",
- "description": "Bad named entity: nvrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nvrArr"
- ]
- ]
- },
- {
- "input": "⤃",
- "description": "Named entity: nvrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2903"
- ]
- ]
- },
- {
- "input": "&nvrtrie",
- "description": "Bad named entity: nvrtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&nvrtrie"
- ]
- ]
- },
- {
- "input": "⊵⃒",
- "description": "Named entity: nvrtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5\u20d2"
- ]
- ]
- },
- {
- "input": "&nvsim",
- "description": "Bad named entity: nvsim without a semi-colon",
- "output": [
- [
- "Character",
- "&nvsim"
- ]
- ]
- },
- {
- "input": "∼⃒",
- "description": "Named entity: nvsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c\u20d2"
- ]
- ]
- },
- {
- "input": "&nwArr",
- "description": "Bad named entity: nwArr without a semi-colon",
- "output": [
- [
- "Character",
- "&nwArr"
- ]
- ]
- },
- {
- "input": "⇖",
- "description": "Named entity: nwArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d6"
- ]
- ]
- },
- {
- "input": "&nwarhk",
- "description": "Bad named entity: nwarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarhk"
- ]
- ]
- },
- {
- "input": "⤣",
- "description": "Named entity: nwarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2923"
- ]
- ]
- },
- {
- "input": "&nwarr",
- "description": "Bad named entity: nwarr without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarr"
- ]
- ]
- },
- {
- "input": "↖",
- "description": "Named entity: nwarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&nwarrow",
- "description": "Bad named entity: nwarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&nwarrow"
- ]
- ]
- },
- {
- "input": "↖",
- "description": "Named entity: nwarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2196"
- ]
- ]
- },
- {
- "input": "&nwnear",
- "description": "Bad named entity: nwnear without a semi-colon",
- "output": [
- [
- "Character",
- "&nwnear"
- ]
- ]
- },
- {
- "input": "⤧",
- "description": "Named entity: nwnear; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2927"
- ]
- ]
- },
- {
- "input": "&oS",
- "description": "Bad named entity: oS without a semi-colon",
- "output": [
- [
- "Character",
- "&oS"
- ]
- ]
- },
- {
- "input": "Ⓢ",
- "description": "Named entity: oS; with a semi-colon",
- "output": [
- [
- "Character",
- "\u24c8"
- ]
- ]
- },
- {
- "input": "ó",
- "description": "Named entity: oacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f3"
- ]
- ]
- },
- {
- "input": "ó",
- "description": "Named entity: oacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f3"
- ]
- ]
- },
- {
- "input": "&oast",
- "description": "Bad named entity: oast without a semi-colon",
- "output": [
- [
- "Character",
- "&oast"
- ]
- ]
- },
- {
- "input": "⊛",
- "description": "Named entity: oast; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229b"
- ]
- ]
- },
- {
- "input": "&ocir",
- "description": "Bad named entity: ocir without a semi-colon",
- "output": [
- [
- "Character",
- "&ocir"
- ]
- ]
- },
- {
- "input": "⊚",
- "description": "Named entity: ocir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229a"
- ]
- ]
- },
- {
- "input": "ô",
- "description": "Named entity: ocirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f4"
- ]
- ]
- },
- {
- "input": "ô",
- "description": "Named entity: ocirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f4"
- ]
- ]
- },
- {
- "input": "&ocy",
- "description": "Bad named entity: ocy without a semi-colon",
- "output": [
- [
- "Character",
- "&ocy"
- ]
- ]
- },
- {
- "input": "о",
- "description": "Named entity: ocy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043e"
- ]
- ]
- },
- {
- "input": "&odash",
- "description": "Bad named entity: odash without a semi-colon",
- "output": [
- [
- "Character",
- "&odash"
- ]
- ]
- },
- {
- "input": "⊝",
- "description": "Named entity: odash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229d"
- ]
- ]
- },
- {
- "input": "&odblac",
- "description": "Bad named entity: odblac without a semi-colon",
- "output": [
- [
- "Character",
- "&odblac"
- ]
- ]
- },
- {
- "input": "ő",
- "description": "Named entity: odblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0151"
- ]
- ]
- },
- {
- "input": "&odiv",
- "description": "Bad named entity: odiv without a semi-colon",
- "output": [
- [
- "Character",
- "&odiv"
- ]
- ]
- },
- {
- "input": "⨸",
- "description": "Named entity: odiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a38"
- ]
- ]
- },
- {
- "input": "&odot",
- "description": "Bad named entity: odot without a semi-colon",
- "output": [
- [
- "Character",
- "&odot"
- ]
- ]
- },
- {
- "input": "⊙",
- "description": "Named entity: odot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2299"
- ]
- ]
- },
- {
- "input": "&odsold",
- "description": "Bad named entity: odsold without a semi-colon",
- "output": [
- [
- "Character",
- "&odsold"
- ]
- ]
- },
- {
- "input": "⦼",
- "description": "Named entity: odsold; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bc"
- ]
- ]
- },
- {
- "input": "&oelig",
- "description": "Bad named entity: oelig without a semi-colon",
- "output": [
- [
- "Character",
- "&oelig"
- ]
- ]
- },
- {
- "input": "œ",
- "description": "Named entity: oelig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0153"
- ]
- ]
- },
- {
- "input": "&ofcir",
- "description": "Bad named entity: ofcir without a semi-colon",
- "output": [
- [
- "Character",
- "&ofcir"
- ]
- ]
- },
- {
- "input": "⦿",
- "description": "Named entity: ofcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bf"
- ]
- ]
- },
- {
- "input": "&ofr",
- "description": "Bad named entity: ofr without a semi-colon",
- "output": [
- [
- "Character",
- "&ofr"
- ]
- ]
- },
- {
- "input": "𝔬",
- "description": "Named entity: ofr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2c"
- ]
- ]
- },
- {
- "input": "&ogon",
- "description": "Bad named entity: ogon without a semi-colon",
- "output": [
- [
- "Character",
- "&ogon"
- ]
- ]
- },
- {
- "input": "˛",
- "description": "Named entity: ogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02db"
- ]
- ]
- },
- {
- "input": "ò",
- "description": "Named entity: ograve without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f2"
- ]
- ]
- },
- {
- "input": "ò",
- "description": "Named entity: ograve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f2"
- ]
- ]
- },
- {
- "input": "&ogt",
- "description": "Bad named entity: ogt without a semi-colon",
- "output": [
- [
- "Character",
- "&ogt"
- ]
- ]
- },
- {
- "input": "⧁",
- "description": "Named entity: ogt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c1"
- ]
- ]
- },
- {
- "input": "&ohbar",
- "description": "Bad named entity: ohbar without a semi-colon",
- "output": [
- [
- "Character",
- "&ohbar"
- ]
- ]
- },
- {
- "input": "⦵",
- "description": "Named entity: ohbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b5"
- ]
- ]
- },
- {
- "input": "&ohm",
- "description": "Bad named entity: ohm without a semi-colon",
- "output": [
- [
- "Character",
- "&ohm"
- ]
- ]
- },
- {
- "input": "Ω",
- "description": "Named entity: ohm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03a9"
- ]
- ]
- },
- {
- "input": "&oint",
- "description": "Bad named entity: oint without a semi-colon",
- "output": [
- [
- "Character",
- "&oint"
- ]
- ]
- },
- {
- "input": "∮",
- "description": "Named entity: oint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222e"
- ]
- ]
- },
- {
- "input": "&olarr",
- "description": "Bad named entity: olarr without a semi-colon",
- "output": [
- [
- "Character",
- "&olarr"
- ]
- ]
- },
- {
- "input": "↺",
- "description": "Named entity: olarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ba"
- ]
- ]
- },
- {
- "input": "&olcir",
- "description": "Bad named entity: olcir without a semi-colon",
- "output": [
- [
- "Character",
- "&olcir"
- ]
- ]
- },
- {
- "input": "⦾",
- "description": "Named entity: olcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29be"
- ]
- ]
- },
- {
- "input": "&olcross",
- "description": "Bad named entity: olcross without a semi-colon",
- "output": [
- [
- "Character",
- "&olcross"
- ]
- ]
- },
- {
- "input": "⦻",
- "description": "Named entity: olcross; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29bb"
- ]
- ]
- },
- {
- "input": "&oline",
- "description": "Bad named entity: oline without a semi-colon",
- "output": [
- [
- "Character",
- "&oline"
- ]
- ]
- },
- {
- "input": "‾",
- "description": "Named entity: oline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203e"
- ]
- ]
- },
- {
- "input": "&olt",
- "description": "Bad named entity: olt without a semi-colon",
- "output": [
- [
- "Character",
- "&olt"
- ]
- ]
- },
- {
- "input": "⧀",
- "description": "Named entity: olt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c0"
- ]
- ]
- },
- {
- "input": "&omacr",
- "description": "Bad named entity: omacr without a semi-colon",
- "output": [
- [
- "Character",
- "&omacr"
- ]
- ]
- },
- {
- "input": "ō",
- "description": "Named entity: omacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u014d"
- ]
- ]
- },
- {
- "input": "&omega",
- "description": "Bad named entity: omega without a semi-colon",
- "output": [
- [
- "Character",
- "&omega"
- ]
- ]
- },
- {
- "input": "ω",
- "description": "Named entity: omega; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c9"
- ]
- ]
- },
- {
- "input": "&omicron",
- "description": "Bad named entity: omicron without a semi-colon",
- "output": [
- [
- "Character",
- "&omicron"
- ]
- ]
- },
- {
- "input": "ο",
- "description": "Named entity: omicron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03bf"
- ]
- ]
- },
- {
- "input": "&omid",
- "description": "Bad named entity: omid without a semi-colon",
- "output": [
- [
- "Character",
- "&omid"
- ]
- ]
- },
- {
- "input": "⦶",
- "description": "Named entity: omid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b6"
- ]
- ]
- },
- {
- "input": "&ominus",
- "description": "Bad named entity: ominus without a semi-colon",
- "output": [
- [
- "Character",
- "&ominus"
- ]
- ]
- },
- {
- "input": "⊖",
- "description": "Named entity: ominus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2296"
- ]
- ]
- },
- {
- "input": "&oopf",
- "description": "Bad named entity: oopf without a semi-colon",
- "output": [
- [
- "Character",
- "&oopf"
- ]
- ]
- },
- {
- "input": "𝕠",
- "description": "Named entity: oopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd60"
- ]
- ]
- },
- {
- "input": "&opar",
- "description": "Bad named entity: opar without a semi-colon",
- "output": [
- [
- "Character",
- "&opar"
- ]
- ]
- },
- {
- "input": "⦷",
- "description": "Named entity: opar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b7"
- ]
- ]
- },
- {
- "input": "&operp",
- "description": "Bad named entity: operp without a semi-colon",
- "output": [
- [
- "Character",
- "&operp"
- ]
- ]
- },
- {
- "input": "⦹",
- "description": "Named entity: operp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b9"
- ]
- ]
- },
- {
- "input": "&oplus",
- "description": "Bad named entity: oplus without a semi-colon",
- "output": [
- [
- "Character",
- "&oplus"
- ]
- ]
- },
- {
- "input": "⊕",
- "description": "Named entity: oplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2295"
- ]
- ]
- },
- {
- "input": "&or",
- "description": "Bad named entity: or without a semi-colon",
- "output": [
- [
- "Character",
- "&or"
- ]
- ]
- },
- {
- "input": "∨",
- "description": "Named entity: or; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2228"
- ]
- ]
- },
- {
- "input": "&orarr",
- "description": "Bad named entity: orarr without a semi-colon",
- "output": [
- [
- "Character",
- "&orarr"
- ]
- ]
- },
- {
- "input": "↻",
- "description": "Named entity: orarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bb"
- ]
- ]
- },
- {
- "input": "&ord",
- "description": "Bad named entity: ord without a semi-colon",
- "output": [
- [
- "Character",
- "&ord"
- ]
- ]
- },
- {
- "input": "⩝",
- "description": "Named entity: ord; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5d"
- ]
- ]
- },
- {
- "input": "&order",
- "description": "Bad named entity: order without a semi-colon",
- "output": [
- [
- "Character",
- "&order"
- ]
- ]
- },
- {
- "input": "ℴ",
- "description": "Named entity: order; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "&orderof",
- "description": "Bad named entity: orderof without a semi-colon",
- "output": [
- [
- "Character",
- "&orderof"
- ]
- ]
- },
- {
- "input": "ℴ",
- "description": "Named entity: orderof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "ª",
- "description": "Named entity: ordf without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00aa"
- ]
- ]
- },
- {
- "input": "ª",
- "description": "Named entity: ordf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00aa"
- ]
- ]
- },
- {
- "input": "º",
- "description": "Named entity: ordm without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ba"
- ]
- ]
- },
- {
- "input": "º",
- "description": "Named entity: ordm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ba"
- ]
- ]
- },
- {
- "input": "&origof",
- "description": "Bad named entity: origof without a semi-colon",
- "output": [
- [
- "Character",
- "&origof"
- ]
- ]
- },
- {
- "input": "⊶",
- "description": "Named entity: origof; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b6"
- ]
- ]
- },
- {
- "input": "&oror",
- "description": "Bad named entity: oror without a semi-colon",
- "output": [
- [
- "Character",
- "&oror"
- ]
- ]
- },
- {
- "input": "⩖",
- "description": "Named entity: oror; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a56"
- ]
- ]
- },
- {
- "input": "&orslope",
- "description": "Bad named entity: orslope without a semi-colon",
- "output": [
- [
- "Character",
- "&orslope"
- ]
- ]
- },
- {
- "input": "⩗",
- "description": "Named entity: orslope; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a57"
- ]
- ]
- },
- {
- "input": "&orv",
- "description": "Bad named entity: orv without a semi-colon",
- "output": [
- [
- "Character",
- "&orv"
- ]
- ]
- },
- {
- "input": "⩛",
- "description": "Named entity: orv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5b"
- ]
- ]
- },
- {
- "input": "&oscr",
- "description": "Bad named entity: oscr without a semi-colon",
- "output": [
- [
- "Character",
- "&oscr"
- ]
- ]
- },
- {
- "input": "ℴ",
- "description": "Named entity: oscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2134"
- ]
- ]
- },
- {
- "input": "ø",
- "description": "Named entity: oslash without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f8"
- ]
- ]
- },
- {
- "input": "ø",
- "description": "Named entity: oslash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f8"
- ]
- ]
- },
- {
- "input": "&osol",
- "description": "Bad named entity: osol without a semi-colon",
- "output": [
- [
- "Character",
- "&osol"
- ]
- ]
- },
- {
- "input": "⊘",
- "description": "Named entity: osol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2298"
- ]
- ]
- },
- {
- "input": "õ",
- "description": "Named entity: otilde without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f5"
- ]
- ]
- },
- {
- "input": "õ",
- "description": "Named entity: otilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f5"
- ]
- ]
- },
- {
- "input": "&otimes",
- "description": "Bad named entity: otimes without a semi-colon",
- "output": [
- [
- "Character",
- "&otimes"
- ]
- ]
- },
- {
- "input": "⊗",
- "description": "Named entity: otimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2297"
- ]
- ]
- },
- {
- "input": "&otimesas",
- "description": "Bad named entity: otimesas without a semi-colon",
- "output": [
- [
- "Character",
- "&otimesas"
- ]
- ]
- },
- {
- "input": "⨶",
- "description": "Named entity: otimesas; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a36"
- ]
- ]
- },
- {
- "input": "ö",
- "description": "Named entity: ouml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f6"
- ]
- ]
- },
- {
- "input": "ö",
- "description": "Named entity: ouml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f6"
- ]
- ]
- },
- {
- "input": "&ovbar",
- "description": "Bad named entity: ovbar without a semi-colon",
- "output": [
- [
- "Character",
- "&ovbar"
- ]
- ]
- },
- {
- "input": "⌽",
- "description": "Named entity: ovbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u233d"
- ]
- ]
- },
- {
- "input": "&par",
- "description": "Bad named entity: par without a semi-colon",
- "output": [
- [
- "Character",
- "&par"
- ]
- ]
- },
- {
- "input": "∥",
- "description": "Named entity: par; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "¶",
- "description": "Named entity: para without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b6"
- ]
- ]
- },
- {
- "input": "¶",
- "description": "Named entity: para; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b6"
- ]
- ]
- },
- {
- "input": "∥",
- "description": "Named entity: parallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&parsim",
- "description": "Bad named entity: parsim without a semi-colon",
- "output": [
- [
- "Character",
- "&parsim"
- ]
- ]
- },
- {
- "input": "⫳",
- "description": "Named entity: parsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af3"
- ]
- ]
- },
- {
- "input": "&parsl",
- "description": "Bad named entity: parsl without a semi-colon",
- "output": [
- [
- "Character",
- "&parsl"
- ]
- ]
- },
- {
- "input": "⫽",
- "description": "Named entity: parsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2afd"
- ]
- ]
- },
- {
- "input": "&part",
- "description": "Bad named entity: part without a semi-colon",
- "output": [
- [
- "Character",
- "&part"
- ]
- ]
- },
- {
- "input": "∂",
- "description": "Named entity: part; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2202"
- ]
- ]
- },
- {
- "input": "&pcy",
- "description": "Bad named entity: pcy without a semi-colon",
- "output": [
- [
- "Character",
- "&pcy"
- ]
- ]
- },
- {
- "input": "п",
- "description": "Named entity: pcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u043f"
- ]
- ]
- },
- {
- "input": "&percnt",
- "description": "Bad named entity: percnt without a semi-colon",
- "output": [
- [
- "Character",
- "&percnt"
- ]
- ]
- },
- {
- "input": "%",
- "description": "Named entity: percnt; with a semi-colon",
- "output": [
- [
- "Character",
- "%"
- ]
- ]
- },
- {
- "input": "&period",
- "description": "Bad named entity: period without a semi-colon",
- "output": [
- [
- "Character",
- "&period"
- ]
- ]
- },
- {
- "input": ".",
- "description": "Named entity: period; with a semi-colon",
- "output": [
- [
- "Character",
- "."
- ]
- ]
- },
- {
- "input": "&permil",
- "description": "Bad named entity: permil without a semi-colon",
- "output": [
- [
- "Character",
- "&permil"
- ]
- ]
- },
- {
- "input": "‰",
- "description": "Named entity: permil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2030"
- ]
- ]
- },
- {
- "input": "&perp",
- "description": "Bad named entity: perp without a semi-colon",
- "output": [
- [
- "Character",
- "&perp"
- ]
- ]
- },
- {
- "input": "⊥",
- "description": "Named entity: perp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a5"
- ]
- ]
- },
- {
- "input": "&pertenk",
- "description": "Bad named entity: pertenk without a semi-colon",
- "output": [
- [
- "Character",
- "&pertenk"
- ]
- ]
- },
- {
- "input": "‱",
- "description": "Named entity: pertenk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2031"
- ]
- ]
- },
- {
- "input": "&pfr",
- "description": "Bad named entity: pfr without a semi-colon",
- "output": [
- [
- "Character",
- "&pfr"
- ]
- ]
- },
- {
- "input": "𝔭",
- "description": "Named entity: pfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2d"
- ]
- ]
- },
- {
- "input": "&phi",
- "description": "Bad named entity: phi without a semi-colon",
- "output": [
- [
- "Character",
- "&phi"
- ]
- ]
- },
- {
- "input": "φ",
- "description": "Named entity: phi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c6"
- ]
- ]
- },
- {
- "input": "&phiv",
- "description": "Bad named entity: phiv without a semi-colon",
- "output": [
- [
- "Character",
- "&phiv"
- ]
- ]
- },
- {
- "input": "ϕ",
- "description": "Named entity: phiv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&phmmat",
- "description": "Bad named entity: phmmat without a semi-colon",
- "output": [
- [
- "Character",
- "&phmmat"
- ]
- ]
- },
- {
- "input": "ℳ",
- "description": "Named entity: phmmat; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2133"
- ]
- ]
- },
- {
- "input": "&phone",
- "description": "Bad named entity: phone without a semi-colon",
- "output": [
- [
- "Character",
- "&phone"
- ]
- ]
- },
- {
- "input": "☎",
- "description": "Named entity: phone; with a semi-colon",
- "output": [
- [
- "Character",
- "\u260e"
- ]
- ]
- },
- {
- "input": "&pi",
- "description": "Bad named entity: pi without a semi-colon",
- "output": [
- [
- "Character",
- "&pi"
- ]
- ]
- },
- {
- "input": "π",
- "description": "Named entity: pi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c0"
- ]
- ]
- },
- {
- "input": "&pitchfork",
- "description": "Bad named entity: pitchfork without a semi-colon",
- "output": [
- [
- "Character",
- "&pitchfork"
- ]
- ]
- },
- {
- "input": "⋔",
- "description": "Named entity: pitchfork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22d4"
- ]
- ]
- },
- {
- "input": "&piv",
- "description": "Bad named entity: piv without a semi-colon",
- "output": [
- [
- "Character",
- "&piv"
- ]
- ]
- },
- {
- "input": "ϖ",
- "description": "Named entity: piv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d6"
- ]
- ]
- },
- {
- "input": "&planck",
- "description": "Bad named entity: planck without a semi-colon",
- "output": [
- [
- "Character",
- "&planck"
- ]
- ]
- },
- {
- "input": "ℏ",
- "description": "Named entity: planck; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&planckh",
- "description": "Bad named entity: planckh without a semi-colon",
- "output": [
- [
- "Character",
- "&planckh"
- ]
- ]
- },
- {
- "input": "ℎ",
- "description": "Named entity: planckh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210e"
- ]
- ]
- },
- {
- "input": "&plankv",
- "description": "Bad named entity: plankv without a semi-colon",
- "output": [
- [
- "Character",
- "&plankv"
- ]
- ]
- },
- {
- "input": "ℏ",
- "description": "Named entity: plankv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210f"
- ]
- ]
- },
- {
- "input": "&plus",
- "description": "Bad named entity: plus without a semi-colon",
- "output": [
- [
- "Character",
- "&plus"
- ]
- ]
- },
- {
- "input": "+",
- "description": "Named entity: plus; with a semi-colon",
- "output": [
- [
- "Character",
- "+"
- ]
- ]
- },
- {
- "input": "&plusacir",
- "description": "Bad named entity: plusacir without a semi-colon",
- "output": [
- [
- "Character",
- "&plusacir"
- ]
- ]
- },
- {
- "input": "⨣",
- "description": "Named entity: plusacir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a23"
- ]
- ]
- },
- {
- "input": "&plusb",
- "description": "Bad named entity: plusb without a semi-colon",
- "output": [
- [
- "Character",
- "&plusb"
- ]
- ]
- },
- {
- "input": "⊞",
- "description": "Named entity: plusb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u229e"
- ]
- ]
- },
- {
- "input": "&pluscir",
- "description": "Bad named entity: pluscir without a semi-colon",
- "output": [
- [
- "Character",
- "&pluscir"
- ]
- ]
- },
- {
- "input": "⨢",
- "description": "Named entity: pluscir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a22"
- ]
- ]
- },
- {
- "input": "&plusdo",
- "description": "Bad named entity: plusdo without a semi-colon",
- "output": [
- [
- "Character",
- "&plusdo"
- ]
- ]
- },
- {
- "input": "∔",
- "description": "Named entity: plusdo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2214"
- ]
- ]
- },
- {
- "input": "&plusdu",
- "description": "Bad named entity: plusdu without a semi-colon",
- "output": [
- [
- "Character",
- "&plusdu"
- ]
- ]
- },
- {
- "input": "⨥",
- "description": "Named entity: plusdu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a25"
- ]
- ]
- },
- {
- "input": "&pluse",
- "description": "Bad named entity: pluse without a semi-colon",
- "output": [
- [
- "Character",
- "&pluse"
- ]
- ]
- },
- {
- "input": "⩲",
- "description": "Named entity: pluse; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a72"
- ]
- ]
- },
- {
- "input": "±",
- "description": "Named entity: plusmn without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "±",
- "description": "Named entity: plusmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&plussim",
- "description": "Bad named entity: plussim without a semi-colon",
- "output": [
- [
- "Character",
- "&plussim"
- ]
- ]
- },
- {
- "input": "⨦",
- "description": "Named entity: plussim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a26"
- ]
- ]
- },
- {
- "input": "&plustwo",
- "description": "Bad named entity: plustwo without a semi-colon",
- "output": [
- [
- "Character",
- "&plustwo"
- ]
- ]
- },
- {
- "input": "⨧",
- "description": "Named entity: plustwo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a27"
- ]
- ]
- },
- {
- "input": "&pm",
- "description": "Bad named entity: pm without a semi-colon",
- "output": [
- [
- "Character",
- "&pm"
- ]
- ]
- },
- {
- "input": "±",
- "description": "Named entity: pm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b1"
- ]
- ]
- },
- {
- "input": "&pointint",
- "description": "Bad named entity: pointint without a semi-colon",
- "output": [
- [
- "Character",
- "&pointint"
- ]
- ]
- },
- {
- "input": "⨕",
- "description": "Named entity: pointint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a15"
- ]
- ]
- },
- {
- "input": "&popf",
- "description": "Bad named entity: popf without a semi-colon",
- "output": [
- [
- "Character",
- "&popf"
- ]
- ]
- },
- {
- "input": "𝕡",
- "description": "Named entity: popf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd61"
- ]
- ]
- },
- {
- "input": "£",
- "description": "Named entity: pound without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a3"
- ]
- ]
- },
- {
- "input": "£",
- "description": "Named entity: pound; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a3"
- ]
- ]
- },
- {
- "input": "&pr",
- "description": "Bad named entity: pr without a semi-colon",
- "output": [
- [
- "Character",
- "&pr"
- ]
- ]
- },
- {
- "input": "≺",
- "description": "Named entity: pr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&prE",
- "description": "Bad named entity: prE without a semi-colon",
- "output": [
- [
- "Character",
- "&prE"
- ]
- ]
- },
- {
- "input": "⪳",
- "description": "Named entity: prE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab3"
- ]
- ]
- },
- {
- "input": "&prap",
- "description": "Bad named entity: prap without a semi-colon",
- "output": [
- [
- "Character",
- "&prap"
- ]
- ]
- },
- {
- "input": "⪷",
- "description": "Named entity: prap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab7"
- ]
- ]
- },
- {
- "input": "&prcue",
- "description": "Bad named entity: prcue without a semi-colon",
- "output": [
- [
- "Character",
- "&prcue"
- ]
- ]
- },
- {
- "input": "≼",
- "description": "Named entity: prcue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&pre",
- "description": "Bad named entity: pre without a semi-colon",
- "output": [
- [
- "Character",
- "&pre"
- ]
- ]
- },
- {
- "input": "⪯",
- "description": "Named entity: pre; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&prec",
- "description": "Bad named entity: prec without a semi-colon",
- "output": [
- [
- "Character",
- "&prec"
- ]
- ]
- },
- {
- "input": "≺",
- "description": "Named entity: prec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227a"
- ]
- ]
- },
- {
- "input": "&precapprox",
- "description": "Bad named entity: precapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&precapprox"
- ]
- ]
- },
- {
- "input": "⪷",
- "description": "Named entity: precapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab7"
- ]
- ]
- },
- {
- "input": "&preccurlyeq",
- "description": "Bad named entity: preccurlyeq without a semi-colon",
- "output": [
- [
- "Character",
- "&preccurlyeq"
- ]
- ]
- },
- {
- "input": "≼",
- "description": "Named entity: preccurlyeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227c"
- ]
- ]
- },
- {
- "input": "&preceq",
- "description": "Bad named entity: preceq without a semi-colon",
- "output": [
- [
- "Character",
- "&preceq"
- ]
- ]
- },
- {
- "input": "⪯",
- "description": "Named entity: preceq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaf"
- ]
- ]
- },
- {
- "input": "&precnapprox",
- "description": "Bad named entity: precnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&precnapprox"
- ]
- ]
- },
- {
- "input": "⪹",
- "description": "Named entity: precnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab9"
- ]
- ]
- },
- {
- "input": "&precneqq",
- "description": "Bad named entity: precneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&precneqq"
- ]
- ]
- },
- {
- "input": "⪵",
- "description": "Named entity: precneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab5"
- ]
- ]
- },
- {
- "input": "&precnsim",
- "description": "Bad named entity: precnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&precnsim"
- ]
- ]
- },
- {
- "input": "⋨",
- "description": "Named entity: precnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e8"
- ]
- ]
- },
- {
- "input": "&precsim",
- "description": "Bad named entity: precsim without a semi-colon",
- "output": [
- [
- "Character",
- "&precsim"
- ]
- ]
- },
- {
- "input": "≾",
- "description": "Named entity: precsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&prime",
- "description": "Bad named entity: prime without a semi-colon",
- "output": [
- [
- "Character",
- "&prime"
- ]
- ]
- },
- {
- "input": "′",
- "description": "Named entity: prime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2032"
- ]
- ]
- },
- {
- "input": "&primes",
- "description": "Bad named entity: primes without a semi-colon",
- "output": [
- [
- "Character",
- "&primes"
- ]
- ]
- },
- {
- "input": "ℙ",
- "description": "Named entity: primes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2119"
- ]
- ]
- },
- {
- "input": "&prnE",
- "description": "Bad named entity: prnE without a semi-colon",
- "output": [
- [
- "Character",
- "&prnE"
- ]
- ]
- },
- {
- "input": "⪵",
- "description": "Named entity: prnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab5"
- ]
- ]
- },
- {
- "input": "&prnap",
- "description": "Bad named entity: prnap without a semi-colon",
- "output": [
- [
- "Character",
- "&prnap"
- ]
- ]
- },
- {
- "input": "⪹",
- "description": "Named entity: prnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab9"
- ]
- ]
- },
- {
- "input": "&prnsim",
- "description": "Bad named entity: prnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&prnsim"
- ]
- ]
- },
- {
- "input": "⋨",
- "description": "Named entity: prnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e8"
- ]
- ]
- },
- {
- "input": "&prod",
- "description": "Bad named entity: prod without a semi-colon",
- "output": [
- [
- "Character",
- "&prod"
- ]
- ]
- },
- {
- "input": "∏",
- "description": "Named entity: prod; with a semi-colon",
- "output": [
- [
- "Character",
- "\u220f"
- ]
- ]
- },
- {
- "input": "&profalar",
- "description": "Bad named entity: profalar without a semi-colon",
- "output": [
- [
- "Character",
- "&profalar"
- ]
- ]
- },
- {
- "input": "⌮",
- "description": "Named entity: profalar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u232e"
- ]
- ]
- },
- {
- "input": "&profline",
- "description": "Bad named entity: profline without a semi-colon",
- "output": [
- [
- "Character",
- "&profline"
- ]
- ]
- },
- {
- "input": "⌒",
- "description": "Named entity: profline; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2312"
- ]
- ]
- },
- {
- "input": "&profsurf",
- "description": "Bad named entity: profsurf without a semi-colon",
- "output": [
- [
- "Character",
- "&profsurf"
- ]
- ]
- },
- {
- "input": "⌓",
- "description": "Named entity: profsurf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2313"
- ]
- ]
- },
- {
- "input": "&prop",
- "description": "Bad named entity: prop without a semi-colon",
- "output": [
- [
- "Character",
- "&prop"
- ]
- ]
- },
- {
- "input": "∝",
- "description": "Named entity: prop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&propto",
- "description": "Bad named entity: propto without a semi-colon",
- "output": [
- [
- "Character",
- "&propto"
- ]
- ]
- },
- {
- "input": "∝",
- "description": "Named entity: propto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&prsim",
- "description": "Bad named entity: prsim without a semi-colon",
- "output": [
- [
- "Character",
- "&prsim"
- ]
- ]
- },
- {
- "input": "≾",
- "description": "Named entity: prsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227e"
- ]
- ]
- },
- {
- "input": "&prurel",
- "description": "Bad named entity: prurel without a semi-colon",
- "output": [
- [
- "Character",
- "&prurel"
- ]
- ]
- },
- {
- "input": "⊰",
- "description": "Named entity: prurel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b0"
- ]
- ]
- },
- {
- "input": "&pscr",
- "description": "Bad named entity: pscr without a semi-colon",
- "output": [
- [
- "Character",
- "&pscr"
- ]
- ]
- },
- {
- "input": "𝓅",
- "description": "Named entity: pscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc5"
- ]
- ]
- },
- {
- "input": "&psi",
- "description": "Bad named entity: psi without a semi-colon",
- "output": [
- [
- "Character",
- "&psi"
- ]
- ]
- },
- {
- "input": "ψ",
- "description": "Named entity: psi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c8"
- ]
- ]
- },
- {
- "input": "&puncsp",
- "description": "Bad named entity: puncsp without a semi-colon",
- "output": [
- [
- "Character",
- "&puncsp"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: puncsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2008"
- ]
- ]
- },
- {
- "input": "&qfr",
- "description": "Bad named entity: qfr without a semi-colon",
- "output": [
- [
- "Character",
- "&qfr"
- ]
- ]
- },
- {
- "input": "𝔮",
- "description": "Named entity: qfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2e"
- ]
- ]
- },
- {
- "input": "&qint",
- "description": "Bad named entity: qint without a semi-colon",
- "output": [
- [
- "Character",
- "&qint"
- ]
- ]
- },
- {
- "input": "⨌",
- "description": "Named entity: qint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a0c"
- ]
- ]
- },
- {
- "input": "&qopf",
- "description": "Bad named entity: qopf without a semi-colon",
- "output": [
- [
- "Character",
- "&qopf"
- ]
- ]
- },
- {
- "input": "𝕢",
- "description": "Named entity: qopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd62"
- ]
- ]
- },
- {
- "input": "&qprime",
- "description": "Bad named entity: qprime without a semi-colon",
- "output": [
- [
- "Character",
- "&qprime"
- ]
- ]
- },
- {
- "input": "⁗",
- "description": "Named entity: qprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2057"
- ]
- ]
- },
- {
- "input": "&qscr",
- "description": "Bad named entity: qscr without a semi-colon",
- "output": [
- [
- "Character",
- "&qscr"
- ]
- ]
- },
- {
- "input": "𝓆",
- "description": "Named entity: qscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc6"
- ]
- ]
- },
- {
- "input": "&quaternions",
- "description": "Bad named entity: quaternions without a semi-colon",
- "output": [
- [
- "Character",
- "&quaternions"
- ]
- ]
- },
- {
- "input": "ℍ",
- "description": "Named entity: quaternions; with a semi-colon",
- "output": [
- [
- "Character",
- "\u210d"
- ]
- ]
- },
- {
- "input": "&quatint",
- "description": "Bad named entity: quatint without a semi-colon",
- "output": [
- [
- "Character",
- "&quatint"
- ]
- ]
- },
- {
- "input": "⨖",
- "description": "Named entity: quatint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a16"
- ]
- ]
- },
- {
- "input": "&quest",
- "description": "Bad named entity: quest without a semi-colon",
- "output": [
- [
- "Character",
- "&quest"
- ]
- ]
- },
- {
- "input": "?",
- "description": "Named entity: quest; with a semi-colon",
- "output": [
- [
- "Character",
- "?"
- ]
- ]
- },
- {
- "input": "&questeq",
- "description": "Bad named entity: questeq without a semi-colon",
- "output": [
- [
- "Character",
- "&questeq"
- ]
- ]
- },
- {
- "input": "≟",
- "description": "Named entity: questeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225f"
- ]
- ]
- },
- {
- "input": """,
- "description": "Named entity: quot without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": """,
- "description": "Named entity: quot; with a semi-colon",
- "output": [
- [
- "Character",
- "\""
- ]
- ]
- },
- {
- "input": "&rAarr",
- "description": "Bad named entity: rAarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rAarr"
- ]
- ]
- },
- {
- "input": "⇛",
- "description": "Named entity: rAarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21db"
- ]
- ]
- },
- {
- "input": "&rArr",
- "description": "Bad named entity: rArr without a semi-colon",
- "output": [
- [
- "Character",
- "&rArr"
- ]
- ]
- },
- {
- "input": "⇒",
- "description": "Named entity: rArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d2"
- ]
- ]
- },
- {
- "input": "&rAtail",
- "description": "Bad named entity: rAtail without a semi-colon",
- "output": [
- [
- "Character",
- "&rAtail"
- ]
- ]
- },
- {
- "input": "⤜",
- "description": "Named entity: rAtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291c"
- ]
- ]
- },
- {
- "input": "&rBarr",
- "description": "Bad named entity: rBarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rBarr"
- ]
- ]
- },
- {
- "input": "⤏",
- "description": "Named entity: rBarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290f"
- ]
- ]
- },
- {
- "input": "&rHar",
- "description": "Bad named entity: rHar without a semi-colon",
- "output": [
- [
- "Character",
- "&rHar"
- ]
- ]
- },
- {
- "input": "⥤",
- "description": "Named entity: rHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2964"
- ]
- ]
- },
- {
- "input": "&race",
- "description": "Bad named entity: race without a semi-colon",
- "output": [
- [
- "Character",
- "&race"
- ]
- ]
- },
- {
- "input": "∽̱",
- "description": "Named entity: race; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223d\u0331"
- ]
- ]
- },
- {
- "input": "&racute",
- "description": "Bad named entity: racute without a semi-colon",
- "output": [
- [
- "Character",
- "&racute"
- ]
- ]
- },
- {
- "input": "ŕ",
- "description": "Named entity: racute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0155"
- ]
- ]
- },
- {
- "input": "&radic",
- "description": "Bad named entity: radic without a semi-colon",
- "output": [
- [
- "Character",
- "&radic"
- ]
- ]
- },
- {
- "input": "√",
- "description": "Named entity: radic; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221a"
- ]
- ]
- },
- {
- "input": "&raemptyv",
- "description": "Bad named entity: raemptyv without a semi-colon",
- "output": [
- [
- "Character",
- "&raemptyv"
- ]
- ]
- },
- {
- "input": "⦳",
- "description": "Named entity: raemptyv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29b3"
- ]
- ]
- },
- {
- "input": "&rang",
- "description": "Bad named entity: rang without a semi-colon",
- "output": [
- [
- "Character",
- "&rang"
- ]
- ]
- },
- {
- "input": "〉",
- "description": "Named entity: rang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "&rangd",
- "description": "Bad named entity: rangd without a semi-colon",
- "output": [
- [
- "Character",
- "&rangd"
- ]
- ]
- },
- {
- "input": "⦒",
- "description": "Named entity: rangd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2992"
- ]
- ]
- },
- {
- "input": "&range",
- "description": "Bad named entity: range without a semi-colon",
- "output": [
- [
- "Character",
- "&range"
- ]
- ]
- },
- {
- "input": "⦥",
- "description": "Named entity: range; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a5"
- ]
- ]
- },
- {
- "input": "&rangle",
- "description": "Bad named entity: rangle without a semi-colon",
- "output": [
- [
- "Character",
- "&rangle"
- ]
- ]
- },
- {
- "input": "⟩",
- "description": "Named entity: rangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e9"
- ]
- ]
- },
- {
- "input": "»",
- "description": "Named entity: raquo without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00bb"
- ]
- ]
- },
- {
- "input": "»",
- "description": "Named entity: raquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00bb"
- ]
- ]
- },
- {
- "input": "&rarr",
- "description": "Bad named entity: rarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rarr"
- ]
- ]
- },
- {
- "input": "→",
- "description": "Named entity: rarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&rarrap",
- "description": "Bad named entity: rarrap without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrap"
- ]
- ]
- },
- {
- "input": "⥵",
- "description": "Named entity: rarrap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2975"
- ]
- ]
- },
- {
- "input": "&rarrb",
- "description": "Bad named entity: rarrb without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrb"
- ]
- ]
- },
- {
- "input": "⇥",
- "description": "Named entity: rarrb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21e5"
- ]
- ]
- },
- {
- "input": "&rarrbfs",
- "description": "Bad named entity: rarrbfs without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrbfs"
- ]
- ]
- },
- {
- "input": "⤠",
- "description": "Named entity: rarrbfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2920"
- ]
- ]
- },
- {
- "input": "&rarrc",
- "description": "Bad named entity: rarrc without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrc"
- ]
- ]
- },
- {
- "input": "⤳",
- "description": "Named entity: rarrc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2933"
- ]
- ]
- },
- {
- "input": "&rarrfs",
- "description": "Bad named entity: rarrfs without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrfs"
- ]
- ]
- },
- {
- "input": "⤞",
- "description": "Named entity: rarrfs; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291e"
- ]
- ]
- },
- {
- "input": "&rarrhk",
- "description": "Bad named entity: rarrhk without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrhk"
- ]
- ]
- },
- {
- "input": "↪",
- "description": "Named entity: rarrhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21aa"
- ]
- ]
- },
- {
- "input": "&rarrlp",
- "description": "Bad named entity: rarrlp without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrlp"
- ]
- ]
- },
- {
- "input": "↬",
- "description": "Named entity: rarrlp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21ac"
- ]
- ]
- },
- {
- "input": "&rarrpl",
- "description": "Bad named entity: rarrpl without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrpl"
- ]
- ]
- },
- {
- "input": "⥅",
- "description": "Named entity: rarrpl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2945"
- ]
- ]
- },
- {
- "input": "&rarrsim",
- "description": "Bad named entity: rarrsim without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrsim"
- ]
- ]
- },
- {
- "input": "⥴",
- "description": "Named entity: rarrsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2974"
- ]
- ]
- },
- {
- "input": "&rarrtl",
- "description": "Bad named entity: rarrtl without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrtl"
- ]
- ]
- },
- {
- "input": "↣",
- "description": "Named entity: rarrtl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a3"
- ]
- ]
- },
- {
- "input": "&rarrw",
- "description": "Bad named entity: rarrw without a semi-colon",
- "output": [
- [
- "Character",
- "&rarrw"
- ]
- ]
- },
- {
- "input": "↝",
- "description": "Named entity: rarrw; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d"
- ]
- ]
- },
- {
- "input": "&ratail",
- "description": "Bad named entity: ratail without a semi-colon",
- "output": [
- [
- "Character",
- "&ratail"
- ]
- ]
- },
- {
- "input": "⤚",
- "description": "Named entity: ratail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u291a"
- ]
- ]
- },
- {
- "input": "&ratio",
- "description": "Bad named entity: ratio without a semi-colon",
- "output": [
- [
- "Character",
- "&ratio"
- ]
- ]
- },
- {
- "input": "∶",
- "description": "Named entity: ratio; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2236"
- ]
- ]
- },
- {
- "input": "&rationals",
- "description": "Bad named entity: rationals without a semi-colon",
- "output": [
- [
- "Character",
- "&rationals"
- ]
- ]
- },
- {
- "input": "ℚ",
- "description": "Named entity: rationals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211a"
- ]
- ]
- },
- {
- "input": "&rbarr",
- "description": "Bad named entity: rbarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rbarr"
- ]
- ]
- },
- {
- "input": "⤍",
- "description": "Named entity: rbarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u290d"
- ]
- ]
- },
- {
- "input": "&rbbrk",
- "description": "Bad named entity: rbbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&rbbrk"
- ]
- ]
- },
- {
- "input": "❳",
- "description": "Named entity: rbbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2773"
- ]
- ]
- },
- {
- "input": "&rbrace",
- "description": "Bad named entity: rbrace without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrace"
- ]
- ]
- },
- {
- "input": "}",
- "description": "Named entity: rbrace; with a semi-colon",
- "output": [
- [
- "Character",
- "}"
- ]
- ]
- },
- {
- "input": "&rbrack",
- "description": "Bad named entity: rbrack without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrack"
- ]
- ]
- },
- {
- "input": "]",
- "description": "Named entity: rbrack; with a semi-colon",
- "output": [
- [
- "Character",
- "]"
- ]
- ]
- },
- {
- "input": "&rbrke",
- "description": "Bad named entity: rbrke without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrke"
- ]
- ]
- },
- {
- "input": "⦌",
- "description": "Named entity: rbrke; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298c"
- ]
- ]
- },
- {
- "input": "&rbrksld",
- "description": "Bad named entity: rbrksld without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrksld"
- ]
- ]
- },
- {
- "input": "⦎",
- "description": "Named entity: rbrksld; with a semi-colon",
- "output": [
- [
- "Character",
- "\u298e"
- ]
- ]
- },
- {
- "input": "&rbrkslu",
- "description": "Bad named entity: rbrkslu without a semi-colon",
- "output": [
- [
- "Character",
- "&rbrkslu"
- ]
- ]
- },
- {
- "input": "⦐",
- "description": "Named entity: rbrkslu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2990"
- ]
- ]
- },
- {
- "input": "&rcaron",
- "description": "Bad named entity: rcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&rcaron"
- ]
- ]
- },
- {
- "input": "ř",
- "description": "Named entity: rcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0159"
- ]
- ]
- },
- {
- "input": "&rcedil",
- "description": "Bad named entity: rcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&rcedil"
- ]
- ]
- },
- {
- "input": "ŗ",
- "description": "Named entity: rcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0157"
- ]
- ]
- },
- {
- "input": "&rceil",
- "description": "Bad named entity: rceil without a semi-colon",
- "output": [
- [
- "Character",
- "&rceil"
- ]
- ]
- },
- {
- "input": "⌉",
- "description": "Named entity: rceil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2309"
- ]
- ]
- },
- {
- "input": "&rcub",
- "description": "Bad named entity: rcub without a semi-colon",
- "output": [
- [
- "Character",
- "&rcub"
- ]
- ]
- },
- {
- "input": "}",
- "description": "Named entity: rcub; with a semi-colon",
- "output": [
- [
- "Character",
- "}"
- ]
- ]
- },
- {
- "input": "&rcy",
- "description": "Bad named entity: rcy without a semi-colon",
- "output": [
- [
- "Character",
- "&rcy"
- ]
- ]
- },
- {
- "input": "р",
- "description": "Named entity: rcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0440"
- ]
- ]
- },
- {
- "input": "&rdca",
- "description": "Bad named entity: rdca without a semi-colon",
- "output": [
- [
- "Character",
- "&rdca"
- ]
- ]
- },
- {
- "input": "⤷",
- "description": "Named entity: rdca; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2937"
- ]
- ]
- },
- {
- "input": "&rdldhar",
- "description": "Bad named entity: rdldhar without a semi-colon",
- "output": [
- [
- "Character",
- "&rdldhar"
- ]
- ]
- },
- {
- "input": "⥩",
- "description": "Named entity: rdldhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2969"
- ]
- ]
- },
- {
- "input": "&rdquo",
- "description": "Bad named entity: rdquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rdquo"
- ]
- ]
- },
- {
- "input": "”",
- "description": "Named entity: rdquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&rdquor",
- "description": "Bad named entity: rdquor without a semi-colon",
- "output": [
- [
- "Character",
- "&rdquor"
- ]
- ]
- },
- {
- "input": "”",
- "description": "Named entity: rdquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201d"
- ]
- ]
- },
- {
- "input": "&rdsh",
- "description": "Bad named entity: rdsh without a semi-colon",
- "output": [
- [
- "Character",
- "&rdsh"
- ]
- ]
- },
- {
- "input": "↳",
- "description": "Named entity: rdsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b3"
- ]
- ]
- },
- {
- "input": "&real",
- "description": "Bad named entity: real without a semi-colon",
- "output": [
- [
- "Character",
- "&real"
- ]
- ]
- },
- {
- "input": "ℜ",
- "description": "Named entity: real; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&realine",
- "description": "Bad named entity: realine without a semi-colon",
- "output": [
- [
- "Character",
- "&realine"
- ]
- ]
- },
- {
- "input": "ℛ",
- "description": "Named entity: realine; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211b"
- ]
- ]
- },
- {
- "input": "&realpart",
- "description": "Bad named entity: realpart without a semi-colon",
- "output": [
- [
- "Character",
- "&realpart"
- ]
- ]
- },
- {
- "input": "ℜ",
- "description": "Named entity: realpart; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211c"
- ]
- ]
- },
- {
- "input": "&reals",
- "description": "Bad named entity: reals without a semi-colon",
- "output": [
- [
- "Character",
- "&reals"
- ]
- ]
- },
- {
- "input": "ℝ",
- "description": "Named entity: reals; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211d"
- ]
- ]
- },
- {
- "input": "&rect",
- "description": "Bad named entity: rect without a semi-colon",
- "output": [
- [
- "Character",
- "&rect"
- ]
- ]
- },
- {
- "input": "▭",
- "description": "Named entity: rect; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ad"
- ]
- ]
- },
- {
- "input": "®",
- "description": "Named entity: reg without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "®",
- "description": "Named entity: reg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ae"
- ]
- ]
- },
- {
- "input": "&rfisht",
- "description": "Bad named entity: rfisht without a semi-colon",
- "output": [
- [
- "Character",
- "&rfisht"
- ]
- ]
- },
- {
- "input": "⥽",
- "description": "Named entity: rfisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297d"
- ]
- ]
- },
- {
- "input": "&rfloor",
- "description": "Bad named entity: rfloor without a semi-colon",
- "output": [
- [
- "Character",
- "&rfloor"
- ]
- ]
- },
- {
- "input": "⌋",
- "description": "Named entity: rfloor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230b"
- ]
- ]
- },
- {
- "input": "&rfr",
- "description": "Bad named entity: rfr without a semi-colon",
- "output": [
- [
- "Character",
- "&rfr"
- ]
- ]
- },
- {
- "input": "𝔯",
- "description": "Named entity: rfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd2f"
- ]
- ]
- },
- {
- "input": "&rhard",
- "description": "Bad named entity: rhard without a semi-colon",
- "output": [
- [
- "Character",
- "&rhard"
- ]
- ]
- },
- {
- "input": "⇁",
- "description": "Named entity: rhard; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&rharu",
- "description": "Bad named entity: rharu without a semi-colon",
- "output": [
- [
- "Character",
- "&rharu"
- ]
- ]
- },
- {
- "input": "⇀",
- "description": "Named entity: rharu; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&rharul",
- "description": "Bad named entity: rharul without a semi-colon",
- "output": [
- [
- "Character",
- "&rharul"
- ]
- ]
- },
- {
- "input": "⥬",
- "description": "Named entity: rharul; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296c"
- ]
- ]
- },
- {
- "input": "&rho",
- "description": "Bad named entity: rho without a semi-colon",
- "output": [
- [
- "Character",
- "&rho"
- ]
- ]
- },
- {
- "input": "ρ",
- "description": "Named entity: rho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c1"
- ]
- ]
- },
- {
- "input": "&rhov",
- "description": "Bad named entity: rhov without a semi-colon",
- "output": [
- [
- "Character",
- "&rhov"
- ]
- ]
- },
- {
- "input": "ϱ",
- "description": "Named entity: rhov; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f1"
- ]
- ]
- },
- {
- "input": "&rightarrow",
- "description": "Bad named entity: rightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&rightarrow"
- ]
- ]
- },
- {
- "input": "→",
- "description": "Named entity: rightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&rightarrowtail",
- "description": "Bad named entity: rightarrowtail without a semi-colon",
- "output": [
- [
- "Character",
- "&rightarrowtail"
- ]
- ]
- },
- {
- "input": "↣",
- "description": "Named entity: rightarrowtail; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a3"
- ]
- ]
- },
- {
- "input": "&rightharpoondown",
- "description": "Bad named entity: rightharpoondown without a semi-colon",
- "output": [
- [
- "Character",
- "&rightharpoondown"
- ]
- ]
- },
- {
- "input": "⇁",
- "description": "Named entity: rightharpoondown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c1"
- ]
- ]
- },
- {
- "input": "&rightharpoonup",
- "description": "Bad named entity: rightharpoonup without a semi-colon",
- "output": [
- [
- "Character",
- "&rightharpoonup"
- ]
- ]
- },
- {
- "input": "⇀",
- "description": "Named entity: rightharpoonup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c0"
- ]
- ]
- },
- {
- "input": "&rightleftarrows",
- "description": "Bad named entity: rightleftarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&rightleftarrows"
- ]
- ]
- },
- {
- "input": "⇄",
- "description": "Named entity: rightleftarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&rightleftharpoons",
- "description": "Bad named entity: rightleftharpoons without a semi-colon",
- "output": [
- [
- "Character",
- "&rightleftharpoons"
- ]
- ]
- },
- {
- "input": "⇌",
- "description": "Named entity: rightleftharpoons; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&rightrightarrows",
- "description": "Bad named entity: rightrightarrows without a semi-colon",
- "output": [
- [
- "Character",
- "&rightrightarrows"
- ]
- ]
- },
- {
- "input": "⇉",
- "description": "Named entity: rightrightarrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c9"
- ]
- ]
- },
- {
- "input": "&rightsquigarrow",
- "description": "Bad named entity: rightsquigarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&rightsquigarrow"
- ]
- ]
- },
- {
- "input": "↝",
- "description": "Named entity: rightsquigarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219d"
- ]
- ]
- },
- {
- "input": "&rightthreetimes",
- "description": "Bad named entity: rightthreetimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rightthreetimes"
- ]
- ]
- },
- {
- "input": "⋌",
- "description": "Named entity: rightthreetimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cc"
- ]
- ]
- },
- {
- "input": "&ring",
- "description": "Bad named entity: ring without a semi-colon",
- "output": [
- [
- "Character",
- "&ring"
- ]
- ]
- },
- {
- "input": "˚",
- "description": "Named entity: ring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02da"
- ]
- ]
- },
- {
- "input": "&risingdotseq",
- "description": "Bad named entity: risingdotseq without a semi-colon",
- "output": [
- [
- "Character",
- "&risingdotseq"
- ]
- ]
- },
- {
- "input": "≓",
- "description": "Named entity: risingdotseq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2253"
- ]
- ]
- },
- {
- "input": "&rlarr",
- "description": "Bad named entity: rlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rlarr"
- ]
- ]
- },
- {
- "input": "⇄",
- "description": "Named entity: rlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c4"
- ]
- ]
- },
- {
- "input": "&rlhar",
- "description": "Bad named entity: rlhar without a semi-colon",
- "output": [
- [
- "Character",
- "&rlhar"
- ]
- ]
- },
- {
- "input": "⇌",
- "description": "Named entity: rlhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21cc"
- ]
- ]
- },
- {
- "input": "&rlm",
- "description": "Bad named entity: rlm without a semi-colon",
- "output": [
- [
- "Character",
- "&rlm"
- ]
- ]
- },
- {
- "input": "",
- "description": "Named entity: rlm; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200f"
- ]
- ]
- },
- {
- "input": "&rmoust",
- "description": "Bad named entity: rmoust without a semi-colon",
- "output": [
- [
- "Character",
- "&rmoust"
- ]
- ]
- },
- {
- "input": "⎱",
- "description": "Named entity: rmoust; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b1"
- ]
- ]
- },
- {
- "input": "&rmoustache",
- "description": "Bad named entity: rmoustache without a semi-colon",
- "output": [
- [
- "Character",
- "&rmoustache"
- ]
- ]
- },
- {
- "input": "⎱",
- "description": "Named entity: rmoustache; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b1"
- ]
- ]
- },
- {
- "input": "&rnmid",
- "description": "Bad named entity: rnmid without a semi-colon",
- "output": [
- [
- "Character",
- "&rnmid"
- ]
- ]
- },
- {
- "input": "⫮",
- "description": "Named entity: rnmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aee"
- ]
- ]
- },
- {
- "input": "&roang",
- "description": "Bad named entity: roang without a semi-colon",
- "output": [
- [
- "Character",
- "&roang"
- ]
- ]
- },
- {
- "input": "⟭",
- "description": "Named entity: roang; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27ed"
- ]
- ]
- },
- {
- "input": "&roarr",
- "description": "Bad named entity: roarr without a semi-colon",
- "output": [
- [
- "Character",
- "&roarr"
- ]
- ]
- },
- {
- "input": "⇾",
- "description": "Named entity: roarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21fe"
- ]
- ]
- },
- {
- "input": "&robrk",
- "description": "Bad named entity: robrk without a semi-colon",
- "output": [
- [
- "Character",
- "&robrk"
- ]
- ]
- },
- {
- "input": "⟧",
- "description": "Named entity: robrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27e7"
- ]
- ]
- },
- {
- "input": "&ropar",
- "description": "Bad named entity: ropar without a semi-colon",
- "output": [
- [
- "Character",
- "&ropar"
- ]
- ]
- },
- {
- "input": "⦆",
- "description": "Named entity: ropar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2986"
- ]
- ]
- },
- {
- "input": "&ropf",
- "description": "Bad named entity: ropf without a semi-colon",
- "output": [
- [
- "Character",
- "&ropf"
- ]
- ]
- },
- {
- "input": "𝕣",
- "description": "Named entity: ropf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd63"
- ]
- ]
- },
- {
- "input": "&roplus",
- "description": "Bad named entity: roplus without a semi-colon",
- "output": [
- [
- "Character",
- "&roplus"
- ]
- ]
- },
- {
- "input": "⨮",
- "description": "Named entity: roplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a2e"
- ]
- ]
- },
- {
- "input": "&rotimes",
- "description": "Bad named entity: rotimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rotimes"
- ]
- ]
- },
- {
- "input": "⨵",
- "description": "Named entity: rotimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a35"
- ]
- ]
- },
- {
- "input": "&rpar",
- "description": "Bad named entity: rpar without a semi-colon",
- "output": [
- [
- "Character",
- "&rpar"
- ]
- ]
- },
- {
- "input": ")",
- "description": "Named entity: rpar; with a semi-colon",
- "output": [
- [
- "Character",
- ")"
- ]
- ]
- },
- {
- "input": "&rpargt",
- "description": "Bad named entity: rpargt without a semi-colon",
- "output": [
- [
- "Character",
- "&rpargt"
- ]
- ]
- },
- {
- "input": "⦔",
- "description": "Named entity: rpargt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2994"
- ]
- ]
- },
- {
- "input": "&rppolint",
- "description": "Bad named entity: rppolint without a semi-colon",
- "output": [
- [
- "Character",
- "&rppolint"
- ]
- ]
- },
- {
- "input": "⨒",
- "description": "Named entity: rppolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a12"
- ]
- ]
- },
- {
- "input": "&rrarr",
- "description": "Bad named entity: rrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&rrarr"
- ]
- ]
- },
- {
- "input": "⇉",
- "description": "Named entity: rrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c9"
- ]
- ]
- },
- {
- "input": "&rsaquo",
- "description": "Bad named entity: rsaquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rsaquo"
- ]
- ]
- },
- {
- "input": "›",
- "description": "Named entity: rsaquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u203a"
- ]
- ]
- },
- {
- "input": "&rscr",
- "description": "Bad named entity: rscr without a semi-colon",
- "output": [
- [
- "Character",
- "&rscr"
- ]
- ]
- },
- {
- "input": "𝓇",
- "description": "Named entity: rscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc7"
- ]
- ]
- },
- {
- "input": "&rsh",
- "description": "Bad named entity: rsh without a semi-colon",
- "output": [
- [
- "Character",
- "&rsh"
- ]
- ]
- },
- {
- "input": "↱",
- "description": "Named entity: rsh; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21b1"
- ]
- ]
- },
- {
- "input": "&rsqb",
- "description": "Bad named entity: rsqb without a semi-colon",
- "output": [
- [
- "Character",
- "&rsqb"
- ]
- ]
- },
- {
- "input": "]",
- "description": "Named entity: rsqb; with a semi-colon",
- "output": [
- [
- "Character",
- "]"
- ]
- ]
- },
- {
- "input": "&rsquo",
- "description": "Bad named entity: rsquo without a semi-colon",
- "output": [
- [
- "Character",
- "&rsquo"
- ]
- ]
- },
- {
- "input": "’",
- "description": "Named entity: rsquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&rsquor",
- "description": "Bad named entity: rsquor without a semi-colon",
- "output": [
- [
- "Character",
- "&rsquor"
- ]
- ]
- },
- {
- "input": "’",
- "description": "Named entity: rsquor; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2019"
- ]
- ]
- },
- {
- "input": "&rthree",
- "description": "Bad named entity: rthree without a semi-colon",
- "output": [
- [
- "Character",
- "&rthree"
- ]
- ]
- },
- {
- "input": "⋌",
- "description": "Named entity: rthree; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22cc"
- ]
- ]
- },
- {
- "input": "&rtimes",
- "description": "Bad named entity: rtimes without a semi-colon",
- "output": [
- [
- "Character",
- "&rtimes"
- ]
- ]
- },
- {
- "input": "⋊",
- "description": "Named entity: rtimes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ca"
- ]
- ]
- },
- {
- "input": "&rtri",
- "description": "Bad named entity: rtri without a semi-colon",
- "output": [
- [
- "Character",
- "&rtri"
- ]
- ]
- },
- {
- "input": "▹",
- "description": "Named entity: rtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b9"
- ]
- ]
- },
- {
- "input": "&rtrie",
- "description": "Bad named entity: rtrie without a semi-colon",
- "output": [
- [
- "Character",
- "&rtrie"
- ]
- ]
- },
- {
- "input": "⊵",
- "description": "Named entity: rtrie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&rtrif",
- "description": "Bad named entity: rtrif without a semi-colon",
- "output": [
- [
- "Character",
- "&rtrif"
- ]
- ]
- },
- {
- "input": "▸",
- "description": "Named entity: rtrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b8"
- ]
- ]
- },
- {
- "input": "&rtriltri",
- "description": "Bad named entity: rtriltri without a semi-colon",
- "output": [
- [
- "Character",
- "&rtriltri"
- ]
- ]
- },
- {
- "input": "⧎",
- "description": "Named entity: rtriltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29ce"
- ]
- ]
- },
- {
- "input": "&ruluhar",
- "description": "Bad named entity: ruluhar without a semi-colon",
- "output": [
- [
- "Character",
- "&ruluhar"
- ]
- ]
- },
- {
- "input": "⥨",
- "description": "Named entity: ruluhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2968"
- ]
- ]
- },
- {
- "input": "&rx",
- "description": "Bad named entity: rx without a semi-colon",
- "output": [
- [
- "Character",
- "&rx"
- ]
- ]
- },
- {
- "input": "℞",
- "description": "Named entity: rx; with a semi-colon",
- "output": [
- [
- "Character",
- "\u211e"
- ]
- ]
- },
- {
- "input": "&sacute",
- "description": "Bad named entity: sacute without a semi-colon",
- "output": [
- [
- "Character",
- "&sacute"
- ]
- ]
- },
- {
- "input": "ś",
- "description": "Named entity: sacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015b"
- ]
- ]
- },
- {
- "input": "&sbquo",
- "description": "Bad named entity: sbquo without a semi-colon",
- "output": [
- [
- "Character",
- "&sbquo"
- ]
- ]
- },
- {
- "input": "‚",
- "description": "Named entity: sbquo; with a semi-colon",
- "output": [
- [
- "Character",
- "\u201a"
- ]
- ]
- },
- {
- "input": "&sc",
- "description": "Bad named entity: sc without a semi-colon",
- "output": [
- [
- "Character",
- "&sc"
- ]
- ]
- },
- {
- "input": "≻",
- "description": "Named entity: sc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&scE",
- "description": "Bad named entity: scE without a semi-colon",
- "output": [
- [
- "Character",
- "&scE"
- ]
- ]
- },
- {
- "input": "⪴",
- "description": "Named entity: scE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab4"
- ]
- ]
- },
- {
- "input": "&scap",
- "description": "Bad named entity: scap without a semi-colon",
- "output": [
- [
- "Character",
- "&scap"
- ]
- ]
- },
- {
- "input": "⪸",
- "description": "Named entity: scap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab8"
- ]
- ]
- },
- {
- "input": "&scaron",
- "description": "Bad named entity: scaron without a semi-colon",
- "output": [
- [
- "Character",
- "&scaron"
- ]
- ]
- },
- {
- "input": "š",
- "description": "Named entity: scaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0161"
- ]
- ]
- },
- {
- "input": "&sccue",
- "description": "Bad named entity: sccue without a semi-colon",
- "output": [
- [
- "Character",
- "&sccue"
- ]
- ]
- },
- {
- "input": "≽",
- "description": "Named entity: sccue; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&sce",
- "description": "Bad named entity: sce without a semi-colon",
- "output": [
- [
- "Character",
- "&sce"
- ]
- ]
- },
- {
- "input": "⪰",
- "description": "Named entity: sce; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&scedil",
- "description": "Bad named entity: scedil without a semi-colon",
- "output": [
- [
- "Character",
- "&scedil"
- ]
- ]
- },
- {
- "input": "ş",
- "description": "Named entity: scedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015f"
- ]
- ]
- },
- {
- "input": "&scirc",
- "description": "Bad named entity: scirc without a semi-colon",
- "output": [
- [
- "Character",
- "&scirc"
- ]
- ]
- },
- {
- "input": "ŝ",
- "description": "Named entity: scirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u015d"
- ]
- ]
- },
- {
- "input": "&scnE",
- "description": "Bad named entity: scnE without a semi-colon",
- "output": [
- [
- "Character",
- "&scnE"
- ]
- ]
- },
- {
- "input": "⪶",
- "description": "Named entity: scnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab6"
- ]
- ]
- },
- {
- "input": "&scnap",
- "description": "Bad named entity: scnap without a semi-colon",
- "output": [
- [
- "Character",
- "&scnap"
- ]
- ]
- },
- {
- "input": "⪺",
- "description": "Named entity: scnap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aba"
- ]
- ]
- },
- {
- "input": "&scnsim",
- "description": "Bad named entity: scnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&scnsim"
- ]
- ]
- },
- {
- "input": "⋩",
- "description": "Named entity: scnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e9"
- ]
- ]
- },
- {
- "input": "&scpolint",
- "description": "Bad named entity: scpolint without a semi-colon",
- "output": [
- [
- "Character",
- "&scpolint"
- ]
- ]
- },
- {
- "input": "⨓",
- "description": "Named entity: scpolint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a13"
- ]
- ]
- },
- {
- "input": "&scsim",
- "description": "Bad named entity: scsim without a semi-colon",
- "output": [
- [
- "Character",
- "&scsim"
- ]
- ]
- },
- {
- "input": "≿",
- "description": "Named entity: scsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&scy",
- "description": "Bad named entity: scy without a semi-colon",
- "output": [
- [
- "Character",
- "&scy"
- ]
- ]
- },
- {
- "input": "с",
- "description": "Named entity: scy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0441"
- ]
- ]
- },
- {
- "input": "&sdot",
- "description": "Bad named entity: sdot without a semi-colon",
- "output": [
- [
- "Character",
- "&sdot"
- ]
- ]
- },
- {
- "input": "⋅",
- "description": "Named entity: sdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c5"
- ]
- ]
- },
- {
- "input": "&sdotb",
- "description": "Bad named entity: sdotb without a semi-colon",
- "output": [
- [
- "Character",
- "&sdotb"
- ]
- ]
- },
- {
- "input": "⊡",
- "description": "Named entity: sdotb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a1"
- ]
- ]
- },
- {
- "input": "&sdote",
- "description": "Bad named entity: sdote without a semi-colon",
- "output": [
- [
- "Character",
- "&sdote"
- ]
- ]
- },
- {
- "input": "⩦",
- "description": "Named entity: sdote; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a66"
- ]
- ]
- },
- {
- "input": "&seArr",
- "description": "Bad named entity: seArr without a semi-colon",
- "output": [
- [
- "Character",
- "&seArr"
- ]
- ]
- },
- {
- "input": "⇘",
- "description": "Named entity: seArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d8"
- ]
- ]
- },
- {
- "input": "&searhk",
- "description": "Bad named entity: searhk without a semi-colon",
- "output": [
- [
- "Character",
- "&searhk"
- ]
- ]
- },
- {
- "input": "⤥",
- "description": "Named entity: searhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2925"
- ]
- ]
- },
- {
- "input": "&searr",
- "description": "Bad named entity: searr without a semi-colon",
- "output": [
- [
- "Character",
- "&searr"
- ]
- ]
- },
- {
- "input": "↘",
- "description": "Named entity: searr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "&searrow",
- "description": "Bad named entity: searrow without a semi-colon",
- "output": [
- [
- "Character",
- "&searrow"
- ]
- ]
- },
- {
- "input": "↘",
- "description": "Named entity: searrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2198"
- ]
- ]
- },
- {
- "input": "§",
- "description": "Named entity: sect without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a7"
- ]
- ]
- },
- {
- "input": "§",
- "description": "Named entity: sect; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a7"
- ]
- ]
- },
- {
- "input": "&semi",
- "description": "Bad named entity: semi without a semi-colon",
- "output": [
- [
- "Character",
- "&semi"
- ]
- ]
- },
- {
- "input": ";",
- "description": "Named entity: semi; with a semi-colon",
- "output": [
- [
- "Character",
- ";"
- ]
- ]
- },
- {
- "input": "&seswar",
- "description": "Bad named entity: seswar without a semi-colon",
- "output": [
- [
- "Character",
- "&seswar"
- ]
- ]
- },
- {
- "input": "⤩",
- "description": "Named entity: seswar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2929"
- ]
- ]
- },
- {
- "input": "&setminus",
- "description": "Bad named entity: setminus without a semi-colon",
- "output": [
- [
- "Character",
- "&setminus"
- ]
- ]
- },
- {
- "input": "∖",
- "description": "Named entity: setminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&setmn",
- "description": "Bad named entity: setmn without a semi-colon",
- "output": [
- [
- "Character",
- "&setmn"
- ]
- ]
- },
- {
- "input": "∖",
- "description": "Named entity: setmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&sext",
- "description": "Bad named entity: sext without a semi-colon",
- "output": [
- [
- "Character",
- "&sext"
- ]
- ]
- },
- {
- "input": "✶",
- "description": "Named entity: sext; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2736"
- ]
- ]
- },
- {
- "input": "&sfr",
- "description": "Bad named entity: sfr without a semi-colon",
- "output": [
- [
- "Character",
- "&sfr"
- ]
- ]
- },
- {
- "input": "𝔰",
- "description": "Named entity: sfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd30"
- ]
- ]
- },
- {
- "input": "&sfrown",
- "description": "Bad named entity: sfrown without a semi-colon",
- "output": [
- [
- "Character",
- "&sfrown"
- ]
- ]
- },
- {
- "input": "⌢",
- "description": "Named entity: sfrown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2322"
- ]
- ]
- },
- {
- "input": "&sharp",
- "description": "Bad named entity: sharp without a semi-colon",
- "output": [
- [
- "Character",
- "&sharp"
- ]
- ]
- },
- {
- "input": "♯",
- "description": "Named entity: sharp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266f"
- ]
- ]
- },
- {
- "input": "&shchcy",
- "description": "Bad named entity: shchcy without a semi-colon",
- "output": [
- [
- "Character",
- "&shchcy"
- ]
- ]
- },
- {
- "input": "щ",
- "description": "Named entity: shchcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0449"
- ]
- ]
- },
- {
- "input": "&shcy",
- "description": "Bad named entity: shcy without a semi-colon",
- "output": [
- [
- "Character",
- "&shcy"
- ]
- ]
- },
- {
- "input": "ш",
- "description": "Named entity: shcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0448"
- ]
- ]
- },
- {
- "input": "&shortmid",
- "description": "Bad named entity: shortmid without a semi-colon",
- "output": [
- [
- "Character",
- "&shortmid"
- ]
- ]
- },
- {
- "input": "∣",
- "description": "Named entity: shortmid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&shortparallel",
- "description": "Bad named entity: shortparallel without a semi-colon",
- "output": [
- [
- "Character",
- "&shortparallel"
- ]
- ]
- },
- {
- "input": "∥",
- "description": "Named entity: shortparallel; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "­",
- "description": "Named entity: shy without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ad"
- ]
- ]
- },
- {
- "input": "",
- "description": "Named entity: shy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ad"
- ]
- ]
- },
- {
- "input": "&sigma",
- "description": "Bad named entity: sigma without a semi-colon",
- "output": [
- [
- "Character",
- "&sigma"
- ]
- ]
- },
- {
- "input": "σ",
- "description": "Named entity: sigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c3"
- ]
- ]
- },
- {
- "input": "&sigmaf",
- "description": "Bad named entity: sigmaf without a semi-colon",
- "output": [
- [
- "Character",
- "&sigmaf"
- ]
- ]
- },
- {
- "input": "ς",
- "description": "Named entity: sigmaf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&sigmav",
- "description": "Bad named entity: sigmav without a semi-colon",
- "output": [
- [
- "Character",
- "&sigmav"
- ]
- ]
- },
- {
- "input": "ς",
- "description": "Named entity: sigmav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&sim",
- "description": "Bad named entity: sim without a semi-colon",
- "output": [
- [
- "Character",
- "&sim"
- ]
- ]
- },
- {
- "input": "∼",
- "description": "Named entity: sim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&simdot",
- "description": "Bad named entity: simdot without a semi-colon",
- "output": [
- [
- "Character",
- "&simdot"
- ]
- ]
- },
- {
- "input": "⩪",
- "description": "Named entity: simdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a6a"
- ]
- ]
- },
- {
- "input": "&sime",
- "description": "Bad named entity: sime without a semi-colon",
- "output": [
- [
- "Character",
- "&sime"
- ]
- ]
- },
- {
- "input": "≃",
- "description": "Named entity: sime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&simeq",
- "description": "Bad named entity: simeq without a semi-colon",
- "output": [
- [
- "Character",
- "&simeq"
- ]
- ]
- },
- {
- "input": "≃",
- "description": "Named entity: simeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2243"
- ]
- ]
- },
- {
- "input": "&simg",
- "description": "Bad named entity: simg without a semi-colon",
- "output": [
- [
- "Character",
- "&simg"
- ]
- ]
- },
- {
- "input": "⪞",
- "description": "Named entity: simg; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9e"
- ]
- ]
- },
- {
- "input": "&simgE",
- "description": "Bad named entity: simgE without a semi-colon",
- "output": [
- [
- "Character",
- "&simgE"
- ]
- ]
- },
- {
- "input": "⪠",
- "description": "Named entity: simgE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aa0"
- ]
- ]
- },
- {
- "input": "&siml",
- "description": "Bad named entity: siml without a semi-colon",
- "output": [
- [
- "Character",
- "&siml"
- ]
- ]
- },
- {
- "input": "⪝",
- "description": "Named entity: siml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9d"
- ]
- ]
- },
- {
- "input": "&simlE",
- "description": "Bad named entity: simlE without a semi-colon",
- "output": [
- [
- "Character",
- "&simlE"
- ]
- ]
- },
- {
- "input": "⪟",
- "description": "Named entity: simlE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a9f"
- ]
- ]
- },
- {
- "input": "&simne",
- "description": "Bad named entity: simne without a semi-colon",
- "output": [
- [
- "Character",
- "&simne"
- ]
- ]
- },
- {
- "input": "≆",
- "description": "Named entity: simne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2246"
- ]
- ]
- },
- {
- "input": "&simplus",
- "description": "Bad named entity: simplus without a semi-colon",
- "output": [
- [
- "Character",
- "&simplus"
- ]
- ]
- },
- {
- "input": "⨤",
- "description": "Named entity: simplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a24"
- ]
- ]
- },
- {
- "input": "&simrarr",
- "description": "Bad named entity: simrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&simrarr"
- ]
- ]
- },
- {
- "input": "⥲",
- "description": "Named entity: simrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2972"
- ]
- ]
- },
- {
- "input": "&slarr",
- "description": "Bad named entity: slarr without a semi-colon",
- "output": [
- [
- "Character",
- "&slarr"
- ]
- ]
- },
- {
- "input": "←",
- "description": "Named entity: slarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2190"
- ]
- ]
- },
- {
- "input": "&smallsetminus",
- "description": "Bad named entity: smallsetminus without a semi-colon",
- "output": [
- [
- "Character",
- "&smallsetminus"
- ]
- ]
- },
- {
- "input": "∖",
- "description": "Named entity: smallsetminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&smashp",
- "description": "Bad named entity: smashp without a semi-colon",
- "output": [
- [
- "Character",
- "&smashp"
- ]
- ]
- },
- {
- "input": "⨳",
- "description": "Named entity: smashp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a33"
- ]
- ]
- },
- {
- "input": "&smeparsl",
- "description": "Bad named entity: smeparsl without a semi-colon",
- "output": [
- [
- "Character",
- "&smeparsl"
- ]
- ]
- },
- {
- "input": "⧤",
- "description": "Named entity: smeparsl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29e4"
- ]
- ]
- },
- {
- "input": "&smid",
- "description": "Bad named entity: smid without a semi-colon",
- "output": [
- [
- "Character",
- "&smid"
- ]
- ]
- },
- {
- "input": "∣",
- "description": "Named entity: smid; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2223"
- ]
- ]
- },
- {
- "input": "&smile",
- "description": "Bad named entity: smile without a semi-colon",
- "output": [
- [
- "Character",
- "&smile"
- ]
- ]
- },
- {
- "input": "⌣",
- "description": "Named entity: smile; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2323"
- ]
- ]
- },
- {
- "input": "&smt",
- "description": "Bad named entity: smt without a semi-colon",
- "output": [
- [
- "Character",
- "&smt"
- ]
- ]
- },
- {
- "input": "⪪",
- "description": "Named entity: smt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aaa"
- ]
- ]
- },
- {
- "input": "&smte",
- "description": "Bad named entity: smte without a semi-colon",
- "output": [
- [
- "Character",
- "&smte"
- ]
- ]
- },
- {
- "input": "⪬",
- "description": "Named entity: smte; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aac"
- ]
- ]
- },
- {
- "input": "&smtes",
- "description": "Bad named entity: smtes without a semi-colon",
- "output": [
- [
- "Character",
- "&smtes"
- ]
- ]
- },
- {
- "input": "⪬︀",
- "description": "Named entity: smtes; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aac\ufe00"
- ]
- ]
- },
- {
- "input": "&softcy",
- "description": "Bad named entity: softcy without a semi-colon",
- "output": [
- [
- "Character",
- "&softcy"
- ]
- ]
- },
- {
- "input": "ь",
- "description": "Named entity: softcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044c"
- ]
- ]
- },
- {
- "input": "&sol",
- "description": "Bad named entity: sol without a semi-colon",
- "output": [
- [
- "Character",
- "&sol"
- ]
- ]
- },
- {
- "input": "/",
- "description": "Named entity: sol; with a semi-colon",
- "output": [
- [
- "Character",
- "/"
- ]
- ]
- },
- {
- "input": "&solb",
- "description": "Bad named entity: solb without a semi-colon",
- "output": [
- [
- "Character",
- "&solb"
- ]
- ]
- },
- {
- "input": "⧄",
- "description": "Named entity: solb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29c4"
- ]
- ]
- },
- {
- "input": "&solbar",
- "description": "Bad named entity: solbar without a semi-colon",
- "output": [
- [
- "Character",
- "&solbar"
- ]
- ]
- },
- {
- "input": "⌿",
- "description": "Named entity: solbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u233f"
- ]
- ]
- },
- {
- "input": "&sopf",
- "description": "Bad named entity: sopf without a semi-colon",
- "output": [
- [
- "Character",
- "&sopf"
- ]
- ]
- },
- {
- "input": "𝕤",
- "description": "Named entity: sopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd64"
- ]
- ]
- },
- {
- "input": "&spades",
- "description": "Bad named entity: spades without a semi-colon",
- "output": [
- [
- "Character",
- "&spades"
- ]
- ]
- },
- {
- "input": "♠",
- "description": "Named entity: spades; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2660"
- ]
- ]
- },
- {
- "input": "&spadesuit",
- "description": "Bad named entity: spadesuit without a semi-colon",
- "output": [
- [
- "Character",
- "&spadesuit"
- ]
- ]
- },
- {
- "input": "♠",
- "description": "Named entity: spadesuit; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2660"
- ]
- ]
- },
- {
- "input": "&spar",
- "description": "Bad named entity: spar without a semi-colon",
- "output": [
- [
- "Character",
- "&spar"
- ]
- ]
- },
- {
- "input": "∥",
- "description": "Named entity: spar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2225"
- ]
- ]
- },
- {
- "input": "&sqcap",
- "description": "Bad named entity: sqcap without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcap"
- ]
- ]
- },
- {
- "input": "⊓",
- "description": "Named entity: sqcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293"
- ]
- ]
- },
- {
- "input": "&sqcaps",
- "description": "Bad named entity: sqcaps without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcaps"
- ]
- ]
- },
- {
- "input": "⊓︀",
- "description": "Named entity: sqcaps; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2293\ufe00"
- ]
- ]
- },
- {
- "input": "&sqcup",
- "description": "Bad named entity: sqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcup"
- ]
- ]
- },
- {
- "input": "⊔",
- "description": "Named entity: sqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294"
- ]
- ]
- },
- {
- "input": "&sqcups",
- "description": "Bad named entity: sqcups without a semi-colon",
- "output": [
- [
- "Character",
- "&sqcups"
- ]
- ]
- },
- {
- "input": "⊔︀",
- "description": "Named entity: sqcups; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2294\ufe00"
- ]
- ]
- },
- {
- "input": "&sqsub",
- "description": "Bad named entity: sqsub without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsub"
- ]
- ]
- },
- {
- "input": "⊏",
- "description": "Named entity: sqsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&sqsube",
- "description": "Bad named entity: sqsube without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsube"
- ]
- ]
- },
- {
- "input": "⊑",
- "description": "Named entity: sqsube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&sqsubset",
- "description": "Bad named entity: sqsubset without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsubset"
- ]
- ]
- },
- {
- "input": "⊏",
- "description": "Named entity: sqsubset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228f"
- ]
- ]
- },
- {
- "input": "&sqsubseteq",
- "description": "Bad named entity: sqsubseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsubseteq"
- ]
- ]
- },
- {
- "input": "⊑",
- "description": "Named entity: sqsubseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2291"
- ]
- ]
- },
- {
- "input": "&sqsup",
- "description": "Bad named entity: sqsup without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsup"
- ]
- ]
- },
- {
- "input": "⊐",
- "description": "Named entity: sqsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&sqsupe",
- "description": "Bad named entity: sqsupe without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupe"
- ]
- ]
- },
- {
- "input": "⊒",
- "description": "Named entity: sqsupe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&sqsupset",
- "description": "Bad named entity: sqsupset without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupset"
- ]
- ]
- },
- {
- "input": "⊐",
- "description": "Named entity: sqsupset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2290"
- ]
- ]
- },
- {
- "input": "&sqsupseteq",
- "description": "Bad named entity: sqsupseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&sqsupseteq"
- ]
- ]
- },
- {
- "input": "⊒",
- "description": "Named entity: sqsupseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2292"
- ]
- ]
- },
- {
- "input": "&squ",
- "description": "Bad named entity: squ without a semi-colon",
- "output": [
- [
- "Character",
- "&squ"
- ]
- ]
- },
- {
- "input": "□",
- "description": "Named entity: squ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&square",
- "description": "Bad named entity: square without a semi-colon",
- "output": [
- [
- "Character",
- "&square"
- ]
- ]
- },
- {
- "input": "□",
- "description": "Named entity: square; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25a1"
- ]
- ]
- },
- {
- "input": "&squarf",
- "description": "Bad named entity: squarf without a semi-colon",
- "output": [
- [
- "Character",
- "&squarf"
- ]
- ]
- },
- {
- "input": "▪",
- "description": "Named entity: squarf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&squf",
- "description": "Bad named entity: squf without a semi-colon",
- "output": [
- [
- "Character",
- "&squf"
- ]
- ]
- },
- {
- "input": "▪",
- "description": "Named entity: squf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25aa"
- ]
- ]
- },
- {
- "input": "&srarr",
- "description": "Bad named entity: srarr without a semi-colon",
- "output": [
- [
- "Character",
- "&srarr"
- ]
- ]
- },
- {
- "input": "→",
- "description": "Named entity: srarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2192"
- ]
- ]
- },
- {
- "input": "&sscr",
- "description": "Bad named entity: sscr without a semi-colon",
- "output": [
- [
- "Character",
- "&sscr"
- ]
- ]
- },
- {
- "input": "𝓈",
- "description": "Named entity: sscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc8"
- ]
- ]
- },
- {
- "input": "&ssetmn",
- "description": "Bad named entity: ssetmn without a semi-colon",
- "output": [
- [
- "Character",
- "&ssetmn"
- ]
- ]
- },
- {
- "input": "∖",
- "description": "Named entity: ssetmn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2216"
- ]
- ]
- },
- {
- "input": "&ssmile",
- "description": "Bad named entity: ssmile without a semi-colon",
- "output": [
- [
- "Character",
- "&ssmile"
- ]
- ]
- },
- {
- "input": "⌣",
- "description": "Named entity: ssmile; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2323"
- ]
- ]
- },
- {
- "input": "&sstarf",
- "description": "Bad named entity: sstarf without a semi-colon",
- "output": [
- [
- "Character",
- "&sstarf"
- ]
- ]
- },
- {
- "input": "⋆",
- "description": "Named entity: sstarf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c6"
- ]
- ]
- },
- {
- "input": "&star",
- "description": "Bad named entity: star without a semi-colon",
- "output": [
- [
- "Character",
- "&star"
- ]
- ]
- },
- {
- "input": "☆",
- "description": "Named entity: star; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2606"
- ]
- ]
- },
- {
- "input": "&starf",
- "description": "Bad named entity: starf without a semi-colon",
- "output": [
- [
- "Character",
- "&starf"
- ]
- ]
- },
- {
- "input": "★",
- "description": "Named entity: starf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2605"
- ]
- ]
- },
- {
- "input": "&straightepsilon",
- "description": "Bad named entity: straightepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&straightepsilon"
- ]
- ]
- },
- {
- "input": "ϵ",
- "description": "Named entity: straightepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&straightphi",
- "description": "Bad named entity: straightphi without a semi-colon",
- "output": [
- [
- "Character",
- "&straightphi"
- ]
- ]
- },
- {
- "input": "ϕ",
- "description": "Named entity: straightphi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&strns",
- "description": "Bad named entity: strns without a semi-colon",
- "output": [
- [
- "Character",
- "&strns"
- ]
- ]
- },
- {
- "input": "¯",
- "description": "Named entity: strns; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00af"
- ]
- ]
- },
- {
- "input": "&sub",
- "description": "Bad named entity: sub without a semi-colon",
- "output": [
- [
- "Character",
- "&sub"
- ]
- ]
- },
- {
- "input": "⊂",
- "description": "Named entity: sub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282"
- ]
- ]
- },
- {
- "input": "&subE",
- "description": "Bad named entity: subE without a semi-colon",
- "output": [
- [
- "Character",
- "&subE"
- ]
- ]
- },
- {
- "input": "⫅",
- "description": "Named entity: subE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5"
- ]
- ]
- },
- {
- "input": "&subdot",
- "description": "Bad named entity: subdot without a semi-colon",
- "output": [
- [
- "Character",
- "&subdot"
- ]
- ]
- },
- {
- "input": "⪽",
- "description": "Named entity: subdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abd"
- ]
- ]
- },
- {
- "input": "&sube",
- "description": "Bad named entity: sube without a semi-colon",
- "output": [
- [
- "Character",
- "&sube"
- ]
- ]
- },
- {
- "input": "⊆",
- "description": "Named entity: sube; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&subedot",
- "description": "Bad named entity: subedot without a semi-colon",
- "output": [
- [
- "Character",
- "&subedot"
- ]
- ]
- },
- {
- "input": "⫃",
- "description": "Named entity: subedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac3"
- ]
- ]
- },
- {
- "input": "&submult",
- "description": "Bad named entity: submult without a semi-colon",
- "output": [
- [
- "Character",
- "&submult"
- ]
- ]
- },
- {
- "input": "⫁",
- "description": "Named entity: submult; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac1"
- ]
- ]
- },
- {
- "input": "&subnE",
- "description": "Bad named entity: subnE without a semi-colon",
- "output": [
- [
- "Character",
- "&subnE"
- ]
- ]
- },
- {
- "input": "⫋",
- "description": "Named entity: subnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb"
- ]
- ]
- },
- {
- "input": "&subne",
- "description": "Bad named entity: subne without a semi-colon",
- "output": [
- [
- "Character",
- "&subne"
- ]
- ]
- },
- {
- "input": "⊊",
- "description": "Named entity: subne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a"
- ]
- ]
- },
- {
- "input": "&subplus",
- "description": "Bad named entity: subplus without a semi-colon",
- "output": [
- [
- "Character",
- "&subplus"
- ]
- ]
- },
- {
- "input": "⪿",
- "description": "Named entity: subplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abf"
- ]
- ]
- },
- {
- "input": "&subrarr",
- "description": "Bad named entity: subrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&subrarr"
- ]
- ]
- },
- {
- "input": "⥹",
- "description": "Named entity: subrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2979"
- ]
- ]
- },
- {
- "input": "&subset",
- "description": "Bad named entity: subset without a semi-colon",
- "output": [
- [
- "Character",
- "&subset"
- ]
- ]
- },
- {
- "input": "⊂",
- "description": "Named entity: subset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282"
- ]
- ]
- },
- {
- "input": "&subseteq",
- "description": "Bad named entity: subseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&subseteq"
- ]
- ]
- },
- {
- "input": "⊆",
- "description": "Named entity: subseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2286"
- ]
- ]
- },
- {
- "input": "&subseteqq",
- "description": "Bad named entity: subseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&subseteqq"
- ]
- ]
- },
- {
- "input": "⫅",
- "description": "Named entity: subseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac5"
- ]
- ]
- },
- {
- "input": "&subsetneq",
- "description": "Bad named entity: subsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&subsetneq"
- ]
- ]
- },
- {
- "input": "⊊",
- "description": "Named entity: subsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a"
- ]
- ]
- },
- {
- "input": "&subsetneqq",
- "description": "Bad named entity: subsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&subsetneqq"
- ]
- ]
- },
- {
- "input": "⫋",
- "description": "Named entity: subsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb"
- ]
- ]
- },
- {
- "input": "&subsim",
- "description": "Bad named entity: subsim without a semi-colon",
- "output": [
- [
- "Character",
- "&subsim"
- ]
- ]
- },
- {
- "input": "⫇",
- "description": "Named entity: subsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac7"
- ]
- ]
- },
- {
- "input": "&subsub",
- "description": "Bad named entity: subsub without a semi-colon",
- "output": [
- [
- "Character",
- "&subsub"
- ]
- ]
- },
- {
- "input": "⫕",
- "description": "Named entity: subsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad5"
- ]
- ]
- },
- {
- "input": "&subsup",
- "description": "Bad named entity: subsup without a semi-colon",
- "output": [
- [
- "Character",
- "&subsup"
- ]
- ]
- },
- {
- "input": "⫓",
- "description": "Named entity: subsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad3"
- ]
- ]
- },
- {
- "input": "&succ",
- "description": "Bad named entity: succ without a semi-colon",
- "output": [
- [
- "Character",
- "&succ"
- ]
- ]
- },
- {
- "input": "≻",
- "description": "Named entity: succ; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227b"
- ]
- ]
- },
- {
- "input": "&succapprox",
- "description": "Bad named entity: succapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&succapprox"
- ]
- ]
- },
- {
- "input": "⪸",
- "description": "Named entity: succapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab8"
- ]
- ]
- },
- {
- "input": "&succcurlyeq",
- "description": "Bad named entity: succcurlyeq without a semi-colon",
- "output": [
- [
- "Character",
- "&succcurlyeq"
- ]
- ]
- },
- {
- "input": "≽",
- "description": "Named entity: succcurlyeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227d"
- ]
- ]
- },
- {
- "input": "&succeq",
- "description": "Bad named entity: succeq without a semi-colon",
- "output": [
- [
- "Character",
- "&succeq"
- ]
- ]
- },
- {
- "input": "⪰",
- "description": "Named entity: succeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab0"
- ]
- ]
- },
- {
- "input": "&succnapprox",
- "description": "Bad named entity: succnapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&succnapprox"
- ]
- ]
- },
- {
- "input": "⪺",
- "description": "Named entity: succnapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2aba"
- ]
- ]
- },
- {
- "input": "&succneqq",
- "description": "Bad named entity: succneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&succneqq"
- ]
- ]
- },
- {
- "input": "⪶",
- "description": "Named entity: succneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ab6"
- ]
- ]
- },
- {
- "input": "&succnsim",
- "description": "Bad named entity: succnsim without a semi-colon",
- "output": [
- [
- "Character",
- "&succnsim"
- ]
- ]
- },
- {
- "input": "⋩",
- "description": "Named entity: succnsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22e9"
- ]
- ]
- },
- {
- "input": "&succsim",
- "description": "Bad named entity: succsim without a semi-colon",
- "output": [
- [
- "Character",
- "&succsim"
- ]
- ]
- },
- {
- "input": "≿",
- "description": "Named entity: succsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u227f"
- ]
- ]
- },
- {
- "input": "&sum",
- "description": "Bad named entity: sum without a semi-colon",
- "output": [
- [
- "Character",
- "&sum"
- ]
- ]
- },
- {
- "input": "∑",
- "description": "Named entity: sum; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2211"
- ]
- ]
- },
- {
- "input": "&sung",
- "description": "Bad named entity: sung without a semi-colon",
- "output": [
- [
- "Character",
- "&sung"
- ]
- ]
- },
- {
- "input": "♪",
- "description": "Named entity: sung; with a semi-colon",
- "output": [
- [
- "Character",
- "\u266a"
- ]
- ]
- },
- {
- "input": "&sup",
- "description": "Bad named entity: sup without a semi-colon",
- "output": [
- [
- "Character",
- "&sup"
- ]
- ]
- },
- {
- "input": "¹",
- "description": "Named entity: sup1 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b9"
- ]
- ]
- },
- {
- "input": "¹",
- "description": "Named entity: sup1; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b9"
- ]
- ]
- },
- {
- "input": "²",
- "description": "Named entity: sup2 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b2"
- ]
- ]
- },
- {
- "input": "²",
- "description": "Named entity: sup2; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b2"
- ]
- ]
- },
- {
- "input": "³",
- "description": "Named entity: sup3 without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00b3"
- ]
- ]
- },
- {
- "input": "³",
- "description": "Named entity: sup3; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00b3"
- ]
- ]
- },
- {
- "input": "⊃",
- "description": "Named entity: sup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&supE",
- "description": "Bad named entity: supE without a semi-colon",
- "output": [
- [
- "Character",
- "&supE"
- ]
- ]
- },
- {
- "input": "⫆",
- "description": "Named entity: supE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6"
- ]
- ]
- },
- {
- "input": "&supdot",
- "description": "Bad named entity: supdot without a semi-colon",
- "output": [
- [
- "Character",
- "&supdot"
- ]
- ]
- },
- {
- "input": "⪾",
- "description": "Named entity: supdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2abe"
- ]
- ]
- },
- {
- "input": "&supdsub",
- "description": "Bad named entity: supdsub without a semi-colon",
- "output": [
- [
- "Character",
- "&supdsub"
- ]
- ]
- },
- {
- "input": "⫘",
- "description": "Named entity: supdsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad8"
- ]
- ]
- },
- {
- "input": "&supe",
- "description": "Bad named entity: supe without a semi-colon",
- "output": [
- [
- "Character",
- "&supe"
- ]
- ]
- },
- {
- "input": "⊇",
- "description": "Named entity: supe; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&supedot",
- "description": "Bad named entity: supedot without a semi-colon",
- "output": [
- [
- "Character",
- "&supedot"
- ]
- ]
- },
- {
- "input": "⫄",
- "description": "Named entity: supedot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac4"
- ]
- ]
- },
- {
- "input": "&suphsol",
- "description": "Bad named entity: suphsol without a semi-colon",
- "output": [
- [
- "Character",
- "&suphsol"
- ]
- ]
- },
- {
- "input": "⟉",
- "description": "Named entity: suphsol; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27c9"
- ]
- ]
- },
- {
- "input": "&suphsub",
- "description": "Bad named entity: suphsub without a semi-colon",
- "output": [
- [
- "Character",
- "&suphsub"
- ]
- ]
- },
- {
- "input": "⫗",
- "description": "Named entity: suphsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad7"
- ]
- ]
- },
- {
- "input": "&suplarr",
- "description": "Bad named entity: suplarr without a semi-colon",
- "output": [
- [
- "Character",
- "&suplarr"
- ]
- ]
- },
- {
- "input": "⥻",
- "description": "Named entity: suplarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297b"
- ]
- ]
- },
- {
- "input": "&supmult",
- "description": "Bad named entity: supmult without a semi-colon",
- "output": [
- [
- "Character",
- "&supmult"
- ]
- ]
- },
- {
- "input": "⫂",
- "description": "Named entity: supmult; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac2"
- ]
- ]
- },
- {
- "input": "&supnE",
- "description": "Bad named entity: supnE without a semi-colon",
- "output": [
- [
- "Character",
- "&supnE"
- ]
- ]
- },
- {
- "input": "⫌",
- "description": "Named entity: supnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc"
- ]
- ]
- },
- {
- "input": "&supne",
- "description": "Bad named entity: supne without a semi-colon",
- "output": [
- [
- "Character",
- "&supne"
- ]
- ]
- },
- {
- "input": "⊋",
- "description": "Named entity: supne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b"
- ]
- ]
- },
- {
- "input": "&supplus",
- "description": "Bad named entity: supplus without a semi-colon",
- "output": [
- [
- "Character",
- "&supplus"
- ]
- ]
- },
- {
- "input": "⫀",
- "description": "Named entity: supplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac0"
- ]
- ]
- },
- {
- "input": "&supset",
- "description": "Bad named entity: supset without a semi-colon",
- "output": [
- [
- "Character",
- "&supset"
- ]
- ]
- },
- {
- "input": "⊃",
- "description": "Named entity: supset; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283"
- ]
- ]
- },
- {
- "input": "&supseteq",
- "description": "Bad named entity: supseteq without a semi-colon",
- "output": [
- [
- "Character",
- "&supseteq"
- ]
- ]
- },
- {
- "input": "⊇",
- "description": "Named entity: supseteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2287"
- ]
- ]
- },
- {
- "input": "&supseteqq",
- "description": "Bad named entity: supseteqq without a semi-colon",
- "output": [
- [
- "Character",
- "&supseteqq"
- ]
- ]
- },
- {
- "input": "⫆",
- "description": "Named entity: supseteqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac6"
- ]
- ]
- },
- {
- "input": "&supsetneq",
- "description": "Bad named entity: supsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&supsetneq"
- ]
- ]
- },
- {
- "input": "⊋",
- "description": "Named entity: supsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b"
- ]
- ]
- },
- {
- "input": "&supsetneqq",
- "description": "Bad named entity: supsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&supsetneqq"
- ]
- ]
- },
- {
- "input": "⫌",
- "description": "Named entity: supsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc"
- ]
- ]
- },
- {
- "input": "&supsim",
- "description": "Bad named entity: supsim without a semi-colon",
- "output": [
- [
- "Character",
- "&supsim"
- ]
- ]
- },
- {
- "input": "⫈",
- "description": "Named entity: supsim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ac8"
- ]
- ]
- },
- {
- "input": "&supsub",
- "description": "Bad named entity: supsub without a semi-colon",
- "output": [
- [
- "Character",
- "&supsub"
- ]
- ]
- },
- {
- "input": "⫔",
- "description": "Named entity: supsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad4"
- ]
- ]
- },
- {
- "input": "&supsup",
- "description": "Bad named entity: supsup without a semi-colon",
- "output": [
- [
- "Character",
- "&supsup"
- ]
- ]
- },
- {
- "input": "⫖",
- "description": "Named entity: supsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ad6"
- ]
- ]
- },
- {
- "input": "&swArr",
- "description": "Bad named entity: swArr without a semi-colon",
- "output": [
- [
- "Character",
- "&swArr"
- ]
- ]
- },
- {
- "input": "⇙",
- "description": "Named entity: swArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d9"
- ]
- ]
- },
- {
- "input": "&swarhk",
- "description": "Bad named entity: swarhk without a semi-colon",
- "output": [
- [
- "Character",
- "&swarhk"
- ]
- ]
- },
- {
- "input": "⤦",
- "description": "Named entity: swarhk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2926"
- ]
- ]
- },
- {
- "input": "&swarr",
- "description": "Bad named entity: swarr without a semi-colon",
- "output": [
- [
- "Character",
- "&swarr"
- ]
- ]
- },
- {
- "input": "↙",
- "description": "Named entity: swarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&swarrow",
- "description": "Bad named entity: swarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&swarrow"
- ]
- ]
- },
- {
- "input": "↙",
- "description": "Named entity: swarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2199"
- ]
- ]
- },
- {
- "input": "&swnwar",
- "description": "Bad named entity: swnwar without a semi-colon",
- "output": [
- [
- "Character",
- "&swnwar"
- ]
- ]
- },
- {
- "input": "⤪",
- "description": "Named entity: swnwar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u292a"
- ]
- ]
- },
- {
- "input": "ß",
- "description": "Named entity: szlig without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00df"
- ]
- ]
- },
- {
- "input": "ß",
- "description": "Named entity: szlig; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00df"
- ]
- ]
- },
- {
- "input": "&target",
- "description": "Bad named entity: target without a semi-colon",
- "output": [
- [
- "Character",
- "&target"
- ]
- ]
- },
- {
- "input": "⌖",
- "description": "Named entity: target; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2316"
- ]
- ]
- },
- {
- "input": "&tau",
- "description": "Bad named entity: tau without a semi-colon",
- "output": [
- [
- "Character",
- "&tau"
- ]
- ]
- },
- {
- "input": "τ",
- "description": "Named entity: tau; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c4"
- ]
- ]
- },
- {
- "input": "&tbrk",
- "description": "Bad named entity: tbrk without a semi-colon",
- "output": [
- [
- "Character",
- "&tbrk"
- ]
- ]
- },
- {
- "input": "⎴",
- "description": "Named entity: tbrk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23b4"
- ]
- ]
- },
- {
- "input": "&tcaron",
- "description": "Bad named entity: tcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&tcaron"
- ]
- ]
- },
- {
- "input": "ť",
- "description": "Named entity: tcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0165"
- ]
- ]
- },
- {
- "input": "&tcedil",
- "description": "Bad named entity: tcedil without a semi-colon",
- "output": [
- [
- "Character",
- "&tcedil"
- ]
- ]
- },
- {
- "input": "ţ",
- "description": "Named entity: tcedil; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0163"
- ]
- ]
- },
- {
- "input": "&tcy",
- "description": "Bad named entity: tcy without a semi-colon",
- "output": [
- [
- "Character",
- "&tcy"
- ]
- ]
- },
- {
- "input": "т",
- "description": "Named entity: tcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0442"
- ]
- ]
- },
- {
- "input": "&tdot",
- "description": "Bad named entity: tdot without a semi-colon",
- "output": [
- [
- "Character",
- "&tdot"
- ]
- ]
- },
- {
- "input": "⃛",
- "description": "Named entity: tdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u20db"
- ]
- ]
- },
- {
- "input": "&telrec",
- "description": "Bad named entity: telrec without a semi-colon",
- "output": [
- [
- "Character",
- "&telrec"
- ]
- ]
- },
- {
- "input": "⌕",
- "description": "Named entity: telrec; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2315"
- ]
- ]
- },
- {
- "input": "&tfr",
- "description": "Bad named entity: tfr without a semi-colon",
- "output": [
- [
- "Character",
- "&tfr"
- ]
- ]
- },
- {
- "input": "𝔱",
- "description": "Named entity: tfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd31"
- ]
- ]
- },
- {
- "input": "&there4",
- "description": "Bad named entity: there4 without a semi-colon",
- "output": [
- [
- "Character",
- "&there4"
- ]
- ]
- },
- {
- "input": "∴",
- "description": "Named entity: there4; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&therefore",
- "description": "Bad named entity: therefore without a semi-colon",
- "output": [
- [
- "Character",
- "&therefore"
- ]
- ]
- },
- {
- "input": "∴",
- "description": "Named entity: therefore; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2234"
- ]
- ]
- },
- {
- "input": "&theta",
- "description": "Bad named entity: theta without a semi-colon",
- "output": [
- [
- "Character",
- "&theta"
- ]
- ]
- },
- {
- "input": "θ",
- "description": "Named entity: theta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b8"
- ]
- ]
- },
- {
- "input": "&thetasym",
- "description": "Bad named entity: thetasym without a semi-colon",
- "output": [
- [
- "Character",
- "&thetasym"
- ]
- ]
- },
- {
- "input": "ϑ",
- "description": "Named entity: thetasym; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&thetav",
- "description": "Bad named entity: thetav without a semi-colon",
- "output": [
- [
- "Character",
- "&thetav"
- ]
- ]
- },
- {
- "input": "ϑ",
- "description": "Named entity: thetav; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&thickapprox",
- "description": "Bad named entity: thickapprox without a semi-colon",
- "output": [
- [
- "Character",
- "&thickapprox"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: thickapprox; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&thicksim",
- "description": "Bad named entity: thicksim without a semi-colon",
- "output": [
- [
- "Character",
- "&thicksim"
- ]
- ]
- },
- {
- "input": "∼",
- "description": "Named entity: thicksim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "&thinsp",
- "description": "Bad named entity: thinsp without a semi-colon",
- "output": [
- [
- "Character",
- "&thinsp"
- ]
- ]
- },
- {
- "input": " ",
- "description": "Named entity: thinsp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2009"
- ]
- ]
- },
- {
- "input": "&thkap",
- "description": "Bad named entity: thkap without a semi-colon",
- "output": [
- [
- "Character",
- "&thkap"
- ]
- ]
- },
- {
- "input": "≈",
- "description": "Named entity: thkap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2248"
- ]
- ]
- },
- {
- "input": "&thksim",
- "description": "Bad named entity: thksim without a semi-colon",
- "output": [
- [
- "Character",
- "&thksim"
- ]
- ]
- },
- {
- "input": "∼",
- "description": "Named entity: thksim; with a semi-colon",
- "output": [
- [
- "Character",
- "\u223c"
- ]
- ]
- },
- {
- "input": "þ",
- "description": "Named entity: thorn without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fe"
- ]
- ]
- },
- {
- "input": "þ",
- "description": "Named entity: thorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fe"
- ]
- ]
- },
- {
- "input": "&tilde",
- "description": "Bad named entity: tilde without a semi-colon",
- "output": [
- [
- "Character",
- "&tilde"
- ]
- ]
- },
- {
- "input": "˜",
- "description": "Named entity: tilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u02dc"
- ]
- ]
- },
- {
- "input": "×",
- "description": "Named entity: times without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00d7"
- ]
- ]
- },
- {
- "input": "×",
- "description": "Named entity: times; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00d7"
- ]
- ]
- },
- {
- "input": "⊠",
- "description": "Named entity: timesb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a0"
- ]
- ]
- },
- {
- "input": "⨱",
- "description": "Named entity: timesbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a31"
- ]
- ]
- },
- {
- "input": "⨰",
- "description": "Named entity: timesd; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a30"
- ]
- ]
- },
- {
- "input": "&tint",
- "description": "Bad named entity: tint without a semi-colon",
- "output": [
- [
- "Character",
- "&tint"
- ]
- ]
- },
- {
- "input": "∭",
- "description": "Named entity: tint; with a semi-colon",
- "output": [
- [
- "Character",
- "\u222d"
- ]
- ]
- },
- {
- "input": "&toea",
- "description": "Bad named entity: toea without a semi-colon",
- "output": [
- [
- "Character",
- "&toea"
- ]
- ]
- },
- {
- "input": "⤨",
- "description": "Named entity: toea; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2928"
- ]
- ]
- },
- {
- "input": "&top",
- "description": "Bad named entity: top without a semi-colon",
- "output": [
- [
- "Character",
- "&top"
- ]
- ]
- },
- {
- "input": "⊤",
- "description": "Named entity: top; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a4"
- ]
- ]
- },
- {
- "input": "&topbot",
- "description": "Bad named entity: topbot without a semi-colon",
- "output": [
- [
- "Character",
- "&topbot"
- ]
- ]
- },
- {
- "input": "⌶",
- "description": "Named entity: topbot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2336"
- ]
- ]
- },
- {
- "input": "&topcir",
- "description": "Bad named entity: topcir without a semi-colon",
- "output": [
- [
- "Character",
- "&topcir"
- ]
- ]
- },
- {
- "input": "⫱",
- "description": "Named entity: topcir; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2af1"
- ]
- ]
- },
- {
- "input": "&topf",
- "description": "Bad named entity: topf without a semi-colon",
- "output": [
- [
- "Character",
- "&topf"
- ]
- ]
- },
- {
- "input": "𝕥",
- "description": "Named entity: topf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd65"
- ]
- ]
- },
- {
- "input": "&topfork",
- "description": "Bad named entity: topfork without a semi-colon",
- "output": [
- [
- "Character",
- "&topfork"
- ]
- ]
- },
- {
- "input": "⫚",
- "description": "Named entity: topfork; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ada"
- ]
- ]
- },
- {
- "input": "&tosa",
- "description": "Bad named entity: tosa without a semi-colon",
- "output": [
- [
- "Character",
- "&tosa"
- ]
- ]
- },
- {
- "input": "⤩",
- "description": "Named entity: tosa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2929"
- ]
- ]
- },
- {
- "input": "&tprime",
- "description": "Bad named entity: tprime without a semi-colon",
- "output": [
- [
- "Character",
- "&tprime"
- ]
- ]
- },
- {
- "input": "‴",
- "description": "Named entity: tprime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2034"
- ]
- ]
- },
- {
- "input": "&trade",
- "description": "Bad named entity: trade without a semi-colon",
- "output": [
- [
- "Character",
- "&trade"
- ]
- ]
- },
- {
- "input": "™",
- "description": "Named entity: trade; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2122"
- ]
- ]
- },
- {
- "input": "&triangle",
- "description": "Bad named entity: triangle without a semi-colon",
- "output": [
- [
- "Character",
- "&triangle"
- ]
- ]
- },
- {
- "input": "▵",
- "description": "Named entity: triangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b5"
- ]
- ]
- },
- {
- "input": "&triangledown",
- "description": "Bad named entity: triangledown without a semi-colon",
- "output": [
- [
- "Character",
- "&triangledown"
- ]
- ]
- },
- {
- "input": "▿",
- "description": "Named entity: triangledown; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bf"
- ]
- ]
- },
- {
- "input": "&triangleleft",
- "description": "Bad named entity: triangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleleft"
- ]
- ]
- },
- {
- "input": "◃",
- "description": "Named entity: triangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25c3"
- ]
- ]
- },
- {
- "input": "&trianglelefteq",
- "description": "Bad named entity: trianglelefteq without a semi-colon",
- "output": [
- [
- "Character",
- "&trianglelefteq"
- ]
- ]
- },
- {
- "input": "⊴",
- "description": "Named entity: trianglelefteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b4"
- ]
- ]
- },
- {
- "input": "&triangleq",
- "description": "Bad named entity: triangleq without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleq"
- ]
- ]
- },
- {
- "input": "≜",
- "description": "Named entity: triangleq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225c"
- ]
- ]
- },
- {
- "input": "&triangleright",
- "description": "Bad named entity: triangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&triangleright"
- ]
- ]
- },
- {
- "input": "▹",
- "description": "Named entity: triangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b9"
- ]
- ]
- },
- {
- "input": "&trianglerighteq",
- "description": "Bad named entity: trianglerighteq without a semi-colon",
- "output": [
- [
- "Character",
- "&trianglerighteq"
- ]
- ]
- },
- {
- "input": "⊵",
- "description": "Named entity: trianglerighteq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b5"
- ]
- ]
- },
- {
- "input": "&tridot",
- "description": "Bad named entity: tridot without a semi-colon",
- "output": [
- [
- "Character",
- "&tridot"
- ]
- ]
- },
- {
- "input": "◬",
- "description": "Named entity: tridot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ec"
- ]
- ]
- },
- {
- "input": "&trie",
- "description": "Bad named entity: trie without a semi-colon",
- "output": [
- [
- "Character",
- "&trie"
- ]
- ]
- },
- {
- "input": "≜",
- "description": "Named entity: trie; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225c"
- ]
- ]
- },
- {
- "input": "&triminus",
- "description": "Bad named entity: triminus without a semi-colon",
- "output": [
- [
- "Character",
- "&triminus"
- ]
- ]
- },
- {
- "input": "⨺",
- "description": "Named entity: triminus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3a"
- ]
- ]
- },
- {
- "input": "&triplus",
- "description": "Bad named entity: triplus without a semi-colon",
- "output": [
- [
- "Character",
- "&triplus"
- ]
- ]
- },
- {
- "input": "⨹",
- "description": "Named entity: triplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a39"
- ]
- ]
- },
- {
- "input": "&trisb",
- "description": "Bad named entity: trisb without a semi-colon",
- "output": [
- [
- "Character",
- "&trisb"
- ]
- ]
- },
- {
- "input": "⧍",
- "description": "Named entity: trisb; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29cd"
- ]
- ]
- },
- {
- "input": "&tritime",
- "description": "Bad named entity: tritime without a semi-colon",
- "output": [
- [
- "Character",
- "&tritime"
- ]
- ]
- },
- {
- "input": "⨻",
- "description": "Named entity: tritime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a3b"
- ]
- ]
- },
- {
- "input": "&trpezium",
- "description": "Bad named entity: trpezium without a semi-colon",
- "output": [
- [
- "Character",
- "&trpezium"
- ]
- ]
- },
- {
- "input": "⏢",
- "description": "Named entity: trpezium; with a semi-colon",
- "output": [
- [
- "Character",
- "\u23e2"
- ]
- ]
- },
- {
- "input": "&tscr",
- "description": "Bad named entity: tscr without a semi-colon",
- "output": [
- [
- "Character",
- "&tscr"
- ]
- ]
- },
- {
- "input": "𝓉",
- "description": "Named entity: tscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcc9"
- ]
- ]
- },
- {
- "input": "&tscy",
- "description": "Bad named entity: tscy without a semi-colon",
- "output": [
- [
- "Character",
- "&tscy"
- ]
- ]
- },
- {
- "input": "ц",
- "description": "Named entity: tscy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0446"
- ]
- ]
- },
- {
- "input": "&tshcy",
- "description": "Bad named entity: tshcy without a semi-colon",
- "output": [
- [
- "Character",
- "&tshcy"
- ]
- ]
- },
- {
- "input": "ћ",
- "description": "Named entity: tshcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045b"
- ]
- ]
- },
- {
- "input": "&tstrok",
- "description": "Bad named entity: tstrok without a semi-colon",
- "output": [
- [
- "Character",
- "&tstrok"
- ]
- ]
- },
- {
- "input": "ŧ",
- "description": "Named entity: tstrok; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0167"
- ]
- ]
- },
- {
- "input": "&twixt",
- "description": "Bad named entity: twixt without a semi-colon",
- "output": [
- [
- "Character",
- "&twixt"
- ]
- ]
- },
- {
- "input": "≬",
- "description": "Named entity: twixt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u226c"
- ]
- ]
- },
- {
- "input": "&twoheadleftarrow",
- "description": "Bad named entity: twoheadleftarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&twoheadleftarrow"
- ]
- ]
- },
- {
- "input": "↞",
- "description": "Named entity: twoheadleftarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u219e"
- ]
- ]
- },
- {
- "input": "&twoheadrightarrow",
- "description": "Bad named entity: twoheadrightarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&twoheadrightarrow"
- ]
- ]
- },
- {
- "input": "↠",
- "description": "Named entity: twoheadrightarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21a0"
- ]
- ]
- },
- {
- "input": "&uArr",
- "description": "Bad named entity: uArr without a semi-colon",
- "output": [
- [
- "Character",
- "&uArr"
- ]
- ]
- },
- {
- "input": "⇑",
- "description": "Named entity: uArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d1"
- ]
- ]
- },
- {
- "input": "&uHar",
- "description": "Bad named entity: uHar without a semi-colon",
- "output": [
- [
- "Character",
- "&uHar"
- ]
- ]
- },
- {
- "input": "⥣",
- "description": "Named entity: uHar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2963"
- ]
- ]
- },
- {
- "input": "ú",
- "description": "Named entity: uacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fa"
- ]
- ]
- },
- {
- "input": "ú",
- "description": "Named entity: uacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fa"
- ]
- ]
- },
- {
- "input": "&uarr",
- "description": "Bad named entity: uarr without a semi-colon",
- "output": [
- [
- "Character",
- "&uarr"
- ]
- ]
- },
- {
- "input": "↑",
- "description": "Named entity: uarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&ubrcy",
- "description": "Bad named entity: ubrcy without a semi-colon",
- "output": [
- [
- "Character",
- "&ubrcy"
- ]
- ]
- },
- {
- "input": "ў",
- "description": "Named entity: ubrcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u045e"
- ]
- ]
- },
- {
- "input": "&ubreve",
- "description": "Bad named entity: ubreve without a semi-colon",
- "output": [
- [
- "Character",
- "&ubreve"
- ]
- ]
- },
- {
- "input": "ŭ",
- "description": "Named entity: ubreve; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016d"
- ]
- ]
- },
- {
- "input": "û",
- "description": "Named entity: ucirc without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fb"
- ]
- ]
- },
- {
- "input": "û",
- "description": "Named entity: ucirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fb"
- ]
- ]
- },
- {
- "input": "&ucy",
- "description": "Bad named entity: ucy without a semi-colon",
- "output": [
- [
- "Character",
- "&ucy"
- ]
- ]
- },
- {
- "input": "у",
- "description": "Named entity: ucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0443"
- ]
- ]
- },
- {
- "input": "&udarr",
- "description": "Bad named entity: udarr without a semi-colon",
- "output": [
- [
- "Character",
- "&udarr"
- ]
- ]
- },
- {
- "input": "⇅",
- "description": "Named entity: udarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c5"
- ]
- ]
- },
- {
- "input": "&udblac",
- "description": "Bad named entity: udblac without a semi-colon",
- "output": [
- [
- "Character",
- "&udblac"
- ]
- ]
- },
- {
- "input": "ű",
- "description": "Named entity: udblac; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0171"
- ]
- ]
- },
- {
- "input": "&udhar",
- "description": "Bad named entity: udhar without a semi-colon",
- "output": [
- [
- "Character",
- "&udhar"
- ]
- ]
- },
- {
- "input": "⥮",
- "description": "Named entity: udhar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u296e"
- ]
- ]
- },
- {
- "input": "&ufisht",
- "description": "Bad named entity: ufisht without a semi-colon",
- "output": [
- [
- "Character",
- "&ufisht"
- ]
- ]
- },
- {
- "input": "⥾",
- "description": "Named entity: ufisht; with a semi-colon",
- "output": [
- [
- "Character",
- "\u297e"
- ]
- ]
- },
- {
- "input": "&ufr",
- "description": "Bad named entity: ufr without a semi-colon",
- "output": [
- [
- "Character",
- "&ufr"
- ]
- ]
- },
- {
- "input": "𝔲",
- "description": "Named entity: ufr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd32"
- ]
- ]
- },
- {
- "input": "ù",
- "description": "Named entity: ugrave without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00f9"
- ]
- ]
- },
- {
- "input": "ù",
- "description": "Named entity: ugrave; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00f9"
- ]
- ]
- },
- {
- "input": "&uharl",
- "description": "Bad named entity: uharl without a semi-colon",
- "output": [
- [
- "Character",
- "&uharl"
- ]
- ]
- },
- {
- "input": "↿",
- "description": "Named entity: uharl; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&uharr",
- "description": "Bad named entity: uharr without a semi-colon",
- "output": [
- [
- "Character",
- "&uharr"
- ]
- ]
- },
- {
- "input": "↾",
- "description": "Named entity: uharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&uhblk",
- "description": "Bad named entity: uhblk without a semi-colon",
- "output": [
- [
- "Character",
- "&uhblk"
- ]
- ]
- },
- {
- "input": "▀",
- "description": "Named entity: uhblk; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2580"
- ]
- ]
- },
- {
- "input": "&ulcorn",
- "description": "Bad named entity: ulcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcorn"
- ]
- ]
- },
- {
- "input": "⌜",
- "description": "Named entity: ulcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231c"
- ]
- ]
- },
- {
- "input": "&ulcorner",
- "description": "Bad named entity: ulcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcorner"
- ]
- ]
- },
- {
- "input": "⌜",
- "description": "Named entity: ulcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231c"
- ]
- ]
- },
- {
- "input": "&ulcrop",
- "description": "Bad named entity: ulcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&ulcrop"
- ]
- ]
- },
- {
- "input": "⌏",
- "description": "Named entity: ulcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230f"
- ]
- ]
- },
- {
- "input": "&ultri",
- "description": "Bad named entity: ultri without a semi-colon",
- "output": [
- [
- "Character",
- "&ultri"
- ]
- ]
- },
- {
- "input": "◸",
- "description": "Named entity: ultri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25f8"
- ]
- ]
- },
- {
- "input": "&umacr",
- "description": "Bad named entity: umacr without a semi-colon",
- "output": [
- [
- "Character",
- "&umacr"
- ]
- ]
- },
- {
- "input": "ū",
- "description": "Named entity: umacr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016b"
- ]
- ]
- },
- {
- "input": "¨",
- "description": "Named entity: uml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "¨",
- "description": "Named entity: uml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a8"
- ]
- ]
- },
- {
- "input": "&uogon",
- "description": "Bad named entity: uogon without a semi-colon",
- "output": [
- [
- "Character",
- "&uogon"
- ]
- ]
- },
- {
- "input": "ų",
- "description": "Named entity: uogon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0173"
- ]
- ]
- },
- {
- "input": "&uopf",
- "description": "Bad named entity: uopf without a semi-colon",
- "output": [
- [
- "Character",
- "&uopf"
- ]
- ]
- },
- {
- "input": "𝕦",
- "description": "Named entity: uopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd66"
- ]
- ]
- },
- {
- "input": "&uparrow",
- "description": "Bad named entity: uparrow without a semi-colon",
- "output": [
- [
- "Character",
- "&uparrow"
- ]
- ]
- },
- {
- "input": "↑",
- "description": "Named entity: uparrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2191"
- ]
- ]
- },
- {
- "input": "&updownarrow",
- "description": "Bad named entity: updownarrow without a semi-colon",
- "output": [
- [
- "Character",
- "&updownarrow"
- ]
- ]
- },
- {
- "input": "↕",
- "description": "Named entity: updownarrow; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&upharpoonleft",
- "description": "Bad named entity: upharpoonleft without a semi-colon",
- "output": [
- [
- "Character",
- "&upharpoonleft"
- ]
- ]
- },
- {
- "input": "↿",
- "description": "Named entity: upharpoonleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21bf"
- ]
- ]
- },
- {
- "input": "&upharpoonright",
- "description": "Bad named entity: upharpoonright without a semi-colon",
- "output": [
- [
- "Character",
- "&upharpoonright"
- ]
- ]
- },
- {
- "input": "↾",
- "description": "Named entity: upharpoonright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21be"
- ]
- ]
- },
- {
- "input": "&uplus",
- "description": "Bad named entity: uplus without a semi-colon",
- "output": [
- [
- "Character",
- "&uplus"
- ]
- ]
- },
- {
- "input": "⊎",
- "description": "Named entity: uplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228e"
- ]
- ]
- },
- {
- "input": "&upsi",
- "description": "Bad named entity: upsi without a semi-colon",
- "output": [
- [
- "Character",
- "&upsi"
- ]
- ]
- },
- {
- "input": "υ",
- "description": "Named entity: upsi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c5"
- ]
- ]
- },
- {
- "input": "&upsih",
- "description": "Bad named entity: upsih without a semi-colon",
- "output": [
- [
- "Character",
- "&upsih"
- ]
- ]
- },
- {
- "input": "ϒ",
- "description": "Named entity: upsih; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d2"
- ]
- ]
- },
- {
- "input": "&upsilon",
- "description": "Bad named entity: upsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&upsilon"
- ]
- ]
- },
- {
- "input": "υ",
- "description": "Named entity: upsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c5"
- ]
- ]
- },
- {
- "input": "&upuparrows",
- "description": "Bad named entity: upuparrows without a semi-colon",
- "output": [
- [
- "Character",
- "&upuparrows"
- ]
- ]
- },
- {
- "input": "⇈",
- "description": "Named entity: upuparrows; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c8"
- ]
- ]
- },
- {
- "input": "&urcorn",
- "description": "Bad named entity: urcorn without a semi-colon",
- "output": [
- [
- "Character",
- "&urcorn"
- ]
- ]
- },
- {
- "input": "⌝",
- "description": "Named entity: urcorn; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231d"
- ]
- ]
- },
- {
- "input": "&urcorner",
- "description": "Bad named entity: urcorner without a semi-colon",
- "output": [
- [
- "Character",
- "&urcorner"
- ]
- ]
- },
- {
- "input": "⌝",
- "description": "Named entity: urcorner; with a semi-colon",
- "output": [
- [
- "Character",
- "\u231d"
- ]
- ]
- },
- {
- "input": "&urcrop",
- "description": "Bad named entity: urcrop without a semi-colon",
- "output": [
- [
- "Character",
- "&urcrop"
- ]
- ]
- },
- {
- "input": "⌎",
- "description": "Named entity: urcrop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u230e"
- ]
- ]
- },
- {
- "input": "&uring",
- "description": "Bad named entity: uring without a semi-colon",
- "output": [
- [
- "Character",
- "&uring"
- ]
- ]
- },
- {
- "input": "ů",
- "description": "Named entity: uring; with a semi-colon",
- "output": [
- [
- "Character",
- "\u016f"
- ]
- ]
- },
- {
- "input": "&urtri",
- "description": "Bad named entity: urtri without a semi-colon",
- "output": [
- [
- "Character",
- "&urtri"
- ]
- ]
- },
- {
- "input": "◹",
- "description": "Named entity: urtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25f9"
- ]
- ]
- },
- {
- "input": "&uscr",
- "description": "Bad named entity: uscr without a semi-colon",
- "output": [
- [
- "Character",
- "&uscr"
- ]
- ]
- },
- {
- "input": "𝓊",
- "description": "Named entity: uscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcca"
- ]
- ]
- },
- {
- "input": "&utdot",
- "description": "Bad named entity: utdot without a semi-colon",
- "output": [
- [
- "Character",
- "&utdot"
- ]
- ]
- },
- {
- "input": "⋰",
- "description": "Named entity: utdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22f0"
- ]
- ]
- },
- {
- "input": "&utilde",
- "description": "Bad named entity: utilde without a semi-colon",
- "output": [
- [
- "Character",
- "&utilde"
- ]
- ]
- },
- {
- "input": "ũ",
- "description": "Named entity: utilde; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0169"
- ]
- ]
- },
- {
- "input": "&utri",
- "description": "Bad named entity: utri without a semi-colon",
- "output": [
- [
- "Character",
- "&utri"
- ]
- ]
- },
- {
- "input": "▵",
- "description": "Named entity: utri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b5"
- ]
- ]
- },
- {
- "input": "&utrif",
- "description": "Bad named entity: utrif without a semi-colon",
- "output": [
- [
- "Character",
- "&utrif"
- ]
- ]
- },
- {
- "input": "▴",
- "description": "Named entity: utrif; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b4"
- ]
- ]
- },
- {
- "input": "&uuarr",
- "description": "Bad named entity: uuarr without a semi-colon",
- "output": [
- [
- "Character",
- "&uuarr"
- ]
- ]
- },
- {
- "input": "⇈",
- "description": "Named entity: uuarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21c8"
- ]
- ]
- },
- {
- "input": "ü",
- "description": "Named entity: uuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fc"
- ]
- ]
- },
- {
- "input": "ü",
- "description": "Named entity: uuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fc"
- ]
- ]
- },
- {
- "input": "&uwangle",
- "description": "Bad named entity: uwangle without a semi-colon",
- "output": [
- [
- "Character",
- "&uwangle"
- ]
- ]
- },
- {
- "input": "⦧",
- "description": "Named entity: uwangle; with a semi-colon",
- "output": [
- [
- "Character",
- "\u29a7"
- ]
- ]
- },
- {
- "input": "&vArr",
- "description": "Bad named entity: vArr without a semi-colon",
- "output": [
- [
- "Character",
- "&vArr"
- ]
- ]
- },
- {
- "input": "⇕",
- "description": "Named entity: vArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21d5"
- ]
- ]
- },
- {
- "input": "&vBar",
- "description": "Bad named entity: vBar without a semi-colon",
- "output": [
- [
- "Character",
- "&vBar"
- ]
- ]
- },
- {
- "input": "⫨",
- "description": "Named entity: vBar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae8"
- ]
- ]
- },
- {
- "input": "&vBarv",
- "description": "Bad named entity: vBarv without a semi-colon",
- "output": [
- [
- "Character",
- "&vBarv"
- ]
- ]
- },
- {
- "input": "⫩",
- "description": "Named entity: vBarv; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2ae9"
- ]
- ]
- },
- {
- "input": "&vDash",
- "description": "Bad named entity: vDash without a semi-colon",
- "output": [
- [
- "Character",
- "&vDash"
- ]
- ]
- },
- {
- "input": "⊨",
- "description": "Named entity: vDash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a8"
- ]
- ]
- },
- {
- "input": "&vangrt",
- "description": "Bad named entity: vangrt without a semi-colon",
- "output": [
- [
- "Character",
- "&vangrt"
- ]
- ]
- },
- {
- "input": "⦜",
- "description": "Named entity: vangrt; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299c"
- ]
- ]
- },
- {
- "input": "&varepsilon",
- "description": "Bad named entity: varepsilon without a semi-colon",
- "output": [
- [
- "Character",
- "&varepsilon"
- ]
- ]
- },
- {
- "input": "ϵ",
- "description": "Named entity: varepsilon; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f5"
- ]
- ]
- },
- {
- "input": "&varkappa",
- "description": "Bad named entity: varkappa without a semi-colon",
- "output": [
- [
- "Character",
- "&varkappa"
- ]
- ]
- },
- {
- "input": "ϰ",
- "description": "Named entity: varkappa; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f0"
- ]
- ]
- },
- {
- "input": "&varnothing",
- "description": "Bad named entity: varnothing without a semi-colon",
- "output": [
- [
- "Character",
- "&varnothing"
- ]
- ]
- },
- {
- "input": "∅",
- "description": "Named entity: varnothing; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2205"
- ]
- ]
- },
- {
- "input": "&varphi",
- "description": "Bad named entity: varphi without a semi-colon",
- "output": [
- [
- "Character",
- "&varphi"
- ]
- ]
- },
- {
- "input": "ϕ",
- "description": "Named entity: varphi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d5"
- ]
- ]
- },
- {
- "input": "&varpi",
- "description": "Bad named entity: varpi without a semi-colon",
- "output": [
- [
- "Character",
- "&varpi"
- ]
- ]
- },
- {
- "input": "ϖ",
- "description": "Named entity: varpi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d6"
- ]
- ]
- },
- {
- "input": "&varpropto",
- "description": "Bad named entity: varpropto without a semi-colon",
- "output": [
- [
- "Character",
- "&varpropto"
- ]
- ]
- },
- {
- "input": "∝",
- "description": "Named entity: varpropto; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&varr",
- "description": "Bad named entity: varr without a semi-colon",
- "output": [
- [
- "Character",
- "&varr"
- ]
- ]
- },
- {
- "input": "↕",
- "description": "Named entity: varr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2195"
- ]
- ]
- },
- {
- "input": "&varrho",
- "description": "Bad named entity: varrho without a semi-colon",
- "output": [
- [
- "Character",
- "&varrho"
- ]
- ]
- },
- {
- "input": "ϱ",
- "description": "Named entity: varrho; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03f1"
- ]
- ]
- },
- {
- "input": "&varsigma",
- "description": "Bad named entity: varsigma without a semi-colon",
- "output": [
- [
- "Character",
- "&varsigma"
- ]
- ]
- },
- {
- "input": "ς",
- "description": "Named entity: varsigma; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03c2"
- ]
- ]
- },
- {
- "input": "&varsubsetneq",
- "description": "Bad named entity: varsubsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsubsetneq"
- ]
- ]
- },
- {
- "input": "⊊︀",
- "description": "Named entity: varsubsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a\ufe00"
- ]
- ]
- },
- {
- "input": "&varsubsetneqq",
- "description": "Bad named entity: varsubsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsubsetneqq"
- ]
- ]
- },
- {
- "input": "⫋︀",
- "description": "Named entity: varsubsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb\ufe00"
- ]
- ]
- },
- {
- "input": "&varsupsetneq",
- "description": "Bad named entity: varsupsetneq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsupsetneq"
- ]
- ]
- },
- {
- "input": "⊋︀",
- "description": "Named entity: varsupsetneq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b\ufe00"
- ]
- ]
- },
- {
- "input": "&varsupsetneqq",
- "description": "Bad named entity: varsupsetneqq without a semi-colon",
- "output": [
- [
- "Character",
- "&varsupsetneqq"
- ]
- ]
- },
- {
- "input": "⫌︀",
- "description": "Named entity: varsupsetneqq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc\ufe00"
- ]
- ]
- },
- {
- "input": "&vartheta",
- "description": "Bad named entity: vartheta without a semi-colon",
- "output": [
- [
- "Character",
- "&vartheta"
- ]
- ]
- },
- {
- "input": "ϑ",
- "description": "Named entity: vartheta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03d1"
- ]
- ]
- },
- {
- "input": "&vartriangleleft",
- "description": "Bad named entity: vartriangleleft without a semi-colon",
- "output": [
- [
- "Character",
- "&vartriangleleft"
- ]
- ]
- },
- {
- "input": "⊲",
- "description": "Named entity: vartriangleleft; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&vartriangleright",
- "description": "Bad named entity: vartriangleright without a semi-colon",
- "output": [
- [
- "Character",
- "&vartriangleright"
- ]
- ]
- },
- {
- "input": "⊳",
- "description": "Named entity: vartriangleright; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&vcy",
- "description": "Bad named entity: vcy without a semi-colon",
- "output": [
- [
- "Character",
- "&vcy"
- ]
- ]
- },
- {
- "input": "в",
- "description": "Named entity: vcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0432"
- ]
- ]
- },
- {
- "input": "&vdash",
- "description": "Bad named entity: vdash without a semi-colon",
- "output": [
- [
- "Character",
- "&vdash"
- ]
- ]
- },
- {
- "input": "⊢",
- "description": "Named entity: vdash; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22a2"
- ]
- ]
- },
- {
- "input": "&vee",
- "description": "Bad named entity: vee without a semi-colon",
- "output": [
- [
- "Character",
- "&vee"
- ]
- ]
- },
- {
- "input": "∨",
- "description": "Named entity: vee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2228"
- ]
- ]
- },
- {
- "input": "&veebar",
- "description": "Bad named entity: veebar without a semi-colon",
- "output": [
- [
- "Character",
- "&veebar"
- ]
- ]
- },
- {
- "input": "⊻",
- "description": "Named entity: veebar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22bb"
- ]
- ]
- },
- {
- "input": "&veeeq",
- "description": "Bad named entity: veeeq without a semi-colon",
- "output": [
- [
- "Character",
- "&veeeq"
- ]
- ]
- },
- {
- "input": "≚",
- "description": "Named entity: veeeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u225a"
- ]
- ]
- },
- {
- "input": "&vellip",
- "description": "Bad named entity: vellip without a semi-colon",
- "output": [
- [
- "Character",
- "&vellip"
- ]
- ]
- },
- {
- "input": "⋮",
- "description": "Named entity: vellip; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22ee"
- ]
- ]
- },
- {
- "input": "&verbar",
- "description": "Bad named entity: verbar without a semi-colon",
- "output": [
- [
- "Character",
- "&verbar"
- ]
- ]
- },
- {
- "input": "|",
- "description": "Named entity: verbar; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&vert",
- "description": "Bad named entity: vert without a semi-colon",
- "output": [
- [
- "Character",
- "&vert"
- ]
- ]
- },
- {
- "input": "|",
- "description": "Named entity: vert; with a semi-colon",
- "output": [
- [
- "Character",
- "|"
- ]
- ]
- },
- {
- "input": "&vfr",
- "description": "Bad named entity: vfr without a semi-colon",
- "output": [
- [
- "Character",
- "&vfr"
- ]
- ]
- },
- {
- "input": "𝔳",
- "description": "Named entity: vfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd33"
- ]
- ]
- },
- {
- "input": "&vltri",
- "description": "Bad named entity: vltri without a semi-colon",
- "output": [
- [
- "Character",
- "&vltri"
- ]
- ]
- },
- {
- "input": "⊲",
- "description": "Named entity: vltri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b2"
- ]
- ]
- },
- {
- "input": "&vnsub",
- "description": "Bad named entity: vnsub without a semi-colon",
- "output": [
- [
- "Character",
- "&vnsub"
- ]
- ]
- },
- {
- "input": "⊂⃒",
- "description": "Named entity: vnsub; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2282\u20d2"
- ]
- ]
- },
- {
- "input": "&vnsup",
- "description": "Bad named entity: vnsup without a semi-colon",
- "output": [
- [
- "Character",
- "&vnsup"
- ]
- ]
- },
- {
- "input": "⊃⃒",
- "description": "Named entity: vnsup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2283\u20d2"
- ]
- ]
- },
- {
- "input": "&vopf",
- "description": "Bad named entity: vopf without a semi-colon",
- "output": [
- [
- "Character",
- "&vopf"
- ]
- ]
- },
- {
- "input": "𝕧",
- "description": "Named entity: vopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd67"
- ]
- ]
- },
- {
- "input": "&vprop",
- "description": "Bad named entity: vprop without a semi-colon",
- "output": [
- [
- "Character",
- "&vprop"
- ]
- ]
- },
- {
- "input": "∝",
- "description": "Named entity: vprop; with a semi-colon",
- "output": [
- [
- "Character",
- "\u221d"
- ]
- ]
- },
- {
- "input": "&vrtri",
- "description": "Bad named entity: vrtri without a semi-colon",
- "output": [
- [
- "Character",
- "&vrtri"
- ]
- ]
- },
- {
- "input": "⊳",
- "description": "Named entity: vrtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22b3"
- ]
- ]
- },
- {
- "input": "&vscr",
- "description": "Bad named entity: vscr without a semi-colon",
- "output": [
- [
- "Character",
- "&vscr"
- ]
- ]
- },
- {
- "input": "𝓋",
- "description": "Named entity: vscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccb"
- ]
- ]
- },
- {
- "input": "&vsubnE",
- "description": "Bad named entity: vsubnE without a semi-colon",
- "output": [
- [
- "Character",
- "&vsubnE"
- ]
- ]
- },
- {
- "input": "⫋︀",
- "description": "Named entity: vsubnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acb\ufe00"
- ]
- ]
- },
- {
- "input": "&vsubne",
- "description": "Bad named entity: vsubne without a semi-colon",
- "output": [
- [
- "Character",
- "&vsubne"
- ]
- ]
- },
- {
- "input": "⊊︀",
- "description": "Named entity: vsubne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228a\ufe00"
- ]
- ]
- },
- {
- "input": "&vsupnE",
- "description": "Bad named entity: vsupnE without a semi-colon",
- "output": [
- [
- "Character",
- "&vsupnE"
- ]
- ]
- },
- {
- "input": "⫌︀",
- "description": "Named entity: vsupnE; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2acc\ufe00"
- ]
- ]
- },
- {
- "input": "&vsupne",
- "description": "Bad named entity: vsupne without a semi-colon",
- "output": [
- [
- "Character",
- "&vsupne"
- ]
- ]
- },
- {
- "input": "⊋︀",
- "description": "Named entity: vsupne; with a semi-colon",
- "output": [
- [
- "Character",
- "\u228b\ufe00"
- ]
- ]
- },
- {
- "input": "&vzigzag",
- "description": "Bad named entity: vzigzag without a semi-colon",
- "output": [
- [
- "Character",
- "&vzigzag"
- ]
- ]
- },
- {
- "input": "⦚",
- "description": "Named entity: vzigzag; with a semi-colon",
- "output": [
- [
- "Character",
- "\u299a"
- ]
- ]
- },
- {
- "input": "&wcirc",
- "description": "Bad named entity: wcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&wcirc"
- ]
- ]
- },
- {
- "input": "ŵ",
- "description": "Named entity: wcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0175"
- ]
- ]
- },
- {
- "input": "&wedbar",
- "description": "Bad named entity: wedbar without a semi-colon",
- "output": [
- [
- "Character",
- "&wedbar"
- ]
- ]
- },
- {
- "input": "⩟",
- "description": "Named entity: wedbar; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a5f"
- ]
- ]
- },
- {
- "input": "&wedge",
- "description": "Bad named entity: wedge without a semi-colon",
- "output": [
- [
- "Character",
- "&wedge"
- ]
- ]
- },
- {
- "input": "∧",
- "description": "Named entity: wedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2227"
- ]
- ]
- },
- {
- "input": "&wedgeq",
- "description": "Bad named entity: wedgeq without a semi-colon",
- "output": [
- [
- "Character",
- "&wedgeq"
- ]
- ]
- },
- {
- "input": "≙",
- "description": "Named entity: wedgeq; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2259"
- ]
- ]
- },
- {
- "input": "&weierp",
- "description": "Bad named entity: weierp without a semi-colon",
- "output": [
- [
- "Character",
- "&weierp"
- ]
- ]
- },
- {
- "input": "℘",
- "description": "Named entity: weierp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2118"
- ]
- ]
- },
- {
- "input": "&wfr",
- "description": "Bad named entity: wfr without a semi-colon",
- "output": [
- [
- "Character",
- "&wfr"
- ]
- ]
- },
- {
- "input": "𝔴",
- "description": "Named entity: wfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd34"
- ]
- ]
- },
- {
- "input": "&wopf",
- "description": "Bad named entity: wopf without a semi-colon",
- "output": [
- [
- "Character",
- "&wopf"
- ]
- ]
- },
- {
- "input": "𝕨",
- "description": "Named entity: wopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd68"
- ]
- ]
- },
- {
- "input": "&wp",
- "description": "Bad named entity: wp without a semi-colon",
- "output": [
- [
- "Character",
- "&wp"
- ]
- ]
- },
- {
- "input": "℘",
- "description": "Named entity: wp; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2118"
- ]
- ]
- },
- {
- "input": "&wr",
- "description": "Bad named entity: wr without a semi-colon",
- "output": [
- [
- "Character",
- "&wr"
- ]
- ]
- },
- {
- "input": "≀",
- "description": "Named entity: wr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&wreath",
- "description": "Bad named entity: wreath without a semi-colon",
- "output": [
- [
- "Character",
- "&wreath"
- ]
- ]
- },
- {
- "input": "≀",
- "description": "Named entity: wreath; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2240"
- ]
- ]
- },
- {
- "input": "&wscr",
- "description": "Bad named entity: wscr without a semi-colon",
- "output": [
- [
- "Character",
- "&wscr"
- ]
- ]
- },
- {
- "input": "𝓌",
- "description": "Named entity: wscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccc"
- ]
- ]
- },
- {
- "input": "&xcap",
- "description": "Bad named entity: xcap without a semi-colon",
- "output": [
- [
- "Character",
- "&xcap"
- ]
- ]
- },
- {
- "input": "⋂",
- "description": "Named entity: xcap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c2"
- ]
- ]
- },
- {
- "input": "&xcirc",
- "description": "Bad named entity: xcirc without a semi-colon",
- "output": [
- [
- "Character",
- "&xcirc"
- ]
- ]
- },
- {
- "input": "◯",
- "description": "Named entity: xcirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25ef"
- ]
- ]
- },
- {
- "input": "&xcup",
- "description": "Bad named entity: xcup without a semi-colon",
- "output": [
- [
- "Character",
- "&xcup"
- ]
- ]
- },
- {
- "input": "⋃",
- "description": "Named entity: xcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c3"
- ]
- ]
- },
- {
- "input": "&xdtri",
- "description": "Bad named entity: xdtri without a semi-colon",
- "output": [
- [
- "Character",
- "&xdtri"
- ]
- ]
- },
- {
- "input": "▽",
- "description": "Named entity: xdtri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25bd"
- ]
- ]
- },
- {
- "input": "&xfr",
- "description": "Bad named entity: xfr without a semi-colon",
- "output": [
- [
- "Character",
- "&xfr"
- ]
- ]
- },
- {
- "input": "𝔵",
- "description": "Named entity: xfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd35"
- ]
- ]
- },
- {
- "input": "&xhArr",
- "description": "Bad named entity: xhArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xhArr"
- ]
- ]
- },
- {
- "input": "⟺",
- "description": "Named entity: xhArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fa"
- ]
- ]
- },
- {
- "input": "&xharr",
- "description": "Bad named entity: xharr without a semi-colon",
- "output": [
- [
- "Character",
- "&xharr"
- ]
- ]
- },
- {
- "input": "⟷",
- "description": "Named entity: xharr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f7"
- ]
- ]
- },
- {
- "input": "&xi",
- "description": "Bad named entity: xi without a semi-colon",
- "output": [
- [
- "Character",
- "&xi"
- ]
- ]
- },
- {
- "input": "ξ",
- "description": "Named entity: xi; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03be"
- ]
- ]
- },
- {
- "input": "&xlArr",
- "description": "Bad named entity: xlArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xlArr"
- ]
- ]
- },
- {
- "input": "⟸",
- "description": "Named entity: xlArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f8"
- ]
- ]
- },
- {
- "input": "&xlarr",
- "description": "Bad named entity: xlarr without a semi-colon",
- "output": [
- [
- "Character",
- "&xlarr"
- ]
- ]
- },
- {
- "input": "⟵",
- "description": "Named entity: xlarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f5"
- ]
- ]
- },
- {
- "input": "&xmap",
- "description": "Bad named entity: xmap without a semi-colon",
- "output": [
- [
- "Character",
- "&xmap"
- ]
- ]
- },
- {
- "input": "⟼",
- "description": "Named entity: xmap; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27fc"
- ]
- ]
- },
- {
- "input": "&xnis",
- "description": "Bad named entity: xnis without a semi-colon",
- "output": [
- [
- "Character",
- "&xnis"
- ]
- ]
- },
- {
- "input": "⋻",
- "description": "Named entity: xnis; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22fb"
- ]
- ]
- },
- {
- "input": "&xodot",
- "description": "Bad named entity: xodot without a semi-colon",
- "output": [
- [
- "Character",
- "&xodot"
- ]
- ]
- },
- {
- "input": "⨀",
- "description": "Named entity: xodot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a00"
- ]
- ]
- },
- {
- "input": "&xopf",
- "description": "Bad named entity: xopf without a semi-colon",
- "output": [
- [
- "Character",
- "&xopf"
- ]
- ]
- },
- {
- "input": "𝕩",
- "description": "Named entity: xopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd69"
- ]
- ]
- },
- {
- "input": "&xoplus",
- "description": "Bad named entity: xoplus without a semi-colon",
- "output": [
- [
- "Character",
- "&xoplus"
- ]
- ]
- },
- {
- "input": "⨁",
- "description": "Named entity: xoplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a01"
- ]
- ]
- },
- {
- "input": "&xotime",
- "description": "Bad named entity: xotime without a semi-colon",
- "output": [
- [
- "Character",
- "&xotime"
- ]
- ]
- },
- {
- "input": "⨂",
- "description": "Named entity: xotime; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a02"
- ]
- ]
- },
- {
- "input": "&xrArr",
- "description": "Bad named entity: xrArr without a semi-colon",
- "output": [
- [
- "Character",
- "&xrArr"
- ]
- ]
- },
- {
- "input": "⟹",
- "description": "Named entity: xrArr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f9"
- ]
- ]
- },
- {
- "input": "&xrarr",
- "description": "Bad named entity: xrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&xrarr"
- ]
- ]
- },
- {
- "input": "⟶",
- "description": "Named entity: xrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u27f6"
- ]
- ]
- },
- {
- "input": "&xscr",
- "description": "Bad named entity: xscr without a semi-colon",
- "output": [
- [
- "Character",
- "&xscr"
- ]
- ]
- },
- {
- "input": "𝓍",
- "description": "Named entity: xscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccd"
- ]
- ]
- },
- {
- "input": "&xsqcup",
- "description": "Bad named entity: xsqcup without a semi-colon",
- "output": [
- [
- "Character",
- "&xsqcup"
- ]
- ]
- },
- {
- "input": "⨆",
- "description": "Named entity: xsqcup; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a06"
- ]
- ]
- },
- {
- "input": "&xuplus",
- "description": "Bad named entity: xuplus without a semi-colon",
- "output": [
- [
- "Character",
- "&xuplus"
- ]
- ]
- },
- {
- "input": "⨄",
- "description": "Named entity: xuplus; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2a04"
- ]
- ]
- },
- {
- "input": "&xutri",
- "description": "Bad named entity: xutri without a semi-colon",
- "output": [
- [
- "Character",
- "&xutri"
- ]
- ]
- },
- {
- "input": "△",
- "description": "Named entity: xutri; with a semi-colon",
- "output": [
- [
- "Character",
- "\u25b3"
- ]
- ]
- },
- {
- "input": "&xvee",
- "description": "Bad named entity: xvee without a semi-colon",
- "output": [
- [
- "Character",
- "&xvee"
- ]
- ]
- },
- {
- "input": "⋁",
- "description": "Named entity: xvee; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c1"
- ]
- ]
- },
- {
- "input": "&xwedge",
- "description": "Bad named entity: xwedge without a semi-colon",
- "output": [
- [
- "Character",
- "&xwedge"
- ]
- ]
- },
- {
- "input": "⋀",
- "description": "Named entity: xwedge; with a semi-colon",
- "output": [
- [
- "Character",
- "\u22c0"
- ]
- ]
- },
- {
- "input": "ý",
- "description": "Named entity: yacute without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00fd"
- ]
- ]
- },
- {
- "input": "ý",
- "description": "Named entity: yacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00fd"
- ]
- ]
- },
- {
- "input": "&yacy",
- "description": "Bad named entity: yacy without a semi-colon",
- "output": [
- [
- "Character",
- "&yacy"
- ]
- ]
- },
- {
- "input": "я",
- "description": "Named entity: yacy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044f"
- ]
- ]
- },
- {
- "input": "&ycirc",
- "description": "Bad named entity: ycirc without a semi-colon",
- "output": [
- [
- "Character",
- "&ycirc"
- ]
- ]
- },
- {
- "input": "ŷ",
- "description": "Named entity: ycirc; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0177"
- ]
- ]
- },
- {
- "input": "&ycy",
- "description": "Bad named entity: ycy without a semi-colon",
- "output": [
- [
- "Character",
- "&ycy"
- ]
- ]
- },
- {
- "input": "ы",
- "description": "Named entity: ycy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044b"
- ]
- ]
- },
- {
- "input": "¥",
- "description": "Named entity: yen without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00a5"
- ]
- ]
- },
- {
- "input": "¥",
- "description": "Named entity: yen; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00a5"
- ]
- ]
- },
- {
- "input": "&yfr",
- "description": "Bad named entity: yfr without a semi-colon",
- "output": [
- [
- "Character",
- "&yfr"
- ]
- ]
- },
- {
- "input": "𝔶",
- "description": "Named entity: yfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd36"
- ]
- ]
- },
- {
- "input": "&yicy",
- "description": "Bad named entity: yicy without a semi-colon",
- "output": [
- [
- "Character",
- "&yicy"
- ]
- ]
- },
- {
- "input": "ї",
- "description": "Named entity: yicy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0457"
- ]
- ]
- },
- {
- "input": "&yopf",
- "description": "Bad named entity: yopf without a semi-colon",
- "output": [
- [
- "Character",
- "&yopf"
- ]
- ]
- },
- {
- "input": "𝕪",
- "description": "Named entity: yopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd6a"
- ]
- ]
- },
- {
- "input": "&yscr",
- "description": "Bad named entity: yscr without a semi-colon",
- "output": [
- [
- "Character",
- "&yscr"
- ]
- ]
- },
- {
- "input": "𝓎",
- "description": "Named entity: yscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udcce"
- ]
- ]
- },
- {
- "input": "&yucy",
- "description": "Bad named entity: yucy without a semi-colon",
- "output": [
- [
- "Character",
- "&yucy"
- ]
- ]
- },
- {
- "input": "ю",
- "description": "Named entity: yucy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u044e"
- ]
- ]
- },
- {
- "input": "ÿ",
- "description": "Named entity: yuml without a semi-colon",
- "output": [
- "ParseError",
- [
- "Character",
- "\u00ff"
- ]
- ]
- },
- {
- "input": "ÿ",
- "description": "Named entity: yuml; with a semi-colon",
- "output": [
- [
- "Character",
- "\u00ff"
- ]
- ]
- },
- {
- "input": "&zacute",
- "description": "Bad named entity: zacute without a semi-colon",
- "output": [
- [
- "Character",
- "&zacute"
- ]
- ]
- },
- {
- "input": "ź",
- "description": "Named entity: zacute; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017a"
- ]
- ]
- },
- {
- "input": "&zcaron",
- "description": "Bad named entity: zcaron without a semi-colon",
- "output": [
- [
- "Character",
- "&zcaron"
- ]
- ]
- },
- {
- "input": "ž",
- "description": "Named entity: zcaron; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017e"
- ]
- ]
- },
- {
- "input": "&zcy",
- "description": "Bad named entity: zcy without a semi-colon",
- "output": [
- [
- "Character",
- "&zcy"
- ]
- ]
- },
- {
- "input": "з",
- "description": "Named entity: zcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0437"
- ]
- ]
- },
- {
- "input": "&zdot",
- "description": "Bad named entity: zdot without a semi-colon",
- "output": [
- [
- "Character",
- "&zdot"
- ]
- ]
- },
- {
- "input": "ż",
- "description": "Named entity: zdot; with a semi-colon",
- "output": [
- [
- "Character",
- "\u017c"
- ]
- ]
- },
- {
- "input": "&zeetrf",
- "description": "Bad named entity: zeetrf without a semi-colon",
- "output": [
- [
- "Character",
- "&zeetrf"
- ]
- ]
- },
- {
- "input": "ℨ",
- "description": "Named entity: zeetrf; with a semi-colon",
- "output": [
- [
- "Character",
- "\u2128"
- ]
- ]
- },
- {
- "input": "&zeta",
- "description": "Bad named entity: zeta without a semi-colon",
- "output": [
- [
- "Character",
- "&zeta"
- ]
- ]
- },
- {
- "input": "ζ",
- "description": "Named entity: zeta; with a semi-colon",
- "output": [
- [
- "Character",
- "\u03b6"
- ]
- ]
- },
- {
- "input": "&zfr",
- "description": "Bad named entity: zfr without a semi-colon",
- "output": [
- [
- "Character",
- "&zfr"
- ]
- ]
- },
- {
- "input": "𝔷",
- "description": "Named entity: zfr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd37"
- ]
- ]
- },
- {
- "input": "&zhcy",
- "description": "Bad named entity: zhcy without a semi-colon",
- "output": [
- [
- "Character",
- "&zhcy"
- ]
- ]
- },
- {
- "input": "ж",
- "description": "Named entity: zhcy; with a semi-colon",
- "output": [
- [
- "Character",
- "\u0436"
- ]
- ]
- },
- {
- "input": "&zigrarr",
- "description": "Bad named entity: zigrarr without a semi-colon",
- "output": [
- [
- "Character",
- "&zigrarr"
- ]
- ]
- },
- {
- "input": "⇝",
- "description": "Named entity: zigrarr; with a semi-colon",
- "output": [
- [
- "Character",
- "\u21dd"
- ]
- ]
- },
- {
- "input": "&zopf",
- "description": "Bad named entity: zopf without a semi-colon",
- "output": [
- [
- "Character",
- "&zopf"
- ]
- ]
- },
- {
- "input": "𝕫",
- "description": "Named entity: zopf; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udd6b"
- ]
- ]
- },
- {
- "input": "&zscr",
- "description": "Bad named entity: zscr without a semi-colon",
- "output": [
- [
- "Character",
- "&zscr"
- ]
- ]
- },
- {
- "input": "𝓏",
- "description": "Named entity: zscr; with a semi-colon",
- "output": [
- [
- "Character",
- "\ud835\udccf"
- ]
- ]
- },
- {
- "input": "&zwj",
- "description": "Bad named entity: zwj without a semi-colon",
- "output": [
- [
- "Character",
- "&zwj"
- ]
- ]
- },
- {
- "input": "",
- "description": "Named entity: zwj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200d"
- ]
- ]
- },
- {
- "input": "&zwnj",
- "description": "Bad named entity: zwnj without a semi-colon",
- "output": [
- [
- "Character",
- "&zwnj"
- ]
- ]
- },
- {
- "input": "",
- "description": "Named entity: zwnj; with a semi-colon",
- "output": [
- [
- "Character",
- "\u200c"
- ]
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/libs/html5lib/tests/testdata/tokenizer/numericEntities.test b/libs/html5lib/tests/testdata/tokenizer/numericEntities.test
deleted file mode 100644
index 43de84b0f..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/numericEntities.test
+++ /dev/null
@@ -1,1349 +0,0 @@
-{"tests": [
-
-{"description": "Invalid unterminated numeric entity character overflow before EOF",
-"input": "",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid unterminated numeric entity character overflow before EOF",
-"input": "",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid unterminated numeric entity character overflow before EOF",
-"input": "",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid unterminated numeric entity character overflow",
-"input": "x",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFDx"]]},
-
-{"description": "Invalid unterminated numeric entity character overflow",
-"input": "x",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFDx"]]},
-
-{"description": "Invalid unterminated numeric entity character overflow",
-"input": "x",
-"output": ["ParseError", "ParseError", ["Character", "\uFFFDx"]]},
-
-{"description": "Invalid numeric entity character overflow",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character overflow",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character overflow",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+0000",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+0001",
-"input": "",
-"output": ["ParseError", ["Character", "\u0001"]]},
-
-{"description": "Invalid numeric entity character U+0002",
-"input": "",
-"output": ["ParseError", ["Character", "\u0002"]]},
-
-{"description": "Invalid numeric entity character U+0003",
-"input": "",
-"output": ["ParseError", ["Character", "\u0003"]]},
-
-{"description": "Invalid numeric entity character U+0004",
-"input": "",
-"output": ["ParseError", ["Character", "\u0004"]]},
-
-{"description": "Invalid numeric entity character U+0005",
-"input": "",
-"output": ["ParseError", ["Character", "\u0005"]]},
-
-{"description": "Invalid numeric entity character U+0006",
-"input": "",
-"output": ["ParseError", ["Character", "\u0006"]]},
-
-{"description": "Invalid numeric entity character U+0007",
-"input": "",
-"output": ["ParseError", ["Character", "\u0007"]]},
-
-{"description": "Invalid numeric entity character U+0008",
-"input": "",
-"output": ["ParseError", ["Character", "\u0008"]]},
-
-{"description": "Invalid numeric entity character U+000B",
-"input": "",
-"output": ["ParseError", ["Character", "\u000b"]]},
-
-{"description": "Invalid numeric entity character U+000E",
-"input": "",
-"output": ["ParseError", ["Character", "\u000e"]]},
-
-{"description": "Invalid numeric entity character U+000F",
-"input": "",
-"output": ["ParseError", ["Character", "\u000f"]]},
-
-{"description": "Invalid numeric entity character U+0010",
-"input": "",
-"output": ["ParseError", ["Character", "\u0010"]]},
-
-{"description": "Invalid numeric entity character U+0011",
-"input": "",
-"output": ["ParseError", ["Character", "\u0011"]]},
-
-{"description": "Invalid numeric entity character U+0012",
-"input": "",
-"output": ["ParseError", ["Character", "\u0012"]]},
-
-{"description": "Invalid numeric entity character U+0013",
-"input": "",
-"output": ["ParseError", ["Character", "\u0013"]]},
-
-{"description": "Invalid numeric entity character U+0014",
-"input": "",
-"output": ["ParseError", ["Character", "\u0014"]]},
-
-{"description": "Invalid numeric entity character U+0015",
-"input": "",
-"output": ["ParseError", ["Character", "\u0015"]]},
-
-{"description": "Invalid numeric entity character U+0016",
-"input": "",
-"output": ["ParseError", ["Character", "\u0016"]]},
-
-{"description": "Invalid numeric entity character U+0017",
-"input": "",
-"output": ["ParseError", ["Character", "\u0017"]]},
-
-{"description": "Invalid numeric entity character U+0018",
-"input": "",
-"output": ["ParseError", ["Character", "\u0018"]]},
-
-{"description": "Invalid numeric entity character U+0019",
-"input": "",
-"output": ["ParseError", ["Character", "\u0019"]]},
-
-{"description": "Invalid numeric entity character U+001A",
-"input": "",
-"output": ["ParseError", ["Character", "\u001a"]]},
-
-{"description": "Invalid numeric entity character U+001B",
-"input": "",
-"output": ["ParseError", ["Character", "\u001b"]]},
-
-{"description": "Invalid numeric entity character U+001C",
-"input": "",
-"output": ["ParseError", ["Character", "\u001c"]]},
-
-{"description": "Invalid numeric entity character U+001D",
-"input": "",
-"output": ["ParseError", ["Character", "\u001d"]]},
-
-{"description": "Invalid numeric entity character U+001E",
-"input": "",
-"output": ["ParseError", ["Character", "\u001e"]]},
-
-{"description": "Invalid numeric entity character U+001F",
-"input": "",
-"output": ["ParseError", ["Character", "\u001f"]]},
-
-{"description": "Invalid numeric entity character U+007F",
-"input": "",
-"output": ["ParseError", ["Character", "\u007f"]]},
-
-{"description": "Invalid numeric entity character U+D800",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+DFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uFFFD"]]},
-
-{"description": "Invalid numeric entity character U+FDD0",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd0"]]},
-
-{"description": "Invalid numeric entity character U+FDD1",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd1"]]},
-
-{"description": "Invalid numeric entity character U+FDD2",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd2"]]},
-
-{"description": "Invalid numeric entity character U+FDD3",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd3"]]},
-
-{"description": "Invalid numeric entity character U+FDD4",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd4"]]},
-
-{"description": "Invalid numeric entity character U+FDD5",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd5"]]},
-
-{"description": "Invalid numeric entity character U+FDD6",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd6"]]},
-
-{"description": "Invalid numeric entity character U+FDD7",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd7"]]},
-
-{"description": "Invalid numeric entity character U+FDD8",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd8"]]},
-
-{"description": "Invalid numeric entity character U+FDD9",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdd9"]]},
-
-{"description": "Invalid numeric entity character U+FDDA",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdda"]]},
-
-{"description": "Invalid numeric entity character U+FDDB",
-"input": "",
-"output": ["ParseError", ["Character", "\ufddb"]]},
-
-{"description": "Invalid numeric entity character U+FDDC",
-"input": "",
-"output": ["ParseError", ["Character", "\ufddc"]]},
-
-{"description": "Invalid numeric entity character U+FDDD",
-"input": "",
-"output": ["ParseError", ["Character", "\ufddd"]]},
-
-{"description": "Invalid numeric entity character U+FDDE",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdde"]]},
-
-{"description": "Invalid numeric entity character U+FDDF",
-"input": "",
-"output": ["ParseError", ["Character", "\ufddf"]]},
-
-{"description": "Invalid numeric entity character U+FDE0",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde0"]]},
-
-{"description": "Invalid numeric entity character U+FDE1",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde1"]]},
-
-{"description": "Invalid numeric entity character U+FDE2",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde2"]]},
-
-{"description": "Invalid numeric entity character U+FDE3",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde3"]]},
-
-{"description": "Invalid numeric entity character U+FDE4",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde4"]]},
-
-{"description": "Invalid numeric entity character U+FDE5",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde5"]]},
-
-{"description": "Invalid numeric entity character U+FDE6",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde6"]]},
-
-{"description": "Invalid numeric entity character U+FDE7",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde7"]]},
-
-{"description": "Invalid numeric entity character U+FDE8",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde8"]]},
-
-{"description": "Invalid numeric entity character U+FDE9",
-"input": "",
-"output": ["ParseError", ["Character", "\ufde9"]]},
-
-{"description": "Invalid numeric entity character U+FDEA",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdea"]]},
-
-{"description": "Invalid numeric entity character U+FDEB",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdeb"]]},
-
-{"description": "Invalid numeric entity character U+FDEC",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdec"]]},
-
-{"description": "Invalid numeric entity character U+FDED",
-"input": "",
-"output": ["ParseError", ["Character", "\ufded"]]},
-
-{"description": "Invalid numeric entity character U+FDEE",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdee"]]},
-
-{"description": "Invalid numeric entity character U+FDEF",
-"input": "",
-"output": ["ParseError", ["Character", "\ufdef"]]},
-
-{"description": "Invalid numeric entity character U+FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\ufffe"]]},
-
-{"description": "Invalid numeric entity character U+FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uffff"]]},
-
-{"description": "Invalid numeric entity character U+1FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+1FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+2FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+2FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+3FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+3FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+4FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+4FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+5FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+5FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+6FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+6FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+7FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+7FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+8FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+8FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+9FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+9FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+AFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+AFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+BFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+BFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+CFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+CFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+DFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+DFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+EFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+EFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+FFFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+FFFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]},
-
-{"description": "Invalid numeric entity character U+10FFFE",
-"input": "",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]},
-
-{"description": "Invalid numeric entity character U+10FFFF",
-"input": "",
-"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]},
-
-{"description": "Valid numeric entity character U+0009",
-"input": " ",
-"output": [["Character", "\u0009"]]},
-
-{"description": "Valid numeric entity character U+000A",
-"input": "
",
-"output": [["Character", "\u000A"]]},
-
-{"description": "Valid numeric entity character U+0020",
-"input": " ",
-"output": [["Character", "\u0020"]]},
-
-{"description": "Valid numeric entity character U+0021",
-"input": "!",
-"output": [["Character", "\u0021"]]},
-
-{"description": "Valid numeric entity character U+0022",
-"input": """,
-"output": [["Character", "\u0022"]]},
-
-{"description": "Valid numeric entity character U+0023",
-"input": "#",
-"output": [["Character", "\u0023"]]},
-
-{"description": "Valid numeric entity character U+0024",
-"input": "$",
-"output": [["Character", "\u0024"]]},
-
-{"description": "Valid numeric entity character U+0025",
-"input": "%",
-"output": [["Character", "\u0025"]]},
-
-{"description": "Valid numeric entity character U+0026",
-"input": "&",
-"output": [["Character", "\u0026"]]},
-
-{"description": "Valid numeric entity character U+0027",
-"input": "'",
-"output": [["Character", "\u0027"]]},
-
-{"description": "Valid numeric entity character U+0028",
-"input": "(",
-"output": [["Character", "\u0028"]]},
-
-{"description": "Valid numeric entity character U+0029",
-"input": ")",
-"output": [["Character", "\u0029"]]},
-
-{"description": "Valid numeric entity character U+002A",
-"input": "*",
-"output": [["Character", "\u002A"]]},
-
-{"description": "Valid numeric entity character U+002B",
-"input": "+",
-"output": [["Character", "\u002B"]]},
-
-{"description": "Valid numeric entity character U+002C",
-"input": ",",
-"output": [["Character", "\u002C"]]},
-
-{"description": "Valid numeric entity character U+002D",
-"input": "-",
-"output": [["Character", "\u002D"]]},
-
-{"description": "Valid numeric entity character U+002E",
-"input": ".",
-"output": [["Character", "\u002E"]]},
-
-{"description": "Valid numeric entity character U+002F",
-"input": "/",
-"output": [["Character", "\u002F"]]},
-
-{"description": "Valid numeric entity character U+0030",
-"input": "0",
-"output": [["Character", "\u0030"]]},
-
-{"description": "Valid numeric entity character U+0031",
-"input": "1",
-"output": [["Character", "\u0031"]]},
-
-{"description": "Valid numeric entity character U+0032",
-"input": "2",
-"output": [["Character", "\u0032"]]},
-
-{"description": "Valid numeric entity character U+0033",
-"input": "3",
-"output": [["Character", "\u0033"]]},
-
-{"description": "Valid numeric entity character U+0034",
-"input": "4",
-"output": [["Character", "\u0034"]]},
-
-{"description": "Valid numeric entity character U+0035",
-"input": "5",
-"output": [["Character", "\u0035"]]},
-
-{"description": "Valid numeric entity character U+0036",
-"input": "6",
-"output": [["Character", "\u0036"]]},
-
-{"description": "Valid numeric entity character U+0037",
-"input": "7",
-"output": [["Character", "\u0037"]]},
-
-{"description": "Valid numeric entity character U+0038",
-"input": "8",
-"output": [["Character", "\u0038"]]},
-
-{"description": "Valid numeric entity character U+0039",
-"input": "9",
-"output": [["Character", "\u0039"]]},
-
-{"description": "Valid numeric entity character U+003A",
-"input": ":",
-"output": [["Character", "\u003A"]]},
-
-{"description": "Valid numeric entity character U+003B",
-"input": ";",
-"output": [["Character", "\u003B"]]},
-
-{"description": "Valid numeric entity character U+003C",
-"input": "<",
-"output": [["Character", "\u003C"]]},
-
-{"description": "Valid numeric entity character U+003D",
-"input": "=",
-"output": [["Character", "\u003D"]]},
-
-{"description": "Valid numeric entity character U+003E",
-"input": ">",
-"output": [["Character", "\u003E"]]},
-
-{"description": "Valid numeric entity character U+003F",
-"input": "?",
-"output": [["Character", "\u003F"]]},
-
-{"description": "Valid numeric entity character U+0040",
-"input": "@",
-"output": [["Character", "\u0040"]]},
-
-{"description": "Valid numeric entity character U+0041",
-"input": "A",
-"output": [["Character", "\u0041"]]},
-
-{"description": "Valid numeric entity character U+0042",
-"input": "B",
-"output": [["Character", "\u0042"]]},
-
-{"description": "Valid numeric entity character U+0043",
-"input": "C",
-"output": [["Character", "\u0043"]]},
-
-{"description": "Valid numeric entity character U+0044",
-"input": "D",
-"output": [["Character", "\u0044"]]},
-
-{"description": "Valid numeric entity character U+0045",
-"input": "E",
-"output": [["Character", "\u0045"]]},
-
-{"description": "Valid numeric entity character U+0046",
-"input": "F",
-"output": [["Character", "\u0046"]]},
-
-{"description": "Valid numeric entity character U+0047",
-"input": "G",
-"output": [["Character", "\u0047"]]},
-
-{"description": "Valid numeric entity character U+0048",
-"input": "H",
-"output": [["Character", "\u0048"]]},
-
-{"description": "Valid numeric entity character U+0049",
-"input": "I",
-"output": [["Character", "\u0049"]]},
-
-{"description": "Valid numeric entity character U+004A",
-"input": "J",
-"output": [["Character", "\u004A"]]},
-
-{"description": "Valid numeric entity character U+004B",
-"input": "K",
-"output": [["Character", "\u004B"]]},
-
-{"description": "Valid numeric entity character U+004C",
-"input": "L",
-"output": [["Character", "\u004C"]]},
-
-{"description": "Valid numeric entity character U+004D",
-"input": "M",
-"output": [["Character", "\u004D"]]},
-
-{"description": "Valid numeric entity character U+004E",
-"input": "N",
-"output": [["Character", "\u004E"]]},
-
-{"description": "Valid numeric entity character U+004F",
-"input": "O",
-"output": [["Character", "\u004F"]]},
-
-{"description": "Valid numeric entity character U+0050",
-"input": "P",
-"output": [["Character", "\u0050"]]},
-
-{"description": "Valid numeric entity character U+0051",
-"input": "Q",
-"output": [["Character", "\u0051"]]},
-
-{"description": "Valid numeric entity character U+0052",
-"input": "R",
-"output": [["Character", "\u0052"]]},
-
-{"description": "Valid numeric entity character U+0053",
-"input": "S",
-"output": [["Character", "\u0053"]]},
-
-{"description": "Valid numeric entity character U+0054",
-"input": "T",
-"output": [["Character", "\u0054"]]},
-
-{"description": "Valid numeric entity character U+0055",
-"input": "U",
-"output": [["Character", "\u0055"]]},
-
-{"description": "Valid numeric entity character U+0056",
-"input": "V",
-"output": [["Character", "\u0056"]]},
-
-{"description": "Valid numeric entity character U+0057",
-"input": "W",
-"output": [["Character", "\u0057"]]},
-
-{"description": "Valid numeric entity character U+0058",
-"input": "X",
-"output": [["Character", "\u0058"]]},
-
-{"description": "Valid numeric entity character U+0059",
-"input": "Y",
-"output": [["Character", "\u0059"]]},
-
-{"description": "Valid numeric entity character U+005A",
-"input": "Z",
-"output": [["Character", "\u005A"]]},
-
-{"description": "Valid numeric entity character U+005B",
-"input": "[",
-"output": [["Character", "\u005B"]]},
-
-{"description": "Valid numeric entity character U+005C",
-"input": "\",
-"output": [["Character", "\u005C"]]},
-
-{"description": "Valid numeric entity character U+005D",
-"input": "]",
-"output": [["Character", "\u005D"]]},
-
-{"description": "Valid numeric entity character U+005E",
-"input": "^",
-"output": [["Character", "\u005E"]]},
-
-{"description": "Valid numeric entity character U+005F",
-"input": "_",
-"output": [["Character", "\u005F"]]},
-
-{"description": "Valid numeric entity character U+0060",
-"input": "`",
-"output": [["Character", "\u0060"]]},
-
-{"description": "Valid numeric entity character U+0061",
-"input": "a",
-"output": [["Character", "\u0061"]]},
-
-{"description": "Valid numeric entity character U+0062",
-"input": "b",
-"output": [["Character", "\u0062"]]},
-
-{"description": "Valid numeric entity character U+0063",
-"input": "c",
-"output": [["Character", "\u0063"]]},
-
-{"description": "Valid numeric entity character U+0064",
-"input": "d",
-"output": [["Character", "\u0064"]]},
-
-{"description": "Valid numeric entity character U+0065",
-"input": "e",
-"output": [["Character", "\u0065"]]},
-
-{"description": "Valid numeric entity character U+0066",
-"input": "f",
-"output": [["Character", "\u0066"]]},
-
-{"description": "Valid numeric entity character U+0067",
-"input": "g",
-"output": [["Character", "\u0067"]]},
-
-{"description": "Valid numeric entity character U+0068",
-"input": "h",
-"output": [["Character", "\u0068"]]},
-
-{"description": "Valid numeric entity character U+0069",
-"input": "i",
-"output": [["Character", "\u0069"]]},
-
-{"description": "Valid numeric entity character U+006A",
-"input": "j",
-"output": [["Character", "\u006A"]]},
-
-{"description": "Valid numeric entity character U+006B",
-"input": "k",
-"output": [["Character", "\u006B"]]},
-
-{"description": "Valid numeric entity character U+006C",
-"input": "l",
-"output": [["Character", "\u006C"]]},
-
-{"description": "Valid numeric entity character U+006D",
-"input": "m",
-"output": [["Character", "\u006D"]]},
-
-{"description": "Valid numeric entity character U+006E",
-"input": "n",
-"output": [["Character", "\u006E"]]},
-
-{"description": "Valid numeric entity character U+006F",
-"input": "o",
-"output": [["Character", "\u006F"]]},
-
-{"description": "Valid numeric entity character U+0070",
-"input": "p",
-"output": [["Character", "\u0070"]]},
-
-{"description": "Valid numeric entity character U+0071",
-"input": "q",
-"output": [["Character", "\u0071"]]},
-
-{"description": "Valid numeric entity character U+0072",
-"input": "r",
-"output": [["Character", "\u0072"]]},
-
-{"description": "Valid numeric entity character U+0073",
-"input": "s",
-"output": [["Character", "\u0073"]]},
-
-{"description": "Valid numeric entity character U+0074",
-"input": "t",
-"output": [["Character", "\u0074"]]},
-
-{"description": "Valid numeric entity character U+0075",
-"input": "u",
-"output": [["Character", "\u0075"]]},
-
-{"description": "Valid numeric entity character U+0076",
-"input": "v",
-"output": [["Character", "\u0076"]]},
-
-{"description": "Valid numeric entity character U+0077",
-"input": "w",
-"output": [["Character", "\u0077"]]},
-
-{"description": "Valid numeric entity character U+0078",
-"input": "x",
-"output": [["Character", "\u0078"]]},
-
-{"description": "Valid numeric entity character U+0079",
-"input": "y",
-"output": [["Character", "\u0079"]]},
-
-{"description": "Valid numeric entity character U+007A",
-"input": "z",
-"output": [["Character", "\u007A"]]},
-
-{"description": "Valid numeric entity character U+007B",
-"input": "{",
-"output": [["Character", "\u007B"]]},
-
-{"description": "Valid numeric entity character U+007C",
-"input": "|",
-"output": [["Character", "\u007C"]]},
-
-{"description": "Valid numeric entity character U+007D",
-"input": "}",
-"output": [["Character", "\u007D"]]},
-
-{"description": "Valid numeric entity character U+007E",
-"input": "~",
-"output": [["Character", "\u007E"]]},
-
-{"description": "Valid numeric entity character U+00A0",
-"input": " ",
-"output": [["Character", "\u00A0"]]},
-
-{"description": "Valid numeric entity character U+00A1",
-"input": "¡",
-"output": [["Character", "\u00A1"]]},
-
-{"description": "Valid numeric entity character U+00A2",
-"input": "¢",
-"output": [["Character", "\u00A2"]]},
-
-{"description": "Valid numeric entity character U+00A3",
-"input": "£",
-"output": [["Character", "\u00A3"]]},
-
-{"description": "Valid numeric entity character U+00A4",
-"input": "¤",
-"output": [["Character", "\u00A4"]]},
-
-{"description": "Valid numeric entity character U+00A5",
-"input": "¥",
-"output": [["Character", "\u00A5"]]},
-
-{"description": "Valid numeric entity character U+00A6",
-"input": "¦",
-"output": [["Character", "\u00A6"]]},
-
-{"description": "Valid numeric entity character U+00A7",
-"input": "§",
-"output": [["Character", "\u00A7"]]},
-
-{"description": "Valid numeric entity character U+00A8",
-"input": "¨",
-"output": [["Character", "\u00A8"]]},
-
-{"description": "Valid numeric entity character U+00A9",
-"input": "©",
-"output": [["Character", "\u00A9"]]},
-
-{"description": "Valid numeric entity character U+00AA",
-"input": "ª",
-"output": [["Character", "\u00AA"]]},
-
-{"description": "Valid numeric entity character U+00AB",
-"input": "«",
-"output": [["Character", "\u00AB"]]},
-
-{"description": "Valid numeric entity character U+00AC",
-"input": "¬",
-"output": [["Character", "\u00AC"]]},
-
-{"description": "Valid numeric entity character U+00AD",
-"input": "",
-"output": [["Character", "\u00AD"]]},
-
-{"description": "Valid numeric entity character U+00AE",
-"input": "®",
-"output": [["Character", "\u00AE"]]},
-
-{"description": "Valid numeric entity character U+00AF",
-"input": "¯",
-"output": [["Character", "\u00AF"]]},
-
-{"description": "Valid numeric entity character U+00B0",
-"input": "°",
-"output": [["Character", "\u00B0"]]},
-
-{"description": "Valid numeric entity character U+00B1",
-"input": "±",
-"output": [["Character", "\u00B1"]]},
-
-{"description": "Valid numeric entity character U+00B2",
-"input": "²",
-"output": [["Character", "\u00B2"]]},
-
-{"description": "Valid numeric entity character U+00B3",
-"input": "³",
-"output": [["Character", "\u00B3"]]},
-
-{"description": "Valid numeric entity character U+00B4",
-"input": "´",
-"output": [["Character", "\u00B4"]]},
-
-{"description": "Valid numeric entity character U+00B5",
-"input": "µ",
-"output": [["Character", "\u00B5"]]},
-
-{"description": "Valid numeric entity character U+00B6",
-"input": "¶",
-"output": [["Character", "\u00B6"]]},
-
-{"description": "Valid numeric entity character U+00B7",
-"input": "·",
-"output": [["Character", "\u00B7"]]},
-
-{"description": "Valid numeric entity character U+00B8",
-"input": "¸",
-"output": [["Character", "\u00B8"]]},
-
-{"description": "Valid numeric entity character U+00B9",
-"input": "¹",
-"output": [["Character", "\u00B9"]]},
-
-{"description": "Valid numeric entity character U+00BA",
-"input": "º",
-"output": [["Character", "\u00BA"]]},
-
-{"description": "Valid numeric entity character U+00BB",
-"input": "»",
-"output": [["Character", "\u00BB"]]},
-
-{"description": "Valid numeric entity character U+00BC",
-"input": "¼",
-"output": [["Character", "\u00BC"]]},
-
-{"description": "Valid numeric entity character U+00BD",
-"input": "½",
-"output": [["Character", "\u00BD"]]},
-
-{"description": "Valid numeric entity character U+00BE",
-"input": "¾",
-"output": [["Character", "\u00BE"]]},
-
-{"description": "Valid numeric entity character U+00BF",
-"input": "¿",
-"output": [["Character", "\u00BF"]]},
-
-{"description": "Valid numeric entity character U+00C0",
-"input": "À",
-"output": [["Character", "\u00C0"]]},
-
-{"description": "Valid numeric entity character U+00C1",
-"input": "Á",
-"output": [["Character", "\u00C1"]]},
-
-{"description": "Valid numeric entity character U+00C2",
-"input": "Â",
-"output": [["Character", "\u00C2"]]},
-
-{"description": "Valid numeric entity character U+00C3",
-"input": "Ã",
-"output": [["Character", "\u00C3"]]},
-
-{"description": "Valid numeric entity character U+00C4",
-"input": "Ä",
-"output": [["Character", "\u00C4"]]},
-
-{"description": "Valid numeric entity character U+00C5",
-"input": "Å",
-"output": [["Character", "\u00C5"]]},
-
-{"description": "Valid numeric entity character U+00C6",
-"input": "Æ",
-"output": [["Character", "\u00C6"]]},
-
-{"description": "Valid numeric entity character U+00C7",
-"input": "Ç",
-"output": [["Character", "\u00C7"]]},
-
-{"description": "Valid numeric entity character U+00C8",
-"input": "È",
-"output": [["Character", "\u00C8"]]},
-
-{"description": "Valid numeric entity character U+00C9",
-"input": "É",
-"output": [["Character", "\u00C9"]]},
-
-{"description": "Valid numeric entity character U+00CA",
-"input": "Ê",
-"output": [["Character", "\u00CA"]]},
-
-{"description": "Valid numeric entity character U+00CB",
-"input": "Ë",
-"output": [["Character", "\u00CB"]]},
-
-{"description": "Valid numeric entity character U+00CC",
-"input": "Ì",
-"output": [["Character", "\u00CC"]]},
-
-{"description": "Valid numeric entity character U+00CD",
-"input": "Í",
-"output": [["Character", "\u00CD"]]},
-
-{"description": "Valid numeric entity character U+00CE",
-"input": "Î",
-"output": [["Character", "\u00CE"]]},
-
-{"description": "Valid numeric entity character U+00CF",
-"input": "Ï",
-"output": [["Character", "\u00CF"]]},
-
-{"description": "Valid numeric entity character U+00D0",
-"input": "Ð",
-"output": [["Character", "\u00D0"]]},
-
-{"description": "Valid numeric entity character U+00D1",
-"input": "Ñ",
-"output": [["Character", "\u00D1"]]},
-
-{"description": "Valid numeric entity character U+00D2",
-"input": "Ò",
-"output": [["Character", "\u00D2"]]},
-
-{"description": "Valid numeric entity character U+00D3",
-"input": "Ó",
-"output": [["Character", "\u00D3"]]},
-
-{"description": "Valid numeric entity character U+00D4",
-"input": "Ô",
-"output": [["Character", "\u00D4"]]},
-
-{"description": "Valid numeric entity character U+00D5",
-"input": "Õ",
-"output": [["Character", "\u00D5"]]},
-
-{"description": "Valid numeric entity character U+00D6",
-"input": "Ö",
-"output": [["Character", "\u00D6"]]},
-
-{"description": "Valid numeric entity character U+00D7",
-"input": "×",
-"output": [["Character", "\u00D7"]]},
-
-{"description": "Valid numeric entity character U+00D8",
-"input": "Ø",
-"output": [["Character", "\u00D8"]]},
-
-{"description": "Valid numeric entity character U+00D9",
-"input": "Ù",
-"output": [["Character", "\u00D9"]]},
-
-{"description": "Valid numeric entity character U+00DA",
-"input": "Ú",
-"output": [["Character", "\u00DA"]]},
-
-{"description": "Valid numeric entity character U+00DB",
-"input": "Û",
-"output": [["Character", "\u00DB"]]},
-
-{"description": "Valid numeric entity character U+00DC",
-"input": "Ü",
-"output": [["Character", "\u00DC"]]},
-
-{"description": "Valid numeric entity character U+00DD",
-"input": "Ý",
-"output": [["Character", "\u00DD"]]},
-
-{"description": "Valid numeric entity character U+00DE",
-"input": "Þ",
-"output": [["Character", "\u00DE"]]},
-
-{"description": "Valid numeric entity character U+00DF",
-"input": "ß",
-"output": [["Character", "\u00DF"]]},
-
-{"description": "Valid numeric entity character U+00E0",
-"input": "à",
-"output": [["Character", "\u00E0"]]},
-
-{"description": "Valid numeric entity character U+00E1",
-"input": "á",
-"output": [["Character", "\u00E1"]]},
-
-{"description": "Valid numeric entity character U+00E2",
-"input": "â",
-"output": [["Character", "\u00E2"]]},
-
-{"description": "Valid numeric entity character U+00E3",
-"input": "ã",
-"output": [["Character", "\u00E3"]]},
-
-{"description": "Valid numeric entity character U+00E4",
-"input": "ä",
-"output": [["Character", "\u00E4"]]},
-
-{"description": "Valid numeric entity character U+00E5",
-"input": "å",
-"output": [["Character", "\u00E5"]]},
-
-{"description": "Valid numeric entity character U+00E6",
-"input": "æ",
-"output": [["Character", "\u00E6"]]},
-
-{"description": "Valid numeric entity character U+00E7",
-"input": "ç",
-"output": [["Character", "\u00E7"]]},
-
-{"description": "Valid numeric entity character U+00E8",
-"input": "è",
-"output": [["Character", "\u00E8"]]},
-
-{"description": "Valid numeric entity character U+00E9",
-"input": "é",
-"output": [["Character", "\u00E9"]]},
-
-{"description": "Valid numeric entity character U+00EA",
-"input": "ê",
-"output": [["Character", "\u00EA"]]},
-
-{"description": "Valid numeric entity character U+00EB",
-"input": "ë",
-"output": [["Character", "\u00EB"]]},
-
-{"description": "Valid numeric entity character U+00EC",
-"input": "ì",
-"output": [["Character", "\u00EC"]]},
-
-{"description": "Valid numeric entity character U+00ED",
-"input": "í",
-"output": [["Character", "\u00ED"]]},
-
-{"description": "Valid numeric entity character U+00EE",
-"input": "î",
-"output": [["Character", "\u00EE"]]},
-
-{"description": "Valid numeric entity character U+00EF",
-"input": "ï",
-"output": [["Character", "\u00EF"]]},
-
-{"description": "Valid numeric entity character U+00F0",
-"input": "ð",
-"output": [["Character", "\u00F0"]]},
-
-{"description": "Valid numeric entity character U+00F1",
-"input": "ñ",
-"output": [["Character", "\u00F1"]]},
-
-{"description": "Valid numeric entity character U+00F2",
-"input": "ò",
-"output": [["Character", "\u00F2"]]},
-
-{"description": "Valid numeric entity character U+00F3",
-"input": "ó",
-"output": [["Character", "\u00F3"]]},
-
-{"description": "Valid numeric entity character U+00F4",
-"input": "ô",
-"output": [["Character", "\u00F4"]]},
-
-{"description": "Valid numeric entity character U+00F5",
-"input": "õ",
-"output": [["Character", "\u00F5"]]},
-
-{"description": "Valid numeric entity character U+00F6",
-"input": "ö",
-"output": [["Character", "\u00F6"]]},
-
-{"description": "Valid numeric entity character U+00F7",
-"input": "÷",
-"output": [["Character", "\u00F7"]]},
-
-{"description": "Valid numeric entity character U+00F8",
-"input": "ø",
-"output": [["Character", "\u00F8"]]},
-
-{"description": "Valid numeric entity character U+00F9",
-"input": "ù",
-"output": [["Character", "\u00F9"]]},
-
-{"description": "Valid numeric entity character U+00FA",
-"input": "ú",
-"output": [["Character", "\u00FA"]]},
-
-{"description": "Valid numeric entity character U+00FB",
-"input": "û",
-"output": [["Character", "\u00FB"]]},
-
-{"description": "Valid numeric entity character U+00FC",
-"input": "ü",
-"output": [["Character", "\u00FC"]]},
-
-{"description": "Valid numeric entity character U+00FD",
-"input": "ý",
-"output": [["Character", "\u00FD"]]},
-
-{"description": "Valid numeric entity character U+00FE",
-"input": "þ",
-"output": [["Character", "\u00FE"]]},
-
-{"description": "Valid numeric entity character U+00FF",
-"input": "ÿ",
-"output": [["Character", "\u00FF"]]},
-
-{"description": "Valid numeric entity character U+D7FF",
-"input": "",
-"output": [["Character", "\uD7FF"]]},
-
-{"description": "Valid numeric entity character U+E000",
-"input": "",
-"output": [["Character", "\uE000"]]},
-
-{"description": "Valid numeric entity character U+FDCF",
-"input": "﷏",
-"output": [["Character", "\uFDCF"]]},
-
-{"description": "Valid numeric entity character U+FDF0",
-"input": "ﷰ",
-"output": [["Character", "\uFDF0"]]},
-
-{"description": "Valid numeric entity character U+FFFD",
-"input": "�",
-"output": [["Character", "\uFFFD"]]},
-
-{"description": "Valid numeric entity character U+10000",
-"input": "𐀀",
-"output": [["Character", "\uD800\uDC00"]]},
-
-{"description": "Valid numeric entity character U+1FFFD",
-"input": "",
-"output": [["Character", "\uD83F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+20000",
-"input": "𠀀",
-"output": [["Character", "\uD840\uDC00"]]},
-
-{"description": "Valid numeric entity character U+2FFFD",
-"input": "",
-"output": [["Character", "\uD87F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+30000",
-"input": "𰀀",
-"output": [["Character", "\uD880\uDC00"]]},
-
-{"description": "Valid numeric entity character U+3FFFD",
-"input": "",
-"output": [["Character", "\uD8BF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+40000",
-"input": "",
-"output": [["Character", "\uD8C0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+4FFFD",
-"input": "",
-"output": [["Character", "\uD8FF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+50000",
-"input": "",
-"output": [["Character", "\uD900\uDC00"]]},
-
-{"description": "Valid numeric entity character U+5FFFD",
-"input": "",
-"output": [["Character", "\uD93F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+60000",
-"input": "",
-"output": [["Character", "\uD940\uDC00"]]},
-
-{"description": "Valid numeric entity character U+6FFFD",
-"input": "",
-"output": [["Character", "\uD97F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+70000",
-"input": "",
-"output": [["Character", "\uD980\uDC00"]]},
-
-{"description": "Valid numeric entity character U+7FFFD",
-"input": "",
-"output": [["Character", "\uD9BF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+80000",
-"input": "",
-"output": [["Character", "\uD9C0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+8FFFD",
-"input": "",
-"output": [["Character", "\uD9FF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+90000",
-"input": "",
-"output": [["Character", "\uDA00\uDC00"]]},
-
-{"description": "Valid numeric entity character U+9FFFD",
-"input": "",
-"output": [["Character", "\uDA3F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+A0000",
-"input": "",
-"output": [["Character", "\uDA40\uDC00"]]},
-
-{"description": "Valid numeric entity character U+AFFFD",
-"input": "",
-"output": [["Character", "\uDA7F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+B0000",
-"input": "",
-"output": [["Character", "\uDA80\uDC00"]]},
-
-{"description": "Valid numeric entity character U+BFFFD",
-"input": "",
-"output": [["Character", "\uDABF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+C0000",
-"input": "",
-"output": [["Character", "\uDAC0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+CFFFD",
-"input": "",
-"output": [["Character", "\uDAFF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+D0000",
-"input": "",
-"output": [["Character", "\uDB00\uDC00"]]},
-
-{"description": "Valid numeric entity character U+DFFFD",
-"input": "",
-"output": [["Character", "\uDB3F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+E0000",
-"input": "",
-"output": [["Character", "\uDB40\uDC00"]]},
-
-{"description": "Valid numeric entity character U+EFFFD",
-"input": "",
-"output": [["Character", "\uDB7F\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+F0000",
-"input": "",
-"output": [["Character", "\uDB80\uDC00"]]},
-
-{"description": "Valid numeric entity character U+FFFFD",
-"input": "",
-"output": [["Character", "\uDBBF\uDFFD"]]},
-
-{"description": "Valid numeric entity character U+100000",
-"input": "",
-"output": [["Character", "\uDBC0\uDC00"]]},
-
-{"description": "Valid numeric entity character U+10FFFD",
-"input": "",
-"output": [["Character", "\uDBFF\uDFFD"]]}
-
-]}
-
-
diff --git a/libs/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test b/libs/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test
deleted file mode 100644
index 1b7dc3c72..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/pendingSpecChanges.test
+++ /dev/null
@@ -1,7 +0,0 @@
-{"tests": [
-
-{"description":"",
- "output":[["Comment", "comment"]]},
-
-{"description":"Comment, Central dash no space",
- "input":"",
- "output":["ParseError", ["Comment", "-"]]},
-
-{"description":"Comment, two central dashes",
-"input":"",
-"output":["ParseError", ["Comment", " --comment "]]},
-
-{"description":"Unfinished comment",
-"input":"",
- "output":["ParseError", ["Comment", ""]]},
-
-{"description":"Short comment two",
- "input":"",
- "output":["ParseError", ["Comment", ""]]},
-
-{"description":"Short comment three",
- "input":"",
- "output":[["Comment", ""]]},
-
-
-{"description":"Ampersand EOF",
-"input":"&",
-"output":[["Character", "&"]]},
-
-{"description":"Ampersand ampersand EOF",
-"input":"&&",
-"output":[["Character", "&&"]]},
-
-{"description":"Ampersand space EOF",
-"input":"& ",
-"output":[["Character", "& "]]},
-
-{"description":"Unfinished entity",
-"input":"&f",
-"output":[["Character", "&f"]]},
-
-{"description":"Ampersand, number sign",
-"input":"",
-"output":["ParseError", ["Character", ""]]},
-
-{"description":"Unfinished numeric entity",
-"input":"",
-"output":["ParseError", ["Character", ""]]},
-
-{"description":"Entity with trailing semicolon (1)",
-"input":"I'm ¬it",
-"output":[["Character","I'm \u00ACit"]]},
-
-{"description":"Entity with trailing semicolon (2)",
-"input":"I'm ∉",
-"output":[["Character","I'm \u2209"]]},
-
-{"description":"Entity without trailing semicolon (1)",
-"input":"I'm ¬it",
-"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACit"]]},
-
-{"description":"Entity without trailing semicolon (2)",
-"input":"I'm ¬in",
-"output":[["Character","I'm "], "ParseError", ["Character", "\u00ACin"]]},
-
-{"description":"Partial entity match at end of file",
-"input":"I'm &no",
-"output":[["Character","I'm &no"]]},
-
-{"description":"Non-ASCII character reference name",
-"input":"&\u00AC;",
-"output":[["Character", "&\u00AC;"]]},
-
-{"description":"ASCII decimal entity",
-"input":"$",
-"output":[["Character","$"]]},
-
-{"description":"ASCII hexadecimal entity",
-"input":"?",
-"output":[["Character","?"]]},
-
-{"description":"Hexadecimal entity in attribute",
-"input":"",
-"output":[["StartTag", "h", {"a":"?"}], ["EndTag", "h"]]},
-
-{"description":"Entity in attribute without semicolon ending in x",
-"input":"",
-"output":[["StartTag", "h", {"a":"¬x"}]]},
-
-{"description":"Entity in attribute without semicolon ending in 1",
-"input":"",
-"output":[["StartTag", "h", {"a":"¬1"}]]},
-
-{"description":"Entity in attribute without semicolon ending in i",
-"input":"",
-"output":[["StartTag", "h", {"a":"¬i"}]]},
-
-{"description":"Entity in attribute without semicolon",
-"input":"",
-"output":["ParseError", ["StartTag", "h", {"a":"\u00A9"}]]},
-
-{"description":"Unquoted attribute ending in ampersand",
-"input":"",
-"output":[["StartTag","s",{"o":"&","t":""}]]},
-
-{"description":"Unquoted attribute at end of tag with final character of &, with tag followed by characters",
-"input":"foo",
-"output":[["StartTag", "a", {"a":"a&"}], ["Character", "foo"]]},
-
-{"description":"plaintext element",
- "input":"foobar",
- "output":[["StartTag","plaintext",{}], ["Character","foobar"]]},
-
-{"description":"Open angled bracket in unquoted attribute value state",
- "input":"",
- "output":["ParseError", ["StartTag", "a", {"a":"f<"}]]}
-
-]}
diff --git a/libs/html5lib/tests/testdata/tokenizer/test2.test b/libs/html5lib/tests/testdata/tokenizer/test2.test
deleted file mode 100644
index 87a8eba34..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/test2.test
+++ /dev/null
@@ -1,179 +0,0 @@
-{"tests": [
-
-{"description":"DOCTYPE without name",
-"input":"",
-"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]},
-
-{"description":"DOCTYPE without space before name",
-"input":"",
-"output":["ParseError", ["DOCTYPE", "html", null, null, true]]},
-
-{"description":"Incorrect DOCTYPE without a space before name",
-"input":"",
-"output":["ParseError", ["DOCTYPE", "foo", null, null, true]]},
-
-{"description":"DOCTYPE with publicId",
-"input":"",
-"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", null, true]]},
-
-{"description":"DOCTYPE with EOF after PUBLIC",
-"input":"",
-"output":[["DOCTYPE", "html", null, "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
-
-{"description":"DOCTYPE with publicId and systemId",
-"input":"",
-"output":[["DOCTYPE", "html", "-//W3C//DTD HTML Transitional 4.01//EN", "-//W3C//DTD HTML Transitional 4.01//EN", true]]},
-
-{"description":"DOCTYPE with > in double-quoted publicId",
-"input":"x",
-"output":["ParseError", ["DOCTYPE", "html", "", null, false], ["Character", "x"]]},
-
-{"description":"DOCTYPE with > in single-quoted publicId",
-"input":"x",
-"output":["ParseError", ["DOCTYPE", "html", "foo", "", false], ["Character", "x"]]},
-
-{"description":"Incomplete doctype",
-"input":"",
-"output":[["StartTag", "h", { "a":"&" }]]},
-
-{"description":"StartTag containing <",
-"input":"",
-"output":[["StartTag", "a",
-"output":[["StartTag","h",{},true]]},
-
-{"description":"Void element with permitted slash",
-"input":"
",
-"output":[["StartTag","br",{},true]]},
-
-{"description":"Void element with permitted slash (with attribute)",
-"input":"
",
-"output":[["StartTag","br",{"foo":"bar"},true]]},
-
-{"description":"StartTag containing /",
-"input":"",
-"output":["ParseError", ["StartTag", "h", { "a":"b" }]]},
-
-{"description":"Double-quoted attribute value",
-"input":"",
-"output":[["StartTag", "h", { "a":"b" }]]},
-
-{"description":"Unescaped ",
-"input":"",
-"output":["ParseError", ["Character", ""]]},
-
-{"description":"Illegal end tag name",
-"input":"1>",
-"output":["ParseError", ["Comment", "1"]]},
-
-{"description":"Simili processing instruction",
-"input":"",
-"output":["ParseError", ["Comment", "?namespace"]]},
-
-{"description":"A bogus comment stops at >, even if preceeded by two dashes",
-"input":"",
-"output":["ParseError", ["Comment", "?foo--"]]},
-
-{"description":"Unescaped <",
-"input":"foo < bar",
-"output":[["Character", "foo "], "ParseError", ["Character", "< bar"]]},
-
-{"description":"Null Byte Replacement",
-"input":"\u0000",
-"output":["ParseError", ["Character", "\u0000"]]},
-
-{"description":"Comment with dash",
-"input":"c",
-"output":[["Character", "a"], "ParseError", ["Comment", "b"], ["Character", "c"]]},
-
-{"description":"Empty end tag with following end tag",
-"input":"a>c",
-"output":[["Character", "a"], "ParseError", ["EndTag", "b"], ["Character", "c"]]}
-
-]}
diff --git a/libs/html5lib/tests/testdata/tokenizer/test3.test b/libs/html5lib/tests/testdata/tokenizer/test3.test
deleted file mode 100644
index 8fc529a2b..000000000
--- a/libs/html5lib/tests/testdata/tokenizer/test3.test
+++ /dev/null
@@ -1,6047 +0,0 @@
-{"tests": [
-
-{"description":"",
-"input":"",
-"output":[]},
-
-{"description":"\\u0009",
-"input":"\u0009",
-"output":[["Character", "\u0009"]]},
-
-{"description":"\\u000A",
-"input":"\u000A",
-"output":[["Character", "\u000A"]]},
-
-{"description":"\\u000B",
-"input":"\u000B",
-"output":["ParseError", ["Character", "\u000B"]]},
-
-{"description":"\\u000C",
-"input":"\u000C",
-"output":[["Character", "\u000C"]]},
-
-{"description":" ",
-"input":" ",
-"output":[["Character", " "]]},
-
-{"description":"!",
-"input":"!",
-"output":[["Character", "!"]]},
-
-{"description":"\"",
-"input":"\"",
-"output":[["Character", "\""]]},
-
-{"description":"%",
-"input":"%",
-"output":[["Character", "%"]]},
-
-{"description":"&",
-"input":"&",
-"output":[["Character", "&"]]},
-
-{"description":"'",
-"input":"'",
-"output":[["Character", "'"]]},
-
-{"description":",",
-"input":",",
-"output":[["Character", ","]]},
-
-{"description":"-",
-"input":"-",
-"output":[["Character", "-"]]},
-
-{"description":".",
-"input":".",
-"output":[["Character", "."]]},
-
-{"description":"/",
-"input":"/",
-"output":[["Character", "/"]]},
-
-{"description":"0",
-"input":"0",
-"output":[["Character", "0"]]},
-
-{"description":"1",
-"input":"1",
-"output":[["Character", "1"]]},
-
-{"description":"9",
-"input":"9",
-"output":[["Character", "9"]]},
-
-{"description":";",
-"input":";",
-"output":[["Character", ";"]]},
-
-{"description":"<",
-"input":"<",
-"output":["ParseError", ["Character", "<"]]},
-
-{"description":"<\\u0000",
-"input":"<\u0000",
-"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "\u0000"]]},
-
-{"description":"<\\u0009",
-"input":"<\u0009",
-"output":["ParseError", ["Character", "<\u0009"]]},
-
-{"description":"<\\u000A",
-"input":"<\u000A",
-"output":["ParseError", ["Character", "<\u000A"]]},
-
-{"description":"<\\u000B",
-"input":"<\u000B",
-"output":["ParseError", "ParseError", ["Character", "<\u000B"]]},
-
-{"description":"<\\u000C",
-"input":"<\u000C",
-"output":["ParseError", ["Character", "<\u000C"]]},
-
-{"description":"< ",
-"input":"< ",
-"output":["ParseError", ["Character", "< "]]},
-
-{"description":"",
-"input":"",
-"input":"",
-"output":["ParseError", ["Comment", "-- "]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", "-- "]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", "-- a"]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", "--!a"]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", "--!"]]},
-
-{"description":"",
-"input":"",
-"output":[["Comment", ""]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"",
-"input":"",
-"output":["ParseError", ["Comment", ""]]},
-
-{"description":"",
-"output":["ParseError",["Comment"," foo - - bar "]]},
-
-{"description":"FF between attributes",
-"input":"",
-"output":[["StartTag","a",{"b":"","c":""}]]}
-]}
-
-
diff --git a/libs/html5lib/tests/testdata/tree-construction/README.md b/libs/html5lib/tests/testdata/tree-construction/README.md
deleted file mode 100644
index 18a85ecff..000000000
--- a/libs/html5lib/tests/testdata/tree-construction/README.md
+++ /dev/null
@@ -1,104 +0,0 @@
-Tree Construction Tests
-=======================
-
-Each file containing tree construction tests consists of any number of
-tests separated by two newlines (LF) and a single newline before the end
-of the file. For instance:
-
- [TEST]LF
- LF
- [TEST]LF
- LF
- [TEST]LF
-
-Where [TEST] is the following format:
-
-Each test must begin with a string "\#data" followed by a newline (LF).
-All subsequent lines until a line that says "\#errors" are the test data
-and must be passed to the system being tested unchanged, except with the
-final newline (on the last line) removed.
-
-Then there must be a line that says "\#errors". It must be followed by
-one line per parse error that a conformant checker would return. It
-doesn't matter what those lines are, although they can't be
-"\#document-fragment", "\#document", "\#script-off", "\#script-on", or
-empty, the only thing that matters is that there be the right number
-of parse errors.
-
-Then there \*may\* be a line that says "\#document-fragment", which must
-be followed by a newline (LF), followed by a string of characters that
-indicates the context element, followed by a newline (LF). If the string
-of characters starts with "svg ", the context element is in the SVG
-namespace and the substring after "svg " is the local name. If the
-string of characters starts with "math ", the context element is in the
-MathML namespace and the substring after "math " is the local name.
-Otherwise, the context element is in the HTML namespace and the string
-is the local name. If this line is present the "\#data" must be parsed
-using the HTML fragment parsing algorithm with the context element as
-context.
-
-Then there \*may\* be a line that says "\#script-off" or
-"\#script-on". If a line that says "\#script-off" is present, the
-parser must set the scripting flag to disabled. If a line that says
-"\#script-on" is present, it must set it to enabled. Otherwise, the
-test should be run in both modes.
-
-Then there must be a line that says "\#document", which must be followed
-by a dump of the tree of the parsed DOM. Each node must be represented
-by a single line. Each line must start with "| ", followed by two spaces
-per parent node that the node has before the root document node.
-
-- Element nodes must be represented by a "`<`" then the *tag name
- string* "`>`", and all the attributes must be given, sorted
- lexicographically by UTF-16 code unit according to their *attribute
- name string*, on subsequent lines, as if they were children of the
- element node.
-- Attribute nodes must have the *attribute name string*, then an "="
- sign, then the attribute value in double quotes (").
-- Text nodes must be the string, in double quotes. Newlines aren't
- escaped.
-- Comments must be "`<`" then "`!-- `" then the data then "` -->`".
-- DOCTYPEs must be "``".
-- Processing instructions must be "``", then the target, then a
- space, then the data and then "`>`". (The HTML parser cannot emit
- processing instructions, but scripts can, and the WebVTT to DOM
- rules can emit them.)
-- Template contents are represented by the string "content" with the
- children below it.
-
-The *tag name string* is the local name prefixed by a namespace
-designator. For the HTML namespace, the namespace designator is the
-empty string, i.e. there's no prefix. For the SVG namespace, the
-namespace designator is "svg ". For the MathML namespace, the namespace
-designator is "math ".
-
-The *attribute name string* is the local name prefixed by a namespace
-designator. For no namespace, the namespace designator is the empty
-string, i.e. there's no prefix. For the XLink namespace, the namespace
-designator is "xlink ". For the XML namespace, the namespace designator
-is "xml ". For the XMLNS namespace, the namespace designator is "xmlns
-". Note the difference between "xlink:href" which is an attribute in no
-namespace with the local name "xlink:href" and "xlink href" which is an
-attribute in the xlink namespace with the local name "href".
-
-If there is also a "\#document-fragment" the bit following "\#document"
-must be a representation of the HTML fragment serialization for the
-context element given by "\#document-fragment".
-
-For example:
-
- #data
- One
Two
- #errors
- 3: Missing document type declaration
- #document
- |
- |
- |
- |
- | "One"
- |
- | "Two"
diff --git a/libs/html5lib/tests/testdata/tree-construction/adoption01.dat b/libs/html5lib/tests/testdata/tree-construction/adoption01.dat
deleted file mode 100644
index 38f98efde..000000000
--- a/libs/html5lib/tests/testdata/tree-construction/adoption01.dat
+++ /dev/null
@@ -1,354 +0,0 @@
-#data
-
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,10): adoption-agency-1.3
-#document
-|
-|
-|
-|
-|
-|
-
-#data
-12
3
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,12): adoption-agency-1.3
-#document
-|
-|
-|
-|
-| "1"
-|
-|
-| "2"
-| "3"
-
-#data
-13
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,17): adoption-agency-1.3
-#document
-|
-|
-|
-|
-| "1"
-|
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,12): adoption-agency-1.3
-#document
-|
-|
-|
-|
-| "1"
-|
-| "2"
-|
-| "3"
-
-#data
-1
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,20): adoption-agency-1.3
-(1,20): adoption-agency-1.3
-#document
-|
-|
-|
-|
-| "1"
-|
-|
-| "2"
-|
-|
-| "3"
-| "4"
-| "5"
-
-#data
-12
3
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,11): unexpected-character-implies-table-voodoo
-(1,14): unexpected-start-tag-implies-table-voodoo
-(1,15): unexpected-character-implies-table-voodoo
-(1,19): unexpected-end-tag-implies-table-voodoo
-(1,19): adoption-agency-1.3
-(1,20): unexpected-character-implies-table-voodoo
-(1,24): unexpected-end-tag-implies-table-voodoo
-(1,24): eof-in-table
-#document
-|
-|
-|
-|
-| "1"
-|
-|
-| "2"
-| "3"
-|
-
-#data
-
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-|
-|
-|
-|
-|
-|
-|
-|
-
-#data
-
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-|
-|
-|
-|
-|
-|
-|
-|
-|
-
-#data
-
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,16): adoption-agency-1.3
-(1,16): expected-closing-tag-but-got-eof
-#document
-|
-|
-|
-|
-|
-|
-|
-|
-|
-|
-
-#data
-123
45
-#errors
-(1,3): expected-doctype-but-got-start-tag
-(1,30): unexpected-end-tag
-(1,35): adoption-agency-1.3
-#document
-|
-|
-|
-|
-| "1"
-|
-| id="A"
-| "2"
-|
-| id="B"
-| "3"
-|
-| id="A"
-|
-| id="B"
-| "4"
-|
-| id="B"
-| "5"
-
-#data
-
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,10): unexpected-start-tag-implies-table-voodoo
-(1,11): unexpected-character-implies-table-voodoo
-(1,15): unexpected-cell-in-table-body
-(1,30): unexpected-implied-end-tag-in-table-view
-#document
-|
-|
-|
-|
-| "1"
-|
-| "3"
-|
-|
-|
-|
-| "2"
-
-#data
-
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,8): unexpected-character-implies-table-voodoo
-(1,12): unexpected-cell-in-table-body
-(1,22): unexpected-character-implies-table-voodoo
-#document
-|
-|
-|
-| "AC"
-| |
-#errors
-(1,9): expected-doctype-but-got-end-tag
-(1,9): unexpected-end-tag-before-html
-(1,13): unexpected-end-tag-before-html
-(1,18): unexpected-end-tag-before-html
-(1,22): unexpected-end-tag-before-html
-(1,26): unexpected-end-tag-before-html
-(1,35): unexpected-end-tag-before-html
-(1,39): unexpected-end-tag-before-html
-(1,47): unexpected-end-tag-before-html
-(1,52): unexpected-end-tag-before-html
-(1,58): unexpected-end-tag-before-html
-(1,64): unexpected-end-tag-before-html
-(1,72): unexpected-end-tag-before-html
-(1,79): unexpected-end-tag-before-html
-(1,88): unexpected-end-tag-before-html
-(1,93): unexpected-end-tag-before-html
-(1,98): unexpected-end-tag-before-html
-(1,103): unexpected-end-tag-before-html
-(1,108): unexpected-end-tag-before-html
-(1,113): unexpected-end-tag-before-html
-(1,118): unexpected-end-tag-before-html
-(1,130): unexpected-end-tag-after-body
-(1,130): unexpected-end-tag-treated-as
-(1,134): unexpected-end-tag
-(1,140): unexpected-end-tag
-(1,148): unexpected-end-tag
-(1,155): unexpected-end-tag
-(1,163): unexpected-end-tag
-(1,172): unexpected-end-tag
-(1,180): unexpected-end-tag
-(1,185): unexpected-end-tag
-(1,190): unexpected-end-tag
-(1,195): unexpected-end-tag
-(1,203): unexpected-end-tag
-(1,210): unexpected-end-tag
-(1,217): unexpected-end-tag
-(1,225): unexpected-end-tag
-(1,230): unexpected-end-tag
-(1,238): unexpected-end-tag
-(1,244): unexpected-end-tag
-(1,251): unexpected-end-tag
-(1,258): unexpected-end-tag
-(1,269): unexpected-end-tag
-(1,279): unexpected-end-tag
-(1,287): unexpected-end-tag
-(1,296): unexpected-end-tag
-(1,300): unexpected-end-tag
-(1,305): unexpected-end-tag
-(1,310): unexpected-end-tag
-(1,320): unexpected-end-tag
-(1,331): unexpected-end-tag
-(1,339): unexpected-end-tag
-(1,347): unexpected-end-tag
-(1,355): unexpected-end-tag
-(1,365): end-tag-too-early
-(1,378): end-tag-too-early
-(1,387): end-tag-too-early
-(1,393): end-tag-too-early
-(1,399): end-tag-too-early
-(1,404): end-tag-too-early
-(1,415): end-tag-too-early
-(1,425): end-tag-too-early
-(1,432): end-tag-too-early
-(1,437): end-tag-too-early
-(1,442): end-tag-too-early
-(1,447): unexpected-end-tag
-(1,454): unexpected-end-tag
-(1,460): unexpected-end-tag
-(1,467): unexpected-end-tag
-(1,476): end-tag-too-early
-(1,486): end-tag-too-early
-(1,495): end-tag-too-early
-(1,513): expected-eof-but-got-end-tag
-(1,513): unexpected-end-tag
-(1,520): unexpected-end-tag
-(1,529): unexpected-end-tag
-(1,537): unexpected-end-tag
-(1,547): unexpected-end-tag
-(1,557): unexpected-end-tag
-(1,568): unexpected-end-tag
-(1,579): unexpected-end-tag
-(1,590): unexpected-end-tag
-(1,599): unexpected-end-tag
-(1,611): unexpected-end-tag
-(1,622): unexpected-end-tag
-#document
-|
-|
-|
-|
-|
-
-#data
-
-#errors
-(1,7): expected-doctype-but-got-start-tag
-(1,20): unexpected-end-tag-implies-table-voodoo
-(1,20): unexpected-end-tag
-(1,24): unexpected-end-tag-implies-table-voodoo
-(1,24): unexpected-end-tag
-(1,29): unexpected-end-tag-implies-table-voodoo
-(1,29): unexpected-end-tag
-(1,33): unexpected-end-tag-implies-table-voodoo
-(1,33): unexpected-end-tag
-(1,37): unexpected-end-tag-implies-table-voodoo
-(1,37): unexpected-end-tag
-(1,46): unexpected-end-tag-implies-table-voodoo
-(1,46): unexpected-end-tag
-(1,50): unexpected-end-tag-implies-table-voodoo
-(1,50): unexpected-end-tag
-(1,58): unexpected-end-tag-implies-table-voodoo
-(1,58): unexpected-end-tag
-(1,63): unexpected-end-tag-implies-table-voodoo
-(1,63): unexpected-end-tag
-(1,69): unexpected-end-tag-implies-table-voodoo
-(1,69): end-tag-too-early
-(1,75): unexpected-end-tag-implies-table-voodoo
-(1,75): unexpected-end-tag
-(1,83): unexpected-end-tag-implies-table-voodoo
-(1,83): unexpected-end-tag
-(1,90): unexpected-end-tag-implies-table-voodoo
-(1,90): unexpected-end-tag
-(1,99): unexpected-end-tag-implies-table-voodoo
-(1,99): unexpected-end-tag
-(1,104): unexpected-end-tag-implies-table-voodoo
-(1,104): end-tag-too-early
-(1,109): unexpected-end-tag-implies-table-voodoo
-(1,109): end-tag-too-early
-(1,114): unexpected-end-tag-implies-table-voodoo
-(1,114): end-tag-too-early
-(1,119): unexpected-end-tag-implies-table-voodoo
-(1,119): end-tag-too-early
-(1,124): unexpected-end-tag-implies-table-voodoo
-(1,124): end-tag-too-early
-(1,129): unexpected-end-tag-implies-table-voodoo
-(1,129): end-tag-too-early
-(1,136): unexpected-end-tag-in-table-row
-(1,141): unexpected-end-tag-implies-table-voodoo
-(1,141): unexpected-end-tag-treated-as
-(1,145): unexpected-end-tag-implies-table-voodoo
-(1,145): unexpected-end-tag
-(1,151): unexpected-end-tag-implies-table-voodoo
-(1,151): unexpected-end-tag
-(1,159): unexpected-end-tag-implies-table-voodoo
-(1,159): unexpected-end-tag
-(1,166): unexpected-end-tag-implies-table-voodoo
-(1,166): unexpected-end-tag
-(1,174): unexpected-end-tag-implies-table-voodoo
-(1,174): unexpected-end-tag
-(1,183): unexpected-end-tag-implies-table-voodoo
-(1,183): unexpected-end-tag
-(1,196): unexpected-end-tag
-(1,201): unexpected-end-tag
-(1,206): unexpected-end-tag
-(1,214): unexpected-end-tag
-(1,221): unexpected-end-tag
-(1,228): unexpected-end-tag
-(1,236): unexpected-end-tag
-(1,241): unexpected-end-tag
-(1,249): unexpected-end-tag
-(1,255): unexpected-end-tag
-(1,262): unexpected-end-tag
-(1,269): unexpected-end-tag
-(1,280): unexpected-end-tag
-(1,290): unexpected-end-tag
-(1,298): unexpected-end-tag
-(1,307): unexpected-end-tag
-(1,311): unexpected-end-tag
-(1,316): unexpected-end-tag
-(1,321): unexpected-end-tag
-(1,331): unexpected-end-tag
-(1,342): unexpected-end-tag
-(1,350): unexpected-end-tag
-(1,358): unexpected-end-tag
-(1,366): unexpected-end-tag
-(1,376): end-tag-too-early
-(1,389): end-tag-too-early
-(1,398): end-tag-too-early
-(1,404): end-tag-too-early
-(1,410): end-tag-too-early
-(1,415): end-tag-too-early
-(1,426): end-tag-too-early
-(1,436): end-tag-too-early
-(1,443): end-tag-too-early
-(1,448): end-tag-too-early
-(1,453): end-tag-too-early
-(1,458): unexpected-end-tag
-(1,465): unexpected-end-tag
-(1,471): unexpected-end-tag
-(1,478): unexpected-end-tag
-(1,487): end-tag-too-early
-(1,497): end-tag-too-early
-(1,506): end-tag-too-early
-(1,524): expected-eof-but-got-end-tag
-(1,524): unexpected-end-tag
-(1,531): unexpected-end-tag
-(1,540): unexpected-end-tag
-(1,548): unexpected-end-tag
-(1,558): unexpected-end-tag
-(1,568): unexpected-end-tag
-(1,579): unexpected-end-tag
-(1,590): unexpected-end-tag
-(1,601): unexpected-end-tag
-(1,610): unexpected-end-tag
-(1,622): unexpected-end-tag
-(1,633): unexpected-end-tag
-#document
-|
-|
-|
-|
-|
-|
-|
-|
-
-#data
-