From 49b18815e506ffcd6839503fedce420b2e63ea5f Mon Sep 17 00:00:00 2001 From: Ricky Chien Date: Thu, 5 Jan 2017 15:14:45 +0800 Subject: [PATCH 01/22] Bug 1328828 - Implement Properties View r=Honza,jsnajdr MozReview-Commit-ID: EuFGC12V6BU --- .../netmonitor/shared/components/editor.js | 92 ++++++++++ .../netmonitor/shared/components/moz.build | 2 + .../shared/components/properties-view.js | 162 ++++++++++++++++++ devtools/client/themes/netmonitor.css | 73 ++++++-- 4 files changed, 317 insertions(+), 12 deletions(-) create mode 100644 devtools/client/netmonitor/shared/components/editor.js create mode 100644 devtools/client/netmonitor/shared/components/properties-view.js diff --git a/devtools/client/netmonitor/shared/components/editor.js b/devtools/client/netmonitor/shared/components/editor.js new file mode 100644 index 000000000000..bb5054674480 --- /dev/null +++ b/devtools/client/netmonitor/shared/components/editor.js @@ -0,0 +1,92 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { createClass, DOM, PropTypes } = require("devtools/client/shared/vendor/react"); +const SourceEditor = require("devtools/client/sourceeditor/editor"); + +const { div } = DOM; + +/** + * CodeMirror editor as a React component + */ +const Editor = createClass({ + displayName: "Editor", + + propTypes: { + open: PropTypes.bool, + text: PropTypes.string, + }, + + getDefaultProps() { + return { + open: true, + text: "", + }; + }, + + componentDidMount() { + const { text } = this.props; + + this.editor = new SourceEditor({ + lineNumbers: true, + readOnly: true, + value: text, + }); + + this.deferEditor = this.editor.appendTo(this.refs.editorElement); + }, + + componentDidUpdate(prevProps) { + const { mode, open, text } = this.props; + + if (!open) { + return; + } + + if (prevProps.mode !== mode) { + this.deferEditor.then(() => { + this.editor.setMode(mode); + }); + } + + if (prevProps.text !== text) { + this.deferEditor.then(() => { + // FIXME: Workaround for browser_net_accessibility test to + // make sure editor node exists while setting editor text. + // deferEditor workround should be removed in bug 1308442 + if (this.refs.editor) { + this.editor.setText(text); + } + }); + } + }, + + componentWillUnmount() { + this.deferEditor.then(() => { + this.editor.destroy(); + this.editor = null; + }); + this.deferEditor = null; + }, + + render() { + const { open } = this.props; + + return ( + div({ className: "editor-container devtools-monospace" }, + div({ + ref: "editorElement", + className: "editor-mount devtools-monospace", + // Using visibility instead of display property to avoid breaking + // CodeMirror indentation + style: { visibility: open ? "visible" : "hidden" }, + }), + ) + ); + } +}); + +module.exports = Editor; diff --git a/devtools/client/netmonitor/shared/components/moz.build b/devtools/client/netmonitor/shared/components/moz.build index 8d6644af7b7b..0b7451ff00cb 100644 --- a/devtools/client/netmonitor/shared/components/moz.build +++ b/devtools/client/netmonitor/shared/components/moz.build @@ -3,7 +3,9 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. DevToolsModules( + 'editor.js', 'preview-panel.js', + 'properties-view.js', 'security-panel.js', 'timings-panel.js', ) diff --git a/devtools/client/netmonitor/shared/components/properties-view.js b/devtools/client/netmonitor/shared/components/properties-view.js new file mode 100644 index 000000000000..eeb0e1caf194 --- /dev/null +++ b/devtools/client/netmonitor/shared/components/properties-view.js @@ -0,0 +1,162 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +const { + createClass, + createFactory, + DOM, + PropTypes, +} = require("devtools/client/shared/vendor/react"); +const { createFactories } = require("devtools/client/shared/components/reps/rep-utils"); +const { MODE } = require("devtools/client/shared/components/reps/constants"); +const { FILTER_SEARCH_DELAY } = require("../../constants"); + +// Components +const Editor = createFactory(require("devtools/client/netmonitor/shared/components/editor")); +const SearchBox = createFactory(require("devtools/client/shared/components/search-box")); +const TreeView = createFactory(require("devtools/client/shared/components/tree/tree-view")); +const TreeRow = createFactory(require("devtools/client/shared/components/tree/tree-row")); +const { Rep } = createFactories(require("devtools/client/shared/components/reps/rep")); + +const { div, tr, td } = DOM; + +/* + * Properties View component + * A scrollable tree view component which provides some useful features for + * representing object properties. + * + * Search filter - Set enableFilter to enable / disable SearchBox feature. + * Tree view - Default enabled. + * Source editor - Enable by specifying object level 1 property name to "editorText". + * Rep - Default enabled. + */ +const PropertiesView = createClass({ + displayName: "PropertiesView", + + propTypes: { + object: PropTypes.object, + enableInput: PropTypes.bool, + expandableStrings: PropTypes.bool, + filterPlaceHolder: PropTypes.string, + sectionNames: PropTypes.array, + }, + + getDefaultProps() { + return { + enableInput: true, + enableFilter: true, + expandableStrings: false, + filterPlaceHolder: "", + }; + }, + + getInitialState() { + return { + filterText: "", + }; + }, + + getRowClass(object, sectionNames) { + return sectionNames.includes(object.name) ? "tree-section" : ""; + }, + + onFilter(object, whiteList) { + let { name, value } = object; + let filterText = this.state.filterText; + + if (!filterText || whiteList.includes(name)) { + return true; + } + + let jsonString = JSON.stringify({ [name]: value }).toLowerCase(); + return jsonString.includes(filterText.toLowerCase()); + }, + + renderRowWithEditor(props) { + const { level, name, value } = props.member; + // Display source editor when prop name specify to editorText + if (level === 1 && name === "editorText") { + return ( + tr({}, + td({ colSpan: 2 }, + Editor({ text: value }) + ) + ) + ); + } + + return TreeRow(props); + }, + + renderValueWithRep(props) { + // Hide rep summary for sections + if (props.member.level === 0) { + return null; + } + + return Rep(Object.assign(props, { + // FIXME: A workaround for the issue in StringRep + // Force StringRep to crop the text everytime + member: Object.assign({}, props.member, { open: false }), + mode: MODE.TINY, + cropLimit: 60, + })); + }, + + updateFilterText(filterText) { + this.setState({ + filterText, + }); + }, + + render() { + const { + object, + decorator, + enableInput, + enableFilter, + expandableStrings, + filterPlaceHolder, + renderRow, + renderValue, + sectionNames, + } = this.props; + + return ( + div({ className: "properties-view" }, + enableFilter && div({ className: "searchbox-section" }, + SearchBox({ + delay: FILTER_SEARCH_DELAY, + type: "filter", + onChange: this.updateFilterText, + placeholder: filterPlaceHolder, + }), + ), + div({ className: "tree-container" }, + TreeView({ + object, + columns: [{ + id: "value", + width: "100%", + }], + decorator: decorator || { + getRowClass: (rowObject) => this.getRowClass(rowObject, sectionNames), + }, + enableInput, + expandableStrings, + expandedNodes: new Set(sectionNames.map((sec) => "/" + sec)), + onFilter: (props) => this.onFilter(props, sectionNames), + renderRow: renderRow || this.renderRowWithEditor, + renderValue: renderValue || this.renderValueWithRep, + }), + ), + ) + ); + } + +}); + +module.exports = PropertiesView; diff --git a/devtools/client/themes/netmonitor.css b/devtools/client/themes/netmonitor.css index bdf19cb415ab..9c48b74ba155 100644 --- a/devtools/client/themes/netmonitor.css +++ b/devtools/client/themes/netmonitor.css @@ -1120,24 +1120,73 @@ font-weight: 600; } -/* Customize default tree table style to align with devtools theme */ -.theme-light .treeTable .treeLabel, -.theme-light .treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover { - color: var(--theme-highlight-red); +.properties-view { + /* FIXME: Minus 24px * 2 for toolbox height + panel height + * Give a fixed panel container height in order to force tree view scrollable */ + height: calc(100vh - 48px); + display: flex; + flex-direction: column; } -.theme-dark .treeTable .treeLabel, -.theme-dark .treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover { - color: var(--theme-highlight-purple); +.properties-view .searchbox-section { + flex: 0 1 auto; } -.theme-firebug .treeTable .treeLabel { - color: var(--theme-body-color); +.properties-view .devtools-searchbox { + padding: 0; } -.treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover { - cursor: default; - text-decoration: none; +.properties-view .devtools-searchbox input { + margin: 1px 3px; +} + +.tree-container { + position: relative; + height: 100%; +} + +/* Make treeTable fill parent element and scrollable */ +.tree-container .treeTable { + position: absolute; + display: block; + overflow-y: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.properties-view .devtools-searchbox, +.tree-container .treeTable .tree-section { + width: 100%; + background-color: var(--theme-toolbar-background); +} + +.tree-container .treeTable .tree-section > * { + vertical-align: middle; +} + +.tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel, +.tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel:hover { + color: var(--theme-body-color-alt); +} + +.tree-container .treeTable .treeValueCell { + /* FIXME: Make value cell can be reduced to shorter width */ + max-width: 0; + padding-inline-end: 5px; +} + +.tree-container .objectBox { + white-space: nowrap; +} + +.editor-container, +.editor-mount, +.editor-mount iframe { + border: none; + width: 100%; + height: 100%; } /* From a564d3c51369e38ff0da79bb8b7427f9e4c10ee0 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:34:33 +0800 Subject: [PATCH 02/22] Bug 1311244 Part 0 - Preemptively fix unified build bustage in nsLayoutUtils. r=dbaron The is a preemptively fix for unified bustage after Part 2 adds a new file under layout/base/. The error was: In static member function 'static bool nsLayoutUtils::SupportsServoStyleBackend(nsIDocument*)': invalid static_cast from type 'nsIDocument*' to type 'nsDocument*' MozReview-Commit-ID: A8xTSPgh8Ls --HG-- extra : rebase_source : 35935c10e6fee97702ae2cdcd5651ef5096ed195 --- layout/base/nsLayoutUtils.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp index f99365bf6c39..44e80ebe4a2b 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -22,6 +22,7 @@ #include "mozilla/dom/ContentChild.h" #include "mozilla/Unused.h" #include "nsCharTraits.h" +#include "nsDocument.h" #include "nsFontMetrics.h" #include "nsPresContext.h" #include "nsIContent.h" From 8cddb87ec294503fbb9f20b255ac1976b1bd90bb Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:35:00 +0800 Subject: [PATCH 03/22] Bug 1311244 Part 1 - Use nsPoint type for center in nsCSSClipPathInstance. r=dbaron |center| should be of nsPoint type since all the arguments of ComputeObjectAnchorPoint() uses nsPoint and nsSize. We should only convert center to Point (which is an an UnknownUnits type) for APIs requiring Point type. MozReview-Commit-ID: EDrQGPUZp6m --HG-- extra : rebase_source : 813b8cb203752e6c63b0a405473f7d0cd9dbc3e6 --- layout/svg/nsCSSClipPathInstance.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/layout/svg/nsCSSClipPathInstance.cpp b/layout/svg/nsCSSClipPathInstance.cpp index c566de42299a..080101746b7a 100644 --- a/layout/svg/nsCSSClipPathInstance.cpp +++ b/layout/svg/nsCSSClipPathInstance.cpp @@ -133,7 +133,7 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), size, size, &topLeft, &anchor); - Point center = Point(anchor.x + aRefBox.x, anchor.y + aRefBox.y); + nsPoint center(anchor.x + aRefBox.x, anchor.y + aRefBox.y); const nsTArray& coords = basicShape->Coordinates(); MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); @@ -162,7 +162,8 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, nscoord appUnitsPerDevPixel = mTargetFrame->PresContext()->AppUnitsPerDevPixel(); - builder->Arc(center / appUnitsPerDevPixel, r / appUnitsPerDevPixel, + builder->Arc(Point(center.x, center.y) / appUnitsPerDevPixel, + r / appUnitsPerDevPixel, 0, Float(2 * M_PI)); builder->Close(); return builder->Finish(); @@ -181,7 +182,7 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), size, size, &topLeft, &anchor); - Point center = Point(anchor.x + aRefBox.x, anchor.y + aRefBox.y); + nsPoint center(anchor.x + aRefBox.x, anchor.y + aRefBox.y); const nsTArray& coords = basicShape->Coordinates(); MOZ_ASSERT(coords.Length() == 2, "wrong number of arguments"); @@ -202,7 +203,7 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, nscoord appUnitsPerDevPixel = mTargetFrame->PresContext()->AppUnitsPerDevPixel(); EllipseToBezier(builder.get(), - center / appUnitsPerDevPixel, + Point(center.x, center.y) / appUnitsPerDevPixel, Size(rx, ry) / appUnitsPerDevPixel); builder->Close(); return builder->Finish(); From e42b15fcf693729fc318b859d6bb4fb002d377bb Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:35:29 +0800 Subject: [PATCH 04/22] Bug 1311244 Part 2 - Create ShapeUtils, and move EnumerationToLength into it. r=dbaron More functions in nsCSSClipPathInstance will be refactored and moved into ShapeUtils in subsequent patches. MozReview-Commit-ID: LmJUevY8YGr --HG-- extra : rebase_source : 7cbfe60fec65833db3c7b7d7e9f3157b49b777eb --- layout/base/ShapeUtils.cpp | 33 +++++++++++++++++++++++ layout/base/ShapeUtils.h | 35 ++++++++++++++++++++++++ layout/base/moz.build | 2 ++ layout/svg/nsCSSClipPathInstance.cpp | 40 +++++++++++----------------- 4 files changed, 85 insertions(+), 25 deletions(-) create mode 100644 layout/base/ShapeUtils.cpp create mode 100644 layout/base/ShapeUtils.h diff --git a/layout/base/ShapeUtils.cpp b/layout/base/ShapeUtils.cpp new file mode 100644 index 000000000000..e671d1bbbd60 --- /dev/null +++ b/layout/base/ShapeUtils.cpp @@ -0,0 +1,33 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "mozilla/ShapeUtils.h" + +#include + +namespace mozilla { + +nscoord +ShapeUtils::ComputeShapeRadius(const StyleShapeRadius aType, + const nscoord aCenter, + const nscoord aPosMin, + const nscoord aPosMax) +{ + nscoord dist1 = std::abs(aPosMin - aCenter); + nscoord dist2 = std::abs(aPosMax - aCenter); + nscoord length = 0; + switch (aType) { + case StyleShapeRadius::FarthestSide: + length = dist1 > dist2 ? dist1 : dist2; + break; + case StyleShapeRadius::ClosestSide: + length = dist1 > dist2 ? dist2 : dist1; + break; + } + return length; +} + +} // namespace mozilla diff --git a/layout/base/ShapeUtils.h b/layout/base/ShapeUtils.h new file mode 100644 index 000000000000..3f051c2d0ff6 --- /dev/null +++ b/layout/base/ShapeUtils.h @@ -0,0 +1,35 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_ShapeUtils_h +#define mozilla_ShapeUtils_h + +#include "nsCoord.h" +#include "nsStyleConsts.h" + +namespace mozilla { + +// ShapeUtils is a namespace class containing utility functions related to +// processing basic shapes in the CSS Shapes Module. +// https://drafts.csswg.org/css-shapes/#basic-shape-functions +// +struct ShapeUtils final +{ + // Compute the length of a keyword , i.e. closest-side or + // farthest-side, for a circle or an ellipse on a single dimension. The + // caller needs to call for both dimensions and combine the result. + // https://drafts.csswg.org/css-shapes/#typedef-shape-radius. + // + // @return The length of the radius in app units. + static nscoord ComputeShapeRadius(const StyleShapeRadius aType, + const nscoord aCenter, + const nscoord aPosMin, + const nscoord aPosMax); +}; + +} // namespace mozilla + +#endif // mozilla_ShapeUtils_h diff --git a/layout/base/moz.build b/layout/base/moz.build index 331a63cbab90..92f8388c2dfa 100644 --- a/layout/base/moz.build +++ b/layout/base/moz.build @@ -80,6 +80,7 @@ EXPORTS.mozilla += [ 'RestyleManagerHandleInlines.h', 'ServoRestyleManager.h', 'ServoRestyleManagerInlines.h', + 'ShapeUtils.h', 'StaticPresData.h', ] @@ -114,6 +115,7 @@ UNIFIED_SOURCES += [ 'RestyleTracker.cpp', 'ScrollbarStyles.cpp', 'ServoRestyleManager.cpp', + 'ShapeUtils.cpp', 'StackArena.cpp', 'StaticPresData.cpp', 'TouchManager.cpp', diff --git a/layout/svg/nsCSSClipPathInstance.cpp b/layout/svg/nsCSSClipPathInstance.cpp index 080101746b7a..d51d074c26d9 100644 --- a/layout/svg/nsCSSClipPathInstance.cpp +++ b/layout/svg/nsCSSClipPathInstance.cpp @@ -11,6 +11,7 @@ #include "mozilla/dom/SVGSVGElement.h" #include "mozilla/gfx/2D.h" #include "mozilla/gfx/PathHelpers.h" +#include "mozilla/ShapeUtils.h" #include "nsCSSRendering.h" #include "nsIFrame.h" #include "nsRenderingContext.h" @@ -104,22 +105,6 @@ nsCSSClipPathInstance::CreateClipPath(DrawTarget* aDrawTarget) return builder->Finish(); } -static void -EnumerationToLength(nscoord& aCoord, StyleShapeRadius aType, - nscoord aCenter, nscoord aPosMin, nscoord aPosMax) -{ - nscoord dist1 = abs(aPosMin - aCenter); - nscoord dist2 = abs(aPosMax - aCenter); - switch (aType) { - case StyleShapeRadius::FarthestSide: - aCoord = dist1 > dist2 ? dist1 : dist2; - break; - case StyleShapeRadius::ClosestSide: - aCoord = dist1 > dist2 ? dist2 : dist1; - break; - } -} - already_AddRefed nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, const nsRect& aRefBox) @@ -140,11 +125,12 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, nscoord r = 0; if (coords[0].GetUnit() == eStyleUnit_Enumerated) { const auto styleShapeRadius = coords[0].GetEnumValue(); - nscoord horizontal, vertical; - EnumerationToLength(horizontal, styleShapeRadius, - center.x, aRefBox.x, aRefBox.x + aRefBox.width); - EnumerationToLength(vertical, styleShapeRadius, - center.y, aRefBox.y, aRefBox.y + aRefBox.height); + nscoord horizontal = + ShapeUtils::ComputeShapeRadius(styleShapeRadius, center.x, aRefBox.x, + aRefBox.x + aRefBox.width); + nscoord vertical = + ShapeUtils::ComputeShapeRadius(styleShapeRadius, center.y, aRefBox.y, + aRefBox.y + aRefBox.height); if (styleShapeRadius == StyleShapeRadius::FarthestSide) { r = horizontal > vertical ? horizontal : vertical; } else { @@ -188,14 +174,18 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, MOZ_ASSERT(coords.Length() == 2, "wrong number of arguments"); nscoord rx = 0, ry = 0; if (coords[0].GetUnit() == eStyleUnit_Enumerated) { - EnumerationToLength(rx, coords[0].GetEnumValue(), - center.x, aRefBox.x, aRefBox.x + aRefBox.width); + rx = ShapeUtils::ComputeShapeRadius(coords[0].GetEnumValue(), + center.x, + aRefBox.x, + aRefBox.x + aRefBox.width); } else { rx = nsRuleNode::ComputeCoordPercentCalc(coords[0], aRefBox.width); } if (coords[1].GetUnit() == eStyleUnit_Enumerated) { - EnumerationToLength(ry, coords[1].GetEnumValue(), - center.y, aRefBox.y, aRefBox.y + aRefBox.height); + ry = ShapeUtils::ComputeShapeRadius(coords[1].GetEnumValue(), + center.y, + aRefBox.y, + aRefBox.y + aRefBox.height); } else { ry = nsRuleNode::ComputeCoordPercentCalc(coords[1], aRefBox.height); } From 93b5370abd8a93155c9cd3efd46f5a60031e8dfa Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:35:53 +0800 Subject: [PATCH 05/22] Bug 1311244 Part 3 - Extract the computation of center as ComputeCircleOrEllipseCenter(). r=dbaron MozReview-Commit-ID: A6OTJ9PD43c --HG-- extra : rebase_source : c8b16ffaaf00c4ed3ec722d7502262005e9e21ec --- layout/base/ShapeUtils.cpp | 15 +++++++++++++++ layout/base/ShapeUtils.h | 12 ++++++++++++ layout/svg/nsCSSClipPathInstance.cpp | 16 ++++------------ 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/layout/base/ShapeUtils.cpp b/layout/base/ShapeUtils.cpp index e671d1bbbd60..ea41617e7cb9 100644 --- a/layout/base/ShapeUtils.cpp +++ b/layout/base/ShapeUtils.cpp @@ -8,6 +8,9 @@ #include +#include "nsCSSRendering.h" +#include "nsStyleStruct.h" + namespace mozilla { nscoord @@ -30,4 +33,16 @@ ShapeUtils::ComputeShapeRadius(const StyleShapeRadius aType, return length; } +nsPoint +ShapeUtils::ComputeCircleOrEllipseCenter(StyleBasicShape* const aBasicShape, + const nsRect& aRefBox) +{ + nsPoint topLeft, anchor; + nsSize size(aRefBox.Size()); + nsImageRenderer::ComputeObjectAnchorPoint(aBasicShape->GetPosition(), + size, size, + &topLeft, &anchor); + return nsPoint(anchor.x + aRefBox.x, anchor.y + aRefBox.y); +} + } // namespace mozilla diff --git a/layout/base/ShapeUtils.h b/layout/base/ShapeUtils.h index 3f051c2d0ff6..e763fec8c3d1 100644 --- a/layout/base/ShapeUtils.h +++ b/layout/base/ShapeUtils.h @@ -10,7 +10,11 @@ #include "nsCoord.h" #include "nsStyleConsts.h" +struct nsPoint; +struct nsRect; + namespace mozilla { +class StyleBasicShape; // ShapeUtils is a namespace class containing utility functions related to // processing basic shapes in the CSS Shapes Module. @@ -28,6 +32,14 @@ struct ShapeUtils final const nscoord aCenter, const nscoord aPosMin, const nscoord aPosMax); + + // Compute the center of a circle or an ellipse. + // + // @param aRefBox The reference box of the basic shape. + // @return The point of the center. + static nsPoint ComputeCircleOrEllipseCenter( + StyleBasicShape* const aBasicShape, + const nsRect& aRefBox); }; } // namespace mozilla diff --git a/layout/svg/nsCSSClipPathInstance.cpp b/layout/svg/nsCSSClipPathInstance.cpp index d51d074c26d9..a8440908f675 100644 --- a/layout/svg/nsCSSClipPathInstance.cpp +++ b/layout/svg/nsCSSClipPathInstance.cpp @@ -113,12 +113,8 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, RefPtr builder = aDrawTarget->CreatePathBuilder(); - nsPoint topLeft, anchor; - nsSize size = nsSize(aRefBox.width, aRefBox.height); - nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), - size, size, - &topLeft, &anchor); - nsPoint center(anchor.x + aRefBox.x, anchor.y + aRefBox.y); + nsPoint center = + ShapeUtils::ComputeCircleOrEllipseCenter(basicShape, aRefBox); const nsTArray& coords = basicShape->Coordinates(); MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); @@ -163,12 +159,8 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, RefPtr builder = aDrawTarget->CreatePathBuilder(); - nsPoint topLeft, anchor; - nsSize size = nsSize(aRefBox.width, aRefBox.height); - nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), - size, size, - &topLeft, &anchor); - nsPoint center(anchor.x + aRefBox.x, anchor.y + aRefBox.y); + nsPoint center = + ShapeUtils::ComputeCircleOrEllipseCenter(basicShape, aRefBox); const nsTArray& coords = basicShape->Coordinates(); MOZ_ASSERT(coords.Length() == 2, "wrong number of arguments"); From b78b4d97c4875a92d565d4c237ccf33283e9a470 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:36:05 +0800 Subject: [PATCH 06/22] Bug 1311244 Part 4 - Extract the computation of circle radius as ComputeCircleRadius(). r=dbaron MozReview-Commit-ID: LJNvNOoc7FI --HG-- extra : rebase_source : 1dd13c1727c2c31aad80995dcd4edaecf77819da --- layout/base/ShapeUtils.cpp | 32 ++++++++++++++++++++++++++++ layout/base/ShapeUtils.h | 8 +++++++ layout/svg/nsCSSClipPathInstance.cpp | 28 +----------------------- 3 files changed, 41 insertions(+), 27 deletions(-) diff --git a/layout/base/ShapeUtils.cpp b/layout/base/ShapeUtils.cpp index ea41617e7cb9..617b71424ad2 100644 --- a/layout/base/ShapeUtils.cpp +++ b/layout/base/ShapeUtils.cpp @@ -9,7 +9,10 @@ #include #include "nsCSSRendering.h" +#include "nsRuleNode.h" +#include "nsStyleCoord.h" #include "nsStyleStruct.h" +#include "SVGContentUtils.h" namespace mozilla { @@ -45,4 +48,33 @@ ShapeUtils::ComputeCircleOrEllipseCenter(StyleBasicShape* const aBasicShape, return nsPoint(anchor.x + aRefBox.x, anchor.y + aRefBox.y); } +nscoord +ShapeUtils::ComputeCircleRadius(StyleBasicShape* const aBasicShape, + const nsPoint& aCenter, + const nsRect& aRefBox) +{ + const nsTArray& coords = aBasicShape->Coordinates(); + MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); + nscoord r = 0; + if (coords[0].GetUnit() == eStyleUnit_Enumerated) { + const auto styleShapeRadius = coords[0].GetEnumValue(); + nscoord horizontal = + ComputeShapeRadius(styleShapeRadius, aCenter.x, aRefBox.x, aRefBox.XMost()); + nscoord vertical = + ComputeShapeRadius(styleShapeRadius, aCenter.y, aRefBox.y, aRefBox.YMost()); + r = styleShapeRadius == StyleShapeRadius::FarthestSide + ? std::max(horizontal, vertical) + : std::min(horizontal, vertical); + } else { + // We resolve percent value for circle() as defined here: + // https://drafts.csswg.org/css-shapes/#funcdef-circle + double referenceLength = + SVGContentUtils::ComputeNormalizedHypotenuse(aRefBox.width, + aRefBox.height); + r = nsRuleNode::ComputeCoordPercentCalc(coords[0], + NSToCoordRound(referenceLength)); + } + return r; +} + } // namespace mozilla diff --git a/layout/base/ShapeUtils.h b/layout/base/ShapeUtils.h index e763fec8c3d1..7541617d7e82 100644 --- a/layout/base/ShapeUtils.h +++ b/layout/base/ShapeUtils.h @@ -40,6 +40,14 @@ struct ShapeUtils final static nsPoint ComputeCircleOrEllipseCenter( StyleBasicShape* const aBasicShape, const nsRect& aRefBox); + + // Compute the radius for a circle. + // @param aCenter the center of the circle. + // @param aRefBox the reference box of the circle. + // @return The length of the radius in app unit. + static nscoord ComputeCircleRadius( + mozilla::StyleBasicShape* const aBasicShape, + const nsPoint& aCenter, const nsRect& aRefBox); }; } // namespace mozilla diff --git a/layout/svg/nsCSSClipPathInstance.cpp b/layout/svg/nsCSSClipPathInstance.cpp index a8440908f675..c87b0673b3fc 100644 --- a/layout/svg/nsCSSClipPathInstance.cpp +++ b/layout/svg/nsCSSClipPathInstance.cpp @@ -115,33 +115,7 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, nsPoint center = ShapeUtils::ComputeCircleOrEllipseCenter(basicShape, aRefBox); - - const nsTArray& coords = basicShape->Coordinates(); - MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); - nscoord r = 0; - if (coords[0].GetUnit() == eStyleUnit_Enumerated) { - const auto styleShapeRadius = coords[0].GetEnumValue(); - nscoord horizontal = - ShapeUtils::ComputeShapeRadius(styleShapeRadius, center.x, aRefBox.x, - aRefBox.x + aRefBox.width); - nscoord vertical = - ShapeUtils::ComputeShapeRadius(styleShapeRadius, center.y, aRefBox.y, - aRefBox.y + aRefBox.height); - if (styleShapeRadius == StyleShapeRadius::FarthestSide) { - r = horizontal > vertical ? horizontal : vertical; - } else { - r = horizontal < vertical ? horizontal : vertical; - } - } else { - // We resolve percent value for circle() as defined here: - // https://drafts.csswg.org/css-shapes/#funcdef-circle - double referenceLength = - SVGContentUtils::ComputeNormalizedHypotenuse(aRefBox.width, - aRefBox.height); - r = nsRuleNode::ComputeCoordPercentCalc(coords[0], - NSToCoordRound(referenceLength)); - } - + nscoord r = ShapeUtils::ComputeCircleRadius(basicShape, center, aRefBox); nscoord appUnitsPerDevPixel = mTargetFrame->PresContext()->AppUnitsPerDevPixel(); builder->Arc(Point(center.x, center.y) / appUnitsPerDevPixel, From 6dbe03d519a6ce9898e44aab855ecb4f71250240 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:36:19 +0800 Subject: [PATCH 07/22] Bug 1311244 Part 5 - Convert FloatInfo's copy constructor into a move constructor. r=dbaron Use move constructor for two reasons. 1) The copy constructor is needed only when appending FloatInfo to mFloats, so using move constructor will likely be more efficient if some of the member variables support move constructor. 2) Part 6 will added a UniquePtr member to FloatInfo, so using move constructor becomes necessary. Also change the return value of AddFloat() to void to simplify the code, since all the other callers do not check the return value, and BlockReflowInput::FloatAndPlaceFloat() only asserts in debug mode. I assume it's safe to omit the OOM check. MozReview-Commit-ID: GVbbsdBjr7b --HG-- extra : rebase_source : 4765bbcf5c2533845bd8f7fb00117983429a622e --- layout/generic/BlockReflowInput.cpp | 5 ++--- layout/generic/nsFloatManager.cpp | 19 ++++++++----------- layout/generic/nsFloatManager.h | 8 ++++---- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/layout/generic/BlockReflowInput.cpp b/layout/generic/BlockReflowInput.cpp index 15b1b4c631ec..8c081dc44563 100644 --- a/layout/generic/BlockReflowInput.cpp +++ b/layout/generic/BlockReflowInput.cpp @@ -988,9 +988,8 @@ BlockReflowInput::FlowAndPlaceFloat(nsIFrame* aFloat) region.BSize(wm) = std::max(region.BSize(wm), ContentBSize() - floatPos.B(wm)); } - DebugOnly rv = mFloatManager->AddFloat(aFloat, region, wm, - ContainerSize()); - MOZ_ASSERT(NS_SUCCEEDED(rv), "bad float placement"); + mFloatManager->AddFloat(aFloat, region, wm, ContainerSize()); + // store region nsFloatManager::StoreRegionFor(wm, aFloat, region, ContainerSize()); diff --git a/layout/generic/nsFloatManager.cpp b/layout/generic/nsFloatManager.cpp index e0c3366cfde2..cc647db8a747 100644 --- a/layout/generic/nsFloatManager.cpp +++ b/layout/generic/nsFloatManager.cpp @@ -261,7 +261,7 @@ nsFloatManager::GetFlowArea(WritingMode aWM, nscoord aBCoord, nscoord aBSize, lineRight - lineLeft, blockSize, haveFloats); } -nsresult +void nsFloatManager::AddFloat(nsIFrame* aFloatFrame, const LogicalRect& aMarginRect, WritingMode aWM, const nsSize& aContainerSize) { @@ -290,10 +290,7 @@ nsFloatManager::AddFloat(nsIFrame* aFloatFrame, const LogicalRect& aMarginRect, if (thisBEnd > sideBEnd) sideBEnd = thisBEnd; - if (!mFloats.AppendElement(info)) - return NS_ERROR_OUT_OF_MEMORY; - - return NS_OK; + mFloats.AppendElement(Move(info)); } // static @@ -577,12 +574,12 @@ nsFloatManager::FloatInfo::FloatInfo(nsIFrame* aFrame, } #ifdef NS_BUILD_REFCNT_LOGGING -nsFloatManager::FloatInfo::FloatInfo(const FloatInfo& aOther) - : mFrame(aOther.mFrame) - , mLeftBEnd(aOther.mLeftBEnd) - , mRightBEnd(aOther.mRightBEnd) - , mRect(aOther.mRect) - , mShapeBoxRect(aOther.mShapeBoxRect) +nsFloatManager::FloatInfo::FloatInfo(FloatInfo&& aOther) + : mFrame(Move(aOther.mFrame)) + , mLeftBEnd(Move(aOther.mLeftBEnd)) + , mRightBEnd(Move(aOther.mRightBEnd)) + , mRect(Move(aOther.mRect)) + , mShapeBoxRect(Move(aOther.mShapeBoxRect)) { MOZ_COUNT_CTOR(nsFloatManager::FloatInfo); } diff --git a/layout/generic/nsFloatManager.h b/layout/generic/nsFloatManager.h index 3f65bda04c35..c2a7f0afc42c 100644 --- a/layout/generic/nsFloatManager.h +++ b/layout/generic/nsFloatManager.h @@ -201,9 +201,9 @@ public: * aMarginRect is relative to the current translation. The caller * must ensure aMarginRect.height >= 0 and aMarginRect.width >= 0. */ - nsresult AddFloat(nsIFrame* aFloatFrame, - const mozilla::LogicalRect& aMarginRect, - mozilla::WritingMode aWM, const nsSize& aContainerSize); + void AddFloat(nsIFrame* aFloatFrame, + const mozilla::LogicalRect& aMarginRect, + mozilla::WritingMode aWM, const nsSize& aContainerSize); /** * Notify that we tried to place a float that could not fit at all and @@ -387,7 +387,7 @@ private: const nscoord aRadiusY); #ifdef NS_BUILD_REFCNT_LOGGING - FloatInfo(const FloatInfo& aOther); + FloatInfo(FloatInfo&& aOther); ~FloatInfo(); #endif From af28dce861839d58fd1e76b6d859c5b36b41db5d Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:36:30 +0800 Subject: [PATCH 08/22] Bug 1311244 Part 6 - Add ShapeInfo and move impl to BoxShapeInfo. r=dbaron Create ShapeInfo as a base class for implementing all the shapes. In this design, we only need to create the correct subclass in FloatInfo's constructor whenever shape-outside is used rather than manually branching on StyleShapeSourceType and StyleBasicShape in all the methods like LineRight(), LineLeft(), etc. The concrete subclass of ShapeInfo could focus on implementing how its shape influence the flow area by overriding the needed methods in ShapeInfo. Move ComputeEllipseLineInterceptDiff() and XInterceptAtY() under the scope nsFloatManager so that they could be used by BoxShapeInfo and all the other ShpapeInfo subclasses yet to come. MozReview-Commit-ID: ETVc5FdGNha --HG-- extra : rebase_source : c73b0d0be2350db3eedb61b565de194842352ba1 --- layout/generic/nsFloatManager.cpp | 258 +++++++++++++++++------------- layout/generic/nsFloatManager.h | 101 ++++++++---- 2 files changed, 215 insertions(+), 144 deletions(-) diff --git a/layout/generic/nsFloatManager.cpp b/layout/generic/nsFloatManager.cpp index cc647db8a747..d88490c37f78 100644 --- a/layout/generic/nsFloatManager.cpp +++ b/layout/generic/nsFloatManager.cpp @@ -527,6 +527,91 @@ nsFloatManager::ClearContinues(StyleClear aBreakType) const aBreakType == StyleClear::Right)); } +///////////////////////////////////////////////////////////////////////////// +// BoxShapeInfo + +nscoord +nsFloatManager::BoxShapeInfo::LineLeft(WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const +{ + nscoord radii[8]; + bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); + + if (!hasRadii) { + return mShapeBoxRect.x; + } + + // Get the physical side for line-left since border-radii are in + // the physical axis. + mozilla::Side lineLeftSide = + aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirLeft)); + nscoord blockStartCornerRadiusL = + radii[SideToHalfCorner(lineLeftSide, true, false)]; + nscoord blockStartCornerRadiusB = + radii[SideToHalfCorner(lineLeftSide, true, true)]; + nscoord blockEndCornerRadiusL = + radii[SideToHalfCorner(lineLeftSide, false, false)]; + nscoord blockEndCornerRadiusB = + radii[SideToHalfCorner(lineLeftSide, false, true)]; + + if (aWM.IsLineInverted()) { + // This happens only when aWM is vertical-lr. Need to swap blockStart + // and blockEnd corners. + std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); + std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); + } + + nscoord lineLeftDiff = + ComputeEllipseLineInterceptDiff( + mShapeBoxRect.y, mShapeBoxRect.YMost(), + blockStartCornerRadiusL, blockStartCornerRadiusB, + blockEndCornerRadiusL, blockEndCornerRadiusB, + aBStart, aBEnd); + return mShapeBoxRect.x + lineLeftDiff; +} + +nscoord +nsFloatManager::BoxShapeInfo::LineRight(WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const +{ + nscoord radii[8]; + bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); + + if (!hasRadii) { + return mShapeBoxRect.XMost(); + } + + // Get the physical side for line-right since border-radii are in + // the physical axis. + mozilla::Side lineRightSide = + aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirRight)); + nscoord blockStartCornerRadiusL = + radii[SideToHalfCorner(lineRightSide, false, false)]; + nscoord blockStartCornerRadiusB = + radii[SideToHalfCorner(lineRightSide, false, true)]; + nscoord blockEndCornerRadiusL = + radii[SideToHalfCorner(lineRightSide, true, false)]; + nscoord blockEndCornerRadiusB = + radii[SideToHalfCorner(lineRightSide, true, true)]; + + if (aWM.IsLineInverted()) { + // This happens only when aWM is vertical-lr. Need to swap blockStart + // and blockEnd corners. + std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); + std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); + } + + nscoord lineRightDiff = + ComputeEllipseLineInterceptDiff( + mShapeBoxRect.y, mShapeBoxRect.YMost(), + blockStartCornerRadiusL, blockStartCornerRadiusB, + blockEndCornerRadiusL, blockEndCornerRadiusB, + aBStart, aBEnd); + return mShapeBoxRect.XMost() - lineRightDiff; +} + ///////////////////////////////////////////////////////////////////////////// // FloatInfo @@ -545,31 +630,36 @@ nsFloatManager::FloatInfo::FloatInfo(nsIFrame* aFrame, const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; + if (shapeOutside.GetType() == StyleShapeSourceType::None) { + return; + } + + // Initialize 's reference rect. + LogicalRect rect = aMarginRect; + + switch (shapeOutside.GetReferenceBox()) { + case StyleShapeOutsideShapeBox::Content: + rect.Deflate(aWM, mFrame->GetLogicalUsedPadding(aWM)); + MOZ_FALLTHROUGH; + case StyleShapeOutsideShapeBox::Padding: + rect.Deflate(aWM, mFrame->GetLogicalUsedBorder(aWM)); + MOZ_FALLTHROUGH; + case StyleShapeOutsideShapeBox::Border: + rect.Deflate(aWM, mFrame->GetLogicalUsedMargin(aWM)); + break; + case StyleShapeOutsideShapeBox::Margin: + // Do nothing. rect is already a margin rect. + break; + case StyleShapeOutsideShapeBox::NoBox: + MOZ_ASSERT_UNREACHABLE("Why don't we have a shape-box?"); + break; + } + if (shapeOutside.GetType() == StyleShapeSourceType::Box) { - // Initialize shape-box reference rect. - LogicalRect rect = aMarginRect; - - switch (shapeOutside.GetReferenceBox()) { - case StyleShapeOutsideShapeBox::Content: - rect.Deflate(aWM, mFrame->GetLogicalUsedPadding(aWM)); - MOZ_FALLTHROUGH; - case StyleShapeOutsideShapeBox::Padding: - rect.Deflate(aWM, mFrame->GetLogicalUsedBorder(aWM)); - MOZ_FALLTHROUGH; - case StyleShapeOutsideShapeBox::Border: - rect.Deflate(aWM, mFrame->GetLogicalUsedMargin(aWM)); - break; - case StyleShapeOutsideShapeBox::Margin: - // Do nothing. rect is already a margin rect. - break; - case StyleShapeOutsideShapeBox::NoBox: - MOZ_ASSERT_UNREACHABLE("Why don't we have a shape-box?"); - break; - } - - mShapeBoxRect.emplace(rect.LineLeft(aWM, aContainerSize) + aLineLeft, - rect.BStart(aWM) + aBlockStart, - rect.ISize(aWM), rect.BSize(aWM)); + nsRect shapeBoxRect(rect.LineLeft(aWM, aContainerSize) + aLineLeft, + rect.BStart(aWM) + aBlockStart, + rect.ISize(aWM), rect.BSize(aWM)); + mShapeInfo = MakeUnique(shapeBoxRect, mFrame); } } @@ -579,7 +669,7 @@ nsFloatManager::FloatInfo::FloatInfo(FloatInfo&& aOther) , mLeftBEnd(Move(aOther.mLeftBEnd)) , mRightBEnd(Move(aOther.mRightBEnd)) , mRect(Move(aOther.mRect)) - , mShapeBoxRect(Move(aOther.mShapeBoxRect)) + , mShapeInfo(Move(aOther.mShapeInfo)) { MOZ_COUNT_CTOR(nsFloatManager::FloatInfo); } @@ -601,51 +691,10 @@ nsFloatManager::FloatInfo::LineLeft(WritingMode aWM, } MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; - if (shapeOutside.GetType() == StyleShapeSourceType::None) { + if (!mShapeInfo) { return LineLeft(); } - - if (shapeOutside.GetType() == StyleShapeSourceType::Box) { - nscoord radii[8]; - bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); - - if (!hasRadii) { - return ShapeBoxRect().x; - } - - // Get the physical side for line-left since border-radii are in - // the physical axis. - mozilla::Side lineLeftSide = - aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirLeft)); - nscoord blockStartCornerRadiusL = - radii[SideToHalfCorner(lineLeftSide, true, false)]; - nscoord blockStartCornerRadiusB = - radii[SideToHalfCorner(lineLeftSide, true, true)]; - nscoord blockEndCornerRadiusL = - radii[SideToHalfCorner(lineLeftSide, false, false)]; - nscoord blockEndCornerRadiusB = - radii[SideToHalfCorner(lineLeftSide, false, true)]; - - if (aWM.IsLineInverted()) { - // This happens only when aWM is vertical-lr. Need to swap blockStart - // and blockEnd corners. - std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); - std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); - } - - nscoord lineLeftDiff = - ComputeEllipseLineInterceptDiff( - ShapeBoxRect().y, ShapeBoxRect().YMost(), - blockStartCornerRadiusL, blockStartCornerRadiusB, - blockEndCornerRadiusL, blockEndCornerRadiusB, - aBStart, aBEnd); - return ShapeBoxRect().x + lineLeftDiff; - } - - // XXX: Other shape source types are not implemented yet. - - return LineLeft(); + return mShapeInfo->LineLeft(aWM, aBStart, aBEnd); } nscoord @@ -659,55 +708,42 @@ nsFloatManager::FloatInfo::LineRight(WritingMode aWM, } MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; - if (shapeOutside.GetType() == StyleShapeSourceType::None) { + if (!mShapeInfo) { return LineRight(); } + return mShapeInfo->LineRight(aWM, aBStart, aBEnd); +} - if (shapeOutside.GetType() == StyleShapeSourceType::Box) { - nscoord radii[8]; - bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); - - if (!hasRadii) { - return ShapeBoxRect().XMost(); - } - - // Get the physical side for line-right since border-radii are in - // the physical axis. - mozilla::Side lineRightSide = - aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirRight)); - nscoord blockStartCornerRadiusL = - radii[SideToHalfCorner(lineRightSide, false, false)]; - nscoord blockStartCornerRadiusB = - radii[SideToHalfCorner(lineRightSide, false, true)]; - nscoord blockEndCornerRadiusL = - radii[SideToHalfCorner(lineRightSide, true, false)]; - nscoord blockEndCornerRadiusB = - radii[SideToHalfCorner(lineRightSide, true, true)]; - - if (aWM.IsLineInverted()) { - // This happens only when aWM is vertical-lr. Need to swap blockStart - // and blockEnd corners. - std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); - std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); - } - - nscoord lineRightDiff = - ComputeEllipseLineInterceptDiff( - ShapeBoxRect().y, ShapeBoxRect().YMost(), - blockStartCornerRadiusL, blockStartCornerRadiusB, - blockEndCornerRadiusL, blockEndCornerRadiusB, - aBStart, aBEnd); - return ShapeBoxRect().XMost() - lineRightDiff; +nscoord +nsFloatManager::FloatInfo::BStart(ShapeType aShapeType) const +{ + if (aShapeType == ShapeType::Margin) { + return BStart(); } - // XXX: Other shape source types are not implemented yet. + MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); + if (!mShapeInfo) { + return BStart(); + } + return mShapeInfo->BStart(); +} - return LineRight(); +nscoord +nsFloatManager::FloatInfo::BEnd(ShapeType aShapeType) const +{ + if (aShapeType == ShapeType::Margin) { + return BEnd(); + } + + MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); + if (!mShapeInfo) { + return BEnd(); + } + return mShapeInfo->BEnd(); } /* static */ nscoord -nsFloatManager::FloatInfo::ComputeEllipseLineInterceptDiff( +nsFloatManager::ComputeEllipseLineInterceptDiff( const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, @@ -777,9 +813,9 @@ nsFloatManager::FloatInfo::ComputeEllipseLineInterceptDiff( } /* static */ nscoord -nsFloatManager::FloatInfo::XInterceptAtY(const nscoord aY, - const nscoord aRadiusX, - const nscoord aRadiusY) +nsFloatManager::XInterceptAtY(const nscoord aY, + const nscoord aRadiusX, + const nscoord aRadiusY) { // Solve for x in the ellipse equation (x/radiusX)^2 + (y/radiusY)^2 = 1. MOZ_ASSERT(aRadiusY > 0); diff --git a/layout/generic/nsFloatManager.h b/layout/generic/nsFloatManager.h index c2a7f0afc42c..8a078a885890 100644 --- a/layout/generic/nsFloatManager.h +++ b/layout/generic/nsFloatManager.h @@ -10,7 +10,7 @@ #define nsFloatManager_h_ #include "mozilla/Attributes.h" -#include "mozilla/Maybe.h" +#include "mozilla/UniquePtr.h" #include "mozilla/WritingModes.h" #include "nsCoord.h" #include "nsFrameList.h" // for DEBUG_FRAME_DUMP @@ -331,6 +331,68 @@ public: #endif private: + // Compute the minimum line-axis difference between the bounding shape + // box and its rounded corner within the given band (block-axis region). + // This is used as a helper function to compute the LineRight() and + // LineLeft(). See the picture in the implementation for an example. + // RadiusL and RadiusB stand for radius on the line-axis and block-axis. + // + // Returns radius-x diff on the line-axis, or 0 if there's no rounded + // corner within the given band. + static nscoord ComputeEllipseLineInterceptDiff( + const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, + const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, + const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, + const nscoord aBandBStart, const nscoord aBandBEnd); + + static nscoord XInterceptAtY(const nscoord aY, const nscoord aRadiusX, + const nscoord aRadiusY); + + // ShapeInfo is an abstract class for implementing all the shapes in CSS + // Shapes Module. A subclass needs to override all the methods to adjust + // the flow area with respect to its shape. + class ShapeInfo + { + public: + virtual ~ShapeInfo() {} + + virtual nscoord LineLeft(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const = 0; + virtual nscoord LineRight(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const = 0; + virtual nscoord BStart() const = 0; + virtual nscoord BEnd() const = 0; + }; + + // Implements shape-outside: . + class BoxShapeInfo final : public ShapeInfo + { + public: + BoxShapeInfo(const nsRect& aShapeBoxRect, nsIFrame* const aFrame) + : mShapeBoxRect(aShapeBoxRect) + , mFrame(aFrame) + { + } + + nscoord LineLeft(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const override; + nscoord LineRight(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const override; + nscoord BStart() const override { return mShapeBoxRect.y; } + nscoord BEnd() const override { return mShapeBoxRect.YMost(); } + + private: + // This is the reference box of css shape-outside if specified, which + // implements the value in the CSS Shapes Module Level 1. + // The coordinate space is the same as FloatInfo::mRect. + const nsRect mShapeBoxRect; + // The frame of the float. + nsIFrame* const mFrame; + }; struct FloatInfo { nsIFrame *const mFrame; @@ -350,8 +412,6 @@ private: nscoord BSize() const { return mRect.height; } bool IsEmpty() const { return mRect.IsEmpty(); } - nsRect ShapeBoxRect() const { return mShapeBoxRect.valueOr(mRect); } - // aBStart and aBEnd are the starting and ending coordinate of a band. // LineLeft() and LineRight() return the innermost line-left extent and // line-right extent within the given band, respectively. @@ -359,32 +419,8 @@ private: const nscoord aBStart, const nscoord aBEnd) const; nscoord LineRight(mozilla::WritingMode aWM, ShapeType aShapeType, const nscoord aBStart, const nscoord aBEnd) const; - - nscoord BStart(ShapeType aShapeType) const - { - return aShapeType == ShapeType::Margin ? BStart() : ShapeBoxRect().y; - } - nscoord BEnd(ShapeType aShapeType) const - { - return aShapeType == ShapeType::Margin ? BEnd() : ShapeBoxRect().YMost(); - } - - // Compute the minimum line-axis difference between the bounding shape - // box and its rounded corner within the given band (block-axis region). - // This is used as a helper function to compute the LineRight() and - // LineLeft(). See the picture in the implementation for an example. - // RadiusL and RadiusB stand for radius on the line-axis and block-axis. - // - // Returns radius-x diff on the line-axis, or 0 if there's no rounded - // corner within the given band. - static nscoord ComputeEllipseLineInterceptDiff( - const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, - const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, - const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, - const nscoord aBandBStart, const nscoord aBandBEnd); - - static nscoord XInterceptAtY(const nscoord aY, const nscoord aRadiusX, - const nscoord aRadiusY); + nscoord BStart(ShapeType aShapeType) const; + nscoord BEnd(ShapeType aShapeType) const; #ifdef NS_BUILD_REFCNT_LOGGING FloatInfo(FloatInfo&& aOther); @@ -398,10 +434,9 @@ private: // the line-relative axis of the frame manager and its block // coordinates are in the frame manager's real block direction. nsRect mRect; - // This is the reference box of css shape-outside if specified, which - // implements the value in the CSS Shapes Module Level 1. - // The coordinate setup is the same as mRect. - mozilla::Maybe mShapeBoxRect; + // Pointer to a concrete subclass of ShapeInfo or null, which means that + // there is no shape-outside. + mozilla::UniquePtr mShapeInfo; }; #ifdef DEBUG From 54c22b733c9a684a27f46e7d1110bb6d77d20340 Mon Sep 17 00:00:00 2001 From: Ting-Yu Lin Date: Fri, 6 Jan 2017 16:36:43 +0800 Subject: [PATCH 09/22] Bug 1311244 Part 7 - Implement shape-outside: circle(). r=dbaron circle() allows the user to define an empty flow area, so IsEmpty() needs to be overridden. The flow area defined by a shape needs to be clipped to the margin-box per https://drafts.csswg.org/css-shapes/#relation-to-box-model-and-float-behavior In the reftests, both clip-path and shape-outside uses the same value so that it's easier to debug visually. Add LogicalPoint::LineRelative() because we need to convert a point's I() to the line-axis in nsFloatManager. LineRelative() differs from I() in all 'rtl' direction per https://drafts.csswg.org/css-writing-modes-3/#logical-to-physical MozReview-Commit-ID: FxQaFPrEQ73 --HG-- extra : rebase_source : 02b4eafdff42477ef2c69d604a1650db01f954e4 --- layout/generic/WritingModes.h | 10 ++ layout/generic/nsFloatManager.cpp | 100 ++++++++++++++++-- layout/generic/nsFloatManager.h | 34 ++++++ .../w3c-css/submitted/shapes1/reftest.list | 28 ++++- .../shapes1/shape-outside-circle-001-ref.html | 51 +++++++++ .../shapes1/shape-outside-circle-001.html | 54 ++++++++++ .../shapes1/shape-outside-circle-002-ref.html | 52 +++++++++ .../shapes1/shape-outside-circle-002.html | 55 ++++++++++ .../shapes1/shape-outside-circle-003-ref.html | 52 +++++++++ .../shapes1/shape-outside-circle-003.html | 55 ++++++++++ .../shapes1/shape-outside-circle-004-ref.html | 53 ++++++++++ .../shapes1/shape-outside-circle-004.html | 56 ++++++++++ .../shapes1/shape-outside-circle-005-ref.html | 45 ++++++++ .../shapes1/shape-outside-circle-005.html | 48 +++++++++ .../shapes1/shape-outside-circle-006.html | 49 +++++++++ .../shapes1/shape-outside-circle-007.html | 48 +++++++++ .../shapes1/shape-outside-circle-008-ref.html | 46 ++++++++ .../shapes1/shape-outside-circle-008.html | 49 +++++++++ .../shapes1/shape-outside-circle-009.html | 49 +++++++++ .../shapes1/shape-outside-circle-010-ref.html | 45 ++++++++ .../shapes1/shape-outside-circle-010.html | 48 +++++++++ .../shapes1/shape-outside-circle-011-ref.html | 46 ++++++++ .../shapes1/shape-outside-circle-011.html | 49 +++++++++ .../shapes1/shape-outside-circle-012.html | 50 +++++++++ .../shapes1/shape-outside-circle-013.html | 49 +++++++++ .../shapes1/shape-outside-circle-014-ref.html | 47 ++++++++ .../shapes1/shape-outside-circle-014.html | 50 +++++++++ .../shapes1/shape-outside-circle-015.html | 50 +++++++++ .../shapes1/shape-outside-circle-016-ref.html | 46 ++++++++ .../shapes1/shape-outside-circle-016.html | 49 +++++++++ .../shapes1/shape-outside-circle-017-ref.html | 54 ++++++++++ .../shapes1/shape-outside-circle-017.html | 56 ++++++++++ .../shapes1/shape-outside-circle-018-ref.html | 55 ++++++++++ .../shapes1/shape-outside-circle-018.html | 57 ++++++++++ .../shapes1/shape-outside-circle-019-ref.html | 54 ++++++++++ .../shapes1/shape-outside-circle-019.html | 56 ++++++++++ .../shapes1/shape-outside-circle-020-ref.html | 54 ++++++++++ .../shapes1/shape-outside-circle-020.html | 57 ++++++++++ .../shapes1/shape-outside-circle-021-ref.html | 54 ++++++++++ .../shapes1/shape-outside-circle-021.html | 56 ++++++++++ .../shapes1/shape-outside-circle-022-ref.html | 55 ++++++++++ .../shapes1/shape-outside-circle-022.html | 57 ++++++++++ .../shapes1/shape-outside-circle-023-ref.html | 54 ++++++++++ .../shapes1/shape-outside-circle-023.html | 56 ++++++++++ .../shapes1/shape-outside-circle-024-ref.html | 55 ++++++++++ .../shapes1/shape-outside-circle-024.html | 57 ++++++++++ 46 files changed, 2343 insertions(+), 7 deletions(-) create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html create mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html diff --git a/layout/generic/WritingModes.h b/layout/generic/WritingModes.h index c98961b7a3eb..92ae39acb111 100644 --- a/layout/generic/WritingModes.h +++ b/layout/generic/WritingModes.h @@ -784,6 +784,16 @@ public: CHECK_WRITING_MODE(aWritingMode); return mPoint.y; } + nscoord LineRelative(WritingMode aWritingMode, + const nsSize& aContainerSize) const // line-axis + { + CHECK_WRITING_MODE(aWritingMode); + if (aWritingMode.IsBidiLTR()) { + return I(); + } + return (aWritingMode.IsVertical() ? aContainerSize.height + : aContainerSize.width) - I(); + } /** * These non-const accessors return a reference (lvalue) that can be diff --git a/layout/generic/nsFloatManager.cpp b/layout/generic/nsFloatManager.cpp index d88490c37f78..22d0d9e4a208 100644 --- a/layout/generic/nsFloatManager.cpp +++ b/layout/generic/nsFloatManager.cpp @@ -10,6 +10,7 @@ #include #include "mozilla/ReflowInput.h" +#include "mozilla/ShapeUtils.h" #include "nsBlockFrame.h" #include "nsError.h" #include "nsIPresShell.h" @@ -187,7 +188,7 @@ nsFloatManager::GetFlowArea(WritingMode aWM, nscoord aBCoord, nscoord aBSize, // There aren't any more floats that could intersect this band. break; } - if (fi.IsEmpty()) { + if (fi.IsEmpty(aShapeType)) { // For compatibility, ignore floats with empty rects, even though it // disagrees with the spec. (We might want to fix this in the // future, though.) @@ -612,6 +613,60 @@ nsFloatManager::BoxShapeInfo::LineRight(WritingMode aWM, return mShapeBoxRect.XMost() - lineRightDiff; } +///////////////////////////////////////////////////////////////////////////// +// CircleShapeInfo + +nsFloatManager::CircleShapeInfo::CircleShapeInfo( + StyleBasicShape* const aBasicShape, + nscoord aLineLeft, + nscoord aBlockStart, + const LogicalRect& aShapeBoxRect, + WritingMode aWM, + const nsSize& aContainerSize) +{ + // Use physical coordinates to compute the center of the circle() since + // the keywords such as 'left', 'top', etc. are physical. + // https://drafts.csswg.org/css-shapes-1/#funcdef-circle + nsRect physicalShapeBoxRect = + aShapeBoxRect.GetPhysicalRect(aWM, aContainerSize); + nsPoint physicalCenter = + ShapeUtils::ComputeCircleOrEllipseCenter(aBasicShape, physicalShapeBoxRect); + mRadius = + ShapeUtils::ComputeCircleRadius(aBasicShape, physicalCenter, + physicalShapeBoxRect); + + // Convert the coordinate space back to the same as FloatInfo::mRect. + // mCenter.x is in the line-axis of the frame manager and mCenter.y are in + // the frame manager's real block-axis. + LogicalPoint logicalCenter(aWM, physicalCenter, aContainerSize); + mCenter = nsPoint(logicalCenter.LineRelative(aWM, aContainerSize) + aLineLeft, + logicalCenter.B(aWM) + aBlockStart); +} + +nscoord +nsFloatManager::CircleShapeInfo::LineLeft(WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const +{ + nscoord lineLeftDiff = + ComputeEllipseLineInterceptDiff(mCenter.y - mRadius, mCenter.y + mRadius, + mRadius, mRadius, mRadius, mRadius, + aBStart, aBEnd); + return mCenter.x - mRadius + lineLeftDiff; +} + +nscoord +nsFloatManager::CircleShapeInfo::LineRight(WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const +{ + nscoord lineRightDiff = + ComputeEllipseLineInterceptDiff(mCenter.y - mRadius, mCenter.y + mRadius, + mRadius, mRadius, mRadius, mRadius, + aBStart, aBEnd); + return mCenter.x + mRadius - lineRightDiff; +} + ///////////////////////////////////////////////////////////////////////////// // FloatInfo @@ -651,7 +706,8 @@ nsFloatManager::FloatInfo::FloatInfo(nsIFrame* aFrame, // Do nothing. rect is already a margin rect. break; case StyleShapeOutsideShapeBox::NoBox: - MOZ_ASSERT_UNREACHABLE("Why don't we have a shape-box?"); + MOZ_ASSERT(shapeOutside.GetType() != StyleShapeSourceType::Box, + "Box source type must have specified!"); break; } @@ -660,6 +716,17 @@ nsFloatManager::FloatInfo::FloatInfo(nsIFrame* aFrame, rect.BStart(aWM) + aBlockStart, rect.ISize(aWM), rect.BSize(aWM)); mShapeInfo = MakeUnique(shapeBoxRect, mFrame); + } else if (shapeOutside.GetType() == StyleShapeSourceType::Shape) { + StyleBasicShape* const basicShape = shapeOutside.GetBasicShape(); + + if (basicShape->GetShapeType() == StyleBasicShapeType::Circle) { + mShapeInfo = MakeUnique(basicShape, aLineLeft, aBlockStart, + rect, aWM, aContainerSize); + } + } else if (shapeOutside.GetType() == StyleShapeSourceType::URL) { + // Bug 1265343: Implement 'shape-image-threshold'. + } else { + MOZ_ASSERT_UNREACHABLE("Unknown StyleShapeSourceType!"); } } @@ -694,7 +761,11 @@ nsFloatManager::FloatInfo::LineLeft(WritingMode aWM, if (!mShapeInfo) { return LineLeft(); } - return mShapeInfo->LineLeft(aWM, aBStart, aBEnd); + // Clip the flow area to the margin-box because + // https://drafts.csswg.org/css-shapes-1/#relation-to-box-model-and-float-behavior + // says "When a shape is used to define a float area, the shape is clipped + // to the float’s margin box." + return std::max(LineLeft(), mShapeInfo->LineLeft(aWM, aBStart, aBEnd)); } nscoord @@ -711,7 +782,8 @@ nsFloatManager::FloatInfo::LineRight(WritingMode aWM, if (!mShapeInfo) { return LineRight(); } - return mShapeInfo->LineRight(aWM, aBStart, aBEnd); + // Clip the flow area to the margin-box. See LineLeft(). + return std::min(LineRight(), mShapeInfo->LineRight(aWM, aBStart, aBEnd)); } nscoord @@ -725,7 +797,8 @@ nsFloatManager::FloatInfo::BStart(ShapeType aShapeType) const if (!mShapeInfo) { return BStart(); } - return mShapeInfo->BStart(); + // Clip the flow area to the margin-box. See LineLeft(). + return std::max(BStart(), mShapeInfo->BStart()); } nscoord @@ -739,7 +812,22 @@ nsFloatManager::FloatInfo::BEnd(ShapeType aShapeType) const if (!mShapeInfo) { return BEnd(); } - return mShapeInfo->BEnd(); + // Clip the flow area to the margin-box. See LineLeft(). + return std::min(BEnd(), mShapeInfo->BEnd()); +} + +bool +nsFloatManager::FloatInfo::IsEmpty(ShapeType aShapeType) const +{ + if (aShapeType == ShapeType::Margin) { + return IsEmpty(); + } + + MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); + if (!mShapeInfo) { + return IsEmpty(); + } + return mShapeInfo->IsEmpty(); } /* static */ nscoord diff --git a/layout/generic/nsFloatManager.h b/layout/generic/nsFloatManager.h index 8a078a885890..be7c9e57f301 100644 --- a/layout/generic/nsFloatManager.h +++ b/layout/generic/nsFloatManager.h @@ -15,6 +15,7 @@ #include "nsCoord.h" #include "nsFrameList.h" // for DEBUG_FRAME_DUMP #include "nsIntervalSet.h" +#include "nsPoint.h" #include "nsTArray.h" class nsIPresShell; @@ -22,6 +23,7 @@ class nsIFrame; class nsPresContext; namespace mozilla { struct ReflowInput; +class StyleBasicShape; } // namespace mozilla /** @@ -364,6 +366,7 @@ private: const nscoord aBEnd) const = 0; virtual nscoord BStart() const = 0; virtual nscoord BEnd() const = 0; + virtual bool IsEmpty() const = 0; }; // Implements shape-outside: . @@ -384,6 +387,7 @@ private: const nscoord aBEnd) const override; nscoord BStart() const override { return mShapeBoxRect.y; } nscoord BEnd() const override { return mShapeBoxRect.YMost(); } + bool IsEmpty() const override { return mShapeBoxRect.IsEmpty(); }; private: // This is the reference box of css shape-outside if specified, which @@ -394,6 +398,35 @@ private: nsIFrame* const mFrame; }; + // Implements shape-outside: circle(). + class CircleShapeInfo final : public ShapeInfo + { + public: + CircleShapeInfo(mozilla::StyleBasicShape* const aBasicShape, + nscoord aLineLeft, + nscoord aBlockStart, + const mozilla::LogicalRect& aShapeBoxRect, + mozilla::WritingMode aWM, + const nsSize& aContainerSize); + + nscoord LineLeft(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const override; + nscoord LineRight(mozilla::WritingMode aWM, + const nscoord aBStart, + const nscoord aBEnd) const override; + nscoord BStart() const override { return mCenter.y - mRadius; } + nscoord BEnd() const override { return mCenter.y + mRadius; } + bool IsEmpty() const override { return mRadius == 0; }; + + private: + // The position of the center of the circle. The coordinate space is the + // same as FloatInfo::mRect. + nsPoint mCenter; + // The radius of the circle in app units. + nscoord mRadius; + }; + struct FloatInfo { nsIFrame *const mFrame; // The lowest block-ends of left/right floats up to and including @@ -421,6 +454,7 @@ private: const nscoord aBStart, const nscoord aBEnd) const; nscoord BStart(ShapeType aShapeType) const; nscoord BEnd(ShapeType aShapeType) const; + bool IsEmpty(ShapeType aShapeType) const; #ifdef NS_BUILD_REFCNT_LOGGING FloatInfo(FloatInfo&& aOther); diff --git a/layout/reftests/w3c-css/submitted/shapes1/reftest.list b/layout/reftests/w3c-css/submitted/shapes1/reftest.list index c070d073aa72..54979fb4b39f 100644 --- a/layout/reftests/w3c-css/submitted/shapes1/reftest.list +++ b/layout/reftests/w3c-css/submitted/shapes1/reftest.list @@ -1,4 +1,4 @@ -default-preferences pref(layout.css.shape-outside.enabled,true) +default-preferences pref(layout.css.shape-outside.enabled,true) pref(layout.css.clip-path-shapes.enabled,true) # only == shape-outside-margin-box-001.html shape-outside-margin-box-001-ref.html @@ -35,3 +35,29 @@ fails == shape-outside-border-box-border-radius-004.html shape-outside-border-bo == shape-outside-padding-box-border-radius-002.html shape-outside-padding-box-border-radius-002-ref.html == shape-outside-content-box-border-radius-001.html shape-outside-content-box-border-radius-001-ref.html == shape-outside-content-box-border-radius-002.html shape-outside-content-box-border-radius-002-ref.html + +# Basic shape: circle() +== shape-outside-circle-001.html shape-outside-circle-001-ref.html +== shape-outside-circle-002.html shape-outside-circle-002-ref.html +== shape-outside-circle-003.html shape-outside-circle-003-ref.html +== shape-outside-circle-004.html shape-outside-circle-004-ref.html +== shape-outside-circle-005.html shape-outside-circle-005-ref.html +== shape-outside-circle-006.html shape-outside-circle-005-ref.html +== shape-outside-circle-007.html shape-outside-circle-005-ref.html +== shape-outside-circle-008.html shape-outside-circle-008-ref.html +== shape-outside-circle-009.html shape-outside-circle-008-ref.html +== shape-outside-circle-010.html shape-outside-circle-010-ref.html +== shape-outside-circle-011.html shape-outside-circle-011-ref.html +== shape-outside-circle-012.html shape-outside-circle-011-ref.html +== shape-outside-circle-013.html shape-outside-circle-011-ref.html +== shape-outside-circle-014.html shape-outside-circle-014-ref.html +== shape-outside-circle-015.html shape-outside-circle-014-ref.html +== shape-outside-circle-016.html shape-outside-circle-016-ref.html +== shape-outside-circle-017.html shape-outside-circle-017-ref.html +== shape-outside-circle-018.html shape-outside-circle-018-ref.html +== shape-outside-circle-019.html shape-outside-circle-019-ref.html +== shape-outside-circle-020.html shape-outside-circle-020-ref.html +== shape-outside-circle-021.html shape-outside-circle-021-ref.html +== shape-outside-circle-022.html shape-outside-circle-022-ref.html +== shape-outside-circle-023.html shape-outside-circle-023-ref.html +== shape-outside-circle-024.html shape-outside-circle-024-ref.html diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html new file mode 100644 index 000000000000..fd38ecdb403f --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html @@ -0,0 +1,51 @@ + + + + + + CSS Shape Test: float left, circle(50% at left top) reference + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html new file mode 100644 index 000000000000..0e4bd0b5506f --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: float left, circle(50% at left top) + + + + + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html new file mode 100644 index 000000000000..5950768909d0 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html @@ -0,0 +1,52 @@ + + + + + + CSS Shape Test: float left, circle(50% at right bottom) reference + + + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html new file mode 100644 index 000000000000..98a46d9fd925 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html @@ -0,0 +1,55 @@ + + + + + + CSS Shape Test: float left, circle(50% at right bottom) + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html new file mode 100644 index 000000000000..fce4c56c52e7 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html @@ -0,0 +1,52 @@ + + + + + + CSS Shape Test: float right, circle(50% at right top) reference + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html new file mode 100644 index 000000000000..5c3756b80496 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html @@ -0,0 +1,55 @@ + + + + + + CSS Shape Test: float right, circle(50% at right top) + + + + + + + + + +
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html new file mode 100644 index 000000000000..1e3fd7d0c722 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html @@ -0,0 +1,53 @@ + + + + + + CSS Shape Test: float left, circle(50% at left bottom) reference + + + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html new file mode 100644 index 000000000000..ea18329d3b0c --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html @@ -0,0 +1,56 @@ + + + + + + CSS Shape Test: float right, circle(50% at left bottom) + + + + + + + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html new file mode 100644 index 000000000000..13f0210e9d1e --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html @@ -0,0 +1,45 @@ + + + + + + CSS Shape Test: float left, circle() reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html new file mode 100644 index 000000000000..11f7b9ead7dd --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html @@ -0,0 +1,48 @@ + + + + + + CSS Shape Test: float left, circle() + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html new file mode 100644 index 000000000000..877f9e005274 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float left, circle(closest-side at center) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html new file mode 100644 index 000000000000..ebe9ef9dc00d --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html @@ -0,0 +1,48 @@ + + + + + + CSS Shape Test: float left, circle(farthest-side at center) + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html new file mode 100644 index 000000000000..eee9701e0020 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html @@ -0,0 +1,46 @@ + + + + + + CSS Shape Test: float left, circle(0%) border-box reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html new file mode 100644 index 000000000000..4c8d8c4d289e --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float left, circle(0%) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html new file mode 100644 index 000000000000..d6b1bd6bbf07 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float left, circle(closest-side at left center) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html new file mode 100644 index 000000000000..1701347059f2 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html @@ -0,0 +1,45 @@ + + + + + + CSS Shape Test: float left, circle(100%) reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html new file mode 100644 index 000000000000..65cffd7d042a --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html @@ -0,0 +1,48 @@ + + + + + + CSS Shape Test: float left, circle(100%) + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html new file mode 100644 index 000000000000..a8603d7414de --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html @@ -0,0 +1,46 @@ + + + + + + CSS Shape Test: float right, circle() reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html new file mode 100644 index 000000000000..79fc86d8c5fc --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float right, circle() + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html new file mode 100644 index 000000000000..b13745bac6fb --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html @@ -0,0 +1,50 @@ + + + + + + CSS Shape Test: float right, circle(closest-side at center) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html new file mode 100644 index 000000000000..7b6bd517371c --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float right, circle(farthest-side at center) + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html new file mode 100644 index 000000000000..843c8bad940b --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html @@ -0,0 +1,47 @@ + + + + + + CSS Shape Test: float right, circle(0%) border-box reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html new file mode 100644 index 000000000000..93933d75fee7 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html @@ -0,0 +1,50 @@ + + + + + + CSS Shape Test: float right, circle(0%) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html new file mode 100644 index 000000000000..8779538c816a --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html @@ -0,0 +1,50 @@ + + + + + + CSS Shape Test: float right, circle(closest-side at right center) border-box + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html new file mode 100644 index 000000000000..77b1190c0ea2 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html @@ -0,0 +1,46 @@ + + + + + + CSS Shape Test: float right, circle(100%) reference + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html new file mode 100644 index 000000000000..ec8668a5db71 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html @@ -0,0 +1,49 @@ + + + + + + CSS Shape Test: float right, circle(100%) + + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html new file mode 100644 index 000000000000..5ffdb55b9a63 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: vertical-rl, float left, circle(50% at left 40px top 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html new file mode 100644 index 000000000000..57a156193747 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html @@ -0,0 +1,56 @@ + + + + + + CSS Shape Test: vertical-rl, float left, circle(50% at left 40px top 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html new file mode 100644 index 000000000000..2024166b29ef --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html @@ -0,0 +1,55 @@ + + + + + + CSS Shape Test: vertical-rl, float right, circle(50% at left 40px bottom 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html new file mode 100644 index 000000000000..a735a50e5a03 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html @@ -0,0 +1,57 @@ + + + + + + CSS Shape Test: vertical-rl, float right, circle(50% at left 40px bottom 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html new file mode 100644 index 000000000000..58d33349475f --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: vertical-lr, float left, circle(50% at right 40px top 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html new file mode 100644 index 000000000000..c8c0b265b630 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html @@ -0,0 +1,56 @@ + + + + + + CSS Shape Test: vertical-lr, float left, circle(50% at right 40px top 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html new file mode 100644 index 000000000000..21ac48b5e12a --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: vertical-lr, float right, circle(50% at right 40px bottom 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html new file mode 100644 index 000000000000..21ecdff8f240 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html @@ -0,0 +1,57 @@ + + + + + + CSS Shape Test: vertical-lr, float right, circle(50% at right 40px bottom 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html new file mode 100644 index 000000000000..3e80b9422ec7 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: sideways-lr, float left, circle(50% at right 40px bottom 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html new file mode 100644 index 000000000000..d92fbfd83cdc --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html @@ -0,0 +1,56 @@ + + + + + + CSS Shape Test: sideways-lr, float left, circle(50% at right 40px bottom 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html new file mode 100644 index 000000000000..843b9ff5e92d --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html @@ -0,0 +1,55 @@ + + + + + + CSS Shape Test: sideways-lr, float right, circle(50% at right 40px top 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html new file mode 100644 index 000000000000..9e6685b40e1a --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html @@ -0,0 +1,57 @@ + + + + + + CSS Shape Test: sideways-lr, float right, circle(50% at right 40px top 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html new file mode 100644 index 000000000000..16a36fc7b071 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html @@ -0,0 +1,54 @@ + + + + + + CSS Shape Test: horizontal-tb, float left, circle(50% at left 40px bottom 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html new file mode 100644 index 000000000000..e8a86c5d094c --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html @@ -0,0 +1,56 @@ + + + + + + CSS Shape Test: horizontal-tb, float left, circle(50% at left 40px bottom 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html new file mode 100644 index 000000000000..c2cea3d8acfa --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html @@ -0,0 +1,55 @@ + + + + + + CSS Shape Test: horizontal-tb, float right, circle(50% at right 40px bottom 40px) reference + + + + + +
+
+
+
+
+
+
+
+ + diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html new file mode 100644 index 000000000000..62a77fd31f94 --- /dev/null +++ b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html @@ -0,0 +1,57 @@ + + + + + + CSS Shape Test: horizontal-tb, float right, circle(50% at right 40px bottom 40px) + + + + + + + + + +
+
+
+
+
+
+
+
+ + From 4d20e08a8c8a32004b0a75b89bb2900393520082 Mon Sep 17 00:00:00 2001 From: Jarda Snajdr Date: Thu, 5 Jan 2017 11:25:41 +0100 Subject: [PATCH 10/22] Bug 1329147 - Optimize rendering of RequestListItem r=Honza MozReview-Commit-ID: 8SZbK3yCOBR --HG-- extra : rebase_source : 4b2b2ecfe10d25f8c982b7781793a421dafb6275 --- .../components/request-list-item.js | 448 +++++++++++------- 1 file changed, 273 insertions(+), 175 deletions(-) diff --git a/devtools/client/netmonitor/components/request-list-item.js b/devtools/client/netmonitor/components/request-list-item.js index a7976ea2ae29..bfc93d53e665 100644 --- a/devtools/client/netmonitor/components/request-list-item.js +++ b/devtools/client/netmonitor/components/request-list-item.js @@ -4,12 +4,50 @@ "use strict"; -const { createClass, PropTypes, DOM } = require("devtools/client/shared/vendor/react"); +const { createClass, createFactory, PropTypes, DOM } = require("devtools/client/shared/vendor/react"); const { div, span, img } = DOM; const { L10N } = require("../l10n"); const { getFormattedSize } = require("../utils/format-utils"); const { getAbbreviatedMimeType } = require("../request-utils"); +/** + * Compare two objects on a subset of their properties + */ +function propertiesEqual(props, item1, item2) { + return item1 === item2 || props.every(p => item1[p] === item2[p]); +} + +/** + * Used by shouldComponentUpdate: compare two items, and compare only properties + * relevant for rendering the RequestListItem. Other properties (like request and + * response headers, cookies, bodies) are ignored. These are very useful for the + * sidebar details, but not here. + */ +const UPDATED_REQ_ITEM_PROPS = [ + "mimeType", + "eventTimings", + "securityState", + "responseContentDataUri", + "status", + "statusText", + "fromCache", + "fromServiceWorker", + "method", + "url", + "remoteAddress", + "cause", + "contentSize", + "transferredSize", + "startedMillis", + "totalTime", +]; + +const UPDATED_REQ_PROPS = [ + "index", + "isSelected", + "firstRequestStartedMillis" +]; + /** * Render one row in the request list. */ @@ -33,10 +71,8 @@ const RequestListItem = createClass({ }, shouldComponentUpdate(nextProps) { - return !relevantPropsEqual(this.props.item, nextProps.item) - || this.props.index !== nextProps.index - || this.props.isSelected !== nextProps.isSelected - || this.props.firstRequestStartedMillis !== nextProps.firstRequestStartedMillis; + return !propertiesEqual(UPDATED_REQ_ITEM_PROPS, this.props.item, nextProps.item) || + !propertiesEqual(UPDATED_REQ_PROPS, this.props, nextProps); }, componentDidUpdate(prevProps) { @@ -88,151 +124,171 @@ const RequestListItem = createClass({ onContextMenu, onMouseDown, }, - StatusColumn(item), - MethodColumn(item), - FileColumn(item), - DomainColumn(item, onSecurityIconClick), - CauseColumn(item), - TypeColumn(item), - TransferredSizeColumn(item), - ContentSizeColumn(item), - WaterfallColumn(item, firstRequestStartedMillis) + StatusColumn({ item }), + MethodColumn({ item }), + FileColumn({ item }), + DomainColumn({ item, onSecurityIconClick }), + CauseColumn({ item }), + TypeColumn({ item }), + TransferredSizeColumn({ item }), + ContentSizeColumn({ item }), + WaterfallColumn({ item, firstRequestStartedMillis }) ); } }); -/** - * Used by shouldComponentUpdate: compare two items, and compare only properties - * relevant for rendering the RequestListItem. Other properties (like request and - * response headers, cookies, bodies) are ignored. These are very useful for the - * sidebar details, but not here. - */ -const RELEVANT_ITEM_PROPS = [ +const UPDATED_STATUS_PROPS = [ "status", "statusText", "fromCache", "fromServiceWorker", - "method", - "url", - "responseContentDataUri", - "remoteAddress", - "securityState", - "cause", - "mimeType", - "contentSize", - "transferredSize", - "startedMillis", - "totalTime", - "eventTimings", ]; -function relevantPropsEqual(item1, item2) { - return item1 === item2 || RELEVANT_ITEM_PROPS.every(p => item1[p] === item2[p]); -} +const StatusColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return !propertiesEqual(UPDATED_STATUS_PROPS, this.props.item, nextProps.item); + }, -function StatusColumn(item) { - const { status, statusText, fromCache, fromServiceWorker } = item; + render() { + const { status, statusText, fromCache, fromServiceWorker } = this.props.item; - let code, title; + let code, title; - if (status) { - if (fromCache) { - code = "cached"; - } else if (fromServiceWorker) { - code = "service worker"; - } else { - code = status; - } - - if (statusText) { - title = `${status} ${statusText}`; + if (status) { if (fromCache) { - title += " (cached)"; + code = "cached"; + } else if (fromServiceWorker) { + code = "service worker"; + } else { + code = status; } - if (fromServiceWorker) { - title += " (service worker)"; + + if (statusText) { + title = `${status} ${statusText}`; + if (fromCache) { + title += " (cached)"; + } + if (fromServiceWorker) { + title += " (service worker)"; + } } } + + return div({ className: "requests-menu-subitem requests-menu-status", title }, + div({ className: "requests-menu-status-icon", "data-code": code }), + span({ className: "subitem-label requests-menu-status-code" }, status) + ); } +})); - return div({ className: "requests-menu-subitem requests-menu-status", title }, - div({ className: "requests-menu-status-icon", "data-code": code }), - span({ className: "subitem-label requests-menu-status-code" }, status) - ); -} +const MethodColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return this.props.item.method !== nextProps.item.method; + }, -function MethodColumn(item) { - const { method } = item; - return div({ className: "requests-menu-subitem requests-menu-method-box" }, - span({ className: "subitem-label requests-menu-method" }, method) - ); -} - -function FileColumn(item) { - const { urlDetails, responseContentDataUri } = item; - - return div({ className: "requests-menu-subitem requests-menu-icon-and-file" }, - img({ - className: "requests-menu-icon", - src: responseContentDataUri, - hidden: !responseContentDataUri, - "data-type": responseContentDataUri ? "thumbnail" : undefined - }), - div( - { - className: "subitem-label requests-menu-file", - title: urlDetails.unicodeUrl - }, - urlDetails.baseNameWithQuery - ) - ); -} - -function DomainColumn(item, onSecurityIconClick) { - const { urlDetails, remoteAddress, securityState } = item; - - let iconClassList = [ "requests-security-state-icon" ]; - let iconTitle; - if (urlDetails.isLocal) { - iconClassList.push("security-state-local"); - iconTitle = L10N.getStr("netmonitor.security.state.secure"); - } else if (securityState) { - iconClassList.push(`security-state-${securityState}`); - iconTitle = L10N.getStr(`netmonitor.security.state.${securityState}`); + render() { + const { method } = this.props.item; + return div({ className: "requests-menu-subitem requests-menu-method-box" }, + span({ className: "subitem-label requests-menu-method" }, method) + ); } +})); - let title = urlDetails.host + (remoteAddress ? ` (${remoteAddress})` : ""); +const UPDATED_FILE_PROPS = [ + "urlDetails", + "responseContentDataUri", +]; - return div( - { className: "requests-menu-subitem requests-menu-security-and-domain" }, - div({ - className: iconClassList.join(" "), - title: iconTitle, - onClick: onSecurityIconClick, - }), - span({ className: "subitem-label requests-menu-domain", title }, urlDetails.host) - ); -} +const FileColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return !propertiesEqual(UPDATED_FILE_PROPS, this.props.item, nextProps.item); + }, -function CauseColumn(item) { - const { cause } = item; + render() { + const { urlDetails, responseContentDataUri } = this.props.item; - let causeType = ""; - let causeUri = undefined; - let causeHasStack = false; - - if (cause) { - causeType = cause.type; - causeUri = cause.loadingDocumentUri; - causeHasStack = cause.stacktrace && cause.stacktrace.length > 0; + return div({ className: "requests-menu-subitem requests-menu-icon-and-file" }, + img({ + className: "requests-menu-icon", + src: responseContentDataUri, + hidden: !responseContentDataUri, + "data-type": responseContentDataUri ? "thumbnail" : undefined + }), + div( + { + className: "subitem-label requests-menu-file", + title: urlDetails.unicodeUrl + }, + urlDetails.baseNameWithQuery + ) + ); } +})); - return div( - { className: "requests-menu-subitem requests-menu-cause", title: causeUri }, - span({ className: "requests-menu-cause-stack", hidden: !causeHasStack }, "JS"), - span({ className: "subitem-label" }, causeType) - ); -} +const UPDATED_DOMAIN_PROPS = [ + "urlDetails", + "remoteAddress", + "securityState", +]; + +const DomainColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return !propertiesEqual(UPDATED_DOMAIN_PROPS, this.props.item, nextProps.item); + }, + + render() { + const { item, onSecurityIconClick } = this.props; + const { urlDetails, remoteAddress, securityState } = item; + + let iconClassList = [ "requests-security-state-icon" ]; + let iconTitle; + if (urlDetails.isLocal) { + iconClassList.push("security-state-local"); + iconTitle = L10N.getStr("netmonitor.security.state.secure"); + } else if (securityState) { + iconClassList.push(`security-state-${securityState}`); + iconTitle = L10N.getStr(`netmonitor.security.state.${securityState}`); + } + + let title = urlDetails.host + (remoteAddress ? ` (${remoteAddress})` : ""); + + return div( + { className: "requests-menu-subitem requests-menu-security-and-domain" }, + div({ + className: iconClassList.join(" "), + title: iconTitle, + onClick: onSecurityIconClick, + }), + span({ className: "subitem-label requests-menu-domain", title }, urlDetails.host) + ); + } +})); + +const CauseColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return this.props.item.cause !== nextProps.item.cause; + }, + + render() { + const { cause } = this.props.item; + + let causeType = ""; + let causeUri = undefined; + let causeHasStack = false; + + if (cause) { + causeType = cause.type; + causeUri = cause.loadingDocumentUri; + causeHasStack = cause.stacktrace && cause.stacktrace.length > 0; + } + + return div( + { className: "requests-menu-subitem requests-menu-cause", title: causeUri }, + span({ className: "requests-menu-cause-stack", hidden: !causeHasStack }, "JS"), + span({ className: "subitem-label" }, causeType) + ); + } +})); const CONTENT_MIME_TYPE_ABBREVIATIONS = { "ecmascript": "js", @@ -240,56 +296,110 @@ const CONTENT_MIME_TYPE_ABBREVIATIONS = { "x-javascript": "js" }; -function TypeColumn(item) { - const { mimeType } = item; - let abbrevType; - if (mimeType) { - abbrevType = getAbbreviatedMimeType(mimeType); - abbrevType = CONTENT_MIME_TYPE_ABBREVIATIONS[abbrevType] || abbrevType; +const TypeColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return this.props.item.mimeType !== nextProps.item.mimeType; + }, + + render() { + const { mimeType } = this.props.item; + let abbrevType; + if (mimeType) { + abbrevType = getAbbreviatedMimeType(mimeType); + abbrevType = CONTENT_MIME_TYPE_ABBREVIATIONS[abbrevType] || abbrevType; + } + + return div( + { className: "requests-menu-subitem requests-menu-type", title: mimeType }, + span({ className: "subitem-label" }, abbrevType) + ); } +})); - return div( - { className: "requests-menu-subitem requests-menu-type", title: mimeType }, - span({ className: "subitem-label" }, abbrevType) - ); -} +const UPDATED_TRANSFERRED_PROPS = [ + "transferredSize", + "fromCache", + "fromServiceWorker", +]; -function TransferredSizeColumn(item) { - const { transferredSize, fromCache, fromServiceWorker } = item; +const TransferredSizeColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return !propertiesEqual(UPDATED_TRANSFERRED_PROPS, this.props.item, nextProps.item); + }, - let text; - let className = "subitem-label"; - if (fromCache) { - text = L10N.getStr("networkMenu.sizeCached"); - className += " theme-comment"; - } else if (fromServiceWorker) { - text = L10N.getStr("networkMenu.sizeServiceWorker"); - className += " theme-comment"; - } else if (typeof transferredSize == "number") { - text = getFormattedSize(transferredSize); - } else if (transferredSize === null) { - text = L10N.getStr("networkMenu.sizeUnavailable"); + render() { + const { transferredSize, fromCache, fromServiceWorker } = this.props.item; + + let text; + let className = "subitem-label"; + if (fromCache) { + text = L10N.getStr("networkMenu.sizeCached"); + className += " theme-comment"; + } else if (fromServiceWorker) { + text = L10N.getStr("networkMenu.sizeServiceWorker"); + className += " theme-comment"; + } else if (typeof transferredSize == "number") { + text = getFormattedSize(transferredSize); + } else if (transferredSize === null) { + text = L10N.getStr("networkMenu.sizeUnavailable"); + } + + return div( + { className: "requests-menu-subitem requests-menu-transferred", title: text }, + span({ className }, text) + ); } +})); - return div( - { className: "requests-menu-subitem requests-menu-transferred", title: text }, - span({ className }, text) - ); -} +const ContentSizeColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return this.props.item.contentSize !== nextProps.item.contentSize; + }, -function ContentSizeColumn(item) { - const { contentSize } = item; + render() { + const { contentSize } = this.props.item; - let text; - if (typeof contentSize == "number") { - text = getFormattedSize(contentSize); + let text; + if (typeof contentSize == "number") { + text = getFormattedSize(contentSize); + } + + return div( + { + className: "requests-menu-subitem subitem-label requests-menu-size", + title: text + }, + span({ className: "subitem-label" }, text) + ); } +})); - return div( - { className: "requests-menu-subitem subitem-label requests-menu-size", title: text }, - span({ className: "subitem-label" }, text) - ); -} +const UPDATED_WATERFALL_PROPS = [ + "eventTimings", + "totalTime", + "fromCache", + "fromServiceWorker", +]; + +const WaterfallColumn = createFactory(createClass({ + shouldComponentUpdate(nextProps) { + return this.props.firstRequestStartedMillis !== nextProps.firstRequestStartedMillis || + !propertiesEqual(UPDATED_WATERFALL_PROPS, this.props.item, nextProps.item); + }, + + render() { + const { item, firstRequestStartedMillis } = this.props; + const startedDeltaMillis = item.startedMillis - firstRequestStartedMillis; + const paddingInlineStart = `${startedDeltaMillis}px`; + + return div({ className: "requests-menu-subitem requests-menu-waterfall" }, + div( + { className: "requests-menu-timings", style: { paddingInlineStart } }, + timingBoxes(item) + ) + ); + } +})); // List of properties of the timing info we want to create boxes for const TIMING_KEYS = ["blocked", "dns", "connect", "send", "wait", "receive"]; @@ -331,16 +441,4 @@ function timingBoxes(item) { return boxes; } -function WaterfallColumn(item, firstRequestStartedMillis) { - const startedDeltaMillis = item.startedMillis - firstRequestStartedMillis; - const paddingInlineStart = `${startedDeltaMillis}px`; - - return div({ className: "requests-menu-subitem requests-menu-waterfall" }, - div( - { className: "requests-menu-timings", style: { paddingInlineStart } }, - timingBoxes(item) - ) - ); -} - module.exports = RequestListItem; From f77c4a415c6ddc3d976dcfc0babb1170c2f45435 Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Sun, 8 Jan 2017 03:04:48 +0000 Subject: [PATCH 11/22] Bug 1329466 - Unbreak build on non-SPS platforms after bug 1323100. r=mstange MozReview-Commit-ID: Af1CuVYSNCj --HG-- extra : rebase_source : ac6c76674785912a24081e7140df33ec0c2789e1 --- tools/profiler/public/GeckoProfiler.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tools/profiler/public/GeckoProfiler.h b/tools/profiler/public/GeckoProfiler.h index 6d58b17c573c..69cb6c23f5df 100644 --- a/tools/profiler/public/GeckoProfiler.h +++ b/tools/profiler/public/GeckoProfiler.h @@ -246,14 +246,19 @@ static inline bool profiler_in_privacy_mode() { return false; } static inline void profiler_log(const char *str) {} static inline void profiler_log(const char *fmt, va_list args) {} +namespace mozilla { + class AutoProfilerRegister final MOZ_STACK_CLASS { - AutoProfilerRegister(const char* aName) {} +public: + explicit AutoProfilerRegister(const char* aName) {} private: AutoProfilerRegister(const AutoProfilerRegister&) = delete; AutoProfilerRegister& operator=(const AutoProfilerRegister&) = delete; }; +} // namespace mozilla + #else #include "GeckoProfilerImpl.h" From 85c80336b8d898992505d68720e7b9b5ea8ded66 Mon Sep 17 00:00:00 2001 From: Mark Hammond Date: Fri, 4 Nov 2016 17:57:09 +1100 Subject: [PATCH 12/22] Bug 1289536 (part 1) - Add events to Sync ping. r=gfritzsche MozReview-Commit-ID: 184fIhelOa6 --HG-- extra : rebase_source : bf7c96a473b92a42411fe5c94ac6802d42ff57d5 --- services/sync/modules/service.js | 4 + services/sync/modules/telemetry.js | 81 +++++++++++++++++ services/sync/tests/unit/head_helpers.js | 10 ++- .../sync/tests/unit/sync_ping_schema.json | 10 +++ services/sync/tests/unit/test_telemetry.js | 90 ++++++++++++++++++- .../telemetry/docs/data/sync-ping.rst | 44 ++++++++- 6 files changed, 236 insertions(+), 3 deletions(-) diff --git a/services/sync/modules/service.js b/services/sync/modules/service.js index 0de976575bd7..b5f390453366 100644 --- a/services/sync/modules/service.js +++ b/services/sync/modules/service.js @@ -1750,6 +1750,10 @@ Sync11Service.prototype = { return callback(null, result); }); }, + + recordTelemetryEvent(object, method, value, extra = undefined) { + Svc.Obs.notify("weave:telemetry:event", { object, method, value, extra }); + }, }; this.Service = new Sync11Service(); diff --git a/services/sync/modules/telemetry.js b/services/sync/modules/telemetry.js index 782837d4ebd2..46893b70d105 100644 --- a/services/sync/modules/telemetry.js +++ b/services/sync/modules/telemetry.js @@ -45,6 +45,8 @@ const TOPICS = [ "weave:engine:sync:uploaded", "weave:engine:validate:finish", "weave:engine:validate:error", + + "weave:telemetry:event", ]; const PING_FORMAT_VERSION = 1; @@ -127,6 +129,44 @@ function timeDeltaFrom(monotonicStartTime) { return -1; } +// This function validates the payload of a telemetry "event" - this can be +// removed once there are APIs available for the telemetry modules to collect +// these events (bug 1329530) - but for now we simulate that planned API as +// best we can. +function validateTelemetryEvent(eventDetails) { + let { object, method, value, extra } = eventDetails; + // Do do basic validation of the params - everything except "extra" must + // be a string. method and object are required. + if (typeof method != "string" || typeof object != "string" || + (value && typeof value != "string") || + (extra && typeof extra != "object")) { + log.warn("Invalid event parameters - wrong types", eventDetails); + return false; + } + // length checks. + if (method.length > 20 || object.length > 20 || + (value && value.length > 80)) { + log.warn("Invalid event parameters - wrong lengths", eventDetails); + return false; + } + + // extra can be falsey, or an object with string names and values. + if (extra) { + if (Object.keys(extra).length > 10) { + log.warn("Invalid event parameters - too many extra keys", eventDetails); + return false; + } + for (let [ename, evalue] of Object.entries(extra)) { + if (typeof ename != "string" || ename.length > 15 || + typeof evalue != "string" || evalue.length > 85) { + log.warn(`Invalid event parameters: extra item "${ename} is invalid`, eventDetails); + return false; + } + } + } + return true; +} + class EngineRecord { constructor(name) { // startTime is in ms from process start, but is monotonic (unlike Date.now()) @@ -416,6 +456,8 @@ class SyncTelemetryImpl { this.payloads = []; this.discarded = 0; + this.events = []; + this.maxEventsCount = Svc.Prefs.get("telemetry.maxEventsCount", 1000); this.maxPayloadCount = Svc.Prefs.get("telemetry.maxPayloadCount"); this.submissionInterval = Svc.Prefs.get("telemetry.submissionInterval") * 1000; this.lastSubmissionTime = Telemetry.msSinceProcessStart(); @@ -431,6 +473,7 @@ class SyncTelemetryImpl { syncs: this.payloads.slice(), uid: this.lastUID, deviceID: this.lastDeviceID, + events: this.events.length == 0 ? undefined : this.events, }; } @@ -440,6 +483,7 @@ class SyncTelemetryImpl { let result = this.getPingJSON(reason); this.payloads = []; this.discarded = 0; + this.events = []; this.submit(result); } @@ -530,6 +574,39 @@ class SyncTelemetryImpl { } } + _recordEvent(eventDetails) { + if (this.events.length >= this.maxEventsCount) { + log.warn("discarding event - already queued our maximum", eventDetails); + return; + } + + if (!validateTelemetryEvent(eventDetails)) { + // we've already logged what the problem is... + return; + } + log.debug("recording event", eventDetails); + + let { object, method, value, extra } = eventDetails; + let category = "sync"; + let ts = Math.floor(tryGetMonotonicTimestamp()); + + // An event record is a simple array with at least 4 items. + let event = [ts, category, method, object]; + // It may have up to 6 elements if |extra| is defined + if (value) { + event.push(value); + if (extra) { + event.push(extra); + } + } else { + if (extra) { + event.push(null); // a null for the empty value. + event.push(extra); + } + } + this.events.push(event); + } + observe(subject, topic, data) { log.trace(`observed ${topic} ${data}`); @@ -598,6 +675,10 @@ class SyncTelemetryImpl { } break; + case "weave:telemetry:event": + this._recordEvent(subject); + break; + default: log.warn(`unexpected observer topic ${topic}`); break; diff --git a/services/sync/tests/unit/head_helpers.js b/services/sync/tests/unit/head_helpers.js index 3ca368f7a9ed..5b35ad3293ae 100644 --- a/services/sync/tests/unit/head_helpers.js +++ b/services/sync/tests/unit/head_helpers.js @@ -276,7 +276,15 @@ function assert_valid_ping(record) { // no Syncs - either of them not being true might be an actual problem) if (record && (record.why != "shutdown" || record.syncs.length != 0)) { if (!SyncPingValidator(record)) { - deepEqual([], SyncPingValidator.errors, "Sync telemetry ping validation failed"); + if (SyncPingValidator.errors.length) { + // validation failed - using a simple |deepEqual([], errors)| tends to + // truncate the validation errors in the output and doesn't show that + // the ping actually was - so be helpful. + do_print("telemetry ping validation failed"); + do_print("the ping data is: " + JSON.stringify(record, undefined, 2)); + do_print("the validation failures: " + JSON.stringify(SyncPingValidator.errors, undefined, 2)); + ok(false, "Sync telemetry ping validation failed - see output above for details"); + } } equal(record.version, 1); record.syncs.forEach(p => { diff --git a/services/sync/tests/unit/sync_ping_schema.json b/services/sync/tests/unit/sync_ping_schema.json index e4134f9ce5fd..3a87210a4fac 100644 --- a/services/sync/tests/unit/sync_ping_schema.json +++ b/services/sync/tests/unit/sync_ping_schema.json @@ -20,6 +20,11 @@ "type": "array", "minItems": 1, "items": { "$ref": "#/definitions/payload" } + }, + "events": { + "type": "array", + "minItems": 1, + "items": { "$ref": "#/definitions/event" } } }, "definitions": { @@ -128,6 +133,11 @@ "failed": { "type": "integer", "minimum": 1 } } }, + "event": { + "type": "array", + "minItems": 4, + "maxItems": 6 + }, "error": { "oneOf": [ { "$ref": "#/definitions/httpError" }, diff --git a/services/sync/tests/unit/test_telemetry.js b/services/sync/tests/unit/test_telemetry.js index b77774b1d3a0..1af34a050186 100644 --- a/services/sync/tests/unit/test_telemetry.js +++ b/services/sync/tests/unit/test_telemetry.js @@ -565,4 +565,92 @@ add_task(async function test_no_foreign_engines_in_success_ping() { Service.engineManager.unregister(engine); await cleanAndGo(engine, server); } -}); \ No newline at end of file +}); + +add_task(async function test_events() { + Service.engineManager.register(BogusEngine); + let engine = Service.engineManager.get("bogus"); + engine.enabled = true; + let server = serverForUsers({"foo": "password"}, { + meta: {global: {engines: {bogus: {version: engine.version, syncID: engine.syncID}}}}, + steam: {} + }); + + await SyncTestingInfrastructure(server); + try { + Service.recordTelemetryEvent("object", "method", "value", { foo: "bar" }); + let ping = await wait_for_ping(() => Service.sync(), true, true); + equal(ping.events.length, 1); + let [timestamp, category, method, object, value, extra] = ping.events[0]; + ok((typeof timestamp == "number") && timestamp > 0); // timestamp. + equal(category, "sync"); + equal(method, "method"); + equal(object, "object"); + equal(value, "value"); + deepEqual(extra, { foo: "bar" }); + // Test with optional values. + Service.recordTelemetryEvent("object", "method"); + ping = await wait_for_ping(() => Service.sync(), false, true); + equal(ping.events.length, 1); + equal(ping.events[0].length, 4); + + Service.recordTelemetryEvent("object", "method", "extra"); + ping = await wait_for_ping(() => Service.sync(), false, true); + equal(ping.events.length, 1); + equal(ping.events[0].length, 5); + + Service.recordTelemetryEvent("object", "method", undefined, { foo: "bar" }); + ping = await wait_for_ping(() => Service.sync(), false, true); + equal(ping.events.length, 1); + equal(ping.events[0].length, 6); + [timestamp, category, method, object, value, extra] = ping.events[0]; + equal(value, null); + } finally { + Service.engineManager.unregister(engine); + await cleanAndGo(engine, server); + } +}); + +add_task(async function test_invalid_events() { + Service.engineManager.register(BogusEngine); + let engine = Service.engineManager.get("bogus"); + engine.enabled = true; + let server = serverForUsers({"foo": "password"}, { + meta: {global: {engines: {bogus: {version: engine.version, syncID: engine.syncID}}}}, + steam: {} + }); + + async function checkNotRecorded(...args) { + Service.recordTelemetryEvent.call(args); + let ping = await wait_for_ping(() => Service.sync(), false, true); + equal(ping.events, undefined); + } + + await SyncTestingInfrastructure(server); + try { + let long21 = "l".repeat(21); + let long81 = "l".repeat(81); + let long86 = "l".repeat(86); + await checkNotRecorded("object"); + await checkNotRecorded("object", 2); + await checkNotRecorded(2, "method"); + await checkNotRecorded("object", "method", 2); + await checkNotRecorded("object", "method", "value", 2); + await checkNotRecorded("object", "method", "value", { foo: 2 }); + await checkNotRecorded(long21, "method", "value"); + await checkNotRecorded("object", long21, "value"); + await checkNotRecorded("object", "method", long81); + let badextra = {}; + badextra[long21] = "x"; + await checkNotRecorded("object", "method", "value", badextra); + badextra = { "x": long86 }; + await checkNotRecorded("object", "method", "value", badextra); + for (let i = 0; i < 10; i++) { + badextra["name" + i] = "x"; + } + await checkNotRecorded("object", "method", "value", badextra); + } finally { + Service.engineManager.unregister(engine); + await cleanAndGo(engine, server); + } +}); diff --git a/toolkit/components/telemetry/docs/data/sync-ping.rst b/toolkit/components/telemetry/docs/data/sync-ping.rst index 3b18f3c1175d..d70cb848a824 100644 --- a/toolkit/components/telemetry/docs/data/sync-ping.rst +++ b/toolkit/components/telemetry/docs/data/sync-ping.rst @@ -97,7 +97,10 @@ Structure: } } ] - }] + }], + events: [ + event_array // See events below, + ] } } @@ -180,3 +183,42 @@ syncs.devices ~~~~~~~~~~~~~ The list of remote devices associated with this account, as reported by the clients collection. The ID of each device is hashed using the same algorithm as the local id. + + +Events in the "sync" ping +========================= + +The sync ping includes events in the same format as they are included in the +main ping. The documentation for these events will land in bug 1302666. + +Every event recorded in this ping will have a category of ``sync``. The following +events are defined, categorized by the event method. + +sendcommand +----------- + +Records that Sync wrote a remote "command" to another client. These commands +cause that other client to take some action, such as resetting Sync on that +client, or opening a new URL. + +- object: The specific command being written. +- value: Not used (ie, ``undefined``) +- extra: An object with the following attributes: + + - deviceID: A GUID which identifies the device the command is being sent to. + - flowID: A GUID which uniquely identifies this command invocation. + +processcommand +-------------- + +Records that Sync processed a remote "command" previously sent by another +client. This is logically the "other end" of ``sendcommand``. + +- object: The specific command being processed. +- value: Not used (ie, ``undefined``) +- extra: An object with the following attributes: + + - deviceID: A GUID which identifies the device the command is being sent to. + - flowID: A GUID which uniquely identifies this command invocation. The value + for this GUID will be the same as the flowID sent to the client via + ``sendcommand``. From 5f7905c8f3209b6551d17d5ae5f17064385929e7 Mon Sep 17 00:00:00 2001 From: Mark Hammond Date: Fri, 4 Nov 2016 12:46:57 +1100 Subject: [PATCH 13/22] Bug 1289536 (part 2) - Add a unique flowID GUID to each command sent via the clients collection. r=rnewman MozReview-Commit-ID: 4eTFDq4Yr7S --HG-- extra : rebase_source : faa5cb3ddd41e107b898412b0c9c5899df91c335 --- services/sync/modules/engines/clients.js | 35 +++++++++--- .../sync/tests/unit/test_clients_engine.js | 56 ++++++++++++------- 2 files changed, 62 insertions(+), 29 deletions(-) diff --git a/services/sync/modules/engines/clients.js b/services/sync/modules/engines/clients.js index 3dd67957019d..8ddd115b5ced 100644 --- a/services/sync/modules/engines/clients.js +++ b/services/sync/modules/engines/clients.js @@ -251,10 +251,11 @@ ClientEngine.prototype = { const allCommands = this._readCommands(); const clientCommands = allCommands[clientId] || []; if (hasDupeCommand(clientCommands, command)) { - return; + return false; } allCommands[clientId] = clientCommands.concat(command); this._saveCommands(allCommands); + return true; }, _syncStartup: function _syncStartup() { @@ -477,7 +478,7 @@ ClientEngine.prototype = { * @param args Array of arguments/data for command * @param clientId Client to send command to */ - _sendCommandToClient: function sendCommandToClient(command, args, clientId) { + _sendCommandToClient: function sendCommandToClient(command, args, clientId, flowID = null) { this._log.trace("Sending " + command + " to " + clientId); let client = this._store._remoteClients[clientId]; @@ -491,11 +492,21 @@ ClientEngine.prototype = { let action = { command: command, args: args, + flowID: flowID || Utils.makeGUID(), // used for telemetry. }; - this._log.trace("Client " + clientId + " got a new action: " + [command, args]); - this._addClientCommand(clientId, action); - this._tracker.addChangedID(clientId); + if (this._addClientCommand(clientId, action)) { + this._log.trace(`Client ${clientId} got a new action`, [command, args]); + this._tracker.addChangedID(clientId); + let deviceID; + try { + deviceID = this.service.identity.hashedDeviceID(clientId); + } catch (_) {} + this.service.recordTelemetryEvent("sendcommand", command, undefined, + { flowID: action.flowID, deviceID }); + } else { + this._log.trace(`Client ${clientId} got a duplicate action`, [command, args]); + } }, /** @@ -515,9 +526,12 @@ ClientEngine.prototype = { let URIsToDisplay = []; // Process each command in order. for (let rawCommand of commands) { - let {command, args} = rawCommand; + let {command, args, flowID} = rawCommand; this._log.debug("Processing command: " + command + "(" + args + ")"); + this.service.recordTelemetryEvent("processcommand", command, undefined, + { flowID }); + let engines = [args[0]]; switch (command) { case "resetAll": @@ -570,8 +584,11 @@ ClientEngine.prototype = { * @param clientId * Client ID to send command to. If undefined, send to all remote * clients. + * @param flowID + * A unique identifier used to track success for this operation across + * devices. */ - sendCommand: function sendCommand(command, args, clientId) { + sendCommand: function sendCommand(command, args, clientId, flowID = null) { let commandData = this._commands[command]; // Don't send commands that we don't know about. if (!commandData) { @@ -586,11 +603,11 @@ ClientEngine.prototype = { } if (clientId) { - this._sendCommandToClient(command, args, clientId); + this._sendCommandToClient(command, args, clientId, flowID); } else { for (let [id, record] of Object.entries(this._store._remoteClients)) { if (!record.stale) { - this._sendCommandToClient(command, args, id); + this._sendCommandToClient(command, args, id, flowID); } } } diff --git a/services/sync/tests/unit/test_clients_engine.js b/services/sync/tests/unit/test_clients_engine.js index e34b65df4ba1..1244eb9bbdca 100644 --- a/services/sync/tests/unit/test_clients_engine.js +++ b/services/sync/tests/unit/test_clients_engine.js @@ -389,6 +389,7 @@ add_test(function test_send_command() { equal(command.command, action); equal(command.args.length, 2); deepEqual(command.args, args); + ok(command.flowID); notEqual(tracker.changedIDs[remoteId], undefined); @@ -632,12 +633,12 @@ add_task(async function test_filter_duplicate_names() { let collection = server.getCollection("foo", "clients"); let recentPayload = JSON.parse(JSON.parse(collection.payload(recentID)).ciphertext); - deepEqual(recentPayload.commands, [{ command: "logout", args: [] }], - "Should send commands to the recent client"); + compareCommands(recentPayload.commands, [{ command: "logout", args: [] }], + "Should send commands to the recent client"); let oldPayload = JSON.parse(JSON.parse(collection.payload(oldID)).ciphertext); - deepEqual(oldPayload.commands, [{ command: "logout", args: [] }], - "Should send commands to the week-old client"); + compareCommands(oldPayload.commands, [{ command: "logout", args: [] }], + "Should send commands to the week-old client"); let dupePayload = JSON.parse(JSON.parse(collection.payload(dupeID)).ciphertext); deepEqual(dupePayload.commands, [], @@ -914,6 +915,7 @@ add_task(async function test_merge_commands() { commands: [{ command: "displayURI", args: ["https://example.com", engine.localID, "Yak Herders Anonymous"], + flowID: Utils.makeGUID(), }], version: "48", protocols: ["1.5"], @@ -927,6 +929,7 @@ add_task(async function test_merge_commands() { commands: [{ command: "logout", args: [], + flowID: Utils.makeGUID(), }], version: "48", protocols: ["1.5"], @@ -945,7 +948,7 @@ add_task(async function test_merge_commands() { let collection = server.getCollection("foo", "clients"); let desktopPayload = JSON.parse(JSON.parse(collection.payload(desktopID)).ciphertext); - deepEqual(desktopPayload.commands, [{ + compareCommands(desktopPayload.commands, [{ command: "displayURI", args: ["https://example.com", engine.localID, "Yak Herders Anonymous"], }, { @@ -954,8 +957,8 @@ add_task(async function test_merge_commands() { }], "Should send the logout command to the desktop client"); let mobilePayload = JSON.parse(JSON.parse(collection.payload(mobileID)).ciphertext); - deepEqual(mobilePayload.commands, [{ command: "logout", args: [] }], - "Should not send a duplicate logout to the mobile client"); + compareCommands(mobilePayload.commands, [{ command: "logout", args: [] }], + "Should not send a duplicate logout to the mobile client"); } finally { Svc.Prefs.resetBranch(""); Service.recordManager.clearCache(); @@ -1022,7 +1025,7 @@ add_task(async function test_duplicate_remote_commands() { let collection = server.getCollection("foo", "clients"); let desktopPayload = JSON.parse(JSON.parse(collection.payload(desktopID)).ciphertext); - deepEqual(desktopPayload.commands, [{ + compareCommands(desktopPayload.commands, [{ command: "displayURI", args: ["https://foobar.com", engine.localID, "Foo bar!"], }], "Should only send the second command to the desktop client"); @@ -1062,7 +1065,9 @@ add_task(async function test_upload_after_reboot() { name: "Device B", type: "desktop", commands: [{ - command: "displayURI", args: ["https://deviceclink.com", deviceCID, "Device C link"] + command: "displayURI", + args: ["https://deviceclink.com", deviceCID, "Device C link"], + flowID: Utils.makeGUID(), }], version: "48", protocols: ["1.5"], @@ -1092,7 +1097,7 @@ add_task(async function test_upload_after_reboot() { let collection = server.getCollection("foo", "clients"); let deviceBPayload = JSON.parse(JSON.parse(collection.payload(deviceBID)).ciphertext); - deepEqual(deviceBPayload.commands, [{ + compareCommands(deviceBPayload.commands, [{ command: "displayURI", args: ["https://deviceclink.com", deviceCID, "Device C link"] }], "Should be the same because the upload failed"); @@ -1113,7 +1118,7 @@ add_task(async function test_upload_after_reboot() { engine._sync(); deviceBPayload = JSON.parse(JSON.parse(collection.payload(deviceBID)).ciphertext); - deepEqual(deviceBPayload.commands, [{ + compareCommands(deviceBPayload.commands, [{ command: "displayURI", args: ["https://example.com", engine.localID, "Yak Herders Anonymous"], }], "Should only had written our outgoing command"); @@ -1153,10 +1158,14 @@ add_task(async function test_keep_cleared_commands_after_reboot() { name: "Device A", type: "desktop", commands: [{ - command: "displayURI", args: ["https://deviceblink.com", deviceBID, "Device B link"] + command: "displayURI", + args: ["https://deviceblink.com", deviceBID, "Device B link"], + flowID: Utils.makeGUID(), }, { - command: "displayURI", args: ["https://deviceclink.com", deviceCID, "Device C link"] + command: "displayURI", + args: ["https://deviceclink.com", deviceCID, "Device C link"], + flowID: Utils.makeGUID(), }], version: "48", protocols: ["1.5"], @@ -1195,7 +1204,7 @@ add_task(async function test_keep_cleared_commands_after_reboot() { equal(commandsProcessed, 2, "We processed 2 commands"); let localRemoteRecord = JSON.parse(JSON.parse(collection.payload(engine.localID)).ciphertext); - deepEqual(localRemoteRecord.commands, [{ + compareCommands(localRemoteRecord.commands, [{ command: "displayURI", args: ["https://deviceblink.com", deviceBID, "Device B link"] }, { @@ -1208,13 +1217,19 @@ add_task(async function test_keep_cleared_commands_after_reboot() { name: "Device A", type: "desktop", commands: [{ - command: "displayURI", args: ["https://deviceblink.com", deviceBID, "Device B link"] + command: "displayURI", + args: ["https://deviceblink.com", deviceBID, "Device B link"], + flowID: Utils.makeGUID(), }, { - command: "displayURI", args: ["https://deviceclink.com", deviceCID, "Device C link"] + command: "displayURI", + args: ["https://deviceclink.com", deviceCID, "Device C link"], + flowID: Utils.makeGUID(), }, { - command: "displayURI", args: ["https://deviceclink2.com", deviceCID, "Device C link 2"] + command: "displayURI", + args: ["https://deviceclink2.com", deviceCID, "Device C link 2"], + flowID: Utils.makeGUID(), }], version: "48", protocols: ["1.5"], @@ -1302,7 +1317,7 @@ add_task(async function test_deleted_commands() { "Should not reupload deleted clients"); let activePayload = JSON.parse(JSON.parse(collection.payload(activeID)).ciphertext); - deepEqual(activePayload.commands, [{ command: "logout", args: [] }], + compareCommands(activePayload.commands, [{ command: "logout", args: [] }], "Should send the command to the active client"); } finally { Svc.Prefs.resetBranch(""); @@ -1346,18 +1361,19 @@ add_task(async function test_send_uri_ack() { ourPayload.commands = [{ command: "displayURI", args: ["https://example.com", fakeSenderID, "Yak Herders Anonymous"], + flowID: Utils.makeGUID(), }]; server.insertWBO("foo", "clients", new ServerWBO(engine.localID, encryptPayload(ourPayload), now)); _("Sync again"); engine._sync(); - deepEqual(engine.localCommands, [{ + compareCommands(engine.localCommands, [{ command: "displayURI", args: ["https://example.com", fakeSenderID, "Yak Herders Anonymous"], }], "Should receive incoming URI"); ok(engine.processIncomingCommands(), "Should process incoming commands"); const clearedCommands = engine._readCommands()[engine.localID]; - deepEqual(clearedCommands, [{ + compareCommands(clearedCommands, [{ command: "displayURI", args: ["https://example.com", fakeSenderID, "Yak Herders Anonymous"], }], "Should mark the commands as cleared after processing"); From 5625dfc07eee11a588ffc2d59bc61b9aab6e803c Mon Sep 17 00:00:00 2001 From: Karl Tomlinson Date: Wed, 4 Jan 2017 09:57:48 +1300 Subject: [PATCH 14/22] bug 1324886 with GTK versions < 3.8 draw menuitem background and frame only when in hover and not a separator r=stransky+263117 MozReview-Commit-ID: JdZbuXRbP9X --HG-- extra : rebase_source : b1df1b4b7ac108f3ecd6c3890b165112f89556bb --- widget/gtk/gtk3drawing.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/widget/gtk/gtk3drawing.cpp b/widget/gtk/gtk3drawing.cpp index c4cbe290bf25..2a2f6c64ecd7 100644 --- a/widget/gtk/gtk3drawing.cpp +++ b/widget/gtk/gtk3drawing.cpp @@ -1813,12 +1813,18 @@ moz_gtk_menu_item_paint(WidgetNodeType widget, cairo_t *cr, GdkRectangle* rect, GtkWidgetState* state, GtkTextDirection direction) { gint x, y, w, h; - + guint minorVersion = gtk_get_minor_version(); GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state); + + // GTK versions prior to 3.8 render the background and frame only when not + // a separator and in hover prelight. + if (minorVersion < 8 && (widget == MOZ_GTK_MENUSEPARATOR || + !(state_flags & GTK_STATE_FLAG_PRELIGHT))) + return MOZ_GTK_SUCCESS; + GtkStyleContext* style = ClaimStyleContext(widget, direction, state_flags); - bool pre_3_6 = gtk_check_version(3, 6, 0) != nullptr; - if (pre_3_6) { + if (minorVersion < 6) { // GTK+ 3.4 saves the style context and adds the menubar class to // menubar children, but does each of these only when drawing, not // during layout. @@ -1836,7 +1842,7 @@ moz_gtk_menu_item_paint(WidgetNodeType widget, cairo_t *cr, GdkRectangle* rect, gtk_render_background(style, cr, x, y, w, h); gtk_render_frame(style, cr, x, y, w, h); - if (pre_3_6) { + if (minorVersion < 6) { gtk_style_context_restore(style); } ReleaseStyleContext(style); From 780e1de0b0096f3bc4fd82b3284b17b0fe03c60f Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Wed, 4 Jan 2017 15:52:23 +1100 Subject: [PATCH 15/22] Bug 1328512 part 1 - Reorder some items slightly. r=heycam MozReview-Commit-ID: HFLBml0V0YZ --HG-- extra : rebase_source : af3b6cdd193285619a6324d1b54c87f843bd0add --- layout/style/test/mochitest.ini | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layout/style/test/mochitest.ini b/layout/style/test/mochitest.ini index 99f96a11710b..0733903cf410 100644 --- a/layout/style/test/mochitest.ini +++ b/layout/style/test/mochitest.ini @@ -39,6 +39,8 @@ support-files = support-files = additional_sheets_helper.html [test_additional_sheets.html] support-files = additional_sheets_helper.html +[test_align_justify_computed_values.html] +[test_align_shorthand_serialization.html] [test_all_shorthand.html] [test_animations.html] skip-if = toolkit == 'android' @@ -66,6 +68,7 @@ support-files = file_animations_styles_on_event.html [test_animations_with_disabled_properties.html] support-files = file_animations_with_disabled_properties.html [test_any_dynamic.html] +[test_asyncopen2.html] [test_at_rule_parse_serialize.html] [test_attribute_selector_eof_behavior.html] [test_background_blend_mode.html] @@ -178,7 +181,6 @@ skip-if = toolkit == 'android' #bug 536603 [test_dynamic_change_causing_reflow.html] [test_exposed_prop_accessors.html] [test_extra_inherit_initial.html] -[test_align_justify_computed_values.html] [test_flexbox_child_display_values.xhtml] [test_flexbox_flex_grow_and_shrink.html] [test_flexbox_flex_shorthand.html] @@ -310,5 +312,3 @@ skip-if = toolkit == 'android' #TIMED_OUT skip-if = toolkit == 'android' #TIMED_OUT [test_webkit_device_pixel_ratio.html] [test_webkit_flex_display.html] -[test_asyncopen2.html] -[test_align_shorthand_serialization.html] From 6d87099ce5ba763834b34e00a7e2a7aa993bcf9b Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Mon, 9 Jan 2017 11:45:32 +1100 Subject: [PATCH 16/22] Bug 1328512 part 2 - Skip crashing/timeout mochitests on stylo. r=heycam MozReview-Commit-ID: IzjGHfnTi60 --HG-- extra : rebase_source : a897a9a8bbf971e2962bcc5c2336c913884e6d16 --- layout/style/test/browser.ini | 1 + layout/style/test/chrome/chrome.ini | 2 ++ layout/style/test/mochitest.ini | 27 +++++++++++++++++++++------ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/layout/style/test/browser.ini b/layout/style/test/browser.ini index 4e5e47aac408..3b7aed2c81f8 100644 --- a/layout/style/test/browser.ini +++ b/layout/style/test/browser.ini @@ -6,3 +6,4 @@ support-files = [browser_bug453896.js] [browser_newtab_share_rule_processors.js] +skip-if = stylo # bug 1290224 diff --git a/layout/style/test/chrome/chrome.ini b/layout/style/test/chrome/chrome.ini index e34fce671a51..a0fe97cf9a5b 100644 --- a/layout/style/test/chrome/chrome.ini +++ b/layout/style/test/chrome/chrome.ini @@ -15,7 +15,9 @@ support-files = [test_bug1160724.xul] [test_bug535806.xul] [test_display_mode.html] +tags = fullscreen [test_display_mode_reflow.html] tags = fullscreen [test_hover.html] [test_moz_document_rules.html] +skip-if = stylo # bug 1290224 diff --git a/layout/style/test/mochitest.ini b/layout/style/test/mochitest.ini index 0733903cf410..932272f4a4ce 100644 --- a/layout/style/test/mochitest.ini +++ b/layout/style/test/mochitest.ini @@ -36,8 +36,10 @@ support-files = [test_acid3_test46.html] [test_addSheet.html] +skip-if = stylo # bug 1290224 support-files = additional_sheets_helper.html [test_additional_sheets.html] +skip-if = stylo # bug 1290224 support-files = additional_sheets_helper.html [test_align_justify_computed_values.html] [test_align_shorthand_serialization.html] @@ -64,8 +66,10 @@ support-files = file_animations_pausing.html [test_animations_playbackrate.html] support-files = file_animations_playbackrate.html [test_animations_styles_on_event.html] +skip-if = stylo # timeout bug 1328505 support-files = file_animations_styles_on_event.html [test_animations_with_disabled_properties.html] +skip-if = stylo # timeout bug 1328503 support-files = file_animations_with_disabled_properties.html [test_any_dynamic.html] [test_asyncopen2.html] @@ -145,6 +149,7 @@ support-files = file_bug829816.css [test_bug1055933.html] support-files = file_bug1055933_circle-xxl.png [test_bug1089417.html] +skip-if = stylo # bug 1323665 support-files = file_bug1089417_iframe.html [test_bug1112014.html] [test_bug1203766.html] @@ -172,7 +177,9 @@ skip-if = toolkit == 'android' #bug 536603 [test_css_function_mismatched_parenthesis.html] [test_css_loader_crossorigin_data_url.html] [test_css_supports.html] +skip-if = stylo # bug 1323715 [test_css_supports_variables.html] +skip-if = stylo # bug 1323715 [test_default_bidi_css.html] [test_default_computed_style.html] [test_descriptor_storage.html] @@ -240,6 +247,7 @@ skip-if = android_version == '18' #debug-only failure; timed out #Android 4.3 aw [test_pseudoelement_state.html] [test_pseudoelement_parsing.html] [test_redundant_font_download.html] +skip-if = stylo # bug 1323665 support-files = redundant_font_download.sjs [test_rem_unit.html] [test_restyles_in_smil_animation.html] @@ -262,23 +270,29 @@ skip-if = toolkit == 'android' #bug 775227 [test_transitions_and_reframes.html] [test_transitions_and_restyles.html] [test_transitions_and_zoom.html] +skip-if = stylo # timeout bug 1328499 [test_transitions_cancel_near_end.html] +skip-if = stylo # timeout bug 1328499 [test_transitions_computed_values.html] [test_transitions_computed_value_combinations.html] [test_transitions_events.html] +skip-if = stylo # timeout bug 1328499 [test_transitions.html] skip-if = (android_version == '18' && debug) # bug 1159532 [test_transitions_bug537151.html] +skip-if = stylo # timeout bug 1328499 [test_transitions_dynamic_changes.html] [test_transitions_per_property.html] -skip-if = toolkit == 'android' #bug 775227 +skip-if = (toolkit == 'android' || stylo) # bug 775227 for android, bug 1292283 for stylo [test_transitions_replacement_on_busy_frame.html] +skip-if = stylo # timeout bug 1328503 support-files = file_transitions_replacement_on_busy_frame.html [test_transitions_step_functions.html] [test_transitions_with_disabled_properties.html] support-files = file_transitions_with_disabled_properties.html [test_unclosed_parentheses.html] [test_unicode_range_loading.html] +skip-if = stylo # timeout bug 1328507 support-files = ../../reftests/fonts/markA.woff ../../reftests/fonts/markB.woff ../../reftests/fonts/markC.woff ../../reftests/fonts/markD.woff [test_units_angle.html] [test_units_frequency.html] @@ -294,6 +308,7 @@ skip-if = toolkit == 'android' #bug 775227 [test_value_computation.html] skip-if = toolkit == 'android' [test_value_storage.html] +skip-if = stylo # bug 1329533 [test_variable_serialization_computed.html] [test_variable_serialization_specified.html] [test_variables.html] @@ -301,14 +316,14 @@ support-files = support/external-variable-url.css [test_video_object_fit.html] [test_viewport_units.html] [test_visited_image_loading.html] -skip-if = toolkit == 'android' #TIMED_OUT +skip-if = (toolkit == 'android' || stylo) # TIMED_OUT for android, timeout bug 1328511 for stylo [test_visited_image_loading_empty.html] -skip-if = toolkit == 'android' #TIMED_OUT +skip-if = (toolkit == 'android' || stylo) # TIMED_OUT for android, timeout bug 1328511 for stylo [test_visited_lying.html] -skip-if = toolkit == 'android' #TIMED_OUT +skip-if = (toolkit == 'android' || stylo) # TIMED_OUT for android, timeout bug 1328511 for stylo [test_visited_pref.html] -skip-if = toolkit == 'android' #TIMED_OUT +skip-if = (toolkit == 'android' || stylo) # TIMED_OUT for android, timeout bug 1328511 for stylo [test_visited_reftests.html] -skip-if = toolkit == 'android' #TIMED_OUT +skip-if = (toolkit == 'android' || stylo) # TIMED_OUT for android, timeout bug 1328511 for stylo [test_webkit_device_pixel_ratio.html] [test_webkit_flex_display.html] From e7b267ea348151a3478e11cae996688c271b1f10 Mon Sep 17 00:00:00 2001 From: Xidorn Quan Date: Wed, 4 Jan 2017 16:37:08 +1100 Subject: [PATCH 17/22] Bug 1328512 part 3 - Change stylo mochitest task to run all style system mochitests rather than tagged ones. r=gps MozReview-Commit-ID: 7rUHpTFQflF --HG-- extra : rebase_source : 72a62e1a582afc59ef6cc9c1488862efb14dedc8 --- layout/style/test/mochitest.ini | 3 --- taskcluster/ci/test/test-sets.yml | 2 +- taskcluster/ci/test/tests.yml | 8 ++++---- testing/mozharness/configs/unittests/linux_unittest.py | 2 +- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/layout/style/test/mochitest.ini b/layout/style/test/mochitest.ini index 932272f4a4ce..182ac0c73f97 100644 --- a/layout/style/test/mochitest.ini +++ b/layout/style/test/mochitest.ini @@ -215,11 +215,9 @@ support-files = [test_inherit_computation.html] skip-if = toolkit == 'android' [test_inherit_storage.html] -tags = stylo [test_initial_computation.html] skip-if = toolkit == 'android' [test_initial_storage.html] -tags = stylo [test_keyframes_rules.html] [test_load_events_on_stylesheets.html] [test_logical_properties.html] @@ -303,7 +301,6 @@ support-files = unprefixing_service_iframe.html unprefixing_service_utils.js [test_unprefixing_service_prefs.html] support-files = unprefixing_service_iframe.html unprefixing_service_utils.js [test_value_cloning.html] -tags = stylo skip-if = toolkit == 'android' #bug 775227 [test_value_computation.html] skip-if = toolkit == 'android' diff --git a/taskcluster/ci/test/test-sets.yml b/taskcluster/ci/test/test-sets.yml index e84a83978e21..7872ffe83f22 100644 --- a/taskcluster/ci/test/test-sets.yml +++ b/taskcluster/ci/test/test-sets.yml @@ -67,7 +67,7 @@ stylo-tests: - cppunit - crashtest - reftest-stylo - - mochitest-stylo + - mochitest-style ccov-code-coverage-tests: - mochitest diff --git a/taskcluster/ci/test/tests.yml b/taskcluster/ci/test/tests.yml index 63647cf6ec2d..7e9b76214eaf 100644 --- a/taskcluster/ci/test/tests.yml +++ b/taskcluster/ci/test/tests.yml @@ -770,9 +770,9 @@ mochitest-webgl: extra-options: - --mochitest-suite=mochitest-gl -mochitest-stylo: - description: "Mochitest run for Stylo" - suite: mochitest/mochitest-stylo +mochitest-style: + description: "Mochitest plain run for style system" + suite: mochitest/mochitest-style treeherder-symbol: tc-M(s) loopback-video: true e10s: false @@ -785,7 +785,7 @@ mochitest-stylo: - unittests/linux_unittest.py - remove_executables.py extra-options: - - --mochitest-suite=mochitest-stylo + - --mochitest-suite=mochitest-style reftest: description: "Reftest run" diff --git a/testing/mozharness/configs/unittests/linux_unittest.py b/testing/mozharness/configs/unittests/linux_unittest.py index a3ad095e3fad..304447ad8c07 100644 --- a/testing/mozharness/configs/unittests/linux_unittest.py +++ b/testing/mozharness/configs/unittests/linux_unittest.py @@ -203,7 +203,7 @@ config = { "jetpack-package-clipboard": ["--flavor=jetpack-package", "--subsuite=clipboard"], "jetpack-addon": ["--flavor=jetpack-addon"], "a11y": ["--flavor=a11y"], - "mochitest-stylo": ["--disable-e10s", "--tag=stylo"], + "mochitest-style": ["--disable-e10s", "layout/style/test"], }, # local reftest suites "all_reftest_suites": { From b6276d9ee4daf7de1fbb76a5b67ce06d61729044 Mon Sep 17 00:00:00 2001 From: James Cheng Date: Fri, 23 Dec 2016 15:50:13 +0800 Subject: [PATCH 18/22] Bug 1325332 - [EME][Fennec] Pref on EME API and only support it for M+ android version. r=cpearce MozReview-Commit-ID: Bi5pRhIFsxB --HG-- extra : rebase_source : 8413b9ea132dc4388bdc48e7c09d3f9e4b7676eb --- mobile/android/app/mobile.js | 6 ++++++ .../base/java/org/mozilla/gecko/media/MediaDrmProxy.java | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index 3e94fa2209d8..d408c8f90fa9 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -637,6 +637,12 @@ pref("media.mediasource.enabled", true); pref("media.mediadrm-widevinecdm.visible", true); +#ifdef NIGHTLY_BUILD +// Enable EME(Encrypted media extensions) +pref("media.eme.enabled", true); +pref("media.eme.apiVisible", true); +#endif + // optimize images memory usage pref("image.downscale-during-decode.enabled", true); diff --git a/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java b/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java index 7aeec396dcb9..438c652c0e67 100644 --- a/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java +++ b/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java @@ -47,8 +47,8 @@ public final class MediaDrmProxy { private String mDrmStubId; private static boolean isSystemSupported() { - // Support versions >= LOLLIPOP - if (AppConstants.Versions.preLollipop) { + // Support versions >= Marshmallow + if (AppConstants.Versions.preMarshmallow) { if (DEBUG) Log.d(LOGTAG, "System Not supported !!, current SDK version is " + Build.VERSION.SDK_INT); return false; } From c872ae199d15be24907771c2a33d61927f717993 Mon Sep 17 00:00:00 2001 From: ffxbld Date: Sun, 8 Jan 2017 06:54:04 -0800 Subject: [PATCH 19/22] No bug, Automated HSTS preload list update from host bld-linux64-spot-076 - a=hsts-update --- security/manager/ssl/nsSTSPreloadList.errors | 133 +- security/manager/ssl/nsSTSPreloadList.inc | 26230 ++++++++--------- 2 files changed, 13166 insertions(+), 13197 deletions(-) diff --git a/security/manager/ssl/nsSTSPreloadList.errors b/security/manager/ssl/nsSTSPreloadList.errors index 1bf8f88430ec..5af91b5b1b4d 100644 --- a/security/manager/ssl/nsSTSPreloadList.errors +++ b/security/manager/ssl/nsSTSPreloadList.errors @@ -9,7 +9,9 @@ 10seos.com: did not receive HSTS header 10tacle.io: could not connect to host 123plons.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] +127011-networks.ch: could not connect to host 12vpnchina.com: could not connect to host +16packets.com: could not connect to host 18f.gsa.gov: did not receive HSTS header 1a-jva.de: did not receive HSTS header 1p.ro: could not connect to host @@ -75,7 +77,6 @@ acgmoon.org: did not receive HSTS header acisonline.net: did not receive HSTS header acorns.com: did not receive HSTS header acr.im: could not connect to host -acritelli.com: could not connect to host acslimited.co.uk: did not receive HSTS header activateplay.com: did not receive HSTS header activeweb.top: could not connect to host @@ -114,6 +115,7 @@ aether.pw: could not connect to host aevpn.net: could not connect to host aficotroceni.ro: did not receive HSTS header afp548.tk: could not connect to host +afyou.co.kr: could not connect to host agalaxyfarfaraway.co.uk: could not connect to host agbremen.de: did not receive HSTS header agevio.com: could not connect to host @@ -125,6 +127,7 @@ ahabingo.com: did not receive HSTS header ahoynetwork.com: could not connect to host ahri.ovh: could not connect to host aidanwoods.com: did not receive HSTS header +aimeeandalec.com: did not receive HSTS header airbnb.com: did not receive HSTS header aircomms.com: did not receive HSTS header airproto.com: did not receive HSTS header @@ -146,6 +149,8 @@ alariel.de: did not receive HSTS header alarmsystemreviews.com: did not receive HSTS header albertopimienta.com: did not receive HSTS header alcazaar.com: could not connect to host +alecpap.com: did not receive HSTS header +alecpapierniak.com: did not receive HSTS header alecvannoten.be: did not receive HSTS header alenan.org: could not connect to host alessandro.pw: did not receive HSTS header @@ -161,6 +166,7 @@ all.tf: could not connect to host alldaymonitoring.com: could not connect to host allforyou.at: could not connect to host allinnote.com: could not connect to host +allmbw.com: could not connect to host allstarswithus.com: could not connect to host alpha.irccloud.com: could not connect to host alphabit-secure.com: could not connect to host @@ -215,6 +221,7 @@ anomaly.ws: did not receive HSTS header anonboards.com: did not receive HSTS header anonymousstatecollegelulzsec.com: could not connect to host anook.com: max-age too low: 0 +another.ch: could not connect to host ant.land: could not connect to host anthenor.co.uk: could not connect to host antimine.kr: could not connect to host @@ -225,8 +232,7 @@ antoniorequena.com.ve: could not connect to host antscript.com: did not receive HSTS header any.pm: could not connect to host anycoin.me: could not connect to host -aojiao.org: did not receive HSTS header -aosc.io: did not receive HSTS header +aojiao.org: could not connect to host apachelounge.com: did not receive HSTS header apeasternpower.com: max-age too low: 0 api.mega.co.nz: could not connect to host @@ -235,6 +241,7 @@ apis.google.com: did not receive HSTS header (error ignored - included regardles apis.world: did not receive HSTS header apmg-certified.com: did not receive HSTS header apnakliyat.com: did not receive HSTS header +apolloyl.com: did not receive HSTS header aponkralsunucu.com: did not receive HSTS header app.lookout.com: could not connect to host app.manilla.com: could not connect to host @@ -254,7 +261,6 @@ aran.me.uk: did not receive HSTS header arboineuropa.nl: did not receive HSTS header arbu.eu: max-age too low: 2419200 argh.io: could not connect to host -aristocrates.co: could not connect to host arlen.se: could not connect to host armingrodon.de: did not receive HSTS header armory.consulting: could not connect to host @@ -285,7 +291,6 @@ asset-alive.net: did not receive HSTS header astrath.net: could not connect to host astrolpost.com: could not connect to host astromelody.com: did not receive HSTS header -asuhe.cc: did not receive HSTS header atavio.at: could not connect to host atavio.ch: could not connect to host atavio.de: did not receive HSTS header @@ -321,6 +326,7 @@ auverbox.ovh: could not connect to host av.de: did not receive HSTS header avec-ou-sans-ordonnance.fr: could not connect to host avinet.com: max-age too low: 0 +avqueen.cn: could not connect to host awg-mode.de: did not receive HSTS header axado.com.br: did not receive HSTS header axeny.com: did not receive HSTS header @@ -332,6 +338,7 @@ baby-click.de: did not receive HSTS header babybic.hu: did not receive HSTS header babyhouse.xyz: could not connect to host babysaying.me: could not connect to host +bacchanallia.com: did not receive HSTS header back-bone.nl: did not receive HSTS header badcronjob.com: could not connect to host badkamergigant.com: could not connect to host @@ -422,10 +429,11 @@ biofam.ru: did not receive HSTS header bionicspirit.com: could not connect to host biophysik-ssl.de: did not receive HSTS header birkman.com: did not receive HSTS header -birzan.org: could not connect to host bismarck.moe: did not receive HSTS header +bit-rapid.com: could not connect to host bitchan.it: could not connect to host bitcoinworld.me: could not connect to host +bitconcepts.co.uk: could not connect to host bitf.ly: could not connect to host bitfactory.ws: could not connect to host bitfarm-archiv.com: did not receive HSTS header @@ -471,7 +479,6 @@ blupig.net: did not receive HSTS header bm-trading.nl: did not receive HSTS header bngsecure.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] bobiji.com: did not receive HSTS header -bobobox.net: could not connect to host bodo-wolff.de: could not connect to host bodyblog.nl: did not receive HSTS header bodybuilding-legends.com: could not connect to host @@ -519,15 +526,17 @@ broken-oak.com: could not connect to host brookechase.com: did not receive HSTS header browserid.org: did not receive HSTS header brunix.net: did not receive HSTS header +brunoramos.org: could not connect to host bsagan.fr: could not connect to host bsdtips.com: could not connect to host bsquared.org: could not connect to host btcdlc.com: could not connect to host buchheld.at: did not receive HSTS header bucket.tk: could not connect to host +budger.nl: could not connect to host budgetthostels.nl: did not receive HSTS header budskap.eu: could not connect to host -bugtrack.io: could not connect to host +bugtrack.io: did not receive HSTS header buhler.pro: did not receive HSTS header buildci.asia: could not connect to host buildsaver.co.za: did not receive HSTS header @@ -541,7 +550,7 @@ burrow.ovh: could not connect to host burtrum.me: could not connect to host burtrum.top: could not connect to host business.lookout.com: could not connect to host -business.medbank.com.mt: max-age too low: 10702363 +business.medbank.com.mt: max-age too low: 10615978 businesshosting.nl: did not receive HSTS header busold.ws: could not connect to host bustimes.org: could not connect to host @@ -549,7 +558,6 @@ butchersworkshop.com: did not receive HSTS header buttercoin.com: could not connect to host buybaby.eu: did not receive HSTS header buyfox.de: did not receive HSTS header -bw.codes: could not connect to host by4cqb.cn: could not connect to host bynet.cz: could not connect to host bypassed.press: could not connect to host @@ -737,6 +745,7 @@ code.google.com: did not receive HSTS header (error ignored - included regardles codeco.pw: could not connect to host codeforce.io: could not connect to host codepoet.de: could not connect to host +codepult.com: could not connect to host codepx.com: did not receive HSTS header codiva.io: max-age too low: 2592000 coffeeetc.co.uk: did not receive HSTS header @@ -772,6 +781,7 @@ content-api-dev.azurewebsites.net: could not connect to host continuumgaming.com: could not connect to host controlcenter.gigahost.dk: did not receive HSTS header coolchevy.org.ua: could not connect to host +coopens.com: did not receive HSTS header coralproject.net: did not receive HSTS header cordial-restaurant.com: did not receive HSTS header core.mx: could not connect to host @@ -815,6 +825,7 @@ crowdcurity.com: did not receive HSTS header crowdjuris.com: could not connect to host crtvmgmt.com: could not connect to host crudysql.com: could not connect to host +crute.me: could not connect to host cruzr.xyz: could not connect to host crypt.guru: could not connect to host cryptify.eu: could not connect to host @@ -850,7 +861,6 @@ cybershambles.com: could not connect to host cycleluxembourg.lu: did not receive HSTS header cydia-search.io: could not connect to host cyphertite.com: could not connect to host -d0xq.net: could not connect to host dad256.tk: could not connect to host dadtheimpaler.com: could not connect to host dah5.com: did not receive HSTS header @@ -927,6 +937,7 @@ deltaconcepts.de: did not receive HSTS header deltanet-production.de: max-age too low: 0 demilitarized.ninja: could not connect to host democracychronicles.com: did not receive HSTS header +demotops.com: did not receive HSTS header demuzere.com: could not connect to host demuzere.eu: could not connect to host demuzere.net: could not connect to host @@ -957,7 +968,6 @@ diarbag.us: did not receive HSTS header diasp.cz: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] diedrich.co: could not connect to host digidroom.be: did not receive HSTS header -digitalbank.kz: did not receive HSTS header digitaldaddy.net: could not connect to host digitalriver.tk: could not connect to host digitalskillswap.com: could not connect to host @@ -995,6 +1005,7 @@ dollywiki.co.uk: could not connect to host dolphin-cloud.com: could not connect to host dolphincorp.co.uk: could not connect to host domaris.de: did not receive HSTS header +domfee.com: could not connect to host dominique-mueller.de: did not receive HSTS header donttrustrobots.nl: could not connect to host donzelot.co.uk: max-age too low: 3600 @@ -1035,6 +1046,7 @@ duesee.org: could not connect to host dullsir.com: did not receive HSTS header duria.de: max-age too low: 3600 dutchrank.com: could not connect to host +dutchrank.nl: could not connect to host dwhd.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] dxa.io: could not connect to host dycontrol.de: could not connect to host @@ -1067,6 +1079,7 @@ echosystem.fr: did not receive HSTS header ecole-en-danger.fr: could not connect to host ecomparemo.com: did not receive HSTS header ecorus.eu: did not receive HSTS header +ecupcafe.com: could not connect to host edcphenix.tk: could not connect to host edelsteincosmetic.com: did not receive HSTS header edissecurity.sk: did not receive HSTS header @@ -1161,7 +1174,7 @@ erotische-aanbiedingen.nl: could not connect to host errlytics.com: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] errolz.com: could not connect to host errors.zenpayroll.com: could not connect to host -ersindemirtas.com: could not connect to host +ersindemirtas.com: did not receive HSTS header escotour.com: did not receive HSTS header esec.rs: did not receive HSTS header espra.com: could not connect to host @@ -1297,6 +1310,7 @@ flouartistique.ch: could not connect to host flow.pe: could not connect to host flow.su: could not connect to host flowersandclouds.com: could not connect to host +flra.gov: could not connect to host flukethoughts.com: could not connect to host flushstudios.com: did not receive HSTS header flyaces.com: did not receive HSTS header @@ -1397,6 +1411,7 @@ gampenhof.de: did not receive HSTS header gancedo.com.es: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] gaptek.id: did not receive HSTS header garciamartin.me: could not connect to host +gasnews.net: did not receive HSTS header gatilagata.com.br: did not receive HSTS header gchq.wtf: could not connect to host gdpventure.com: max-age too low: 0 @@ -1499,6 +1514,7 @@ gpsfix.cz: could not connect to host gpstuner.com: did not receive HSTS header gracesofgrief.com: max-age too low: 86400 grandmascookieblog.com: did not receive HSTS header +grandmasfridge.org: could not connect to host graph.no: did not receive HSTS header gravito.nl: did not receive HSTS header gravity-net.de: could not connect to host @@ -1541,7 +1557,6 @@ gypthecat.com: max-age too low: 604800 gyz.io: could not connect to host h2check.org: could not connect to host haarkliniek.com: did not receive HSTS header -haavard.me: could not connect to host habanaavenue.com: did not receive HSTS header habbo.life: did not receive HSTS header hablemosdetecnologia.com.ve: could not connect to host @@ -1549,6 +1564,7 @@ hack.cz: could not connect to host hack.li: did not receive HSTS header hacker.one: could not connect to host hackerforever.com: did not receive HSTS header +hackernet.se: could not connect to host hackerone-ext-adroll.com: could not connect to host hackest.org: did not receive HSTS header hackit.im: could not connect to host @@ -1602,6 +1618,7 @@ hdwallpapers.net: did not receive HSTS header healtious.com: did not receive HSTS header heart.ge: did not receive HSTS header heartlandrentals.com: did not receive HSTS header +heartsucker.com: could not connect to host heftkaufen.de: did not receive HSTS header hejahanif.se: could not connect to host helloworldhost.com: did not receive HSTS header @@ -1666,6 +1683,7 @@ howrandom.org: could not connect to host hr-intranet.com: did not receive HSTS header hsir.me: could not connect to host hsts.date: could not connect to host +hszhyy120.com: did not receive HSTS header http418.xyz: could not connect to host httpstatuscode418.xyz: could not connect to host hu.search.yahoo.com: did not receive HSTS header @@ -1686,7 +1704,7 @@ i-partners.sk: did not receive HSTS header iamokay.nl: did not receive HSTS header iamusingtheinter.net: could not connect to host iamveto.com: could not connect to host -iapws.com: did not receive HSTS header +iapws.com: could not connect to host iban.is: could not connect to host icebat.dyndns.org: could not connect to host icewoman.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] @@ -1711,6 +1729,7 @@ ies-italia.it: did not receive HSTS header ies.id.lv: could not connect to host ifad.org: did not receive HSTS header ifleurs.com: could not connect to host +ignace72.eu: could not connect to host ignatisd.gr: did not receive HSTS header ignitedmindz.in: could not connect to host igule.net: could not connect to host @@ -1740,7 +1759,6 @@ immunicity.press: could not connect to host immunicity.top: could not connect to host imolug.org: did not receive HSTS header imouto.my: max-age too low: 5184000 -imouyang.com: could not connect to host imperialwebsolutions.com: did not receive HSTS header imu.li: did not receive HSTS header imusic.dk: did not receive HSTS header @@ -1788,7 +1806,6 @@ inverselink.com: could not connect to host invite24.pro: could not connect to host inwesttitle.com: max-age too low: 0 iocheck.com: could not connect to host -ioiart.eu: did not receive HSTS header ionx.co.uk: did not receive HSTS header iop.intuit.com: max-age too low: 86400 iosmods.com: could not connect to host @@ -1797,6 +1814,7 @@ iotsms.io: could not connect to host ip-life.net: could not connect to host ip6.im: did not receive HSTS header ipmimagazine.com: did not receive HSTS header +ipsec.pl: could not connect to host iptel.by: max-age too low: 0 iptel.ro: could not connect to host ipv6cloud.club: could not connect to host @@ -1822,6 +1840,7 @@ itos.asia: did not receive HSTS header itos.pl: did not receive HSTS header itsadog.co.uk: did not receive HSTS header itsamurai.ru: max-age too low: 2592000 +itsatrap.nl: could not connect to host itsecurityassurance.pw: did not receive HSTS header itsg-faq.de: could not connect to host itshost.ru: could not connect to host @@ -1907,15 +1926,14 @@ jkbuster.com: could not connect to host jmdekker.it: could not connect to host joakimalgroy.com: could not connect to host jobmedic.com: did not receive HSTS header -jobss.co.uk: could not connect to host joedavison.me: could not connect to host jogi-server.de: did not receive HSTS header johnblackbourn.com: could not connect to host johners.me: could not connect to host -johners.tech: did not receive HSTS header +johners.tech: could not connect to host johnrom.com: did not receive HSTS header jonas-keidel.de: did not receive HSTS header -jonasgroth.se: max-age too low: 2592000 +jonasgroth.se: did not receive HSTS header jonathan.ir: could not connect to host jonathancarter.org: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] jonn.me: could not connect to host @@ -1975,7 +1993,6 @@ kawaii.io: could not connect to host kawaiiku.com: could not connect to host kawaiiku.de: could not connect to host kayon.cf: could not connect to host -kcolford.com: could not connect to host kcsordparticipation.org: could not connect to host kd-plus.pp.ua: could not connect to host kdata.it: did not receive HSTS header @@ -1989,7 +2006,7 @@ kerangalam.com: could not connect to host kerksanders.nl: did not receive HSTS header kermadec.net: could not connect to host kernl.us: did not receive HSTS header -kevinapease.com: did not receive HSTS header +keybored.me: could not connect to host keymaster.lookout.com: did not receive HSTS header kgxtech.com: max-age too low: 2592000 ki-on.net: did not receive HSTS header @@ -2012,7 +2029,7 @@ kirkforcongress.com: could not connect to host kirkforsenate.com: could not connect to host kirkpatrickdavis.com: could not connect to host kisa.io: could not connect to host -kisalt.im: could not connect to host +kisalt.im: did not receive HSTS header kissart.net: could not connect to host kissflow.com: did not receive HSTS header kisun.co.jp: could not connect to host @@ -2030,6 +2047,8 @@ kleertjesvoordelig.nl: did not receive HSTS header kleinblogje.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] kletterkater.com: did not receive HSTS header klicktojob.de: could not connect to host +klingeletest.de: could not connect to host +klustekeningen.nl: did not receive HSTS header kmartin.io: did not receive HSTS header knccloud.com: could not connect to host kngkng.com: could not connect to host @@ -2037,6 +2056,7 @@ knowledgesnap.com: did not receive HSTS header kodokushi.fr: could not connect to host koen.io: did not receive HSTS header koenrouwhorst.nl: did not receive HSTS header +koketteriet.se: could not connect to host kollabria.com: max-age too low: 0 komikito.com: could not connect to host kompetenzwerft.de: did not receive HSTS header @@ -2080,7 +2100,6 @@ kylinj.com: could not connect to host kyochon.fr: could not connect to host kz.search.yahoo.com: did not receive HSTS header kzjnet.com: could not connect to host -kzsdabas.hu: could not connect to host labaia.info: could not connect to host labina.com.tr: did not receive HSTS header laboiteapc.fr: did not receive HSTS header @@ -2140,13 +2159,13 @@ lesperlesdunet.fr: could not connect to host letras.mus.br: did not receive HSTS header letsmultiplayerplay.com: did not receive HSTS header letustravel.tk: could not connect to host +lewis.li: could not connect to host lfullerdesign.com: did not receive HSTS header lgiswa.com.au: did not receive HSTS header lgrs.com.au: did not receive HSTS header lgts.se: could not connect to host li.search.yahoo.com: did not receive HSTS header liaillustr.at: did not receive HSTS header -liam-w.com: could not connect to host lianye1.cc: could not connect to host lianye2.cc: could not connect to host lianye3.cc: could not connect to host @@ -2218,6 +2237,7 @@ lookzook.com: did not receive HSTS header loophost.com.br: did not receive HSTS header lordjevington.co.uk: could not connect to host lostinsecurity.com: could not connect to host +lostinweb.eu: could not connect to host lothai.re: could not connect to host lotsencafe.de: did not receive HSTS header lovelifelovelive.com: could not connect to host @@ -2253,6 +2273,7 @@ luther.fi: could not connect to host luxus-russen.de: did not receive HSTS header luxwatch.com: could not connect to host lv.search.yahoo.com: did not receive HSTS header +lyonl.com: did not receive HSTS header lzkill.com: could not connect to host m-ali.xyz: did not receive HSTS header m.gparent.org: could not connect to host @@ -2274,6 +2295,7 @@ mafamane.com: could not connect to host mafiareturns.com: max-age too low: 2592000 magenx.com: did not receive HSTS header mahamed91.pw: could not connect to host +mahefa.co.uk: could not connect to host mail-settings.google.com: did not receive HSTS header (error ignored - included regardless) mail.google.com: did not receive HSTS header (error ignored - included regardless) maildragon.com: could not connect to host @@ -2303,6 +2325,7 @@ markayapilandirma.com: could not connect to host market.android.com: did not receive HSTS header (error ignored - included regardless) markrego.com: could not connect to host markus-dev.com: did not receive HSTS header +markusehrlicher.de: could not connect to host markusweimar.de: did not receive HSTS header marleyresort.com: did not receive HSTS header marshut.net: could not connect to host @@ -2404,6 +2427,7 @@ mijn-email.org: could not connect to host mikaelemilsson.net: did not receive HSTS header mikeburns.com: did not receive HSTS header mikeg.de: did not receive HSTS header +mikek.work: did not receive HSTS header mikeology.org: could not connect to host mikepair.net: did not receive HSTS header mikonmaa.fi: could not connect to host @@ -2429,17 +2453,18 @@ mister.hosting: could not connect to host misterl.net: did not receive HSTS header mitchellrenouf.ca: could not connect to host mittenhacks.com: could not connect to host +mitzpettel.com: could not connect to host miui-germany.de: did not receive HSTS header miyoshi-kikaku.co.jp: did not receive HSTS header miyoshi-kikaku.com: did not receive HSTS header mizd.at: could not connect to host mizi.name: did not receive HSTS header -mlcdn.co: could not connect to host mlpepilepsy.org: could not connect to host mm13.at: could not connect to host mmgazhomeloans.com: did not receive HSTS header mnemotiv.com: could not connect to host mnetworkingsolutions.co.uk: did not receive HSTS header +mobaircon.com: could not connect to host mobifinans.ru: did not receive HSTS header mobilekey.co: could not connect to host mobilemedics.com: did not receive HSTS header @@ -2497,7 +2522,6 @@ mtcgf.com: did not receive HSTS header mtg-esport.de: could not connect to host mu.search.yahoo.com: did not receive HSTS header mudcrab.us: did not receive HSTS header -mumei.space: could not connect to host munich-rage.de: could not connect to host munzee.com: did not receive HSTS header muriburi.land: could not connect to host @@ -2538,7 +2562,6 @@ myraytech.net: did not receive HSTS header mysecretrewards.com: did not receive HSTS header mystery-science-theater-3000.de: did not receive HSTS header mystudy.me: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] -mythslegendscollection.com: did not receive HSTS header myvirtualserver.com: max-age too low: 2592000 myzone.com: did not receive HSTS header mziulu.me: could not connect to host @@ -2596,6 +2619,7 @@ netherwind.eu: did not receive HSTS header netica.fr: did not receive HSTS header netmagik.com: did not receive HSTS header netsight.org: could not connect to host +nettefoundation.com: could not connect to host netzbit.de: could not connect to host netzpolitik.org: did not receive HSTS header netztest.at: did not receive HSTS header @@ -2627,7 +2651,7 @@ niconode.com: could not connect to host nien.chat: could not connect to host niho.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] nikcub.com: could not connect to host -nikksno.io: did not receive HSTS header +nikksno.io: could not connect to host nikomo.fi: could not connect to host ninchisho-online.com: did not receive HSTS header nine-hells.net: could not connect to host @@ -2683,7 +2707,6 @@ nu3.fi: did not receive HSTS header nu3.fr: did not receive HSTS header nu3.no: did not receive HSTS header nu3.se: did not receive HSTS header -nube.ninja: could not connect to host nufla.de: could not connect to host null-sec.ru: could not connect to host null.cat: could not connect to host @@ -2825,7 +2848,7 @@ pacelink.de: could not connect to host packlane.com: did not receive HSTS header pader-deko.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] paestbin.com: could not connect to host -pagerate.io: could not connect to host +pagerate.io: did not receive HSTS header pagetoimage.com: could not connect to host pahae.de: did not receive HSTS header paintingat.com: could not connect to host @@ -2843,7 +2866,6 @@ papygeek.com: could not connect to host parent5446.us: could not connect to host parentmail.co.uk: did not receive HSTS header parithy.net: could not connect to host -parkingpoint.co.uk: could not connect to host parodybit.net: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsISiteSecurityService.processHeader]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: /builds/slave/m-cen-l64-periodicupdate-00000/getHSTSPreloadList.js :: processStsHeader :: line 121" data: no] parpaing-paillette.net: could not connect to host particonpsplus.it: could not connect to host @@ -2854,6 +2876,7 @@ partyvan.it: could not connect to host partyvan.moe: could not connect to host partyvan.nl: could not connect to host partyvan.se: could not connect to host +passphrase.today: could not connect to host passwordbox.com: did not receive HSTS header passwordrevelator.net: did not receive HSTS header passwords.google.com: did not receive HSTS header (error ignored - included regardless) @@ -2927,6 +2950,7 @@ piratedb.com: could not connect to host piratedot.com: could not connect to host piratelist.online: could not connect to host piratenlogin.de: could not connect to host +pirateproxy.sx: could not connect to host pirati.cz: max-age too low: 604800 pirlitu.com: did not receive HSTS header pisexy.me: did not receive HSTS header @@ -2958,10 +2982,9 @@ plombirator.kz: could not connect to host plothost.com: did not receive HSTS header ploup.net: could not connect to host pmnts.io: could not connect to host -po.gl: could not connect to host +po.gl: did not receive HSTS header poiema.com.sg: did not receive HSTS header pol.in.th: could not connect to host -polaire.org: did not receive HSTS header poleartschool.com: could not connect to host polimat.org: could not connect to host politically-incorrect.xyz: could not connect to host @@ -2975,8 +2998,7 @@ poolsandstuff.com: did not receive HSTS header poon.tech: could not connect to host porno-gif.ru: did not receive HSTS header portalplatform.net: did not receive HSTS header -postcodewise.co.uk: could not connect to host -posterspy.com: did not receive HSTS header +postcodewise.co.uk: did not receive HSTS header postscheduler.org: could not connect to host posylka.de: did not receive HSTS header poussinooz.fr: could not connect to host @@ -3026,7 +3048,8 @@ proximato.com: could not connect to host proxybay.al: could not connect to host proxybay.club: could not connect to host proxybay.info: did not receive HSTS header -prxio.site: could not connect to host +prxio.date: could not connect to host +prxio.site: did not receive HSTS header prytkov.com: did not receive HSTS header psicologia.co.ve: could not connect to host psw.academy: did not receive HSTS header @@ -3054,7 +3077,7 @@ qccqld.org.au: could not connect to host qingxuan.info: max-age too low: 864000 qinxi1992.com: did not receive HSTS header qldconservation.org: could not connect to host -qorm.co.uk: could not connect to host +qorm.co.uk: did not receive HSTS header qrara.net: did not receive HSTS header qrlending.com: did not receive HSTS header quail.solutions: could not connect to host @@ -3072,9 +3095,9 @@ qwilink.me: did not receive HSTS header r10n.com: did not receive HSTS header r15.me: could not connect to host r3bl.me: did not receive HSTS header +r40.us: could not connect to host raajheshkannaa.com: could not connect to host radicaleducation.net: could not connect to host -radiormi.com: did not receive HSTS header rafaelcz.de: could not connect to host railgun.com.cn: could not connect to host rainbowbarracuda.com: could not connect to host @@ -3215,6 +3238,7 @@ rubyshop.nl: max-age too low: 604800 rudeotter.com: could not connect to host rudloff.pro: did not receive HSTS header rugirlfriend.com: could not connect to host +rugk.dedyn.io: could not connect to host ruiming.me: did not receive HSTS header runawebinar.nl: could not connect to host runementors.com: could not connect to host @@ -3281,6 +3305,7 @@ schwarzkopfforyou.de: did not receive HSTS header scienceathome.org: did not receive HSTS header scooshonline.co.uk: did not receive HSTS header scotbirchfield.com: did not receive HSTS header +scottdial.com: could not connect to host scottgthomas.com: could not connect to host scrambl.is: could not connect to host scrambler.in: could not connect to host @@ -3337,6 +3362,7 @@ sensiblemn.org: could not connect to host sensibus.com: did not receive HSTS header seo.consulting: did not receive HSTS header seomobo.com: could not connect to host +seon.me: could not connect to host seowarp.net: did not receive HSTS header sep23.ru: did not receive HSTS header seq.tf: did not receive HSTS header @@ -3400,7 +3426,6 @@ simbolo.co.uk: could not connect to host simod.org: could not connect to host simon.butcher.name: max-age too low: 2629743 simongong.net: did not receive HSTS header -simonkjellberg.se: could not connect to host simpleai.net: max-age too low: 600 simplefraud.com: could not connect to host simplelearner.com: could not connect to host @@ -3419,6 +3444,7 @@ skk.io: could not connect to host skoda-clever-lead.de: could not connect to host skoda-im-dialog.de: could not connect to host skullhouse.nyc: did not receive HSTS header +skyasker.cn: could not connect to host skyflix.me: did not receive HSTS header skyoy.com: could not connect to host slash-dev.de: did not receive HSTS header @@ -3479,6 +3505,7 @@ someshit.xyz: could not connect to host somethingnew.xyz: did not receive HSTS header sonic.sk: max-age too low: 0 sonicrainboom.rocks: did not receive HSTS header +sortaweird.net: could not connect to host sotiran.com: did not receive HSTS header sotor.de: did not receive HSTS header soulboy.io: did not receive HSTS header @@ -3603,6 +3630,7 @@ suksit.com: could not connect to host sumoatm.com: did not receive HSTS header sumoscout.de: did not receive HSTS header suncountrymarine.com: did not receive HSTS header +sunflyer.cn: did not receive HSTS header sunnyfruit.ru: did not receive HSTS header sunshinepress.org: could not connect to host suos.io: could not connect to host @@ -3682,7 +3710,6 @@ tcomms.org: max-age too low: 0 tcp.expert: did not receive HSTS header teachforcanada.ca: did not receive HSTS header team-one.racing: could not connect to host -team-pancake.eu: could not connect to host teamsocial.co: did not receive HSTS header teamzeus.cz: could not connect to host tech55i.com: did not receive HSTS header @@ -3694,7 +3721,6 @@ techloaner.com: could not connect to host techmatehq.com: could not connect to host technosavvyport.com: did not receive HSTS header techpointed.com: could not connect to host -techvalue.gr: did not receive HSTS header tegelsensanitaironline.nl: did not receive HSTS header tekshrek.com: did not receive HSTS header telefonnummer.online: could not connect to host @@ -3734,7 +3760,7 @@ thecharlestonwaldorf.com: did not receive HSTS header theclementinebutchers.com: could not connect to host thecoffeehouse.xyz: could not connect to host thediaryofadam.com: did not receive HSTS header -theendofzion.com: did not receive HSTS header +theendofzion.com: could not connect to host theeyeopener.com: did not receive HSTS header theflowerbasketonline.com: could not connect to host thefootballanalyst.com: could not connect to host @@ -3749,6 +3775,7 @@ themicrocapital.com: could not connect to host themillerslive.com: could not connect to host theodorejones.info: could not connect to host thepartywarehouse.co.uk: did not receive HSTS header +thepasteb.in: could not connect to host thepiratebay.al: could not connect to host thepiratebay.tech: could not connect to host therapyportal.com: did not receive HSTS header @@ -3763,6 +3790,7 @@ thevintagenews.com: [Exception... "Component returned failure code: 0x80004005 ( thewebfellas.com: did not receive HSTS header thezonders.com: did not receive HSTS header thierfreund.de: could not connect to host +thijsvanderveen.net: could not connect to host thinkcoding.de: could not connect to host thirdpartytrade.com: did not receive HSTS header thirty5.net: did not receive HSTS header @@ -3774,7 +3802,6 @@ thorncreek.net: did not receive HSTS header thriveapproach.co.uk: did not receive HSTS header thues.eu: could not connect to host thumbtack.com: did not receive HSTS header -ticfleet.com: could not connect to host tickettoaster.de: max-age too low: 0 tickopa.co.uk: could not connect to host tickreport.com: did not receive HSTS header @@ -3813,7 +3840,7 @@ tobias-bielefeld.de: did not receive HSTS header tobiasmathes.com: could not connect to host tobiasmathes.name: could not connect to host tobiasofficial.at: could not connect to host -todo.is: could not connect to host +todo.is: did not receive HSTS header todobazar.es: could not connect to host tokyopopline.com: did not receive HSTS header tollmanz.com: did not receive HSTS header @@ -3848,6 +3875,7 @@ tradingcentre.com.au: did not receive HSTS header tradinghope.com: could not connect to host traeningsprojekt.dk: did not receive HSTS header traindb.nl: could not connect to host +trainut.com: could not connect to host translate.googleapis.com: did not receive HSTS header (error ignored - included regardless) transportal.sk: did not receive HSTS header treeby.net: could not connect to host @@ -3869,6 +3897,7 @@ tsecy.com: did not receive HSTS header tsgoc.com: did not receive HSTS header tsrstore.gq: could not connect to host tssouthernpower.com: max-age too low: 0 +tsumegumi.net: could not connect to host tuamoronline.com: could not connect to host tubepro.de: max-age too low: 600000 tuingereedschappen.net: could not connect to host @@ -3898,6 +3927,8 @@ tx041cap.org: did not receive HSTS header txclimbers.com: could not connect to host txf.pw: could not connect to host ty2u.com: did not receive HSTS header +tyler.rs: could not connect to host +tyleromeara.com: could not connect to host tylian.net: max-age too low: 0 typingrevolution.com: did not receive HSTS header tyrelius.com: did not receive HSTS header @@ -3905,7 +3936,6 @@ tyroproducts.eu: did not receive HSTS header tzappa.net: could not connect to host u-blox.com: max-age too low: 0 ua.search.yahoo.com: did not receive HSTS header -uberwald.ws: could not connect to host ubicloud.de: could not connect to host ublox.com: did not receive HSTS header ubuntuhot.com: did not receive HSTS header @@ -3922,6 +3952,7 @@ ulmo.dk: could not connect to host ultros.io: did not receive HSTS header umidev.com: could not connect to host umie.cc: did not receive HSTS header +unart.info: could not connect to host unbanthe.net: could not connect to host unblocked-networks.org: could not connect to host unblocked.host: could not connect to host @@ -3989,7 +4020,6 @@ vanitynailworkz.com: could not connect to host vanlaanen.com: did not receive HSTS header vansieleghem.com: could not connect to host vasanth.org: could not connect to host -vault21.net: could not connect to host vbulletin-russia.com: could not connect to host vbulletinrussia.com: could not connect to host vcdove.com: did not receive HSTS header @@ -4007,6 +4037,7 @@ vetmgmt.com: could not connect to host vfree.org: could not connect to host vglimg.com: could not connect to host vhost.co.id: could not connect to host +vibrant-america.com: could not connect to host videnskabsklubben.dk: did not receive HSTS header videomuz.com: did not receive HSTS header vidz.ga: could not connect to host @@ -4117,7 +4148,6 @@ whatnext.limited: did not receive HSTS header whats.io: did not receive HSTS header whatsstalk.me: could not connect to host when-release.com: did not receive HSTS header -whisker.network: could not connect to host whiterabbitcakery.com: could not connect to host whitestagforge.com: did not receive HSTS header whoclicks.net: could not connect to host @@ -4211,7 +4241,7 @@ xellos.ml: could not connect to host xendo.net: did not receive HSTS header xenesisziarovky.sk: could not connect to host xett.com: did not receive HSTS header -xf-liam.com: could not connect to host +xf-liam.com: did not receive HSTS header xfive.de: did not receive HSTS header xia100.xyz: could not connect to host xiaody.me: could not connect to host @@ -4274,6 +4304,7 @@ yippie.nl: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_ yjsoft.me: did not receive HSTS header ynode.co: did not receive HSTS header ynsn.nl: did not receive HSTS header +yntongji.com: did not receive HSTS header yoga.is-an-engineer.com: could not connect to host yokeepo.com: could not connect to host yoloboatrentals.com: did not receive HSTS header @@ -4320,9 +4351,9 @@ zeytin.pro: could not connect to host zh.search.yahoo.com: did not receive HSTS header zhaojin97.cn: did not receive HSTS header zhendingresources.com: max-age too low: 0 -zihao.me: could not connect to host -zingarastore.com: could not connect to host zirtue.io: could not connect to host +ziyuanabc.xyz: could not connect to host +zkillboard.com: did not receive HSTS header zking.ga: could not connect to host zmy.im: could not connect to host zocken.com: could not connect to host diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc index a8a05bfaee03..3f0c190f4002 100644 --- a/security/manager/ssl/nsSTSPreloadList.inc +++ b/security/manager/ssl/nsSTSPreloadList.inc @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1494686006254000); +const PRTime gPreloadListExpirationTime = INT64_C(1494773504412000); static const char kSTSHostTable[] = { /* "0.me.uk", true */ '0', '.', 'm', 'e', '.', 'u', 'k', '\0', @@ -59,13 +59,11 @@ static const char kSTSHostTable[] = { /* "123test.fr", true */ '1', '2', '3', 't', 'e', 's', 't', '.', 'f', 'r', '\0', /* "123test.nl", true */ '1', '2', '3', 't', 'e', 's', 't', '.', 'n', 'l', '\0', /* "126ium.moe", true */ '1', '2', '6', 'i', 'u', 'm', '.', 'm', 'o', 'e', '\0', - /* "127011-networks.ch", true */ '1', '2', '7', '0', '1', '1', '-', 'n', 'e', 't', 'w', 'o', 'r', 'k', 's', '.', 'c', 'h', '\0', /* "12vpn.net", true */ '1', '2', 'v', 'p', 'n', '.', 'n', 'e', 't', '\0', /* "12vpn.org", true */ '1', '2', 'v', 'p', 'n', '.', 'o', 'r', 'g', '\0', /* "1464424382.rsc.cdn77.org", true */ '1', '4', '6', '4', '4', '2', '4', '3', '8', '2', '.', 'r', 's', 'c', '.', 'c', 'd', 'n', '7', '7', '.', 'o', 'r', 'g', '\0', /* "14it.de", true */ '1', '4', 'i', 't', '.', 'd', 'e', '\0', /* "1536.cf", true */ '1', '5', '3', '6', '.', 'c', 'f', '\0', - /* "16packets.com", true */ '1', '6', 'p', 'a', 'c', 'k', 'e', 't', 's', '.', 'c', 'o', 'm', '\0', /* "174.net.nz", true */ '1', '7', '4', '.', 'n', 'e', 't', '.', 'n', 'z', '\0', /* "1750studios.com", true */ '1', '7', '5', '0', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0', /* "17hats.com", true */ '1', '7', 'h', 'a', 't', 's', '.', 'c', 'o', 'm', '\0', @@ -283,6 +281,7 @@ static const char kSTSHostTable[] = { /* "acmle.com", false */ 'a', 'c', 'm', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "acnpacific.com", true */ 'a', 'c', 'n', 'p', 'a', 'c', 'i', 'f', 'i', 'c', '.', 'c', 'o', 'm', '\0', /* "acoffeeshops.com", true */ 'a', 'c', 'o', 'f', 'f', 'e', 'e', 's', 'h', 'o', 'p', 's', '.', 'c', 'o', 'm', '\0', + /* "acritelli.com", true */ 'a', 'c', 'r', 'i', 't', 'e', 'l', 'l', 'i', '.', 'c', 'o', 'm', '\0', /* "acrylicwifi.com", true */ 'a', 'c', 'r', 'y', 'l', 'i', 'c', 'w', 'i', 'f', 'i', '.', 'c', 'o', 'm', '\0', /* "acsemb.org", true */ 'a', 'c', 's', 'e', 'm', 'b', '.', 'o', 'r', 'g', '\0', /* "acsports.ca", true */ 'a', 'c', 's', 'p', 'o', 'r', 't', 's', '.', 'c', 'a', '\0', @@ -396,7 +395,6 @@ static const char kSTSHostTable[] = { /* "afrodigital.uk", true */ 'a', 'f', 'r', 'o', 'd', 'i', 'g', 'i', 't', 'a', 'l', '.', 'u', 'k', '\0', /* "afuh.de", true */ 'a', 'f', 'u', 'h', '.', 'd', 'e', '\0', /* "afvallendoeje.nu", true */ 'a', 'f', 'v', 'a', 'l', 'l', 'e', 'n', 'd', 'o', 'e', 'j', 'e', '.', 'n', 'u', '\0', - /* "afyou.co.kr", true */ 'a', 'f', 'y', 'o', 'u', '.', 'c', 'o', '.', 'k', 'r', '\0', /* "agdalieso.com.ba", true */ 'a', 'g', 'd', 'a', 'l', 'i', 'e', 's', 'o', '.', 'c', 'o', 'm', '.', 'b', 'a', '\0', /* "ageg.ca", true */ 'a', 'g', 'e', 'g', '.', 'c', 'a', '\0', /* "agenda-loto.net", false */ 'a', 'g', 'e', 'n', 'd', 'a', '-', 'l', 'o', 't', 'o', '.', 'n', 'e', 't', '\0', @@ -428,7 +426,6 @@ static const char kSTSHostTable[] = { /* "aigcev.org", true */ 'a', 'i', 'g', 'c', 'e', 'v', '.', 'o', 'r', 'g', '\0', /* "aikido-linz.at", true */ 'a', 'i', 'k', 'i', 'd', 'o', '-', 'l', 'i', 'n', 'z', '.', 'a', 't', '\0', /* "aikido-wels.at", true */ 'a', 'i', 'k', 'i', 'd', 'o', '-', 'w', 'e', 'l', 's', '.', 'a', 't', '\0', - /* "aimeeandalec.com", true */ 'a', 'i', 'm', 'e', 'e', 'a', 'n', 'd', 'a', 'l', 'e', 'c', '.', 'c', 'o', 'm', '\0', /* "aiois.com", true */ 'a', 'i', 'o', 'i', 's', '.', 'c', 'o', 'm', '\0', /* "airbly.com", true */ 'a', 'i', 'r', 'b', 'l', 'y', '.', 'c', 'o', 'm', '\0', /* "airbnbopen.com", true */ 'a', 'i', 'r', 'b', 'n', 'b', 'o', 'p', 'e', 'n', '.', 'c', 'o', 'm', '\0', @@ -482,8 +479,6 @@ static const char kSTSHostTable[] = { /* "alcorao.org", true */ 'a', 'l', 'c', 'o', 'r', 'a', 'o', '.', 'o', 'r', 'g', '\0', /* "aldes.co.za", true */ 'a', 'l', 'd', 'e', 's', '.', 'c', 'o', '.', 'z', 'a', '\0', /* "aleax.me", true */ 'a', 'l', 'e', 'a', 'x', '.', 'm', 'e', '\0', - /* "alecpap.com", true */ 'a', 'l', 'e', 'c', 'p', 'a', 'p', '.', 'c', 'o', 'm', '\0', - /* "alecpapierniak.com", true */ 'a', 'l', 'e', 'c', 'p', 'a', 'p', 'i', 'e', 'r', 'n', 'i', 'a', 'k', '.', 'c', 'o', 'm', '\0', /* "alecrust.com", true */ 'a', 'l', 'e', 'c', 'r', 'u', 's', 't', '.', 'c', 'o', 'm', '\0', /* "aleksib.fi", true */ 'a', 'l', 'e', 'k', 's', 'i', 'b', '.', 'f', 'i', '\0', /* "alela.fr", true */ 'a', 'l', 'e', 'l', 'a', '.', 'f', 'r', '\0', @@ -535,7 +530,6 @@ static const char kSTSHostTable[] = { /* "alliances-faq.de", true */ 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', 's', '-', 'f', 'a', 'q', '.', 'd', 'e', '\0', /* "alliedfrozenstorage.com", true */ 'a', 'l', 'l', 'i', 'e', 'd', 'f', 'r', 'o', 'z', 'e', 'n', 's', 't', 'o', 'r', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0', /* "allinonecyprus.com", true */ 'a', 'l', 'l', 'i', 'n', 'o', 'n', 'e', 'c', 'y', 'p', 'r', 'u', 's', '.', 'c', 'o', 'm', '\0', - /* "allmbw.com", true */ 'a', 'l', 'l', 'm', 'b', 'w', '.', 'c', 'o', 'm', '\0', /* "allmystery.de", true */ 'a', 'l', 'l', 'm', 'y', 's', 't', 'e', 'r', 'y', '.', 'd', 'e', '\0', /* "alltheducks.com", true */ 'a', 'l', 'l', 't', 'h', 'e', 'd', 'u', 'c', 'k', 's', '.', 'c', 'o', 'm', '\0', /* "allthethings.co.nz", true */ 'a', 'l', 'l', 't', 'h', 'e', 't', 'h', 'i', 'n', 'g', 's', '.', 'c', 'o', '.', 'n', 'z', '\0', @@ -697,7 +691,6 @@ static const char kSTSHostTable[] = { /* "anonyme-spieler.at", true */ 'a', 'n', 'o', 'n', 'y', 'm', 'e', '-', 's', 'p', 'i', 'e', 'l', 'e', 'r', '.', 'a', 't', '\0', /* "anonymo.co.uk", true */ 'a', 'n', 'o', 'n', 'y', 'm', 'o', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "anonymo.uk", true */ 'a', 'n', 'o', 'n', 'y', 'm', 'o', '.', 'u', 'k', '\0', - /* "another.ch", true */ 'a', 'n', 'o', 't', 'h', 'e', 'r', '.', 'c', 'h', '\0', /* "ansdell.info", true */ 'a', 'n', 's', 'd', 'e', 'l', 'l', '.', 'i', 'n', 'f', 'o', '\0', /* "ansdell.net", true */ 'a', 'n', 's', 'd', 'e', 'l', 'l', '.', 'n', 'e', 't', '\0', /* "anshuman-chatterjee.com", false */ 'a', 'n', 's', 'h', 'u', 'm', 'a', 'n', '-', 'c', 'h', 'a', 't', 't', 'e', 'r', 'j', 'e', 'e', '.', 'c', 'o', 'm', '\0', @@ -723,6 +716,7 @@ static const char kSTSHostTable[] = { /* "ao2.it", true */ 'a', 'o', '2', '.', 'i', 't', '\0', /* "aojf.fr", true */ 'a', 'o', 'j', 'f', '.', 'f', 'r', '\0', /* "aopedeure.nl", true */ 'a', 'o', 'p', 'e', 'd', 'e', 'u', 'r', 'e', '.', 'n', 'l', '\0', + /* "aosc.io", false */ 'a', 'o', 's', 'c', '.', 'i', 'o', '\0', /* "aosus.org", true */ 'a', 'o', 's', 'u', 's', '.', 'o', 'r', 'g', '\0', /* "aovcentrum.nl", true */ 'a', 'o', 'v', 'c', 'e', 'n', 't', 'r', 'u', 'm', '.', 'n', 'l', '\0', /* "apachehaus.de", false */ 'a', 'p', 'a', 'c', 'h', 'e', 'h', 'a', 'u', 's', '.', 'd', 'e', '\0', @@ -743,7 +737,6 @@ static const char kSTSHostTable[] = { /* "aplpackaging.co.uk", true */ 'a', 'p', 'l', 'p', 'a', 'c', 'k', 'a', 'g', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "apmg-cyber.com", true */ 'a', 'p', 'm', 'g', '-', 'c', 'y', 'b', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "apn-einstellungen.de", true */ 'a', 'p', 'n', '-', 'e', 'i', 'n', 's', 't', 'e', 'l', 'l', 'u', 'n', 'g', 'e', 'n', '.', 'd', 'e', '\0', - /* "apolloyl.com", true */ 'a', 'p', 'o', 'l', 'l', 'o', 'y', 'l', '.', 'c', 'o', 'm', '\0', /* "aponkral.net", true */ 'a', 'p', 'o', 'n', 'k', 'r', 'a', 'l', '.', 'n', 'e', 't', '\0', /* "aponow.de", true */ 'a', 'p', 'o', 'n', 'o', 'w', '.', 'd', 'e', '\0', /* "aposke.com", true */ 'a', 'p', 'o', 's', 'k', 'e', '.', 'c', 'o', 'm', '\0', @@ -806,6 +799,7 @@ static const char kSTSHostTable[] = { /* "arguggi.co.uk", true */ 'a', 'r', 'g', 'u', 'g', 'g', 'i', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "ariege-pyrenees.net", true */ 'a', 'r', 'i', 'e', 'g', 'e', '-', 'p', 'y', 'r', 'e', 'n', 'e', 'e', 's', '.', 'n', 'e', 't', '\0', /* "arima.co.ke", true */ 'a', 'r', 'i', 'm', 'a', '.', 'c', 'o', '.', 'k', 'e', '\0', + /* "aristocrates.co", true */ 'a', 'r', 'i', 's', 't', 'o', 'c', 'r', 'a', 't', 'e', 's', '.', 'c', 'o', '\0', /* "aritec-la.com", true */ 'a', 'r', 'i', 't', 'e', 'c', '-', 'l', 'a', '.', 'c', 'o', 'm', '\0', /* "arivo.com.br", false */ 'a', 'r', 'i', 'v', 'o', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "arjandejong.eu", true */ 'a', 'r', 'j', 'a', 'n', 'd', 'e', 'j', 'o', 'n', 'g', '.', 'e', 'u', '\0', @@ -895,6 +889,7 @@ static const char kSTSHostTable[] = { /* "assindia.nl", true */ 'a', 's', 's', 'i', 'n', 'd', 'i', 'a', '.', 'n', 'l', '\0', /* "asta-bar.de", true */ 'a', 's', 't', 'a', '-', 'b', 'a', 'r', '.', 'd', 'e', '\0', /* "astengox.com", true */ 'a', 's', 't', 'e', 'n', 'g', 'o', 'x', '.', 'c', 'o', 'm', '\0', + /* "asuhe.cc", true */ 'a', 's', 'u', 'h', 'e', '.', 'c', 'c', '\0', /* "asun.co", true */ 'a', 's', 'u', 'n', '.', 'c', 'o', '\0', /* "asurepay.cc", true */ 'a', 's', 'u', 'r', 'e', 'p', 'a', 'y', '.', 'c', 'c', '\0', /* "at.search.yahoo.com", false */ 'a', 't', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0', @@ -993,7 +988,6 @@ static const char kSTSHostTable[] = { /* "avmemo.com", true */ 'a', 'v', 'm', 'e', 'm', 'o', '.', 'c', 'o', 'm', '\0', /* "avmo.pw", true */ 'a', 'v', 'm', 'o', '.', 'p', 'w', '\0', /* "avmoo.com", true */ 'a', 'v', 'm', 'o', 'o', '.', 'c', 'o', 'm', '\0', - /* "avqueen.cn", true */ 'a', 'v', 'q', 'u', 'e', 'e', 'n', '.', 'c', 'n', '\0', /* "avso.pw", true */ 'a', 'v', 's', 'o', '.', 'p', 'w', '\0', /* "avsox.com", true */ 'a', 'v', 's', 'o', 'x', '.', 'c', 'o', 'm', '\0', /* "avtovokzaly.ru", true */ 'a', 'v', 't', 'o', 'v', 'o', 'k', 'z', 'a', 'l', 'y', '.', 'r', 'u', '\0', @@ -1040,7 +1034,6 @@ static const char kSTSHostTable[] = { /* "babyfotograf-schweiz.ch", true */ 'b', 'a', 'b', 'y', 'f', 'o', 't', 'o', 'g', 'r', 'a', 'f', '-', 's', 'c', 'h', 'w', 'e', 'i', 'z', '.', 'c', 'h', '\0', /* "babypibu.com", true */ 'b', 'a', 'b', 'y', 'p', 'i', 'b', 'u', '.', 'c', 'o', 'm', '\0', /* "babystep.tv", true */ 'b', 'a', 'b', 'y', 's', 't', 'e', 'p', '.', 't', 'v', '\0', - /* "bacchanallia.com", true */ 'b', 'a', 'c', 'c', 'h', 'a', 'n', 'a', 'l', 'l', 'i', 'a', '.', 'c', 'o', 'm', '\0', /* "backeby.eu", true */ 'b', 'a', 'c', 'k', 'e', 'b', 'y', '.', 'e', 'u', '\0', /* "backmountaingas.com", true */ 'b', 'a', 'c', 'k', 'm', 'o', 'u', 'n', 't', 'a', 'i', 'n', 'g', 'a', 's', '.', 'c', 'o', 'm', '\0', /* "backpacker.dating", true */ 'b', 'a', 'c', 'k', 'p', 'a', 'c', 'k', 'e', 'r', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', @@ -1341,7 +1334,7 @@ static const char kSTSHostTable[] = { /* "biguixhe.net", true */ 'b', 'i', 'g', 'u', 'i', 'x', 'h', 'e', '.', 'n', 'e', 't', '\0', /* "bijuteriicualint.ro", true */ 'b', 'i', 'j', 'u', 't', 'e', 'r', 'i', 'i', 'c', 'u', 'a', 'l', 'i', 'n', 't', '.', 'r', 'o', '\0', /* "bike-shack.com", true */ 'b', 'i', 'k', 'e', '-', 's', 'h', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0', - /* "bikermusic.net", false */ 'b', 'i', 'k', 'e', 'r', 'm', 'u', 's', 'i', 'c', '.', 'n', 'e', 't', '\0', + /* "bikermusic.net", true */ 'b', 'i', 'k', 'e', 'r', 'm', 'u', 's', 'i', 'c', '.', 'n', 'e', 't', '\0', /* "bikiniseli.com", true */ 'b', 'i', 'k', 'i', 'n', 'i', 's', 'e', 'l', 'i', '.', 'c', 'o', 'm', '\0', /* "bildermachr.de", true */ 'b', 'i', 'l', 'd', 'e', 'r', 'm', 'a', 'c', 'h', 'r', '.', 'd', 'e', '\0', /* "bilgo.com", true */ 'b', 'i', 'l', 'g', 'o', '.', 'c', 'o', 'm', '\0', @@ -1381,7 +1374,7 @@ static const char kSTSHostTable[] = { /* "birdfeeder.online", true */ 'b', 'i', 'r', 'd', 'f', 'e', 'e', 'd', 'e', 'r', '.', 'o', 'n', 'l', 'i', 'n', 'e', '\0', /* "birkhoff.me", true */ 'b', 'i', 'r', 'k', 'h', 'o', 'f', 'f', '.', 'm', 'e', '\0', /* "birminghamsunset.com", true */ 'b', 'i', 'r', 'm', 'i', 'n', 'g', 'h', 'a', 'm', 's', 'u', 'n', 's', 'e', 't', '.', 'c', 'o', 'm', '\0', - /* "bit-rapid.com", true */ 'b', 'i', 't', '-', 'r', 'a', 'p', 'i', 'd', '.', 'c', 'o', 'm', '\0', + /* "birzan.org", true */ 'b', 'i', 'r', 'z', 'a', 'n', '.', 'o', 'r', 'g', '\0', /* "bit-sentinel.com", true */ 'b', 'i', 't', '-', 's', 'e', 'n', 't', 'i', 'n', 'e', 'l', '.', 'c', 'o', 'm', '\0', /* "bit.voyage", true */ 'b', 'i', 't', '.', 'v', 'o', 'y', 'a', 'g', 'e', '\0', /* "bit8.com", true */ 'b', 'i', 't', '8', '.', 'c', 'o', 'm', '\0', @@ -1404,7 +1397,6 @@ static const char kSTSHostTable[] = { /* "bitcoinhk.org", true */ 'b', 'i', 't', 'c', 'o', 'i', 'n', 'h', 'k', '.', 'o', 'r', 'g', '\0', /* "bitcoinprivacy.net", true */ 'b', 'i', 't', 'c', 'o', 'i', 'n', 'p', 'r', 'i', 'v', 'a', 'c', 'y', '.', 'n', 'e', 't', '\0', /* "bitcoinx.ro", true */ 'b', 'i', 't', 'c', 'o', 'i', 'n', 'x', '.', 'r', 'o', '\0', - /* "bitconcepts.co.uk", true */ 'b', 'i', 't', 'c', 'o', 'n', 'c', 'e', 'p', 't', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "biteoftech.com", true */ 'b', 'i', 't', 'e', 'o', 'f', 't', 'e', 'c', 'h', '.', 'c', 'o', 'm', '\0', /* "bitex.la", true */ 'b', 'i', 't', 'e', 'x', '.', 'l', 'a', '\0', /* "bitfasching.de", true */ 'b', 'i', 't', 'f', 'a', 's', 'c', 'h', 'i', 'n', 'g', '.', 'd', 'e', '\0', @@ -1551,6 +1543,7 @@ static const char kSTSHostTable[] = { /* "bnhlibrary.com", true */ 'b', 'n', 'h', 'l', 'i', 'b', 'r', 'a', 'r', 'y', '.', 'c', 'o', 'm', '\0', /* "bobancoamigo.com", true */ 'b', 'o', 'b', 'a', 'n', 'c', 'o', 'a', 'm', 'i', 'g', 'o', '.', 'c', 'o', 'm', '\0', /* "bobcopeland.com", true */ 'b', 'o', 'b', 'c', 'o', 'p', 'e', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0', + /* "bobobox.net", true */ 'b', 'o', 'b', 'o', 'b', 'o', 'x', '.', 'n', 'e', 't', '\0', /* "boboolo.com", true */ 'b', 'o', 'b', 'o', 'o', 'l', 'o', '.', 'c', 'o', 'm', '\0', /* "bochs.info", true */ 'b', 'o', 'c', 'h', 's', '.', 'i', 'n', 'f', 'o', '\0', /* "bockenauer.at", true */ 'b', 'o', 'c', 'k', 'e', 'n', 'a', 'u', 'e', 'r', '.', 'a', 't', '\0', @@ -1694,7 +1687,6 @@ static const char kSTSHostTable[] = { /* "brunn.email", true */ 'b', 'r', 'u', 'n', 'n', '.', 'e', 'm', 'a', 'i', 'l', '\0', /* "brunoonline.co.uk", true */ 'b', 'r', 'u', 'n', 'o', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "brunoramos.com", true */ 'b', 'r', 'u', 'n', 'o', 'r', 'a', 'm', 'o', 's', '.', 'c', 'o', 'm', '\0', - /* "brunoramos.org", true */ 'b', 'r', 'u', 'n', 'o', 'r', 'a', 'm', 'o', 's', '.', 'o', 'r', 'g', '\0', /* "brunosouza.org", true */ 'b', 'r', 'u', 'n', 'o', 's', 'o', 'u', 'z', 'a', '.', 'o', 'r', 'g', '\0', /* "bryankaplan.com", true */ 'b', 'r', 'y', 'a', 'n', 'k', 'a', 'p', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "bryanquigley.com", true */ 'b', 'r', 'y', 'a', 'n', 'q', 'u', 'i', 'g', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0', @@ -1720,7 +1712,6 @@ static const char kSTSHostTable[] = { /* "buddhistische-weisheiten.org", true */ 'b', 'u', 'd', 'd', 'h', 'i', 's', 't', 'i', 's', 'c', 'h', 'e', '-', 'w', 'e', 'i', 's', 'h', 'e', 'i', 't', 'e', 'n', '.', 'o', 'r', 'g', '\0', /* "buddlycrafts.com", true */ 'b', 'u', 'd', 'd', 'l', 'y', 'c', 'r', 'a', 'f', 't', 's', '.', 'c', 'o', 'm', '\0', /* "buderus-family.be", true */ 'b', 'u', 'd', 'e', 'r', 'u', 's', '-', 'f', 'a', 'm', 'i', 'l', 'y', '.', 'b', 'e', '\0', - /* "budger.nl", true */ 'b', 'u', 'd', 'g', 'e', 'r', '.', 'n', 'l', '\0', /* "budgetalk.com", true */ 'b', 'u', 'd', 'g', 'e', 't', 'a', 'l', 'k', '.', 'c', 'o', 'm', '\0', /* "bueltge.de", true */ 'b', 'u', 'e', 'l', 't', 'g', 'e', '.', 'd', 'e', '\0', /* "buero-stempel.de", true */ 'b', 'u', 'e', 'r', 'o', '-', 's', 't', 'e', 'm', 'p', 'e', 'l', '.', 'd', 'e', '\0', @@ -1783,6 +1774,7 @@ static const char kSTSHostTable[] = { /* "buzzdeck.com", true */ 'b', 'u', 'z', 'z', 'd', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0', /* "bvalle.com", true */ 'b', 'v', 'a', 'l', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "bvionline.eu", true */ 'b', 'v', 'i', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'e', 'u', '\0', + /* "bw.codes", true */ 'b', 'w', '.', 'c', 'o', 'd', 'e', 's', '\0', /* "bw81.xyz", true */ 'b', 'w', '8', '1', '.', 'x', 'y', 'z', '\0', /* "bwcscorecard.org", true */ 'b', 'w', 'c', 's', 'c', 'o', 'r', 'e', 'c', 'a', 'r', 'd', '.', 'o', 'r', 'g', '\0', /* "bwear4all.de", true */ 'b', 'w', 'e', 'a', 'r', '4', 'a', 'l', 'l', '.', 'd', 'e', '\0', @@ -2360,7 +2352,6 @@ static const char kSTSHostTable[] = { /* "codeplay.org", true */ 'c', 'o', 'd', 'e', 'p', 'l', 'a', 'y', '.', 'o', 'r', 'g', '\0', /* "codepoints.net", true */ 'c', 'o', 'd', 'e', 'p', 'o', 'i', 'n', 't', 's', '.', 'n', 'e', 't', '\0', /* "codepref.com", true */ 'c', 'o', 'd', 'e', 'p', 'r', 'e', 'f', '.', 'c', 'o', 'm', '\0', - /* "codepult.com", true */ 'c', 'o', 'd', 'e', 'p', 'u', 'l', 't', '.', 'c', 'o', 'm', '\0', /* "codera.co.uk", true */ 'c', 'o', 'd', 'e', 'r', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "codereview.appspot.com", false */ 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0', /* "codereview.chromium.org", false */ 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w', '.', 'c', 'h', 'r', 'o', 'm', 'i', 'u', 'm', '.', 'o', 'r', 'g', '\0', @@ -2519,7 +2510,6 @@ static const char kSTSHostTable[] = { /* "coolaj86.com", true */ 'c', 'o', 'o', 'l', 'a', 'j', '8', '6', '.', 'c', 'o', 'm', '\0', /* "cooldan.com", true */ 'c', 'o', 'o', 'l', 'd', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "coolviewthermostat.com", true */ 'c', 'o', 'o', 'l', 'v', 'i', 'e', 'w', 't', 'h', 'e', 'r', 'm', 'o', 's', 't', 'a', 't', '.', 'c', 'o', 'm', '\0', - /* "coopens.com", true */ 'c', 'o', 'o', 'p', 'e', 'n', 's', '.', 'c', 'o', 'm', '\0', /* "coore.jp", true */ 'c', 'o', 'o', 'r', 'e', '.', 'j', 'p', '\0', /* "cooxa.com", true */ 'c', 'o', 'o', 'x', 'a', '.', 'c', 'o', 'm', '\0', /* "copperhead.co", true */ 'c', 'o', 'p', 'p', 'e', 'r', 'h', 'e', 'a', 'd', '.', 'c', 'o', '\0', @@ -2632,7 +2622,6 @@ static const char kSTSHostTable[] = { /* "crufad.org", true */ 'c', 'r', 'u', 'f', 'a', 'd', '.', 'o', 'r', 'g', '\0', /* "crumbcontrol.com", true */ 'c', 'r', 'u', 'm', 'b', 'c', 'o', 'n', 't', 'r', 'o', 'l', '.', 'c', 'o', 'm', '\0', /* "crushroom.com", true */ 'c', 'r', 'u', 's', 'h', 'r', 'o', 'o', 'm', '.', 'c', 'o', 'm', '\0', - /* "crute.me", true */ 'c', 'r', 'u', 't', 'e', '.', 'm', 'e', '\0', /* "crvv.me", true */ 'c', 'r', 'v', 'v', '.', 'm', 'e', '\0', /* "cryptearth.de", true */ 'c', 'r', 'y', 'p', 't', 'e', 'a', 'r', 't', 'h', '.', 'd', 'e', '\0', /* "crypticshell.co.uk", true */ 'c', 'r', 'y', 'p', 't', 'i', 'c', 's', 'h', 'e', 'l', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0', @@ -2790,6 +2779,7 @@ static const char kSTSHostTable[] = { /* "d-designerin.de", true */ 'd', '-', 'd', 'e', 's', 'i', 'g', 'n', 'e', 'r', 'i', 'n', '.', 'd', 'e', '\0', /* "d-quantum.com", true */ 'd', '-', 'q', 'u', 'a', 'n', 't', 'u', 'm', '.', 'c', 'o', 'm', '\0', /* "d-training.de", true */ 'd', '-', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'd', 'e', '\0', + /* "d0xq.net", true */ 'd', '0', 'x', 'q', '.', 'n', 'e', 't', '\0', /* "d3xt3r01.tk", true */ 'd', '3', 'x', 't', '3', 'r', '0', '1', '.', 't', 'k', '\0', /* "d42.no", true */ 'd', '4', '2', '.', 'n', 'o', '\0', /* "d66.nl", true */ 'd', '6', '6', '.', 'n', 'l', '\0', @@ -3033,7 +3023,6 @@ static const char kSTSHostTable[] = { /* "demo.swedbank.se", true */ 'd', 'e', 'm', 'o', '.', 's', 'w', 'e', 'd', 'b', 'a', 'n', 'k', '.', 's', 'e', '\0', /* "democracy.io", true */ 'd', 'e', 'm', 'o', 'c', 'r', 'a', 'c', 'y', '.', 'i', 'o', '\0', /* "demomanca.com", true */ 'd', 'e', 'm', 'o', 'm', 'a', 'n', 'c', 'a', '.', 'c', 'o', 'm', '\0', - /* "demotops.com", false */ 'd', 'e', 'm', 'o', 't', 'o', 'p', 's', '.', 'c', 'o', 'm', '\0', /* "demuzere.be", true */ 'd', 'e', 'm', 'u', 'z', 'e', 'r', 'e', '.', 'b', 'e', '\0', /* "denabot.pw", true */ 'd', 'e', 'n', 'a', 'b', 'o', 't', '.', 'p', 'w', '\0', /* "denardbrewing.com", true */ 'd', 'e', 'n', 'a', 'r', 'd', 'b', 'r', 'e', 'w', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', @@ -3183,6 +3172,7 @@ static const char kSTSHostTable[] = { /* "digital-coach.it", false */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '-', 'c', 'o', 'a', 'c', 'h', '.', 'i', 't', '\0', /* "digital-eastside.de", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '-', 'e', 'a', 's', 't', 's', 'i', 'd', 'e', '.', 'd', 'e', '\0', /* "digital1st.co.uk", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', '1', 's', 't', '.', 'c', 'o', '.', 'u', 'k', '\0', + /* "digitalbank.kz", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'b', 'a', 'n', 'k', '.', 'k', 'z', '\0', /* "digitaldeli.org", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 'o', 'r', 'g', '\0', /* "digitaldeli.tv", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 't', 'v', '\0', /* "digitaldeli.us", true */ 'd', 'i', 'g', 'i', 't', 'a', 'l', 'd', 'e', 'l', 'i', '.', 'u', 's', '\0', @@ -3330,7 +3320,6 @@ static const char kSTSHostTable[] = { /* "domains.google.com", true */ 'd', 'o', 'm', 'a', 'i', 'n', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "domainstaff.com", true */ 'd', 'o', 'm', 'a', 'i', 'n', 's', 't', 'a', 'f', 'f', '.', 'c', 'o', 'm', '\0', /* "domenic.me", true */ 'd', 'o', 'm', 'e', 'n', 'i', 'c', '.', 'm', 'e', '\0', - /* "domfee.com", true */ 'd', 'o', 'm', 'f', 'e', 'e', '.', 'c', 'o', 'm', '\0', /* "domhaase.me", true */ 'd', 'o', 'm', 'h', 'a', 'a', 's', 'e', '.', 'm', 'e', '\0', /* "dominationgame.co.uk", true */ 'd', 'o', 'm', 'i', 'n', 'a', 't', 'i', 'o', 'n', 'g', 'a', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "dominicpratt.de", false */ 'd', 'o', 'm', 'i', 'n', 'i', 'c', 'p', 'r', 'a', 't', 't', '.', 'd', 'e', '\0', @@ -3480,7 +3469,6 @@ static const char kSTSHostTable[] = { /* "dustygroove.com", true */ 'd', 'u', 's', 't', 'y', 'g', 'r', 'o', 'o', 'v', 'e', '.', 'c', 'o', 'm', '\0', /* "dutch1.nl", true */ 'd', 'u', 't', 'c', 'h', '1', '.', 'n', 'l', '\0', /* "dutchessuganda.com", true */ 'd', 'u', 't', 'c', 'h', 'e', 's', 's', 'u', 'g', 'a', 'n', 'd', 'a', '.', 'c', 'o', 'm', '\0', - /* "dutchrank.nl", true */ 'd', 'u', 't', 'c', 'h', 'r', 'a', 'n', 'k', '.', 'n', 'l', '\0', /* "dutchwanderers.nl", true */ 'd', 'u', 't', 'c', 'h', 'w', 'a', 'n', 'd', 'e', 'r', 'e', 'r', 's', '.', 'n', 'l', '\0', /* "dutchweballiance.nl", true */ 'd', 'u', 't', 'c', 'h', 'w', 'e', 'b', 'a', 'l', 'l', 'i', 'a', 'n', 'c', 'e', '.', 'n', 'l', '\0', /* "dutyfreeonboard.com", true */ 'd', 'u', 't', 'y', 'f', 'r', 'e', 'e', 'o', 'n', 'b', 'o', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0', @@ -3578,7 +3566,6 @@ static const char kSTSHostTable[] = { /* "ecosystem.atlassian.net", true */ 'e', 'c', 'o', 's', 'y', 's', 't', 'e', 'm', '.', 'a', 't', 'l', 'a', 's', 's', 'i', 'a', 'n', '.', 'n', 'e', 't', '\0', /* "ecrimex.net", true */ 'e', 'c', 'r', 'i', 'm', 'e', 'x', '.', 'n', 'e', 't', '\0', /* "ectora.com", true */ 'e', 'c', 't', 'o', 'r', 'a', '.', 'c', 'o', 'm', '\0', - /* "ecupcafe.com", false */ 'e', 'c', 'u', 'p', 'c', 'a', 'f', 'e', '.', 'c', 'o', 'm', '\0', /* "ed.gs", true */ 'e', 'd', '.', 'g', 's', '\0', /* "edakoe.ru", true */ 'e', 'd', 'a', 'k', 'o', 'e', '.', 'r', 'u', '\0', /* "edati.lv", true */ 'e', 'd', 'a', 't', 'i', '.', 'l', 'v', '\0', @@ -4326,7 +4313,6 @@ static const char kSTSHostTable[] = { /* "floweslawncare.com", true */ 'f', 'l', 'o', 'w', 'e', 's', 'l', 'a', 'w', 'n', 'c', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "flowlo.me", true */ 'f', 'l', 'o', 'w', 'l', 'o', '.', 'm', 'e', '\0', /* "flox.io", true */ 'f', 'l', 'o', 'x', '.', 'i', 'o', '\0', - /* "flra.gov", true */ 'f', 'l', 'r', 'a', '.', 'g', 'o', 'v', '\0', /* "fluffycloud.de", true */ 'f', 'l', 'u', 'f', 'f', 'y', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0', /* "fluidojobs.com", true */ 'f', 'l', 'u', 'i', 'd', 'o', 'j', 'o', 'b', 's', '.', 'c', 'o', 'm', '\0', /* "flurrybridge.com", true */ 'f', 'l', 'u', 'r', 'r', 'y', 'b', 'r', 'i', 'd', 'g', 'e', '.', 'c', 'o', 'm', '\0', @@ -4638,7 +4624,6 @@ static const char kSTSHostTable[] = { /* "gartenplanung-brendes.de", true */ 'g', 'a', 'r', 't', 'e', 'n', 'p', 'l', 'a', 'n', 'u', 'n', 'g', '-', 'b', 'r', 'e', 'n', 'd', 'e', 's', '.', 'd', 'e', '\0', /* "garyjones.co.uk", true */ 'g', 'a', 'r', 'y', 'j', 'o', 'n', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "gasbarkenora.com", true */ 'g', 'a', 's', 'b', 'a', 'r', 'k', 'e', 'n', 'o', 'r', 'a', '.', 'c', 'o', 'm', '\0', - /* "gasnews.net", true */ 'g', 'a', 's', 'n', 'e', 'w', 's', '.', 'n', 'e', 't', '\0', /* "gasser-daniel.ch", false */ 'g', 'a', 's', 's', 'e', 'r', '-', 'd', 'a', 'n', 'i', 'e', 'l', '.', 'c', 'h', '\0', /* "gatapro.net", true */ 'g', 'a', 't', 'a', 'p', 'r', 'o', '.', 'n', 'e', 't', '\0', /* "gateworld.fr", true */ 'g', 'a', 't', 'e', 'w', 'o', 'r', 'l', 'd', '.', 'f', 'r', '\0', @@ -4950,7 +4935,6 @@ static const char kSTSHostTable[] = { /* "grandcapital.id", true */ 'g', 'r', 'a', 'n', 'd', 'c', 'a', 'p', 'i', 't', 'a', 'l', '.', 'i', 'd', '\0', /* "grandcapital.ru", true */ 'g', 'r', 'a', 'n', 'd', 'c', 'a', 'p', 'i', 't', 'a', 'l', '.', 'r', 'u', '\0', /* "grandlinecsk.ru", true */ 'g', 'r', 'a', 'n', 'd', 'l', 'i', 'n', 'e', 'c', 's', 'k', '.', 'r', 'u', '\0', - /* "grandmasfridge.org", true */ 'g', 'r', 'a', 'n', 'd', 'm', 'a', 's', 'f', 'r', 'i', 'd', 'g', 'e', '.', 'o', 'r', 'g', '\0', /* "grandpadusercontent.com", true */ 'g', 'r', 'a', 'n', 'd', 'p', 'a', 'd', 'u', 's', 'e', 'r', 'c', 'o', 'n', 't', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0', /* "grandwailea.com", true */ 'g', 'r', 'a', 'n', 'd', 'w', 'a', 'i', 'l', 'e', 'a', '.', 'c', 'o', 'm', '\0', /* "grannyshouse.de", true */ 'g', 'r', 'a', 'n', 'n', 'y', 's', 'h', 'o', 'u', 's', 'e', '.', 'd', 'e', '\0', @@ -5112,7 +5096,8 @@ static const char kSTSHostTable[] = { /* "h11.io", true */ 'h', '1', '1', '.', 'i', 'o', '\0', /* "h11.moe", true */ 'h', '1', '1', '.', 'm', 'o', 'e', '\0', /* "h3artbl33d.nl", true */ 'h', '3', 'a', 'r', 't', 'b', 'l', '3', '3', 'd', '.', 'n', 'l', '\0', - /* "h404bi.com", true */ 'h', '4', '0', '4', 'b', 'i', '.', 'c', 'o', 'm', '\0', + /* "h404bi.com", false */ 'h', '4', '0', '4', 'b', 'i', '.', 'c', 'o', 'm', '\0', + /* "haavard.me", true */ 'h', 'a', 'a', 'v', 'a', 'r', 'd', '.', 'm', 'e', '\0', /* "habarisoft.com", true */ 'h', 'a', 'b', 'a', 'r', 'i', 's', 'o', 'f', 't', '.', 'c', 'o', 'm', '\0', /* "habbotalk.nl", true */ 'h', 'a', 'b', 'b', 'o', 't', 'a', 'l', 'k', '.', 'n', 'l', '\0', /* "hachre.de", false */ 'h', 'a', 'c', 'h', 'r', 'e', '.', 'd', 'e', '\0', @@ -5122,7 +5107,6 @@ static const char kSTSHostTable[] = { /* "hacker.parts", true */ 'h', 'a', 'c', 'k', 'e', 'r', '.', 'p', 'a', 'r', 't', 's', '\0', /* "hacker1.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', '1', '.', 'c', 'o', 'm', '\0', /* "hackerchai.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'c', 'h', 'a', 'i', '.', 'c', 'o', 'm', '\0', - /* "hackernet.se", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'n', 'e', 't', '.', 's', 'e', '\0', /* "hackerone-user-content.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '-', 'u', 's', 'e', 'r', '-', 'c', 'o', 'n', 't', 'e', 'n', 't', '.', 'c', 'o', 'm', '\0', /* "hackerone.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '.', 'c', 'o', 'm', '\0', /* "hackerpoints.com", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'p', 'o', 'i', 'n', 't', 's', '.', 'c', 'o', 'm', '\0', @@ -5258,7 +5242,6 @@ static const char kSTSHostTable[] = { /* "healthiercompany.com", true */ 'h', 'e', 'a', 'l', 't', 'h', 'i', 'e', 'r', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '.', 'c', 'o', 'm', '\0', /* "healthjoy.com", true */ 'h', 'e', 'a', 'l', 't', 'h', 'j', 'o', 'y', '.', 'c', 'o', 'm', '\0', /* "heartmdinstitute.com", true */ 'h', 'e', 'a', 'r', 't', 'm', 'd', 'i', 'n', 's', 't', 'i', 't', 'u', 't', 'e', '.', 'c', 'o', 'm', '\0', - /* "heartsucker.com", true */ 'h', 'e', 'a', 'r', 't', 's', 'u', 'c', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "hearty.ga", true */ 'h', 'e', 'a', 'r', 't', 'y', '.', 'g', 'a', '\0', /* "hearty.ink", true */ 'h', 'e', 'a', 'r', 't', 'y', '.', 'i', 'n', 'k', '\0', /* "hearty.me", true */ 'h', 'e', 'a', 'r', 't', 'y', '.', 'm', 'e', '\0', @@ -5532,7 +5515,6 @@ static const char kSTSHostTable[] = { /* "hstsfail.appspot.com", true */ 'h', 's', 't', 's', 'f', 'a', 'i', 'l', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0', /* "hstspreload.appspot.com", true */ 'h', 's', 't', 's', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '.', 'a', 'p', 'p', 's', 'p', 'o', 't', '.', 'c', 'o', 'm', '\0', /* "hstspreload.com", true */ 'h', 's', 't', 's', 'p', 'r', 'e', 'l', 'o', 'a', 'd', '.', 'c', 'o', 'm', '\0', - /* "hszhyy120.com", true */ 'h', 's', 'z', 'h', 'y', 'y', '1', '2', '0', '.', 'c', 'o', 'm', '\0', /* "htaccessbook.com", true */ 'h', 't', 'a', 'c', 'c', 'e', 's', 's', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0', /* "html-lab.tk", true */ 'h', 't', 'm', 'l', '-', 'l', 'a', 'b', '.', 't', 'k', '\0', /* "html5.org", true */ 'h', 't', 'm', 'l', '5', '.', 'o', 'r', 'g', '\0', @@ -5668,7 +5650,6 @@ static const char kSTSHostTable[] = { /* "igiftcards.de", true */ 'i', 'g', 'i', 'f', 't', 'c', 'a', 'r', 'd', 's', '.', 'd', 'e', '\0', /* "igiftcards.nl", true */ 'i', 'g', 'i', 'f', 't', 'c', 'a', 'r', 'd', 's', '.', 'n', 'l', '\0', /* "igk.de", true */ 'i', 'g', 'k', '.', 'd', 'e', '\0', - /* "ignace72.eu", true */ 'i', 'g', 'n', 'a', 'c', 'e', '7', '2', '.', 'e', 'u', '\0', /* "igotoffer.com", true */ 'i', 'g', 'o', 't', 'o', 'f', 'f', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "igrivi.com", true */ 'i', 'g', 'r', 'i', 'v', 'i', '.', 'c', 'o', 'm', '\0', /* "ihkk.net", true */ 'i', 'h', 'k', 'k', '.', 'n', 'e', 't', '\0', @@ -5738,6 +5719,7 @@ static const char kSTSHostTable[] = { /* "immunicity.win", true */ 'i', 'm', 'm', 'u', 'n', 'i', 'c', 'i', 't', 'y', '.', 'w', 'i', 'n', '\0', /* "imoni-blog.net", true */ 'i', 'm', 'o', 'n', 'i', '-', 'b', 'l', 'o', 'g', '.', 'n', 'e', 't', '\0', /* "imoto.me", true */ 'i', 'm', 'o', 't', 'o', '.', 'm', 'e', '\0', + /* "imouyang.com", true */ 'i', 'm', 'o', 'u', 'y', 'a', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "impact.health.nz", true */ 'i', 'm', 'p', 'a', 'c', 't', '.', 'h', 'e', 'a', 'l', 't', 'h', '.', 'n', 'z', '\0', /* "impex.com.bd", true */ 'i', 'm', 'p', 'e', 'x', '.', 'c', 'o', 'm', '.', 'b', 'd', '\0', /* "imppac.de", true */ 'i', 'm', 'p', 'p', 'a', 'c', '.', 'd', 'e', '\0', @@ -5894,6 +5876,7 @@ static const char kSTSHostTable[] = { /* "inwestcorp.se", true */ 'i', 'n', 'w', 'e', 's', 't', 'c', 'o', 'r', 'p', '.', 's', 'e', '\0', /* "inzdr.com", true */ 'i', 'n', 'z', 'd', 'r', '.', 'c', 'o', 'm', '\0', /* "iodu.re", true */ 'i', 'o', 'd', 'u', '.', 'r', 'e', '\0', + /* "ioiart.eu", true */ 'i', 'o', 'i', 'a', 'r', 't', '.', 'e', 'u', '\0', /* "iolife.dk", true */ 'i', 'o', 'l', 'i', 'f', 'e', '.', 'd', 'k', '\0', /* "iompost.com", true */ 'i', 'o', 'm', 'p', 'o', 's', 't', '.', 'c', 'o', 'm', '\0', /* "iomstamps.com", true */ 'i', 'o', 'm', 's', 't', 'a', 'm', 'p', 's', '.', 'c', 'o', 'm', '\0', @@ -5925,7 +5908,6 @@ static const char kSTSHostTable[] = { /* "ipricethailand.com", true */ 'i', 'p', 'r', 'i', 'c', 'e', 't', 'h', 'a', 'i', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0', /* "iprim.ru", true */ 'i', 'p', 'r', 'i', 'm', '.', 'r', 'u', '\0', /* "iprody.com", true */ 'i', 'p', 'r', 'o', 'd', 'y', '.', 'c', 'o', 'm', '\0', - /* "ipsec.pl", true */ 'i', 'p', 's', 'e', 'c', '.', 'p', 'l', '\0', /* "ipsilon-project.org", true */ 'i', 'p', 's', 'i', 'l', 'o', 'n', '-', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0', /* "ipswitch.com.tw", true */ 'i', 'p', 's', 'w', 'i', 't', 'c', 'h', '.', 'c', 'o', 'm', '.', 't', 'w', '\0', /* "ipty.de", true */ 'i', 'p', 't', 'y', '.', 'd', 'e', '\0', @@ -6027,7 +6009,6 @@ static const char kSTSHostTable[] = { /* "its4living.com", true */ 'i', 't', 's', '4', 'l', 'i', 'v', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "itsagadget.com", true */ 'i', 't', 's', 'a', 'g', 'a', 'd', 'g', 'e', 't', '.', 'c', 'o', 'm', '\0', /* "itsanicedoor.co.uk", true */ 'i', 't', 's', 'a', 'n', 'i', 'c', 'e', 'd', 'o', 'o', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0', - /* "itsatrap.nl", true */ 'i', 't', 's', 'a', 't', 'r', 'a', 'p', '.', 'n', 'l', '\0', /* "itsecguy.com", true */ 'i', 't', 's', 'e', 'c', 'g', 'u', 'y', '.', 'c', 'o', 'm', '\0', /* "itskayla.com", false */ 'i', 't', 's', 'k', 'a', 'y', 'l', 'a', '.', 'c', 'o', 'm', '\0', /* "itsok.de", true */ 'i', 't', 's', 'o', 'k', '.', 'd', 'e', '\0', @@ -6253,6 +6234,7 @@ static const char kSTSHostTable[] = { /* "jobflyapp.com", true */ 'j', 'o', 'b', 'f', 'l', 'y', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0', /* "jobmob.co.il", true */ 'j', 'o', 'b', 'm', 'o', 'b', '.', 'c', 'o', '.', 'i', 'l', '\0', /* "jobs.at", true */ 'j', 'o', 'b', 's', '.', 'a', 't', '\0', + /* "jobss.co.uk", true */ 'j', 'o', 'b', 's', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "jodlajodla.si", true */ 'j', 'o', 'd', 'l', 'a', 'j', 'o', 'd', 'l', 'a', '.', 's', 'i', '\0', /* "joduska.me", true */ 'j', 'o', 'd', 'u', 's', 'k', 'a', '.', 'm', 'e', '\0', /* "jodyboucher.com", true */ 'j', 'o', 'd', 'y', 'b', 'o', 'u', 'c', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0', @@ -6492,6 +6474,7 @@ static const char kSTSHostTable[] = { /* "kbjorklu.com", true */ 'k', 'b', 'j', 'o', 'r', 'k', 'l', 'u', '.', 'c', 'o', 'm', '\0', /* "kc5mpk.com", true */ 'k', 'c', '5', 'm', 'p', 'k', '.', 'c', 'o', 'm', '\0', /* "kcluster.io", true */ 'k', 'c', 'l', 'u', 's', 't', 'e', 'r', '.', 'i', 'o', '\0', + /* "kcolford.com", false */ 'k', 'c', 'o', 'l', 'f', 'o', 'r', 'd', '.', 'c', 'o', 'm', '\0', /* "kcptun.com", true */ 'k', 'c', 'p', 't', 'u', 'n', '.', 'c', 'o', 'm', '\0', /* "kdex.de", true */ 'k', 'd', 'e', 'x', '.', 'd', 'e', '\0', /* "kdyby.org", true */ 'k', 'd', 'y', 'b', 'y', '.', 'o', 'r', 'g', '\0', @@ -6545,6 +6528,7 @@ static const char kSTSHostTable[] = { /* "kesteren.com", true */ 'k', 'e', 's', 't', 'e', 'r', 'e', 'n', '.', 'c', 'o', 'm', '\0', /* "kesteren.org", true */ 'k', 'e', 's', 't', 'e', 'r', 'e', 'n', '.', 'o', 'r', 'g', '\0', /* "ketosecology.co.uk", true */ 'k', 'e', 't', 'o', 's', 'e', 'c', 'o', 'l', 'o', 'g', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0', + /* "kevinapease.com", true */ 'k', 'e', 'v', 'i', 'n', 'a', 'p', 'e', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0', /* "kevinbowers.me", true */ 'k', 'e', 'v', 'i', 'n', 'b', 'o', 'w', 'e', 'r', 's', '.', 'm', 'e', '\0', /* "kevinbusse.de", true */ 'k', 'e', 'v', 'i', 'n', 'b', 'u', 's', 's', 'e', '.', 'd', 'e', '\0', /* "kevincox.ca", true */ 'k', 'e', 'v', 'i', 'n', 'c', 'o', 'x', '.', 'c', 'a', '\0', @@ -6552,7 +6536,6 @@ static const char kSTSHostTable[] = { /* "kevinmeijer.nl", true */ 'k', 'e', 'v', 'i', 'n', 'm', 'e', 'i', 'j', 'e', 'r', '.', 'n', 'l', '\0', /* "kevinratcliff.com", true */ 'k', 'e', 'v', 'i', 'n', 'r', 'a', 't', 'c', 'l', 'i', 'f', 'f', '.', 'c', 'o', 'm', '\0', /* "keybase.io", true */ 'k', 'e', 'y', 'b', 'a', 's', 'e', '.', 'i', 'o', '\0', - /* "keybored.me", true */ 'k', 'e', 'y', 'b', 'o', 'r', 'e', 'd', '.', 'm', 'e', '\0', /* "keycdn.com", true */ 'k', 'e', 'y', 'c', 'd', 'n', '.', 'c', 'o', 'm', '\0', /* "keyerror.com", true */ 'k', 'e', 'y', 'e', 'r', 'r', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "keys.fedoraproject.org", true */ 'k', 'e', 'y', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0', @@ -6665,11 +6648,9 @@ static const char kSTSHostTable[] = { /* "kleteckova.cz", true */ 'k', 'l', 'e', 't', 'e', 'c', 'k', 'o', 'v', 'a', '.', 'c', 'z', '\0', /* "kliemann.me", true */ 'k', 'l', 'i', 'e', 'm', 'a', 'n', 'n', '.', 'm', 'e', '\0', /* "klif1.nl", true */ 'k', 'l', 'i', 'f', '1', '.', 'n', 'l', '\0', - /* "klingeletest.de", true */ 'k', 'l', 'i', 'n', 'g', 'e', 'l', 'e', 't', 'e', 's', 't', '.', 'd', 'e', '\0', /* "klinikac.co.id", false */ 'k', 'l', 'i', 'n', 'i', 'k', 'a', 'c', '.', 'c', 'o', '.', 'i', 'd', '\0', /* "klinknetz.de", true */ 'k', 'l', 'i', 'n', 'k', 'n', 'e', 't', 'z', '.', 'd', 'e', '\0', /* "klunkergarten.org", true */ 'k', 'l', 'u', 'n', 'k', 'e', 'r', 'g', 'a', 'r', 't', 'e', 'n', '.', 'o', 'r', 'g', '\0', - /* "klustekeningen.nl", true */ 'k', 'l', 'u', 's', 't', 'e', 'k', 'e', 'n', 'i', 'n', 'g', 'e', 'n', '.', 'n', 'l', '\0', /* "km-net.pl", true */ 'k', 'm', '-', 'n', 'e', 't', '.', 'p', 'l', '\0', /* "kmkz.jp", true */ 'k', 'm', 'k', 'z', '.', 'j', 'p', '\0', /* "kn007.net", true */ 'k', 'n', '0', '0', '7', '.', 'n', 'e', 't', '\0', @@ -6702,7 +6683,6 @@ static const char kSTSHostTable[] = { /* "kojipkgs.fedoraproject.org", true */ 'k', 'o', 'j', 'i', 'p', 'k', 'g', 's', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0', /* "kokenmetaanbiedingen.nl", true */ 'k', 'o', 'k', 'e', 'n', 'm', 'e', 't', 'a', 'a', 'n', 'b', 'i', 'e', 'd', 'i', 'n', 'g', 'e', 'n', '.', 'n', 'l', '\0', /* "kokensupport.com", true */ 'k', 'o', 'k', 'e', 'n', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0', - /* "koketteriet.se", true */ 'k', 'o', 'k', 'e', 't', 't', 'e', 'r', 'i', 'e', 't', '.', 's', 'e', '\0', /* "kolaykaydet.com", true */ 'k', 'o', 'l', 'a', 'y', 'k', 'a', 'y', 'd', 'e', 't', '.', 'c', 'o', 'm', '\0', /* "koldanews.com", true */ 'k', 'o', 'l', 'd', 'a', 'n', 'e', 'w', 's', '.', 'c', 'o', 'm', '\0', /* "kollawat.me", true */ 'k', 'o', 'l', 'l', 'a', 'w', 'a', 't', '.', 'm', 'e', '\0', @@ -6853,6 +6833,7 @@ static const char kSTSHostTable[] = { /* "kynastonwedding.co.uk", true */ 'k', 'y', 'n', 'a', 's', 't', 'o', 'n', 'w', 'e', 'd', 'd', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "kyosaku.org", true */ 'k', 'y', 'o', 's', 'a', 'k', 'u', '.', 'o', 'r', 'g', '\0', /* "kyy.me", true */ 'k', 'y', 'y', '.', 'm', 'e', '\0', + /* "kzsdabas.hu", true */ 'k', 'z', 's', 'd', 'a', 'b', 'a', 's', '.', 'h', 'u', '\0', /* "l-lab.org", true */ 'l', '-', 'l', 'a', 'b', '.', 'o', 'r', 'g', '\0', /* "l2guru.ru", true */ 'l', '2', 'g', 'u', 'r', 'u', '.', 'r', 'u', '\0', /* "l4n-clan.de", true */ 'l', '4', 'n', '-', 'c', 'l', 'a', 'n', '.', 'd', 'e', '\0', @@ -7070,7 +7051,6 @@ static const char kSTSHostTable[] = { /* "levert.ch", true */ 'l', 'e', 'v', 'e', 'r', 't', '.', 'c', 'h', '\0', /* "levinus.de", true */ 'l', 'e', 'v', 'i', 'n', 'u', 's', '.', 'd', 'e', '\0', /* "lew.im", true */ 'l', 'e', 'w', '.', 'i', 'm', '\0', - /* "lewis.li", true */ 'l', 'e', 'w', 'i', 's', '.', 'l', 'i', '\0', /* "lewisjuggins.co.uk", true */ 'l', 'e', 'w', 'i', 's', 'j', 'u', 'g', 'g', 'i', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "lewislaw.com", true */ 'l', 'e', 'w', 'i', 's', 'l', 'a', 'w', '.', 'c', 'o', 'm', '\0', /* "lexway.pk", true */ 'l', 'e', 'x', 'w', 'a', 'y', '.', 'p', 'k', '\0', @@ -7078,6 +7058,7 @@ static const char kSTSHostTable[] = { /* "lg21.co", true */ 'l', 'g', '2', '1', '.', 'c', 'o', '\0', /* "lhalbert.xyz", true */ 'l', 'h', 'a', 'l', 'b', 'e', 'r', 't', '.', 'x', 'y', 'z', '\0', /* "li-ke.co.jp", true */ 'l', 'i', '-', 'k', 'e', '.', 'c', 'o', '.', 'j', 'p', '\0', + /* "liam-w.com", false */ 'l', 'i', 'a', 'm', '-', 'w', '.', 'c', 'o', 'm', '\0', /* "liamjack.fr", true */ 'l', 'i', 'a', 'm', 'j', 'a', 'c', 'k', '.', 'f', 'r', '\0', /* "liangji.com.tw", false */ 'l', 'i', 'a', 'n', 'g', 'j', 'i', '.', 'c', 'o', 'm', '.', 't', 'w', '\0', /* "libanco.com", true */ 'l', 'i', 'b', 'a', 'n', 'c', 'o', '.', 'c', 'o', 'm', '\0', @@ -7290,7 +7271,6 @@ static const char kSTSHostTable[] = { /* "lore.azurewebsites.net", true */ 'l', 'o', 'r', 'e', '.', 'a', 'z', 'u', 'r', 'e', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'n', 'e', 't', '\0', /* "lost.host", true */ 'l', 'o', 's', 't', '.', 'h', 'o', 's', 't', '\0', /* "lostg.com", true */ 'l', 'o', 's', 't', 'g', '.', 'c', 'o', 'm', '\0', - /* "lostinweb.eu", true */ 'l', 'o', 's', 't', 'i', 'n', 'w', 'e', 'b', '.', 'e', 'u', '\0', /* "loteks.de", true */ 'l', 'o', 't', 'e', 'k', 's', '.', 'd', 'e', '\0', /* "lottosonline.com", true */ 'l', 'o', 't', 't', 'o', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', 'm', '\0', /* "loucanfixit.com", true */ 'l', 'o', 'u', 'c', 'a', 'n', 'f', 'i', 'x', 'i', 't', '.', 'c', 'o', 'm', '\0', @@ -7395,7 +7375,6 @@ static const char kSTSHostTable[] = { /* "lynthium.com", true */ 'l', 'y', 'n', 't', 'h', 'i', 'u', 'm', '.', 'c', 'o', 'm', '\0', /* "lynx.nl", true */ 'l', 'y', 'n', 'x', '.', 'n', 'l', '\0', /* "lynxbroker.de", true */ 'l', 'y', 'n', 'x', 'b', 'r', 'o', 'k', 'e', 'r', '.', 'd', 'e', '\0', - /* "lyonl.com", true */ 'l', 'y', 'o', 'n', 'l', '.', 'c', 'o', 'm', '\0', /* "lyst.co.uk", true */ 'l', 'y', 's', 't', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "lyx.dk", true */ 'l', 'y', 'x', '.', 'd', 'k', '\0', /* "lzzr.me", true */ 'l', 'z', 'z', 'r', '.', 'm', 'e', '\0', @@ -7448,7 +7427,6 @@ static const char kSTSHostTable[] = { /* "magilio.com", true */ 'm', 'a', 'g', 'i', 'l', 'i', 'o', '.', 'c', 'o', 'm', '\0', /* "magneticanvil.com", true */ 'm', 'a', 'g', 'n', 'e', 't', 'i', 'c', 'a', 'n', 'v', 'i', 'l', '.', 'c', 'o', 'm', '\0', /* "magnets.jp", true */ 'm', 'a', 'g', 'n', 'e', 't', 's', '.', 'j', 'p', '\0', - /* "mahefa.co.uk", true */ 'm', 'a', 'h', 'e', 'f', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "mahrer.net", true */ 'm', 'a', 'h', 'r', 'e', 'r', '.', 'n', 'e', 't', '\0', /* "maidofhonorcleaning.net", true */ 'm', 'a', 'i', 'd', 'o', 'f', 'h', 'o', 'n', 'o', 'r', 'c', 'l', 'e', 'a', 'n', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0', /* "mail-rotter.de", true */ 'm', 'a', 'i', 'l', '-', 'r', 'o', 't', 't', 'e', 'r', '.', 'd', 'e', '\0', @@ -7590,7 +7568,6 @@ static const char kSTSHostTable[] = { /* "marktboten.de", true */ 'm', 'a', 'r', 'k', 't', 'b', 'o', 't', 'e', 'n', '.', 'd', 'e', '\0', /* "marktcontact.com", true */ 'm', 'a', 'r', 'k', 't', 'c', 'o', 'n', 't', 'a', 'c', 't', '.', 'c', 'o', 'm', '\0', /* "marktissink.nl", true */ 'm', 'a', 'r', 'k', 't', 'i', 's', 's', 'i', 'n', 'k', '.', 'n', 'l', '\0', - /* "markusehrlicher.de", true */ 'm', 'a', 'r', 'k', 'u', 's', 'e', 'h', 'r', 'l', 'i', 'c', 'h', 'e', 'r', '.', 'd', 'e', '\0', /* "markusueberallassetmanagement.de", true */ 'm', 'a', 'r', 'k', 'u', 's', 'u', 'e', 'b', 'e', 'r', 'a', 'l', 'l', 'a', 's', 's', 'e', 't', 'm', 'a', 'n', 'a', 'g', 'e', 'm', 'e', 'n', 't', '.', 'd', 'e', '\0', /* "marlen.cz", true */ 'm', 'a', 'r', 'l', 'e', 'n', '.', 'c', 'z', '\0', /* "marmotte.love", true */ 'm', 'a', 'r', 'm', 'o', 't', 't', 'e', '.', 'l', 'o', 'v', 'e', '\0', @@ -7909,7 +7886,6 @@ static const char kSTSHostTable[] = { /* "mikalikes.men", true */ 'm', 'i', 'k', 'a', 'l', 'i', 'k', 'e', 's', '.', 'm', 'e', 'n', '\0', /* "mike-bland.com", true */ 'm', 'i', 'k', 'e', '-', 'b', 'l', 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0', /* "mikecb.org", true */ 'm', 'i', 'k', 'e', 'c', 'b', '.', 'o', 'r', 'g', '\0', - /* "mikek.work", true */ 'm', 'i', 'k', 'e', 'k', '.', 'w', 'o', 'r', 'k', '\0', /* "miketabor.com", true */ 'm', 'i', 'k', 'e', 't', 'a', 'b', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "mikewest.org", true */ 'm', 'i', 'k', 'e', 'w', 'e', 's', 't', '.', 'o', 'r', 'g', '\0', /* "mikewillia.ms", true */ 'm', 'i', 'k', 'e', 'w', 'i', 'l', 'l', 'i', 'a', '.', 'm', 's', '\0', @@ -8006,7 +7982,6 @@ static const char kSTSHostTable[] = { /* "mitsign.com", true */ 'm', 'i', 't', 's', 'i', 'g', 'n', '.', 'c', 'o', 'm', '\0', /* "mitsukabose.com", true */ 'm', 'i', 't', 's', 'u', 'k', 'a', 'b', 'o', 's', 'e', '.', 'c', 'o', 'm', '\0', /* "mittelunsachlich.de", true */ 'm', 'i', 't', 't', 'e', 'l', 'u', 'n', 's', 'a', 'c', 'h', 'l', 'i', 'c', 'h', '.', 'd', 'e', '\0', - /* "mitzpettel.com", true */ 'm', 'i', 't', 'z', 'p', 'e', 't', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0', /* "mivcon.net", true */ 'm', 'i', 'v', 'c', 'o', 'n', '.', 'n', 'e', 't', '\0', /* "mixposure.com", true */ 'm', 'i', 'x', 'p', 'o', 's', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "mixtape.moe", true */ 'm', 'i', 'x', 't', 'a', 'p', 'e', '.', 'm', 'o', 'e', '\0', @@ -8025,6 +8000,7 @@ static const char kSTSHostTable[] = { /* "mktemp.org", true */ 'm', 'k', 't', 'e', 'm', 'p', '.', 'o', 'r', 'g', '\0', /* "mkuznets.com", true */ 'm', 'k', 'u', 'z', 'n', 'e', 't', 's', '.', 'c', 'o', 'm', '\0', /* "mkw.st", true */ 'm', 'k', 'w', '.', 's', 't', '\0', + /* "mlcdn.co", true */ 'm', 'l', 'c', 'd', 'n', '.', 'c', 'o', '\0', /* "mlcnfriends.com", true */ 'm', 'l', 'c', 'n', 'f', 'r', 'i', 'e', 'n', 'd', 's', '.', 'c', 'o', 'm', '\0', /* "mlemay.com", true */ 'm', 'l', 'e', 'm', 'a', 'y', '.', 'c', 'o', 'm', '\0', /* "mlp.ee", true */ 'm', 'l', 'p', '.', 'e', 'e', '\0', @@ -8045,7 +8021,6 @@ static const char kSTSHostTable[] = { /* "mnt-tech.fr", true */ 'm', 'n', 't', '-', 't', 'e', 'c', 'h', '.', 'f', 'r', '\0', /* "mnwt.nl", true */ 'm', 'n', 'w', 't', '.', 'n', 'l', '\0', /* "moar.so", true */ 'm', 'o', 'a', 'r', '.', 's', 'o', '\0', - /* "mobaircon.com", true */ 'm', 'o', 'b', 'a', 'i', 'r', 'c', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "mobal.com", true */ 'm', 'o', 'b', 'a', 'l', '.', 'c', 'o', 'm', '\0', /* "mobeforlife.com", true */ 'm', 'o', 'b', 'e', 'f', 'o', 'r', 'l', 'i', 'f', 'e', '.', 'c', 'o', 'm', '\0', /* "mobidea.com", true */ 'm', 'o', 'b', 'i', 'd', 'e', 'a', '.', 'c', 'o', 'm', '\0', @@ -8219,6 +8194,7 @@ static const char kSTSHostTable[] = { /* "multimarques.com", true */ 'm', 'u', 'l', 't', 'i', 'm', 'a', 'r', 'q', 'u', 'e', 's', '.', 'c', 'o', 'm', '\0', /* "multitheftauto.com", true */ 'm', 'u', 'l', 't', 'i', 't', 'h', 'e', 'f', 't', 'a', 'u', 't', 'o', '.', 'c', 'o', 'm', '\0', /* "multiworldsoftware.com", true */ 'm', 'u', 'l', 't', 'i', 'w', 'o', 'r', 'l', 'd', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '.', 'c', 'o', 'm', '\0', + /* "mumei.space", true */ 'm', 'u', 'm', 'e', 'i', '.', 's', 'p', 'a', 'c', 'e', '\0', /* "mundodasmensagens.com", true */ 'm', 'u', 'n', 'd', 'o', 'd', 'a', 's', 'm', 'e', 'n', 's', 'a', 'g', 'e', 'n', 's', '.', 'c', 'o', 'm', '\0', /* "munki.org", true */ 'm', 'u', 'n', 'k', 'i', '.', 'o', 'r', 'g', '\0', /* "munkiepus.com", true */ 'm', 'u', 'n', 'k', 'i', 'e', 'p', 'u', 's', '.', 'c', 'o', 'm', '\0', @@ -8330,6 +8306,7 @@ static const char kSTSHostTable[] = { /* "mytc.fr", true */ 'm', 'y', 't', 'c', '.', 'f', 'r', '\0', /* "mythengay.ch", true */ 'm', 'y', 't', 'h', 'e', 'n', 'g', 'a', 'y', '.', 'c', 'h', '\0', /* "mythlogic.com", true */ 'm', 'y', 't', 'h', 'l', 'o', 'g', 'i', 'c', '.', 'c', 'o', 'm', '\0', + /* "mythslegendscollection.com", true */ 'm', 'y', 't', 'h', 's', 'l', 'e', 'g', 'e', 'n', 'd', 's', 'c', 'o', 'l', 'l', 'e', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "mytraiteurs.com", true */ 'm', 'y', 't', 'r', 'a', 'i', 't', 'e', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "mytripcar.co.uk", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "mytripcar.com", true */ 'm', 'y', 't', 'r', 'i', 'p', 'c', 'a', 'r', '.', 'c', 'o', 'm', '\0', @@ -8515,7 +8492,6 @@ static const char kSTSHostTable[] = { /* "netsparker.com", false */ 'n', 'e', 't', 's', 'p', 'a', 'r', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "netsystems.pro", true */ 'n', 'e', 't', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'p', 'r', 'o', '\0', /* "nette.org", true */ 'n', 'e', 't', 't', 'e', '.', 'o', 'r', 'g', '\0', - /* "nettefoundation.com", true */ 'n', 'e', 't', 't', 'e', 'f', 'o', 'u', 'n', 'd', 'a', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "nettia.fi", true */ 'n', 'e', 't', 't', 'i', 'a', '.', 'f', 'i', '\0', /* "nettools.link", true */ 'n', 'e', 't', 't', 'o', 'o', 'l', 's', '.', 'l', 'i', 'n', 'k', '\0', /* "nettopower.dk", true */ 'n', 'e', 't', 't', 'o', 'p', 'o', 'w', 'e', 'r', '.', 'd', 'k', '\0', @@ -8759,6 +8735,7 @@ static const char kSTSHostTable[] = { /* "ntotten.com", true */ 'n', 't', 'o', 't', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0', /* "ntppool.org", true */ 'n', 't', 'p', 'p', 'o', 'o', 'l', '.', 'o', 'r', 'g', '\0', /* "ntse.xyz", true */ 'n', 't', 's', 'e', '.', 'x', 'y', 'z', '\0', + /* "nube.ninja", true */ 'n', 'u', 'b', 'e', '.', 'n', 'i', 'n', 'j', 'a', '\0', /* "nubella.com.au", true */ 'n', 'u', 'b', 'e', 'l', 'l', 'a', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0', /* "nubu.at", true */ 'n', 'u', 'b', 'u', '.', 'a', 't', '\0', /* "nukenet.se", true */ 'n', 'u', 'k', 'e', 'n', 'e', 't', '.', 's', 'e', '\0', @@ -9121,6 +9098,7 @@ static const char kSTSHostTable[] = { /* "parentinterview.com", true */ 'p', 'a', 'r', 'e', 'n', 't', 'i', 'n', 't', 'e', 'r', 'v', 'i', 'e', 'w', '.', 'c', 'o', 'm', '\0', /* "pariga.co.uk", true */ 'p', 'a', 'r', 'i', 'g', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "parkingplus.co.il", true */ 'p', 'a', 'r', 'k', 'i', 'n', 'g', 'p', 'l', 'u', 's', '.', 'c', 'o', '.', 'i', 'l', '\0', + /* "parkingpoint.co.uk", true */ 'p', 'a', 'r', 'k', 'i', 'n', 'g', 'p', 'o', 'i', 'n', 't', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "parlamento.gub.uy", true */ 'p', 'a', 'r', 'l', 'a', 'm', 'e', 'n', 't', 'o', '.', 'g', 'u', 'b', '.', 'u', 'y', '\0', /* "parleu2016.nl", true */ 'p', 'a', 'r', 'l', 'e', 'u', '2', '0', '1', '6', '.', 'n', 'l', '\0', /* "parleur.net", true */ 'p', 'a', 'r', 'l', 'e', 'u', 'r', '.', 'n', 'e', 't', '\0', @@ -9141,7 +9119,6 @@ static const char kSTSHostTable[] = { /* "pascalleguern.com", true */ 'p', 'a', 's', 'c', 'a', 'l', 'l', 'e', 'g', 'u', 'e', 'r', 'n', '.', 'c', 'o', 'm', '\0', /* "passieposse.nl", true */ 'p', 'a', 's', 's', 'i', 'e', 'p', 'o', 's', 's', 'e', '.', 'n', 'l', '\0', /* "passionatefoodie.co.uk", true */ 'p', 'a', 's', 's', 'i', 'o', 'n', 'a', 't', 'e', 'f', 'o', 'o', 'd', 'i', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', - /* "passphrase.today", true */ 'p', 'a', 's', 's', 'p', 'h', 'r', 'a', 's', 'e', '.', 't', 'o', 'd', 'a', 'y', '\0', /* "passport.yandex.by", true */ 'p', 'a', 's', 's', 'p', 'o', 'r', 't', '.', 'y', 'a', 'n', 'd', 'e', 'x', '.', 'b', 'y', '\0', /* "passport.yandex.com", true */ 'p', 'a', 's', 's', 'p', 'o', 'r', 't', '.', 'y', 'a', 'n', 'd', 'e', 'x', '.', 'c', 'o', 'm', '\0', /* "passport.yandex.com.tr", true */ 'p', 'a', 's', 's', 'p', 'o', 'r', 't', '.', 'y', 'a', 'n', 'd', 'e', 'x', '.', 'c', 'o', 'm', '.', 't', 'r', '\0', @@ -9440,7 +9417,6 @@ static const char kSTSHostTable[] = { /* "pirateproxy.pl", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 'p', 'l', '\0', /* "pirateproxy.pw", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 'p', 'w', '\0', /* "pirateproxy.red", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 'r', 'e', 'd', '\0', - /* "pirateproxy.sx", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 's', 'x', '\0', /* "pirateproxy.tf", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 't', 'f', '\0', /* "pirateproxy.tv", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 't', 'v', '\0', /* "pirateproxy.vip", true */ 'p', 'i', 'r', 'a', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 'v', 'i', 'p', '\0', @@ -9537,6 +9513,7 @@ static const char kSTSHostTable[] = { /* "pokefarm.com", true */ 'p', 'o', 'k', 'e', 'f', 'a', 'r', 'm', '.', 'c', 'o', 'm', '\0', /* "pokeinthe.io", true */ 'p', 'o', 'k', 'e', 'i', 'n', 't', 'h', 'e', '.', 'i', 'o', '\0', /* "pokemori.jp", true */ 'p', 'o', 'k', 'e', 'm', 'o', 'r', 'i', '.', 'j', 'p', '\0', + /* "polaire.org", true */ 'p', 'o', 'l', 'a', 'i', 'r', 'e', '.', 'o', 'r', 'g', '\0', /* "pole.net.nz", true */ 'p', 'o', 'l', 'e', '.', 'n', 'e', 't', '.', 'n', 'z', '\0', /* "poles4pilots.com", true */ 'p', 'o', 'l', 'e', 's', '4', 'p', 'i', 'l', 'o', 't', 's', '.', 'c', 'o', 'm', '\0', /* "policeiwitness.sg", true */ 'p', 'o', 'l', 'i', 'c', 'e', 'i', 'w', 'i', 't', 'n', 'e', 's', 's', '.', 's', 'g', '\0', @@ -9580,6 +9557,7 @@ static const char kSTSHostTable[] = { /* "postbox.life", true */ 'p', 'o', 's', 't', 'b', 'o', 'x', '.', 'l', 'i', 'f', 'e', '\0', /* "postcodegarant.nl", true */ 'p', 'o', 's', 't', 'c', 'o', 'd', 'e', 'g', 'a', 'r', 'a', 'n', 't', '.', 'n', 'l', '\0', /* "posteo.de", false */ 'p', 'o', 's', 't', 'e', 'o', '.', 'd', 'e', '\0', + /* "posterspy.com", true */ 'p', 'o', 's', 't', 'e', 'r', 's', 'p', 'y', '.', 'c', 'o', 'm', '\0', /* "postfinance.ch", true */ 'p', 'o', 's', 't', 'f', 'i', 'n', 'a', 'n', 'c', 'e', '.', 'c', 'h', '\0', /* "postmatescode.com", true */ 'p', 'o', 's', 't', 'm', 'a', 't', 'e', 's', 'c', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0', /* "postn.eu", true */ 'p', 'o', 's', 't', 'n', '.', 'e', 'u', '\0', @@ -9745,7 +9723,6 @@ static const char kSTSHostTable[] = { /* "prt.in.th", true */ 'p', 'r', 't', '.', 'i', 'n', '.', 't', 'h', '\0', /* "prtpe.com", true */ 'p', 'r', 't', 'p', 'e', '.', 'c', 'o', 'm', '\0', /* "prvikvadrat.hr", true */ 'p', 'r', 'v', 'i', 'k', 'v', 'a', 'd', 'r', 'a', 't', '.', 'h', 'r', '\0', - /* "prxio.date", true */ 'p', 'r', 'x', 'i', 'o', '.', 'd', 'a', 't', 'e', '\0', /* "przemas.pl", true */ 'p', 'r', 'z', 'e', 'm', 'a', 's', '.', 'p', 'l', '\0', /* "ps-provider.co.jp", true */ 'p', 's', '-', 'p', 'r', 'o', 'v', 'i', 'd', 'e', 'r', '.', 'c', 'o', '.', 'j', 'p', '\0', /* "ps-w.ru", true */ 'p', 's', '-', 'w', '.', 'r', 'u', '\0', @@ -9919,7 +9896,6 @@ static const char kSTSHostTable[] = { /* "r0uzic.net", true */ 'r', '0', 'u', 'z', 'i', 'c', '.', 'n', 'e', 't', '\0', /* "r2d2pc.com", true */ 'r', '2', 'd', '2', 'p', 'c', '.', 'c', 'o', 'm', '\0', /* "r3s1stanc3.me", true */ 'r', '3', 's', '1', 's', 't', 'a', 'n', 'c', '3', '.', 'm', 'e', '\0', - /* "r40.us", true */ 'r', '4', '0', '.', 'u', 's', '\0', /* "r6-team.ru", true */ 'r', '6', '-', 't', 'e', 'a', 'm', '.', 'r', 'u', '\0', /* "r811.de", true */ 'r', '8', '1', '1', '.', 'd', 'e', '\0', /* "ra-micro-koeln.de", true */ 'r', 'a', '-', 'm', 'i', 'c', 'r', 'o', '-', 'k', 'o', 'e', 'l', 'n', '.', 'd', 'e', '\0', @@ -9940,6 +9916,7 @@ static const char kSTSHostTable[] = { /* "radioilusion.es", true */ 'r', 'a', 'd', 'i', 'o', 'i', 'l', 'u', 's', 'i', 'o', 'n', '.', 'e', 's', '\0', /* "radionicabg.com", true */ 'r', 'a', 'd', 'i', 'o', 'n', 'i', 'c', 'a', 'b', 'g', '.', 'c', 'o', 'm', '\0', /* "radiopolarniki.spb.ru", true */ 'r', 'a', 'd', 'i', 'o', 'p', 'o', 'l', 'a', 'r', 'n', 'i', 'k', 'i', '.', 's', 'p', 'b', '.', 'r', 'u', '\0', + /* "radiormi.com", true */ 'r', 'a', 'd', 'i', 'o', 'r', 'm', 'i', '.', 'c', 'o', 'm', '\0', /* "radreisetraumtreibstoff.de", true */ 'r', 'a', 'd', 'r', 'e', 'i', 's', 'e', 't', 'r', 'a', 'u', 'm', 't', 'r', 'e', 'i', 'b', 's', 't', 'o', 'f', 'f', '.', 'd', 'e', '\0', /* "radtke.bayern", true */ 'r', 'a', 'd', 't', 'k', 'e', '.', 'b', 'a', 'y', 'e', 'r', 'n', '\0', /* "radyn.com", true */ 'r', 'a', 'd', 'y', 'n', '.', 'c', 'o', 'm', '\0', @@ -10231,7 +10208,7 @@ static const char kSTSHostTable[] = { /* "righttobuy.gov.uk", true */ 'r', 'i', 'g', 'h', 't', 't', 'o', 'b', 'u', 'y', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0', /* "rigolitch.fr", true */ 'r', 'i', 'g', 'o', 'l', 'i', 't', 'c', 'h', '.', 'f', 'r', '\0', /* "riiconnect24.net", true */ 'r', 'i', 'i', 'c', 'o', 'n', 'n', 'e', 'c', 't', '2', '4', '.', 'n', 'e', 't', '\0', - /* "rijk-catering.nl", true */ 'r', 'i', 'j', 'k', '-', 'c', 'a', 't', 'e', 'r', 'i', 'n', 'g', '.', 'n', 'l', '\0', + /* "rijk-catering.nl", false */ 'r', 'i', 'j', 'k', '-', 'c', 'a', 't', 'e', 'r', 'i', 'n', 'g', '.', 'n', 'l', '\0', /* "rijschoolgevonden.nl", false */ 'r', 'i', 'j', 's', 'c', 'h', 'o', 'o', 'l', 'g', 'e', 'v', 'o', 'n', 'd', 'e', 'n', '.', 'n', 'l', '\0', /* "rileyevans.co.uk", true */ 'r', 'i', 'l', 'e', 'y', 'e', 'v', 'a', 'n', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "ringingliberty.com", true */ 'r', 'i', 'n', 'g', 'i', 'n', 'g', 'l', 'i', 'b', 'e', 'r', 't', 'y', '.', 'c', 'o', 'm', '\0', @@ -10386,7 +10363,6 @@ static const char kSTSHostTable[] = { /* "rudd-o.com", true */ 'r', 'u', 'd', 'd', '-', 'o', '.', 'c', 'o', 'm', '\0', /* "ruderverein-gelsenkirchen.de", true */ 'r', 'u', 'd', 'e', 'r', 'v', 'e', 'r', 'e', 'i', 'n', '-', 'g', 'e', 'l', 's', 'e', 'n', 'k', 'i', 'r', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0', /* "ruffbeatz.com", true */ 'r', 'u', 'f', 'f', 'b', 'e', 'a', 't', 'z', '.', 'c', 'o', 'm', '\0', - /* "rugk.dedyn.io", true */ 'r', 'u', 'g', 'k', '.', 'd', 'e', 'd', 'y', 'n', '.', 'i', 'o', '\0', /* "rugstorene.co.uk", true */ 'r', 'u', 'g', 's', 't', 'o', 'r', 'e', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "ruh-veit.de", true */ 'r', 'u', 'h', '-', 'v', 'e', 'i', 't', '.', 'd', 'e', '\0', /* "ruhrmobil-e.de", true */ 'r', 'u', 'h', 'r', 'm', 'o', 'b', 'i', 'l', '-', 'e', '.', 'd', 'e', '\0', @@ -10655,7 +10631,6 @@ static const char kSTSHostTable[] = { /* "scooterservis.com", true */ 's', 'c', 'o', 'o', 't', 'e', 'r', 's', 'e', 'r', 'v', 'i', 's', '.', 'c', 'o', 'm', '\0', /* "scores4schools.com", true */ 's', 'c', 'o', 'r', 'e', 's', '4', 's', 'c', 'h', 'o', 'o', 'l', 's', '.', 'c', 'o', 'm', '\0', /* "scottainslie.me.uk", true */ 's', 'c', 'o', 't', 't', 'a', 'i', 'n', 's', 'l', 'i', 'e', '.', 'm', 'e', '.', 'u', 'k', '\0', - /* "scottdial.com", true */ 's', 'c', 'o', 't', 't', 'd', 'i', 'a', 'l', '.', 'c', 'o', 'm', '\0', /* "scottgruber.me", true */ 's', 'c', 'o', 't', 't', 'g', 'r', 'u', 'b', 'e', 'r', '.', 'm', 'e', '\0', /* "scotthel.me", true */ 's', 'c', 'o', 't', 't', 'h', 'e', 'l', '.', 'm', 'e', '\0', /* "scotthelme.co.uk", true */ 's', 'c', 'o', 't', 't', 'h', 'e', 'l', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', @@ -10790,7 +10765,6 @@ static const char kSTSHostTable[] = { /* "seoarchive.org", true */ 's', 'e', 'o', 'a', 'r', 'c', 'h', 'i', 'v', 'e', '.', 'o', 'r', 'g', '\0', /* "seoinc.com", true */ 's', 'e', 'o', 'i', 'n', 'c', '.', 'c', 'o', 'm', '\0', /* "seokay.com", true */ 's', 'e', 'o', 'k', 'a', 'y', '.', 'c', 'o', 'm', '\0', - /* "seon.me", true */ 's', 'e', 'o', 'n', '.', 'm', 'e', '\0', /* "seoquake.com", true */ 's', 'e', 'o', 'q', 'u', 'a', 'k', 'e', '.', 'c', 'o', 'm', '\0', /* "seoul.dating", true */ 's', 'e', 'o', 'u', 'l', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', /* "sepalandseed.com", true */ 's', 'e', 'p', 'a', 'l', 'a', 'n', 'd', 's', 'e', 'e', 'd', '.', 'c', 'o', 'm', '\0', @@ -10994,6 +10968,7 @@ static const char kSTSHostTable[] = { /* "simoncook.org", true */ 's', 'i', 'm', 'o', 'n', 'c', 'o', 'o', 'k', '.', 'o', 'r', 'g', '\0', /* "simonhirscher.de", true */ 's', 'i', 'm', 'o', 'n', 'h', 'i', 'r', 's', 'c', 'h', 'e', 'r', '.', 'd', 'e', '\0', /* "simonkjellberg.com", true */ 's', 'i', 'm', 'o', 'n', 'k', 'j', 'e', 'l', 'l', 'b', 'e', 'r', 'g', '.', 'c', 'o', 'm', '\0', + /* "simonkjellberg.se", true */ 's', 'i', 'm', 'o', 'n', 'k', 'j', 'e', 'l', 'l', 'b', 'e', 'r', 'g', '.', 's', 'e', '\0', /* "simonlyabonnement.nl", true */ 's', 'i', 'm', 'o', 'n', 'l', 'y', 'a', 'b', 'o', 'n', 'n', 'e', 'm', 'e', 'n', 't', '.', 'n', 'l', '\0', /* "simonreich.de", true */ 's', 'i', 'm', 'o', 'n', 'r', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0', /* "simonsreich.de", true */ 's', 'i', 'm', 'o', 'n', 's', 'r', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0', @@ -11072,7 +11047,7 @@ static const char kSTSHostTable[] = { /* "skimming.net", true */ 's', 'k', 'i', 'm', 'm', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0', /* "sking.io", true */ 's', 'k', 'i', 'n', 'g', '.', 'i', 'o', '\0', /* "skipfault.com", true */ 's', 'k', 'i', 'p', 'f', 'a', 'u', 'l', 't', '.', 'c', 'o', 'm', '\0', - /* "skipperinnovations.com", false */ 's', 'k', 'i', 'p', 'p', 'e', 'r', 'i', 'n', 'n', 'o', 'v', 'a', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0', + /* "skipperinnovations.com", true */ 's', 'k', 'i', 'p', 'p', 'e', 'r', 'i', 'n', 'n', 'o', 'v', 'a', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0', /* "skoda-nurdiebesten.de", true */ 's', 'k', 'o', 'd', 'a', '-', 'n', 'u', 'r', 'd', 'i', 'e', 'b', 'e', 's', 't', 'e', 'n', '.', 'd', 'e', '\0', /* "skoda-service-team-cup.de", true */ 's', 'k', 'o', 'd', 'a', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '-', 't', 'e', 'a', 'm', '-', 'c', 'u', 'p', '.', 'd', 'e', '\0', /* "skogsbruket.fi", true */ 's', 'k', 'o', 'g', 's', 'b', 'r', 'u', 'k', 'e', 't', '.', 'f', 'i', '\0', @@ -11084,7 +11059,6 @@ static const char kSTSHostTable[] = { /* "skou.dk", true */ 's', 'k', 'o', 'u', '.', 'd', 'k', '\0', /* "sktsolution.com", true */ 's', 'k', 't', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "sky-aroma.com", true */ 's', 'k', 'y', '-', 'a', 'r', 'o', 'm', 'a', '.', 'c', 'o', 'm', '\0', - /* "skyasker.cn", true */ 's', 'k', 'y', 'a', 's', 'k', 'e', 'r', '.', 'c', 'n', '\0', /* "skyasker.com", true */ 's', 'k', 'y', 'a', 's', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "skydrive.live.com", false */ 's', 'k', 'y', 'd', 'r', 'i', 'v', 'e', '.', 'l', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0', /* "skyline.link", true */ 's', 'k', 'y', 'l', 'i', 'n', 'e', '.', 'l', 'i', 'n', 'k', '\0', @@ -11297,7 +11271,6 @@ static const char kSTSHostTable[] = { /* "sorcix.com", true */ 's', 'o', 'r', 'c', 'i', 'x', '.', 'c', 'o', 'm', '\0', /* "sorenstudios.com", true */ 's', 'o', 'r', 'e', 'n', 's', 't', 'u', 'd', 'i', 'o', 's', '.', 'c', 'o', 'm', '\0', /* "sorn.service.gov.uk", true */ 's', 'o', 'r', 'n', '.', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'g', 'o', 'v', '.', 'u', 'k', '\0', - /* "sortaweird.net", true */ 's', 'o', 'r', 't', 'a', 'w', 'e', 'i', 'r', 'd', '.', 'n', 'e', 't', '\0', /* "sorz.org", true */ 's', 'o', 'r', 'z', '.', 'o', 'r', 'g', '\0', /* "sos.sk", true */ 's', 'o', 's', '.', 's', 'k', '\0', /* "sosaka.ml", true */ 's', 'o', 's', 'a', 'k', 'a', '.', 'm', 'l', '\0', @@ -11674,7 +11647,6 @@ static const char kSTSHostTable[] = { /* "sunbritetv.com", true */ 's', 'u', 'n', 'b', 'r', 'i', 't', 'e', 't', 'v', '.', 'c', 'o', 'm', '\0', /* "sundayfundayjapan.com", true */ 's', 'u', 'n', 'd', 'a', 'y', 'f', 'u', 'n', 'd', 'a', 'y', 'j', 'a', 'p', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "suneilpatel.com", true */ 's', 'u', 'n', 'e', 'i', 'l', 'p', 'a', 't', 'e', 'l', '.', 'c', 'o', 'm', '\0', - /* "sunflyer.cn", false */ 's', 'u', 'n', 'f', 'l', 'y', 'e', 'r', '.', 'c', 'n', '\0', /* "sunjaydhama.com", true */ 's', 'u', 'n', 'j', 'a', 'y', 'd', 'h', 'a', 'm', 'a', '.', 'c', 'o', 'm', '\0', /* "sunsetwx.com", true */ 's', 'u', 'n', 's', 'e', 't', 'w', 'x', '.', 'c', 'o', 'm', '\0', /* "sunstar.bg", true */ 's', 'u', 'n', 's', 't', 'a', 'r', '.', 'b', 'g', '\0', @@ -11887,6 +11859,7 @@ static const char kSTSHostTable[] = { /* "teahut.net", true */ 't', 'e', 'a', 'h', 'u', 't', '.', 'n', 'e', 't', '\0', /* "tealdrones.com", true */ 't', 'e', 'a', 'l', 'd', 'r', 'o', 'n', 'e', 's', '.', 'c', 'o', 'm', '\0', /* "team-bbd.com", true */ 't', 'e', 'a', 'm', '-', 'b', 'b', 'd', '.', 'c', 'o', 'm', '\0', + /* "team-pancake.eu", true */ 't', 'e', 'a', 'm', '-', 'p', 'a', 'n', 'c', 'a', 'k', 'e', '.', 'e', 'u', '\0', /* "team-teasers.com", true */ 't', 'e', 'a', 'm', '-', 't', 'e', 'a', 's', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "team3482.com", true */ 't', 'e', 'a', 'm', '3', '4', '8', '2', '.', 'c', 'o', 'm', '\0', /* "teambeoplay.co.uk", true */ 't', 'e', 'a', 'm', 'b', 'e', 'o', 'p', 'l', 'a', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0', @@ -11929,6 +11902,7 @@ static const char kSTSHostTable[] = { /* "techorbiter.com", true */ 't', 'e', 'c', 'h', 'o', 'r', 'b', 'i', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "techpivot.net", true */ 't', 'e', 'c', 'h', 'p', 'i', 'v', 'o', 't', '.', 'n', 'e', 't', '\0', /* "techtalks.no", true */ 't', 'e', 'c', 'h', 't', 'a', 'l', 'k', 's', '.', 'n', 'o', '\0', + /* "techvalue.gr", true */ 't', 'e', 'c', 'h', 'v', 'a', 'l', 'u', 'e', '.', 'g', 'r', '\0', /* "techwords.io", true */ 't', 'e', 'c', 'h', 'w', 'o', 'r', 'd', 's', '.', 'i', 'o', '\0', /* "tecnogaming.com", true */ 't', 'e', 'c', 'n', 'o', 'g', 'a', 'm', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "tecture.de", true */ 't', 'e', 'c', 't', 'u', 'r', 'e', '.', 'd', 'e', '\0', @@ -11979,7 +11953,7 @@ static const char kSTSHostTable[] = { /* "tepid.org", true */ 't', 'e', 'p', 'i', 'd', '.', 'o', 'r', 'g', '\0', /* "teracloud.at", true */ 't', 'e', 'r', 'a', 'c', 'l', 'o', 'u', 'd', '.', 'a', 't', '\0', /* "teriiphotography.com", true */ 't', 'e', 'r', 'i', 'i', 'p', 'h', 'o', 't', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '\0', - /* "terrab.de", true */ 't', 'e', 'r', 'r', 'a', 'b', '.', 'd', 'e', '\0', + /* "terrab.de", false */ 't', 'e', 'r', 'r', 'a', 'b', '.', 'd', 'e', '\0', /* "terracloud.de", true */ 't', 'e', 'r', 'r', 'a', 'c', 'l', 'o', 'u', 'd', '.', 'd', 'e', '\0', /* "terraelectronica.ru", true */ 't', 'e', 'r', 'r', 'a', 'e', 'l', 'e', 'c', 't', 'r', 'o', 'n', 'i', 'c', 'a', '.', 'r', 'u', '\0', /* "terraform.io", true */ 't', 'e', 'r', 'r', 'a', 'f', 'o', 'r', 'm', '.', 'i', 'o', '\0', @@ -12098,7 +12072,6 @@ static const char kSTSHostTable[] = { /* "thenocman.com", true */ 't', 'h', 'e', 'n', 'o', 'c', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "thenorthschool.org.uk", true */ 't', 'h', 'e', 'n', 'o', 'r', 't', 'h', 's', 'c', 'h', 'o', 'o', 'l', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0', /* "theojones.name", true */ 't', 'h', 'e', 'o', 'j', 'o', 'n', 'e', 's', '.', 'n', 'a', 'm', 'e', '\0', - /* "thepasteb.in", true */ 't', 'h', 'e', 'p', 'a', 's', 't', 'e', 'b', '.', 'i', 'n', '\0', /* "thepaymentscompany.com", true */ 't', 'h', 'e', 'p', 'a', 'y', 'm', 'e', 'n', 't', 's', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '.', 'c', 'o', 'm', '\0', /* "thepb.in", true */ 't', 'h', 'e', 'p', 'b', '.', 'i', 'n', '\0', /* "thephonecaseplace.com", true */ 't', 'h', 'e', 'p', 'h', 'o', 'n', 'e', 'c', 'a', 's', 'e', 'p', 'l', 'a', 'c', 'e', '.', 'c', 'o', 'm', '\0', @@ -12142,7 +12115,6 @@ static const char kSTSHostTable[] = { /* "thezero.org", true */ 't', 'h', 'e', 'z', 'e', 'r', 'o', '.', 'o', 'r', 'g', '\0', /* "thibautcharles.net", true */ 't', 'h', 'i', 'b', 'a', 'u', 't', 'c', 'h', 'a', 'r', 'l', 'e', 's', '.', 'n', 'e', 't', '\0', /* "thierryhayoz.ch", true */ 't', 'h', 'i', 'e', 'r', 'r', 'y', 'h', 'a', 'y', 'o', 'z', '.', 'c', 'h', '\0', - /* "thijsvanderveen.net", true */ 't', 'h', 'i', 'j', 's', 'v', 'a', 'n', 'd', 'e', 'r', 'v', 'e', 'e', 'n', '.', 'n', 'e', 't', '\0', /* "thingies.site", true */ 't', 'h', 'i', 'n', 'g', 'i', 'e', 's', '.', 's', 'i', 't', 'e', '\0', /* "thinkcash.nl", true */ 't', 'h', 'i', 'n', 'k', 'c', 'a', 's', 'h', '.', 'n', 'l', '\0', /* "thinkcoding.org", true */ 't', 'h', 'i', 'n', 'k', 'c', 'o', 'd', 'i', 'n', 'g', '.', 'o', 'r', 'g', '\0', @@ -12196,6 +12168,7 @@ static const char kSTSHostTable[] = { /* "tianshili.me", true */ 't', 'i', 'a', 'n', 's', 'h', 'i', 'l', 'i', '.', 'm', 'e', '\0', /* "tianya.tv", true */ 't', 'i', 'a', 'n', 'y', 'a', '.', 't', 'v', '\0', /* "tibbitshall.ca", true */ 't', 'i', 'b', 'b', 'i', 't', 's', 'h', 'a', 'l', 'l', '.', 'c', 'a', '\0', + /* "ticfleet.com", true */ 't', 'i', 'c', 'f', 'l', 'e', 'e', 't', '.', 'c', 'o', 'm', '\0', /* "ticketmates.com.au", true */ 't', 'i', 'c', 'k', 'e', 't', 'm', 'a', 't', 'e', 's', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0', /* "ticketoplichting.nl", true */ 't', 'i', 'c', 'k', 'e', 't', 'o', 'p', 'l', 'i', 'c', 'h', 't', 'i', 'n', 'g', '.', 'n', 'l', '\0', /* "ticktock.today", true */ 't', 'i', 'c', 'k', 't', 'o', 'c', 'k', '.', 't', 'o', 'd', 'a', 'y', '\0', @@ -12442,7 +12415,6 @@ static const char kSTSHostTable[] = { /* "trainline.eu", true */ 't', 'r', 'a', 'i', 'n', 'l', 'i', 'n', 'e', '.', 'e', 'u', '\0', /* "trainline.fr", true */ 't', 'r', 'a', 'i', 'n', 'l', 'i', 'n', 'e', '.', 'f', 'r', '\0', /* "trainline.it", true */ 't', 'r', 'a', 'i', 'n', 'l', 'i', 'n', 'e', '.', 'i', 't', '\0', - /* "trainut.com", true */ 't', 'r', 'a', 'i', 'n', 'u', 't', '.', 'c', 'o', 'm', '\0', /* "trakfusion.com", true */ 't', 'r', 'a', 'k', 'f', 'u', 's', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "tranos.de", true */ 't', 'r', 'a', 'n', 'o', 's', '.', 'd', 'e', '\0', /* "transacid.de", true */ 't', 'r', 'a', 'n', 's', 'a', 'c', 'i', 'd', '.', 'd', 'e', '\0', @@ -12539,7 +12511,6 @@ static const char kSTSHostTable[] = { /* "ts3.consulting", true */ 't', 's', '3', '.', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '\0', /* "tsaro.io", true */ 't', 's', 'a', 'r', 'o', '.', 'i', 'o', '\0', /* "tsgbit.net", true */ 't', 's', 'g', 'b', 'i', 't', '.', 'n', 'e', 't', '\0', - /* "tsumegumi.net", true */ 't', 's', 'u', 'm', 'e', 'g', 'u', 'm', 'i', '.', 'n', 'e', 't', '\0', /* "tsumi.it", true */ 't', 's', 'u', 'm', 'i', '.', 'i', 't', '\0', /* "tsuyuzakihiroyuki.com", true */ 't', 's', 'u', 'y', 'u', 'z', 'a', 'k', 'i', 'h', 'i', 'r', 'o', 'y', 'u', 'k', 'i', '.', 'c', 'o', 'm', '\0', /* "tsv-1894.de", true */ 't', 's', 'v', '-', '1', '8', '9', '4', '.', 'd', 'e', '\0', @@ -12604,9 +12575,7 @@ static const char kSTSHostTable[] = { /* "txi.su", true */ 't', 'x', 'i', '.', 's', 'u', '\0', /* "tyche.io", true */ 't', 'y', 'c', 'h', 'e', '.', 'i', 'o', '\0', /* "tyl.io", true */ 't', 'y', 'l', '.', 'i', 'o', '\0', - /* "tyler.rs", true */ 't', 'y', 'l', 'e', 'r', '.', 'r', 's', '\0', /* "tylerfreedman.com", true */ 't', 'y', 'l', 'e', 'r', 'f', 'r', 'e', 'e', 'd', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0', - /* "tyleromeara.com", true */ 't', 'y', 'l', 'e', 'r', 'o', 'm', 'e', 'a', 'r', 'a', '.', 'c', 'o', 'm', '\0', /* "tylerschmidtke.com", true */ 't', 'y', 'l', 'e', 'r', 's', 'c', 'h', 'm', 'i', 'd', 't', 'k', 'e', '.', 'c', 'o', 'm', '\0', /* "typeblog.net", true */ 't', 'y', 'p', 'e', 'b', 'l', 'o', 'g', '.', 'n', 'e', 't', '\0', /* "typecodes.com", true */ 't', 'y', 'p', 'e', 'c', 'o', 'd', 'e', 's', '.', 'c', 'o', 'm', '\0', @@ -12633,6 +12602,7 @@ static const char kSTSHostTable[] = { /* "uberfunction.com", true */ 'u', 'b', 'e', 'r', 'f', 'u', 'n', 'c', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "ubertt.org", true */ 'u', 'b', 'e', 'r', 't', 't', '.', 'o', 'r', 'g', '\0', /* "uberwald.de", true */ 'u', 'b', 'e', 'r', 'w', 'a', 'l', 'd', '.', 'd', 'e', '\0', + /* "uberwald.ws", true */ 'u', 'b', 'e', 'r', 'w', 'a', 'l', 'd', '.', 'w', 's', '\0', /* "ubicv.com", true */ 'u', 'b', 'i', 'c', 'v', '.', 'c', 'o', 'm', '\0', /* "ubtce.com", true */ 'u', 'b', 't', 'c', 'e', '.', 'c', 'o', 'm', '\0', /* "ucfirst.nl", true */ 'u', 'c', 'f', 'i', 'r', 's', 't', '.', 'n', 'l', '\0', @@ -12672,7 +12642,6 @@ static const char kSTSHostTable[] = { /* "umwandeln-online.de", true */ 'u', 'm', 'w', 'a', 'n', 'd', 'e', 'l', 'n', '-', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'd', 'e', '\0', /* "un-zero-un.fr", true */ 'u', 'n', '-', 'z', 'e', 'r', 'o', '-', 'u', 'n', '.', 'f', 'r', '\0', /* "unapp.me", true */ 'u', 'n', 'a', 'p', 'p', '.', 'm', 'e', '\0', - /* "unart.info", true */ 'u', 'n', 'a', 'r', 't', '.', 'i', 'n', 'f', 'o', '\0', /* "unblockall.xyz", true */ 'u', 'n', 'b', 'l', 'o', 'c', 'k', 'a', 'l', 'l', '.', 'x', 'y', 'z', '\0', /* "unblockat.tk", true */ 'u', 'n', 'b', 'l', 'o', 'c', 'k', 'a', 't', '.', 't', 'k', '\0', /* "unblocked.date", true */ 'u', 'n', 'b', 'l', 'o', 'c', 'k', 'e', 'd', '.', 'd', 'a', 't', 'e', '\0', @@ -12863,6 +12832,7 @@ static const char kSTSHostTable[] = { /* "vashel.us", true */ 'v', 'a', 's', 'h', 'e', 'l', '.', 'u', 's', '\0', /* "vat-eu.com", true */ 'v', 'a', 't', '-', 'e', 'u', '.', 'c', 'o', 'm', '\0', /* "vattulainen.fi", true */ 'v', 'a', 't', 't', 'u', 'l', 'a', 'i', 'n', 'e', 'n', '.', 'f', 'i', '\0', + /* "vault21.net", true */ 'v', 'a', 'u', 'l', 't', '2', '1', '.', 'n', 'e', 't', '\0', /* "vaultproject.io", true */ 'v', 'a', 'u', 'l', 't', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'i', 'o', '\0', /* "vaur.fr", true */ 'v', 'a', 'u', 'r', '.', 'f', 'r', '\0', /* "vavai.net", true */ 'v', 'a', 'v', 'a', 'i', '.', 'n', 'e', 't', '\0', @@ -12931,7 +12901,6 @@ static const char kSTSHostTable[] = { /* "viadeux.com", true */ 'v', 'i', 'a', 'd', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0', /* "viaprinto.de", true */ 'v', 'i', 'a', 'p', 'r', 'i', 'n', 't', 'o', '.', 'd', 'e', '\0', /* "viasinc.com", false */ 'v', 'i', 'a', 's', 'i', 'n', 'c', '.', 'c', 'o', 'm', '\0', - /* "vibrant-america.com", true */ 'v', 'i', 'b', 'r', 'a', 'n', 't', '-', 'a', 'm', 'e', 'r', 'i', 'c', 'a', '.', 'c', 'o', 'm', '\0', /* "vician.cz", true */ 'v', 'i', 'c', 'i', 'a', 'n', '.', 'c', 'z', '\0', /* "viciousviscosity.xyz", true */ 'v', 'i', 'c', 'i', 'o', 'u', 's', 'v', 'i', 's', 'c', 'o', 's', 'i', 't', 'y', '.', 'x', 'y', 'z', '\0', /* "victorcanera.com", true */ 'v', 'i', 'c', 't', 'o', 'r', 'c', 'a', 'n', 'e', 'r', 'a', '.', 'c', 'o', 'm', '\0', @@ -13322,6 +13291,7 @@ static const char kSTSHostTable[] = { /* "whey-protein.ch", true */ 'w', 'h', 'e', 'y', '-', 'p', 'r', 'o', 't', 'e', 'i', 'n', '.', 'c', 'h', '\0', /* "whing.org", true */ 'w', 'h', 'i', 'n', 'g', '.', 'o', 'r', 'g', '\0', /* "whipnic.com", true */ 'w', 'h', 'i', 'p', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0', + /* "whisker.network", true */ 'w', 'h', 'i', 's', 'k', 'e', 'r', '.', 'n', 'e', 't', 'w', 'o', 'r', 'k', '\0', /* "whiskeyriver.co.uk", true */ 'w', 'h', 'i', 's', 'k', 'e', 'y', 'r', 'i', 'v', 'e', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "whiskynerd.ca", true */ 'w', 'h', 'i', 's', 'k', 'y', 'n', 'e', 'r', 'd', '.', 'c', 'a', '\0', /* "whisp.ly", false */ 'w', 'h', 'i', 's', 'p', '.', 'l', 'y', '\0', @@ -13781,7 +13751,6 @@ static const char kSTSHostTable[] = { /* "ymarion.de", true */ 'y', 'm', 'a', 'r', 'i', 'o', 'n', '.', 'd', 'e', '\0', /* "ympl.de", true */ 'y', 'm', 'p', 'l', '.', 'd', 'e', '\0', /* "ynode.com", true */ 'y', 'n', 'o', 'd', 'e', '.', 'c', 'o', 'm', '\0', - /* "yntongji.com", true */ 'y', 'n', 't', 'o', 'n', 'g', 'j', 'i', '.', 'c', 'o', 'm', '\0', /* "yobst.tk", false */ 'y', 'o', 'b', 's', 't', '.', 't', 'k', '\0', /* "yoga-prive.de", true */ 'y', 'o', 'g', 'a', '-', 'p', 'r', 'i', 'v', 'e', '.', 'd', 'e', '\0', /* "yoga-school.xyz", true */ 'y', 'o', 'g', 'a', '-', 's', 'c', 'h', 'o', 'o', 'l', '.', 'x', 'y', 'z', '\0', @@ -13932,24 +13901,24 @@ static const char kSTSHostTable[] = { /* "zicklam.com", true */ 'z', 'i', 'c', 'k', 'l', 'a', 'm', '.', 'c', 'o', 'm', '\0', /* "zifb.in", true */ 'z', 'i', 'f', 'b', '.', 'i', 'n', '\0', /* "zigcore.com.br", true */ 'z', 'i', 'g', 'c', 'o', 'r', 'e', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', + /* "zihao.me", true */ 'z', 'i', 'h', 'a', 'o', '.', 'm', 'e', '\0', /* "ziin.de", false */ 'z', 'i', 'i', 'n', '.', 'd', 'e', '\0', /* "zilore.com", true */ 'z', 'i', 'l', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "zima.io", true */ 'z', 'i', 'm', 'a', '.', 'i', 'o', '\0', /* "zimiao.moe", true */ 'z', 'i', 'm', 'i', 'a', 'o', '.', 'm', 'o', 'e', '\0', /* "zinc-x.com", true */ 'z', 'i', 'n', 'c', '-', 'x', '.', 'c', 'o', 'm', '\0', /* "zinenapse.info", true */ 'z', 'i', 'n', 'e', 'n', 'a', 'p', 's', 'e', '.', 'i', 'n', 'f', 'o', '\0', + /* "zingarastore.com", true */ 'z', 'i', 'n', 'g', 'a', 'r', 'a', 's', 't', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "zionvps.com", false */ 'z', 'i', 'o', 'n', 'v', 'p', 's', '.', 'c', 'o', 'm', '\0', /* "zippy-download.com", true */ 'z', 'i', 'p', 'p', 'y', '-', 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', '.', 'c', 'o', 'm', '\0', /* "zippy-download.de", true */ 'z', 'i', 'p', 'p', 'y', '-', 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', '.', 'd', 'e', '\0', /* "zittingskalender.be", true */ 'z', 'i', 't', 't', 'i', 'n', 'g', 's', 'k', 'a', 'l', 'e', 'n', 'd', 'e', 'r', '.', 'b', 'e', '\0', /* "zixiao.wang", true */ 'z', 'i', 'x', 'i', 'a', 'o', '.', 'w', 'a', 'n', 'g', '\0', - /* "ziyuanabc.xyz", true */ 'z', 'i', 'y', 'u', 'a', 'n', 'a', 'b', 'c', '.', 'x', 'y', 'z', '\0', /* "zizoo.com", true */ 'z', 'i', 'z', 'o', 'o', '.', 'c', 'o', 'm', '\0', /* "zju.tv", true */ 'z', 'j', 'u', '.', 't', 'v', '\0', /* "zjubtv.com", true */ 'z', 'j', 'u', 'b', 't', 'v', '.', 'c', 'o', 'm', '\0', /* "zjutv.com", true */ 'z', 'j', 'u', 't', 'v', '.', 'c', 'o', 'm', '\0', /* "zk.gd", true */ 'z', 'k', '.', 'g', 'd', '\0', - /* "zkillboard.com", true */ 'z', 'k', 'i', 'l', 'l', 'b', 'o', 'a', 'r', 'd', '.', 'c', 'o', 'm', '\0', /* "zkrypt.cc", true */ 'z', 'k', 'r', 'y', 'p', 't', '.', 'c', 'c', '\0', /* "zlatosnadno.cz", true */ 'z', 'l', 'a', 't', 'o', 's', 'n', 'a', 'd', 'n', 'o', '.', 'c', 'z', '\0', /* "zlavomat.sk", true */ 'z', 'l', 'a', 'v', 'o', 'm', 'a', 't', '.', 's', 'k', '\0', @@ -14058,13944 +14027,13913 @@ static const nsSTSPreload kSTSPreloadList[] = { { 508, true }, { 519, true }, { 530, true }, - { 549, true }, - { 559, true }, - { 569, true }, - { 594, true }, + { 540, true }, + { 550, true }, + { 575, true }, + { 583, true }, + { 591, true }, { 602, true }, - { 610, true }, - { 624, true }, - { 635, true }, - { 651, true }, - { 662, true }, - { 683, true }, + { 618, true }, + { 629, true }, + { 650, true }, + { 666, true }, + { 674, true }, { 699, true }, - { 707, true }, - { 732, true }, - { 754, true }, + { 721, true }, + { 738, true }, + { 761, true }, { 771, true }, - { 794, true }, - { 804, true }, - { 815, true }, - { 826, true }, - { 840, true }, - { 862, true }, - { 874, true }, - { 881, true }, - { 890, true }, - { 897, true }, - { 908, true }, - { 919, true }, - { 926, true }, - { 933, true }, - { 944, true }, - { 951, true }, - { 963, true }, - { 980, true }, - { 998, true }, + { 782, true }, + { 793, true }, + { 807, true }, + { 829, true }, + { 841, true }, + { 848, true }, + { 857, true }, + { 864, true }, + { 875, true }, + { 886, true }, + { 893, true }, + { 900, true }, + { 911, true }, + { 918, true }, + { 930, true }, + { 947, true }, + { 965, true }, + { 979, true }, + { 991, true }, + { 1002, true }, { 1012, true }, - { 1024, true }, - { 1035, true }, - { 1045, true }, - { 1054, true }, - { 1060, true }, - { 1075, true }, - { 1083, true }, - { 1092, true }, - { 1110, true }, + { 1021, true }, + { 1027, true }, + { 1042, true }, + { 1050, true }, + { 1059, true }, + { 1077, true }, + { 1089, true }, + { 1105, true }, + { 1114, true }, { 1122, true }, - { 1138, true }, - { 1147, true }, - { 1155, true }, - { 1163, true }, - { 1174, true }, - { 1183, true }, - { 1195, true }, - { 1203, true }, - { 1213, true }, - { 1229, false }, - { 1242, true }, - { 1251, true }, - { 1265, true }, - { 1274, true }, - { 1295, true }, - { 1304, true }, - { 1314, true }, + { 1130, true }, + { 1141, true }, + { 1150, true }, + { 1162, true }, + { 1170, true }, + { 1180, true }, + { 1196, false }, + { 1209, true }, + { 1218, true }, + { 1232, true }, + { 1241, true }, + { 1262, true }, + { 1271, true }, + { 1281, true }, + { 1296, true }, + { 1313, true }, { 1329, true }, - { 1346, true }, - { 1362, true }, - { 1369, true }, + { 1336, true }, + { 1349, true }, + { 1358, true }, + { 1370, false }, { 1382, true }, - { 1391, true }, - { 1403, false }, - { 1415, true }, - { 1423, true }, - { 1434, true }, - { 1441, true }, - { 1450, true }, - { 1459, true }, - { 1472, true }, - { 1481, true }, - { 1500, true }, - { 1519, true }, - { 1531, true }, + { 1390, true }, + { 1401, true }, + { 1408, true }, + { 1417, true }, + { 1426, true }, + { 1439, true }, + { 1448, true }, + { 1467, true }, + { 1486, true }, + { 1498, true }, + { 1512, true }, + { 1524, true }, + { 1537, true }, { 1545, true }, - { 1557, true }, - { 1570, true }, - { 1578, true }, - { 1594, true }, - { 1609, true }, - { 1621, true }, - { 1634, true }, - { 1644, true }, - { 1658, true }, - { 1674, true }, - { 1688, true }, - { 1703, true }, - { 1717, true }, - { 1725, true }, - { 1732, true }, - { 1744, true }, - { 1757, true }, - { 1766, true }, - { 1778, true }, - { 1789, true }, - { 1802, true }, - { 1810, false }, - { 1819, false }, - { 1832, true }, - { 1840, true }, - { 1852, true }, - { 1864, true }, - { 1879, true }, - { 1898, true }, - { 1905, false }, - { 1924, true }, - { 1934, true }, - { 1940, true }, - { 1949, true }, - { 1962, true }, - { 1974, true }, - { 1983, true }, - { 1996, true }, - { 2006, true }, - { 2014, false }, - { 2021, true }, + { 1561, true }, + { 1576, true }, + { 1588, true }, + { 1601, true }, + { 1611, true }, + { 1625, true }, + { 1641, true }, + { 1655, true }, + { 1670, true }, + { 1684, true }, + { 1692, true }, + { 1699, true }, + { 1711, true }, + { 1724, true }, + { 1733, true }, + { 1745, true }, + { 1756, true }, + { 1769, true }, + { 1777, false }, + { 1786, false }, + { 1799, true }, + { 1807, true }, + { 1819, true }, + { 1831, true }, + { 1846, true }, + { 1865, true }, + { 1872, false }, + { 1891, true }, + { 1901, true }, + { 1907, true }, + { 1916, true }, + { 1929, true }, + { 1941, true }, + { 1950, true }, + { 1963, true }, + { 1973, true }, + { 1981, false }, + { 1988, true }, + { 1999, true }, + { 2011, true }, + { 2019, true }, { 2032, true }, - { 2044, true }, - { 2052, true }, - { 2065, true }, - { 2072, true }, - { 2081, true }, - { 2093, true }, - { 2102, true }, - { 2123, true }, - { 2147, true }, - { 2162, true }, - { 2173, true }, - { 2186, true }, - { 2198, true }, - { 2210, true }, - { 2218, true }, + { 2039, true }, + { 2048, true }, + { 2060, true }, + { 2069, true }, + { 2090, true }, + { 2114, true }, + { 2129, true }, + { 2140, true }, + { 2153, true }, + { 2165, true }, + { 2177, true }, + { 2185, true }, + { 2195, true }, + { 2212, true }, + { 2219, true }, { 2228, true }, - { 2245, true }, - { 2252, true }, - { 2261, true }, - { 2282, true }, - { 2295, false }, - { 2308, true }, - { 2318, true }, - { 2371, true }, - { 2383, true }, - { 2392, true }, - { 2401, true }, - { 2411, true }, - { 2421, true }, - { 2432, true }, - { 2440, true }, - { 2452, true }, - { 2462, true }, - { 2481, true }, + { 2249, true }, + { 2262, false }, + { 2275, true }, + { 2285, true }, + { 2338, true }, + { 2350, true }, + { 2359, true }, + { 2368, true }, + { 2378, true }, + { 2388, true }, + { 2399, true }, + { 2407, true }, + { 2419, true }, + { 2429, true }, + { 2448, true }, + { 2459, true }, + { 2470, true }, + { 2479, true }, { 2492, true }, - { 2503, true }, { 2512, true }, - { 2525, true }, - { 2545, true }, + { 2527, true }, + { 2542, true }, + { 2550, true }, { 2560, true }, - { 2575, true }, - { 2583, true }, - { 2593, true }, - { 2610, true }, - { 2625, true }, + { 2577, true }, + { 2592, true }, + { 2602, true }, + { 2609, true }, + { 2620, true }, { 2635, true }, - { 2642, true }, - { 2653, true }, - { 2668, true }, - { 2687, true }, - { 2697, true }, - { 2708, true }, - { 2726, true }, - { 2737, true }, - { 2751, true }, - { 2763, true }, - { 2785, true }, - { 2801, true }, - { 2812, false }, - { 2828, false }, - { 2840, true }, - { 2853, true }, - { 2866, true }, + { 2654, true }, + { 2664, true }, + { 2675, true }, + { 2693, true }, + { 2704, true }, + { 2718, true }, + { 2730, true }, + { 2752, true }, + { 2768, true }, + { 2779, false }, + { 2795, false }, + { 2807, true }, + { 2820, true }, + { 2833, true }, + { 2850, true }, + { 2875, false }, { 2883, true }, - { 2908, false }, - { 2916, true }, - { 2940, true }, - { 2953, true }, - { 2965, true }, - { 2976, true }, - { 3000, true }, - { 3013, true }, - { 3022, true }, - { 3039, true }, - { 3051, true }, - { 3070, true }, - { 3093, true }, - { 3107, true }, - { 3123, true }, - { 3136, true }, - { 3153, true }, - { 3173, true }, - { 3188, true }, - { 3209, true }, - { 3229, true }, - { 3241, true }, - { 3252, true }, - { 3271, false }, + { 2907, true }, + { 2920, true }, + { 2932, true }, + { 2943, true }, + { 2967, true }, + { 2980, true }, + { 2989, true }, + { 3006, true }, + { 3018, true }, + { 3037, true }, + { 3060, true }, + { 3074, true }, + { 3090, true }, + { 3103, true }, + { 3120, true }, + { 3140, true }, + { 3155, true }, + { 3176, true }, + { 3196, true }, + { 3208, true }, + { 3219, true }, + { 3238, false }, + { 3245, true }, + { 3266, true }, { 3278, true }, - { 3299, true }, - { 3311, true }, - { 3328, true }, - { 3341, true }, - { 3357, true }, - { 3369, true }, - { 3382, false }, - { 3391, false }, - { 3401, true }, - { 3416, true }, - { 3433, true }, - { 3449, true }, - { 3460, true }, - { 3472, true }, - { 3493, false }, - { 3503, true }, - { 3518, true }, - { 3532, false }, - { 3545, true }, - { 3554, true }, - { 3568, true }, - { 3580, true }, - { 3595, true }, - { 3608, true }, - { 3620, true }, - { 3632, true }, - { 3644, true }, - { 3656, true }, + { 3295, true }, + { 3308, true }, + { 3324, true }, + { 3336, true }, + { 3349, false }, + { 3358, false }, + { 3368, true }, + { 3383, true }, + { 3400, true }, + { 3414, true }, + { 3430, true }, + { 3441, true }, + { 3453, true }, + { 3474, false }, + { 3484, true }, + { 3499, true }, + { 3513, false }, + { 3526, true }, + { 3535, true }, + { 3549, true }, + { 3561, true }, + { 3576, true }, + { 3589, true }, + { 3601, true }, + { 3613, true }, + { 3625, true }, + { 3637, true }, + { 3649, true }, + { 3657, true }, { 3668, true }, - { 3676, true }, - { 3687, true }, - { 3701, true }, - { 3717, true }, - { 3730, true }, - { 3747, true }, - { 3762, true }, - { 3777, true }, - { 3795, true }, - { 3804, true }, - { 3817, true }, + { 3682, true }, + { 3698, true }, + { 3711, true }, + { 3728, true }, + { 3743, true }, + { 3758, true }, + { 3776, true }, + { 3785, true }, + { 3798, true }, + { 3819, true }, + { 3828, true }, { 3838, true }, - { 3847, true }, - { 3857, true }, - { 3882, true }, + { 3863, true }, + { 3874, true }, { 3893, true }, - { 3912, true }, + { 3905, true }, { 3924, true }, { 3943, true }, { 3962, true }, - { 3981, true }, - { 3993, true }, - { 4008, true }, - { 4019, true }, - { 4032, true }, - { 4044, true }, - { 4057, true }, - { 4071, true }, - { 4081, true }, - { 4092, true }, - { 4101, true }, - { 4115, true }, - { 4127, true }, - { 4154, true }, - { 4180, true }, - { 4193, true }, - { 4204, true }, - { 4228, true }, - { 4245, true }, - { 4273, true }, + { 3974, true }, + { 3989, true }, + { 4000, true }, + { 4013, true }, + { 4025, true }, + { 4038, true }, + { 4052, true }, + { 4062, true }, + { 4073, true }, + { 4082, true }, + { 4096, true }, + { 4108, true }, + { 4135, true }, + { 4161, true }, + { 4174, true }, + { 4185, true }, + { 4209, true }, + { 4226, true }, + { 4254, true }, + { 4270, true }, + { 4279, true }, { 4289, true }, - { 4298, true }, - { 4308, true }, + { 4303, true }, { 4322, true }, - { 4341, true }, - { 4351, true }, - { 4365, true }, - { 4373, false }, - { 4394, true }, - { 4412, true }, + { 4332, true }, + { 4346, true }, + { 4354, false }, + { 4375, true }, + { 4393, true }, + { 4402, true }, { 4421, true }, - { 4440, true }, + { 4435, true }, { 4454, true }, - { 4473, true }, - { 4486, true }, - { 4497, true }, - { 4517, true }, - { 4535, true }, - { 4553, false }, - { 4572, true }, - { 4586, true }, - { 4607, true }, - { 4623, true }, - { 4633, true }, - { 4646, true }, - { 4659, true }, - { 4673, true }, - { 4687, true }, - { 4697, true }, - { 4707, true }, - { 4717, true }, - { 4727, true }, - { 4737, true }, - { 4747, true }, - { 4764, true }, - { 4774, false }, - { 4782, true }, - { 4793, true }, - { 4804, true }, - { 4815, true }, - { 4824, true }, - { 4844, true }, - { 4855, true }, - { 4872, true }, - { 4896, true }, + { 4467, true }, + { 4478, true }, + { 4498, true }, + { 4516, true }, + { 4534, false }, + { 4553, true }, + { 4567, true }, + { 4588, true }, + { 4604, true }, + { 4614, true }, + { 4627, true }, + { 4640, true }, + { 4654, true }, + { 4668, true }, + { 4678, true }, + { 4688, true }, + { 4698, true }, + { 4708, true }, + { 4718, true }, + { 4728, true }, + { 4745, true }, + { 4755, false }, + { 4763, true }, + { 4774, true }, + { 4785, true }, + { 4796, true }, + { 4805, true }, + { 4825, true }, + { 4836, true }, + { 4853, true }, + { 4877, true }, + { 4891, true }, { 4910, true }, - { 4929, true }, - { 4941, true }, - { 4957, true }, - { 4968, true }, - { 4982, true }, - { 4998, true }, - { 5013, true }, - { 5021, true }, - { 5038, true }, - { 5050, true }, - { 5067, true }, - { 5075, false }, - { 5091, true }, - { 5099, true }, - { 5113, true }, - { 5125, true }, - { 5138, true }, - { 5150, true }, - { 5162, true }, - { 5176, true }, - { 5188, true }, - { 5198, true }, - { 5206, true }, - { 5216, true }, - { 5230, true }, + { 4922, true }, + { 4938, true }, + { 4949, true }, + { 4963, true }, + { 4979, true }, + { 4994, true }, + { 5002, true }, + { 5019, true }, + { 5036, true }, + { 5044, false }, + { 5060, true }, + { 5068, true }, + { 5082, true }, + { 5094, true }, + { 5107, true }, + { 5119, true }, + { 5131, true }, + { 5145, true }, + { 5157, true }, + { 5167, true }, + { 5175, true }, + { 5185, true }, + { 5199, true }, + { 5212, true }, + { 5224, true }, { 5243, true }, - { 5255, true }, - { 5274, true }, - { 5293, true }, + { 5262, true }, + { 5295, true }, + { 5305, true }, + { 5319, true }, { 5326, true }, - { 5336, true }, - { 5350, true }, - { 5357, true }, - { 5374, true }, - { 5383, true }, - { 5390, true }, - { 5404, true }, - { 5412, true }, - { 5423, true }, - { 5438, true }, - { 5453, true }, - { 5470, true }, - { 5480, true }, - { 5491, true }, - { 5506, true }, - { 5517, true }, - { 5529, true }, - { 5540, true }, - { 5560, true }, - { 5571, true }, - { 5582, true }, - { 5593, true }, - { 5606, true }, - { 5624, true }, - { 5636, true }, - { 5645, true }, - { 5659, true }, - { 5670, true }, - { 5687, true }, - { 5698, true }, - { 5706, true }, - { 5715, false }, - { 5741, false }, - { 5752, true }, - { 5762, false }, - { 5779, true }, - { 5789, true }, - { 5803, true }, + { 5343, true }, + { 5352, true }, + { 5359, true }, + { 5373, true }, + { 5381, true }, + { 5392, true }, + { 5407, true }, + { 5422, true }, + { 5432, true }, + { 5443, true }, + { 5458, true }, + { 5469, true }, + { 5481, true }, + { 5492, true }, + { 5512, true }, + { 5523, true }, + { 5534, true }, + { 5545, true }, + { 5558, true }, + { 5576, true }, + { 5588, true }, + { 5597, true }, + { 5611, true }, + { 5622, true }, + { 5639, true }, + { 5650, true }, + { 5658, true }, + { 5667, false }, + { 5693, false }, + { 5704, true }, + { 5714, false }, + { 5731, true }, + { 5741, true }, + { 5755, true }, + { 5767, true }, + { 5784, true }, + { 5791, true }, { 5815, true }, - { 5832, true }, - { 5839, true }, - { 5863, true }, - { 5879, true }, - { 5899, true }, - { 5924, true }, - { 5949, true }, - { 5974, true }, + { 5831, true }, + { 5851, true }, + { 5876, true }, + { 5901, true }, + { 5926, true }, + { 5938, true }, + { 5950, true }, + { 5959, true }, { 5986, true }, - { 5998, true }, - { 6007, true }, - { 6034, true }, - { 6047, false }, - { 6056, true }, - { 6072, true }, - { 6088, true }, - { 6100, true }, - { 6114, true }, + { 5999, false }, + { 6008, true }, + { 6024, true }, + { 6040, true }, + { 6052, true }, + { 6066, true }, + { 6086, true }, + { 6101, true }, + { 6122, true }, { 6134, true }, - { 6149, true }, - { 6170, true }, - { 6182, true }, - { 6192, true }, - { 6204, true }, - { 6216, true }, - { 6225, true }, - { 6237, true }, - { 6256, true }, - { 6269, true }, - { 6280, true }, - { 6289, true }, - { 6303, true }, - { 6317, true }, - { 6333, true }, - { 6349, true }, - { 6369, true }, - { 6390, true }, - { 6404, true }, - { 6417, true }, - { 6432, true }, - { 6442, true }, - { 6457, true }, - { 6475, true }, - { 6489, true }, - { 6501, true }, - { 6516, true }, - { 6530, true }, - { 6545, true }, - { 6555, true }, - { 6569, true }, - { 6586, true }, - { 6601, true }, - { 6615, true }, - { 6629, true }, - { 6645, true }, - { 6657, false }, - { 6672, true }, - { 6684, true }, - { 6699, true }, - { 6713, true }, - { 6735, true }, - { 6747, true }, - { 6768, true }, - { 6780, true }, - { 6793, true }, - { 6805, true }, - { 6818, true }, - { 6833, true }, - { 6844, true }, - { 6860, true }, - { 6871, true }, - { 6883, true }, - { 6896, true }, - { 6916, true }, - { 6929, true }, - { 6947, true }, - { 6964, true }, - { 6988, true }, - { 7007, true }, - { 7018, true }, - { 7032, true }, - { 7048, true }, - { 7067, true }, - { 7080, true }, - { 7101, true }, - { 7121, true }, - { 7141, true }, - { 7154, false }, - { 7167, true }, - { 7179, true }, - { 7189, true }, - { 7202, true }, - { 7216, true }, - { 7232, true }, + { 6144, true }, + { 6156, true }, + { 6168, true }, + { 6177, true }, + { 6190, true }, + { 6201, true }, + { 6210, true }, + { 6224, true }, + { 6238, true }, + { 6254, true }, + { 6270, true }, + { 6290, true }, + { 6311, true }, + { 6325, true }, + { 6338, true }, + { 6353, true }, + { 6363, true }, + { 6378, true }, + { 6396, true }, + { 6410, true }, + { 6422, true }, + { 6437, true }, + { 6451, true }, + { 6466, true }, + { 6476, true }, + { 6490, true }, + { 6507, true }, + { 6522, true }, + { 6536, true }, + { 6550, true }, + { 6566, true }, + { 6578, false }, + { 6593, true }, + { 6605, true }, + { 6620, true }, + { 6634, true }, + { 6656, true }, + { 6668, true }, + { 6689, true }, + { 6701, true }, + { 6714, true }, + { 6726, true }, + { 6739, true }, + { 6754, true }, + { 6765, true }, + { 6781, true }, + { 6792, true }, + { 6804, true }, + { 6817, true }, + { 6837, true }, + { 6850, true }, + { 6868, true }, + { 6885, true }, + { 6909, true }, + { 6928, true }, + { 6942, true }, + { 6958, true }, + { 6977, true }, + { 6990, true }, + { 7011, true }, + { 7031, true }, + { 7051, true }, + { 7064, false }, + { 7077, true }, + { 7089, true }, + { 7099, true }, + { 7112, true }, + { 7126, true }, + { 7142, true }, + { 7156, true }, + { 7172, true }, + { 7184, true }, + { 7198, true }, + { 7211, true }, + { 7225, true }, + { 7233, true }, { 7246, true }, - { 7262, true }, - { 7274, true }, - { 7288, true }, - { 7301, true }, - { 7315, true }, - { 7323, true }, - { 7336, true }, - { 7351, true }, - { 7370, true }, - { 7382, true }, - { 7396, true }, - { 7410, true }, - { 7422, true }, - { 7437, true }, - { 7448, true }, - { 7459, true }, - { 7471, true }, - { 7479, true }, - { 7490, true }, - { 7498, true }, - { 7506, true }, - { 7514, true }, - { 7522, true }, - { 7535, true }, - { 7542, true }, - { 7552, true }, - { 7565, true }, - { 7577, true }, - { 7590, true }, - { 7610, true }, + { 7261, true }, + { 7280, true }, + { 7292, true }, + { 7306, true }, + { 7320, true }, + { 7332, true }, + { 7347, true }, + { 7358, true }, + { 7369, true }, + { 7381, true }, + { 7389, true }, + { 7400, true }, + { 7408, true }, + { 7416, true }, + { 7424, true }, + { 7432, true }, + { 7445, true }, + { 7452, true }, + { 7462, true }, + { 7475, true }, + { 7487, true }, + { 7500, true }, + { 7520, true }, + { 7532, true }, + { 7543, true }, + { 7561, true }, + { 7574, true }, + { 7583, true }, + { 7595, true }, + { 7609, true }, { 7622, true }, { 7633, true }, - { 7651, true }, + { 7643, true }, + { 7654, true }, { 7664, true }, - { 7673, true }, - { 7685, true }, - { 7699, true }, - { 7712, true }, - { 7723, true }, - { 7733, true }, - { 7744, true }, - { 7754, true }, - { 7765, true }, - { 7774, true }, - { 7783, true }, - { 7799, true }, - { 7815, true }, - { 7843, true }, - { 7862, true }, + { 7675, true }, + { 7684, true }, + { 7693, true }, + { 7709, true }, + { 7725, true }, + { 7753, true }, + { 7772, true }, + { 7787, true }, + { 7807, true }, + { 7819, true }, + { 7831, true }, + { 7842, true }, + { 7857, true }, { 7877, true }, - { 7897, true }, - { 7909, true }, - { 7921, true }, - { 7932, true }, - { 7947, true }, - { 7967, true }, - { 7985, true }, - { 7995, false }, - { 8006, true }, - { 8016, true }, - { 8033, true }, - { 8044, true }, - { 8053, true }, - { 8064, true }, - { 8083, true }, - { 8094, true }, - { 8112, true }, - { 8138, true }, - { 8160, true }, - { 8174, true }, - { 8189, true }, - { 8203, true }, - { 8217, true }, - { 8232, true }, - { 8253, true }, - { 8263, true }, - { 8274, true }, - { 8295, true }, - { 8313, true }, + { 7895, true }, + { 7905, false }, + { 7916, true }, + { 7926, true }, + { 7943, true }, + { 7954, true }, + { 7963, true }, + { 7974, true }, + { 7993, true }, + { 8004, true }, + { 8022, true }, + { 8048, true }, + { 8070, true }, + { 8084, true }, + { 8099, true }, + { 8113, true }, + { 8127, true }, + { 8142, true }, + { 8163, true }, + { 8173, true }, + { 8184, true }, + { 8205, true }, + { 8223, true }, + { 8236, true }, + { 8244, true }, + { 8257, true }, + { 8271, true }, + { 8289, true }, + { 8311, true }, { 8326, true }, - { 8334, true }, - { 8347, true }, - { 8361, true }, - { 8379, true }, - { 8401, true }, - { 8416, true }, - { 8433, true }, - { 8455, true }, - { 8470, true }, - { 8487, true }, - { 8503, true }, - { 8519, true }, - { 8536, true }, - { 8551, true }, - { 8568, true }, - { 8585, true }, - { 8597, true }, - { 8615, true }, - { 8632, true }, - { 8647, true }, - { 8661, true }, - { 8678, true }, - { 8696, true }, - { 8711, true }, - { 8723, true }, - { 8736, true }, - { 8756, true }, - { 8767, true }, - { 8778, true }, - { 8789, true }, + { 8343, true }, + { 8365, true }, + { 8380, true }, + { 8397, true }, + { 8413, true }, + { 8429, true }, + { 8446, true }, + { 8461, true }, + { 8478, true }, + { 8495, true }, + { 8507, true }, + { 8525, true }, + { 8542, true }, + { 8557, true }, + { 8571, true }, + { 8588, true }, + { 8606, true }, + { 8621, true }, + { 8633, true }, + { 8646, true }, + { 8666, true }, + { 8677, true }, + { 8688, true }, + { 8699, true }, + { 8710, true }, + { 8721, true }, + { 8732, true }, + { 8744, true }, + { 8757, true }, + { 8776, true }, + { 8787, true }, { 8800, true }, - { 8811, true }, - { 8822, true }, - { 8834, true }, - { 8847, true }, - { 8866, true }, - { 8877, true }, - { 8890, true }, - { 8904, false }, - { 8917, false }, - { 8926, true }, - { 8943, true }, - { 8963, true }, - { 8974, true }, - { 8992, true }, - { 9024, true }, - { 9051, true }, - { 9061, true }, - { 9079, true }, - { 9094, true }, - { 9106, true }, - { 9118, true }, - { 9138, true }, + { 8814, false }, + { 8827, false }, + { 8836, true }, + { 8853, true }, + { 8873, true }, + { 8884, true }, + { 8902, true }, + { 8934, true }, + { 8961, true }, + { 8971, true }, + { 8989, true }, + { 9004, true }, + { 9016, true }, + { 9028, true }, + { 9048, true }, + { 9067, true }, + { 9087, true }, + { 9110, true }, + { 9134, true }, + { 9146, true }, { 9157, true }, - { 9177, true }, - { 9200, true }, - { 9224, true }, - { 9236, true }, + { 9169, true }, + { 9181, true }, + { 9197, true }, + { 9214, true }, + { 9233, true }, { 9247, true }, - { 9259, true }, + { 9258, true }, { 9271, true }, - { 9287, true }, - { 9304, true }, + { 9283, false }, + { 9307, true }, { 9323, true }, - { 9337, true }, - { 9348, true }, - { 9359, true }, - { 9372, true }, - { 9384, false }, - { 9408, true }, - { 9424, true }, - { 9440, true }, - { 9452, true }, - { 9468, true }, - { 9485, true }, + { 9339, true }, + { 9351, true }, + { 9367, true }, + { 9384, true }, + { 9398, true }, + { 9409, true }, + { 9427, true }, + { 9443, true }, + { 9457, true }, + { 9472, true }, + { 9482, true }, { 9499, true }, - { 9510, true }, - { 9528, true }, - { 9544, true }, - { 9558, true }, - { 9573, true }, - { 9583, true }, - { 9600, true }, - { 9613, true }, - { 9626, true }, - { 9642, true }, - { 9653, true }, + { 9512, true }, + { 9525, true }, + { 9541, true }, + { 9552, true }, + { 9564, true }, + { 9575, true }, + { 9582, true }, + { 9590, true }, + { 9603, false }, + { 9611, true }, + { 9621, true }, + { 9635, false }, + { 9649, true }, { 9665, true }, - { 9676, true }, - { 9683, true }, - { 9691, true }, - { 9704, true }, - { 9714, true }, - { 9728, false }, - { 9742, true }, - { 9758, true }, - { 9788, true }, - { 9811, true }, - { 9824, true }, - { 9843, true }, - { 9856, false }, - { 9875, true }, - { 9891, false }, - { 9907, true }, - { 9923, false }, - { 9938, false }, - { 9951, true }, - { 9967, true }, - { 9979, true }, - { 9998, true }, - { 10013, true }, - { 10034, true }, - { 10047, true }, - { 10060, true }, - { 10070, true }, - { 10081, true }, - { 10092, true }, - { 10106, true }, - { 10122, true }, - { 10139, false }, + { 9695, true }, + { 9718, true }, + { 9731, true }, + { 9750, true }, + { 9763, false }, + { 9782, true }, + { 9798, false }, + { 9814, true }, + { 9830, false }, + { 9845, false }, + { 9858, true }, + { 9874, true }, + { 9886, true }, + { 9905, true }, + { 9920, true }, + { 9941, true }, + { 9954, true }, + { 9964, true }, + { 9975, true }, + { 9986, true }, + { 10000, true }, + { 10016, true }, + { 10033, false }, + { 10050, true }, + { 10063, true }, + { 10089, true }, + { 10102, true }, + { 10116, true }, + { 10135, true }, { 10156, true }, - { 10169, true }, - { 10195, true }, - { 10208, true }, - { 10222, true }, - { 10241, true }, - { 10262, true }, - { 10274, true }, - { 10288, true }, - { 10312, true }, - { 10325, true }, - { 10338, true }, - { 10352, true }, - { 10363, true }, + { 10168, true }, + { 10182, true }, + { 10206, true }, + { 10219, true }, + { 10232, true }, + { 10246, true }, + { 10257, true }, + { 10266, true }, + { 10279, true }, + { 10292, true }, + { 10304, false }, + { 10322, true }, + { 10345, true }, { 10372, true }, - { 10385, true }, - { 10398, true }, - { 10410, false }, - { 10428, true }, - { 10451, true }, - { 10478, true }, - { 10497, true }, - { 10517, true }, - { 10528, true }, - { 10540, true }, - { 10554, true }, - { 10562, true }, - { 10579, true }, - { 10592, true }, - { 10604, true }, - { 10622, true }, - { 10645, false }, + { 10391, true }, + { 10411, true }, + { 10422, true }, + { 10434, true }, + { 10448, true }, + { 10456, true }, + { 10473, true }, + { 10486, true }, + { 10498, true }, + { 10516, true }, + { 10539, false }, + { 10555, true }, + { 10561, true }, + { 10573, true }, + { 10584, true }, + { 10601, true }, + { 10620, true }, + { 10632, true }, { 10661, true }, - { 10667, true }, - { 10679, true }, + { 10677, true }, { 10690, true }, - { 10707, true }, - { 10726, true }, - { 10738, true }, - { 10767, true }, - { 10783, true }, - { 10796, true }, - { 10810, true }, - { 10826, true }, + { 10704, true }, + { 10720, true }, + { 10733, true }, + { 10744, true }, + { 10753, true }, + { 10765, true }, + { 10781, true }, + { 10795, true }, + { 10811, true }, + { 10825, true }, { 10839, true }, - { 10850, true }, { 10859, true }, { 10871, true }, { 10887, true }, - { 10901, true }, - { 10917, true }, - { 10931, true }, - { 10945, true }, - { 10965, true }, - { 10977, true }, - { 10991, false }, - { 11004, true }, + { 10901, false }, + { 10914, true }, + { 10929, true }, + { 10943, true }, + { 10952, true }, + { 10964, true }, + { 10982, true }, + { 10995, true }, + { 11005, true }, { 11019, true }, - { 11033, true }, - { 11042, true }, - { 11054, true }, - { 11072, true }, - { 11085, true }, - { 11095, true }, - { 11109, true }, + { 11045, true }, + { 11055, true }, + { 11069, true }, + { 11083, true }, + { 11101, true }, + { 11119, false }, { 11135, true }, { 11145, true }, - { 11159, true }, - { 11173, true }, + { 11156, true }, + { 11172, true }, + { 11180, true }, { 11191, true }, - { 11209, false }, - { 11225, true }, + { 11201, true }, + { 11216, true }, { 11235, true }, - { 11246, true }, - { 11262, true }, - { 11270, true }, - { 11281, true }, - { 11291, true }, - { 11306, true }, - { 11325, true }, - { 11338, true }, - { 11353, true }, - { 11371, false }, + { 11248, true }, + { 11263, true }, + { 11281, false }, + { 11296, true }, + { 11316, true }, + { 11327, true }, + { 11339, true }, + { 11352, true }, + { 11372, false }, { 11386, true }, - { 11406, true }, + { 11399, true }, { 11417, true }, - { 11429, true }, - { 11442, true }, - { 11462, false }, - { 11476, true }, - { 11489, true }, + { 11431, true }, + { 11444, true }, + { 11456, true }, + { 11470, true }, + { 11484, true }, + { 11496, true }, { 11507, true }, - { 11521, true }, - { 11534, true }, + { 11518, true }, + { 11531, true }, { 11546, true }, - { 11560, true }, - { 11574, true }, - { 11586, true }, - { 11597, true }, - { 11608, true }, - { 11621, true }, - { 11636, true }, - { 11647, true }, - { 11658, true }, - { 11673, true }, - { 11684, true }, - { 11694, true }, - { 11715, true }, - { 11724, true }, - { 11731, true }, - { 11745, false }, + { 11557, true }, + { 11568, true }, + { 11583, true }, + { 11594, true }, + { 11604, true }, + { 11625, true }, + { 11634, true }, + { 11641, true }, + { 11655, false }, + { 11668, true }, + { 11678, true }, + { 11691, true }, + { 11704, true }, + { 11716, true }, + { 11730, true }, + { 11740, true }, { 11758, true }, { 11768, true }, - { 11781, true }, + { 11780, true }, { 11794, true }, - { 11806, true }, + { 11804, true }, { 11820, true }, - { 11830, true }, + { 11831, true }, { 11848, true }, - { 11858, true }, { 11870, true }, - { 11884, true }, - { 11894, true }, - { 11910, true }, - { 11921, true }, - { 11938, true }, + { 11896, true }, + { 11911, true }, + { 11929, true }, + { 11940, true }, + { 11950, true }, { 11960, true }, - { 11986, true }, - { 12001, true }, - { 12019, true }, - { 12030, true }, - { 12040, true }, - { 12050, true }, - { 12069, true }, - { 12089, true }, - { 12101, true }, - { 12115, true }, - { 12122, true }, - { 12132, true }, - { 12150, true }, - { 12172, true }, - { 12184, true }, - { 12196, true }, - { 12209, true }, - { 12217, true }, - { 12229, false }, - { 12249, true }, - { 12256, true }, - { 12272, true }, - { 12288, true }, - { 12303, true }, - { 12313, true }, - { 12331, true }, - { 12358, true }, - { 12375, true }, - { 12393, true }, - { 12401, true }, - { 12415, true }, - { 12426, true }, - { 12435, true }, - { 12462, true }, - { 12472, true }, + { 11979, true }, + { 11999, true }, + { 12011, true }, + { 12025, true }, + { 12032, true }, + { 12042, true }, + { 12060, true }, + { 12082, true }, + { 12094, true }, + { 12106, true }, + { 12119, true }, + { 12128, true }, + { 12136, true }, + { 12148, false }, + { 12168, true }, + { 12175, true }, + { 12191, true }, + { 12207, true }, + { 12222, true }, + { 12232, true }, + { 12250, true }, + { 12277, true }, + { 12294, true }, + { 12312, true }, + { 12320, true }, + { 12334, true }, + { 12345, true }, + { 12354, true }, + { 12381, true }, + { 12391, true }, + { 12407, true }, + { 12419, true }, + { 12434, true }, + { 12446, true }, + { 12461, true }, + { 12476, true }, { 12488, true }, - { 12500, true }, - { 12515, true }, - { 12527, true }, - { 12542, true }, - { 12557, true }, - { 12569, true }, - { 12590, true }, - { 12607, true }, - { 12621, true }, - { 12633, true }, - { 12643, true }, - { 12653, true }, - { 12668, true }, - { 12683, true }, - { 12696, true }, - { 12708, true }, - { 12716, true }, - { 12729, true }, - { 12747, true }, - { 12768, true }, - { 12782, true }, - { 12798, true }, - { 12808, true }, - { 12821, true }, - { 12840, true }, - { 12866, true }, - { 12878, true }, - { 12894, true }, - { 12906, true }, - { 12925, true }, - { 12938, true }, - { 12949, true }, - { 12960, true }, - { 12978, true }, + { 12509, true }, + { 12526, true }, + { 12540, true }, + { 12552, true }, + { 12562, true }, + { 12572, true }, + { 12587, true }, + { 12602, true }, + { 12615, true }, + { 12627, true }, + { 12635, true }, + { 12648, true }, + { 12666, true }, + { 12687, true }, + { 12701, true }, + { 12717, true }, + { 12727, true }, + { 12740, true }, + { 12759, true }, + { 12785, true }, + { 12797, true }, + { 12813, true }, + { 12825, true }, + { 12844, true }, + { 12857, true }, + { 12868, true }, + { 12879, true }, + { 12897, true }, + { 12927, true }, + { 12950, true }, + { 12963, false }, + { 12971, true }, + { 12983, true }, + { 12993, true }, { 13008, true }, - { 13031, true }, - { 13044, false }, - { 13052, true }, - { 13064, true }, - { 13074, true }, - { 13089, true }, - { 13107, true }, - { 13117, true }, - { 13146, true }, - { 13162, true }, - { 13178, true }, - { 13199, true }, + { 13026, true }, + { 13036, true }, + { 13065, true }, + { 13081, true }, + { 13097, true }, + { 13118, true }, + { 13129, true }, + { 13141, true }, + { 13153, true }, + { 13171, true }, + { 13189, true }, { 13210, true }, - { 13222, true }, - { 13234, true }, - { 13252, true }, - { 13270, true }, - { 13291, true }, - { 13316, true }, - { 13330, true }, - { 13343, true }, - { 13358, true }, - { 13371, true }, - { 13384, true }, + { 13235, true }, + { 13249, true }, + { 13262, true }, + { 13277, true }, + { 13290, true }, + { 13303, true }, + { 13314, true }, + { 13340, true }, + { 13356, true }, + { 13366, true }, + { 13378, true }, { 13395, true }, - { 13421, true }, - { 13437, true }, - { 13447, true }, - { 13459, true }, - { 13476, true }, - { 13488, true }, + { 13407, true }, + { 13420, true }, + { 13428, true }, + { 13439, true }, + { 13450, true }, + { 13468, true }, + { 13483, true }, { 13501, true }, - { 13509, true }, - { 13520, true }, - { 13531, true }, - { 13549, true }, + { 13510, true }, + { 13521, true }, + { 13535, true }, + { 13546, true }, + { 13554, true }, { 13564, true }, + { 13572, true }, { 13582, true }, - { 13591, true }, - { 13602, true }, - { 13616, true }, - { 13627, true }, - { 13635, true }, - { 13645, true }, - { 13656, true }, - { 13664, true }, - { 13674, true }, - { 13689, true }, - { 13709, true }, - { 13717, true }, - { 13742, true }, - { 13758, true }, - { 13765, true }, - { 13773, true }, - { 13782, false }, - { 13791, true }, - { 13807, true }, - { 13820, true }, - { 13829, true }, - { 13838, true }, - { 13853, true }, - { 13863, true }, - { 13875, true }, - { 13893, false }, - { 13909, true }, - { 13919, true }, - { 13929, true }, + { 13597, true }, + { 13617, true }, + { 13625, true }, + { 13650, true }, + { 13666, true }, + { 13673, true }, + { 13681, true }, + { 13690, false }, + { 13699, true }, + { 13715, true }, + { 13728, true }, + { 13737, true }, + { 13746, true }, + { 13761, true }, + { 13771, true }, + { 13783, true }, + { 13801, false }, + { 13817, true }, + { 13827, true }, + { 13837, true }, + { 13847, true }, + { 13859, true }, + { 13872, true }, + { 13885, true }, + { 13895, true }, + { 13905, true }, + { 13915, true }, + { 13927, true }, { 13939, true }, - { 13951, true }, - { 13964, true }, - { 13977, true }, - { 13987, true }, - { 13997, true }, + { 13955, true }, + { 13966, false }, + { 13976, true }, + { 13984, true }, + { 13993, true }, { 14007, true }, - { 14019, true }, + { 14022, false }, { 14031, true }, - { 14047, true }, - { 14058, false }, - { 14068, true }, - { 14076, true }, - { 14085, true }, - { 14099, true }, - { 14114, false }, - { 14123, true }, - { 14137, true }, - { 14151, true }, - { 14162, true }, - { 14175, true }, + { 14045, true }, + { 14059, true }, + { 14070, true }, + { 14083, true }, + { 14107, true }, + { 14120, true }, + { 14132, true }, + { 14143, true }, + { 14163, true }, + { 14181, true }, { 14199, true }, - { 14212, true }, - { 14224, true }, - { 14241, true }, - { 14252, true }, - { 14272, true }, - { 14290, true }, - { 14308, true }, - { 14323, true }, - { 14344, true }, - { 14368, true }, - { 14378, true }, - { 14388, true }, - { 14398, true }, - { 14409, true }, - { 14434, true }, - { 14463, true }, - { 14476, true }, - { 14488, true }, - { 14498, true }, - { 14506, true }, - { 14515, true }, - { 14529, false }, - { 14546, true }, - { 14558, true }, - { 14573, true }, - { 14580, true }, - { 14593, true }, - { 14605, true }, - { 14613, true }, - { 14628, true }, - { 14637, true }, - { 14650, true }, - { 14662, true }, - { 14673, true }, - { 14683, true }, - { 14698, true }, - { 14715, true }, + { 14214, true }, + { 14235, true }, + { 14259, true }, + { 14269, true }, + { 14279, true }, + { 14289, true }, + { 14300, true }, + { 14325, true }, + { 14354, true }, + { 14367, true }, + { 14379, true }, + { 14389, true }, + { 14397, true }, + { 14406, true }, + { 14420, false }, + { 14437, true }, + { 14449, true }, + { 14464, true }, + { 14471, true }, + { 14484, true }, + { 14496, true }, + { 14504, true }, + { 14519, true }, + { 14528, true }, + { 14541, true }, + { 14553, true }, + { 14564, true }, + { 14574, true }, + { 14589, true }, + { 14606, true }, + { 14619, true }, + { 14629, true }, + { 14642, true }, + { 14656, true }, + { 14670, true }, + { 14682, true }, + { 14697, true }, + { 14713, true }, { 14728, true }, - { 14738, true }, - { 14751, true }, - { 14765, true }, - { 14779, true }, - { 14791, true }, - { 14806, true }, - { 14822, true }, - { 14837, true }, - { 14851, true }, - { 14864, true }, - { 14880, true }, - { 14892, true }, - { 14906, true }, - { 14918, true }, - { 14930, true }, - { 14941, true }, - { 14952, true }, - { 14967, false }, - { 14982, false }, - { 14998, true }, - { 15016, true }, - { 15033, true }, - { 15051, true }, - { 15062, true }, - { 15075, true }, - { 15092, true }, - { 15108, true }, - { 15128, true }, - { 15143, true }, - { 15154, true }, - { 15166, true }, - { 15179, true }, - { 15193, true }, - { 15206, true }, - { 15224, true }, - { 15242, true }, - { 15260, true }, - { 15277, true }, - { 15287, true }, - { 15300, true }, - { 15309, true }, - { 15320, false }, - { 15330, true }, - { 15341, true }, - { 15355, true }, - { 15368, true }, - { 15378, true }, - { 15391, true }, - { 15405, true }, - { 15416, true }, - { 15426, true }, - { 15444, true }, - { 15453, true }, - { 15470, true }, - { 15490, true }, - { 15509, true }, - { 15524, true }, - { 15542, true }, - { 15555, true }, - { 15566, true }, + { 14742, true }, + { 14755, true }, + { 14771, true }, + { 14783, true }, + { 14797, true }, + { 14809, true }, + { 14821, true }, + { 14832, true }, + { 14843, true }, + { 14858, false }, + { 14873, false }, + { 14889, true }, + { 14907, true }, + { 14924, true }, + { 14942, true }, + { 14953, true }, + { 14966, true }, + { 14983, true }, + { 14999, true }, + { 15019, true }, + { 15034, true }, + { 15045, true }, + { 15057, true }, + { 15070, true }, + { 15084, true }, + { 15097, true }, + { 15115, true }, + { 15133, true }, + { 15151, true }, + { 15168, true }, + { 15178, true }, + { 15191, true }, + { 15200, true }, + { 15211, false }, + { 15221, true }, + { 15232, true }, + { 15246, true }, + { 15259, true }, + { 15269, true }, + { 15282, true }, + { 15296, true }, + { 15307, true }, + { 15317, true }, + { 15335, true }, + { 15344, true }, + { 15361, true }, + { 15381, true }, + { 15400, true }, + { 15415, true }, + { 15433, true }, + { 15446, true }, + { 15457, true }, + { 15471, true }, + { 15479, true }, + { 15489, true }, + { 15500, true }, + { 15511, true }, + { 15538, true }, + { 15550, true }, + { 15562, true }, + { 15571, true }, { 15580, true }, - { 15588, true }, - { 15598, true }, - { 15609, true }, - { 15620, true }, - { 15647, true }, - { 15659, true }, - { 15671, true }, - { 15680, true }, - { 15689, true }, - { 15698, true }, - { 15713, true }, - { 15722, true }, - { 15734, true }, - { 15743, true }, - { 15753, true }, - { 15764, true }, - { 15774, true }, - { 15786, true }, - { 15800, true }, - { 15810, true }, - { 15820, true }, - { 15830, false }, - { 15841, true }, - { 15859, true }, - { 15869, true }, - { 15888, true }, - { 15900, true }, - { 15915, true }, - { 15936, true }, - { 15949, true }, - { 15962, true }, - { 15976, true }, - { 15989, false }, + { 15589, true }, + { 15604, true }, + { 15613, true }, + { 15625, true }, + { 15634, true }, + { 15644, true }, + { 15655, true }, + { 15665, true }, + { 15677, true }, + { 15691, true }, + { 15701, true }, + { 15711, true }, + { 15721, false }, + { 15732, true }, + { 15750, true }, + { 15760, true }, + { 15779, true }, + { 15791, true }, + { 15806, true }, + { 15827, true }, + { 15840, true }, + { 15853, true }, + { 15867, true }, + { 15880, false }, + { 15894, true }, + { 15906, true }, + { 15920, true }, + { 15938, true }, + { 15951, false }, + { 15960, true }, + { 15978, true }, + { 15989, true }, { 16003, true }, - { 16015, true }, - { 16029, true }, - { 16047, true }, - { 16060, false }, + { 16016, true }, + { 16030, true }, + { 16043, true }, + { 16057, true }, { 16069, true }, - { 16087, true }, - { 16098, true }, - { 16112, true }, - { 16125, true }, - { 16139, true }, - { 16152, true }, - { 16166, true }, + { 16085, false }, + { 16096, true }, + { 16111, true }, + { 16124, true }, + { 16137, true }, + { 16153, true }, + { 16165, true }, { 16178, true }, - { 16194, false }, - { 16205, true }, - { 16220, true }, - { 16233, true }, - { 16246, true }, - { 16262, true }, - { 16274, true }, - { 16287, true }, + { 16190, true }, + { 16206, true }, + { 16219, true }, + { 16229, true }, + { 16257, true }, + { 16272, true }, + { 16288, true }, { 16299, true }, - { 16315, true }, - { 16328, true }, - { 16338, true }, - { 16366, true }, - { 16381, true }, - { 16397, true }, - { 16408, true }, - { 16419, true }, - { 16429, true }, - { 16439, false }, - { 16453, true }, - { 16465, false }, - { 16484, true }, - { 16511, true }, - { 16532, true }, + { 16310, true }, + { 16320, true }, + { 16330, false }, + { 16344, true }, + { 16356, false }, + { 16375, true }, + { 16402, true }, + { 16423, true }, + { 16439, true }, + { 16450, true }, + { 16468, true }, + { 16483, true }, + { 16494, true }, + { 16509, false }, + { 16524, true }, + { 16534, true }, { 16548, true }, - { 16559, true }, - { 16577, true }, - { 16592, true }, - { 16603, true }, - { 16618, false }, - { 16633, true }, + { 16570, true }, + { 16585, true }, + { 16606, true }, + { 16616, true }, + { 16630, true }, { 16643, true }, - { 16657, true }, + { 16658, true }, { 16679, true }, - { 16694, true }, - { 16715, true }, - { 16725, true }, - { 16739, true }, - { 16752, true }, - { 16767, true }, - { 16788, true }, - { 16800, true }, + { 16691, true }, + { 16709, true }, + { 16727, true }, + { 16741, true }, + { 16760, false }, + { 16774, true }, + { 16784, true }, + { 16795, true }, + { 16805, true }, { 16818, true }, - { 16836, true }, - { 16850, true }, - { 16869, false }, - { 16883, true }, - { 16893, true }, - { 16904, true }, - { 16914, true }, - { 16927, true }, - { 16942, true }, - { 16956, true }, - { 16969, true }, - { 16982, true }, - { 16999, true }, - { 17015, true }, - { 17028, true }, + { 16833, true }, + { 16847, true }, + { 16860, true }, + { 16873, true }, + { 16890, true }, + { 16906, true }, + { 16919, true }, + { 16936, true }, + { 16950, true }, + { 16962, true }, + { 16980, true }, + { 16993, true }, + { 17013, true }, + { 17029, true }, { 17045, true }, - { 17059, true }, + { 17054, true }, + { 17062, true }, { 17071, true }, - { 17089, true }, - { 17102, true }, - { 17122, true }, - { 17138, true }, - { 17154, true }, - { 17163, true }, - { 17171, true }, - { 17180, true }, - { 17189, true }, - { 17206, true }, - { 17219, true }, - { 17229, true }, - { 17239, true }, - { 17249, true }, - { 17267, true }, - { 17286, true }, - { 17310, true }, - { 17324, true }, - { 17339, true }, - { 17357, true }, - { 17373, true }, - { 17385, true }, - { 17408, true }, - { 17430, true }, - { 17456, true }, - { 17474, true }, - { 17496, true }, - { 17510, true }, - { 17523, true }, - { 17535, true }, - { 17547, false }, - { 17563, true }, - { 17577, true }, - { 17592, true }, - { 17604, true }, - { 17626, true }, - { 17643, true }, - { 17658, true }, - { 17679, true }, - { 17693, true }, - { 17712, true }, - { 17729, true }, - { 17743, true }, - { 17764, true }, - { 17777, true }, - { 17793, true }, - { 17806, true }, - { 17825, true }, - { 17842, true }, - { 17860, true }, - { 17878, true }, - { 17887, true }, - { 17903, true }, - { 17919, true }, - { 17938, true }, - { 17956, true }, - { 17972, true }, - { 17986, true }, - { 17998, true }, - { 18009, true }, - { 18023, true }, - { 18033, true }, - { 18044, true }, - { 18053, false }, - { 18062, true }, - { 18076, true }, - { 18090, true }, - { 18102, true }, + { 17080, true }, + { 17097, true }, + { 17110, true }, + { 17120, true }, + { 17130, true }, + { 17140, true }, + { 17158, true }, + { 17177, true }, + { 17201, true }, + { 17215, true }, + { 17230, true }, + { 17248, true }, + { 17264, true }, + { 17276, true }, + { 17299, true }, + { 17321, true }, + { 17347, true }, + { 17365, true }, + { 17387, true }, + { 17401, true }, + { 17414, true }, + { 17426, true }, + { 17438, false }, + { 17454, true }, + { 17468, true }, + { 17483, true }, + { 17495, true }, + { 17517, true }, + { 17534, true }, + { 17549, true }, + { 17570, true }, + { 17584, true }, + { 17603, true }, + { 17620, true }, + { 17634, true }, + { 17655, true }, + { 17668, true }, + { 17684, true }, + { 17697, true }, + { 17716, true }, + { 17733, true }, + { 17751, true }, + { 17769, true }, + { 17778, true }, + { 17794, true }, + { 17810, true }, + { 17829, true }, + { 17847, true }, + { 17863, true }, + { 17877, true }, + { 17889, true }, + { 17900, true }, + { 17914, true }, + { 17924, true }, + { 17935, true }, + { 17944, false }, + { 17953, true }, + { 17967, true }, + { 17981, true }, + { 17993, true }, + { 18008, true }, + { 18018, true }, + { 18031, true }, + { 18042, true }, + { 18065, true }, + { 18077, true }, + { 18092, true }, + { 18108, true }, { 18117, true }, - { 18127, true }, - { 18140, true }, - { 18151, true }, - { 18174, true }, - { 18186, true }, - { 18201, true }, - { 18217, true }, - { 18226, true }, - { 18241, true }, - { 18257, true }, - { 18272, true }, - { 18285, true }, - { 18298, true }, - { 18317, true }, - { 18327, true }, - { 18337, true }, - { 18349, true }, - { 18364, true }, - { 18379, true }, - { 18389, true }, - { 18404, true }, - { 18420, true }, - { 18439, true }, - { 18448, true }, - { 18461, true }, - { 18481, true }, - { 18496, false }, - { 18511, true }, - { 18526, true }, - { 18541, true }, - { 18551, true }, - { 18561, true }, - { 18576, true }, - { 18598, true }, - { 18613, true }, - { 18626, true }, - { 18653, true }, - { 18667, true }, - { 18679, true }, - { 18694, true }, - { 18708, true }, - { 18718, true }, - { 18739, true }, - { 18756, true }, - { 18778, true }, - { 18796, false }, - { 18815, true }, - { 18829, true }, - { 18841, true }, - { 18858, true }, + { 18132, true }, + { 18148, true }, + { 18163, true }, + { 18176, true }, + { 18189, true }, + { 18208, true }, + { 18218, true }, + { 18228, true }, + { 18240, true }, + { 18255, true }, + { 18270, true }, + { 18280, true }, + { 18295, true }, + { 18311, true }, + { 18330, true }, + { 18339, true }, + { 18352, true }, + { 18372, true }, + { 18387, true }, + { 18402, true }, + { 18417, true }, + { 18432, true }, + { 18442, true }, + { 18452, true }, + { 18467, true }, + { 18489, true }, + { 18504, true }, + { 18517, true }, + { 18544, true }, + { 18558, true }, + { 18570, true }, + { 18585, true }, + { 18599, true }, + { 18609, true }, + { 18630, true }, + { 18647, true }, + { 18669, true }, + { 18687, false }, + { 18706, true }, + { 18720, true }, + { 18732, true }, + { 18749, true }, + { 18764, true }, + { 18775, true }, + { 18791, true }, + { 18809, true }, + { 18821, true }, + { 18833, true }, + { 18847, false }, + { 18860, true }, { 18873, true }, - { 18884, true }, - { 18900, true }, - { 18918, true }, - { 18930, true }, - { 18942, true }, - { 18956, false }, - { 18969, true }, - { 18982, true }, - { 18994, true }, - { 19017, true }, + { 18885, true }, + { 18908, true }, + { 18921, true }, + { 18929, false }, + { 18940, true }, + { 18958, true }, + { 18970, true }, + { 18991, true }, + { 19002, true }, + { 19019, true }, { 19030, true }, - { 19038, false }, - { 19049, true }, - { 19067, true }, - { 19079, true }, - { 19100, true }, - { 19114, true }, - { 19131, true }, + { 19039, true }, + { 19051, true }, + { 19062, true }, + { 19072, false }, + { 19086, true }, + { 19104, true }, + { 19117, true }, + { 19128, true }, { 19142, true }, - { 19151, true }, - { 19163, true }, - { 19174, true }, - { 19184, false }, - { 19198, true }, - { 19216, true }, - { 19229, true }, - { 19240, true }, - { 19254, true }, - { 19266, true }, - { 19277, true }, - { 19288, true }, - { 19301, true }, - { 19313, true }, - { 19324, true }, - { 19343, true }, - { 19359, true }, - { 19373, true }, - { 19392, true }, - { 19404, true }, - { 19422, true }, - { 19437, true }, - { 19446, true }, - { 19461, true }, - { 19475, true }, - { 19488, true }, - { 19500, true }, - { 19512, true }, - { 19526, true }, - { 19537, true }, - { 19551, true }, - { 19562, true }, - { 19573, true }, - { 19583, true }, - { 19593, true }, - { 19604, true }, - { 19615, true }, - { 19626, true }, + { 19154, true }, + { 19165, true }, + { 19176, true }, + { 19189, true }, + { 19201, true }, + { 19212, true }, + { 19231, true }, + { 19247, true }, + { 19261, true }, + { 19280, true }, + { 19292, true }, + { 19307, true }, + { 19316, true }, + { 19331, true }, + { 19345, true }, + { 19358, true }, + { 19370, true }, + { 19382, true }, + { 19396, true }, + { 19407, true }, + { 19421, true }, + { 19432, true }, + { 19443, true }, + { 19453, true }, + { 19463, true }, + { 19474, true }, + { 19485, true }, + { 19496, true }, + { 19509, true }, + { 19523, true }, + { 19535, true }, + { 19549, true }, + { 19561, true }, + { 19574, true }, + { 19599, true }, + { 19611, true }, + { 19628, true }, { 19639, true }, - { 19653, true }, - { 19665, true }, - { 19679, true }, - { 19691, true }, - { 19704, true }, + { 19650, true }, + { 19661, true }, + { 19680, true }, + { 19696, true }, + { 19706, true }, + { 19717, true }, { 19729, true }, - { 19741, true }, - { 19758, true }, - { 19769, true }, - { 19780, true }, - { 19791, true }, - { 19810, true }, - { 19826, true }, - { 19836, true }, - { 19847, true }, - { 19859, true }, - { 19874, true }, - { 19893, true }, - { 19910, false }, - { 19918, true }, - { 19934, true }, - { 19948, true }, - { 19965, true }, + { 19744, true }, + { 19763, true }, + { 19780, false }, + { 19788, true }, + { 19804, true }, + { 19818, true }, + { 19835, true }, + { 19852, true }, + { 19865, true }, + { 19878, true }, + { 19891, true }, + { 19904, true }, + { 19917, true }, + { 19930, true }, + { 19943, true }, + { 19956, true }, + { 19969, true }, { 19982, true }, { 19995, true }, { 20008, true }, { 20021, true }, { 20034, true }, - { 20047, true }, - { 20060, true }, - { 20073, true }, - { 20086, true }, - { 20099, true }, + { 20051, true }, + { 20066, true }, + { 20078, true }, + { 20100, true }, { 20112, true }, - { 20125, true }, - { 20138, true }, - { 20151, true }, - { 20164, true }, - { 20181, true }, + { 20135, true }, + { 20159, true }, + { 20177, true }, { 20196, true }, - { 20208, true }, - { 20230, true }, - { 20242, true }, - { 20265, true }, - { 20289, true }, - { 20307, true }, - { 20326, true }, - { 20339, true }, - { 20354, true }, - { 20370, true }, - { 20380, true }, - { 20397, true }, - { 20412, true }, - { 20431, true }, - { 20448, true }, - { 20459, true }, - { 20475, true }, - { 20487, true }, - { 20497, true }, - { 20507, true }, - { 20528, true }, - { 20550, true }, - { 20562, true }, - { 20573, true }, - { 20588, true }, - { 20599, true }, - { 20614, true }, - { 20629, true }, - { 20641, true }, - { 20660, true }, - { 20673, true }, - { 20687, true }, - { 20709, true }, - { 20728, true }, + { 20209, true }, + { 20224, true }, + { 20240, true }, + { 20250, true }, + { 20267, true }, + { 20282, true }, + { 20301, true }, + { 20318, true }, + { 20329, true }, + { 20345, true }, + { 20357, true }, + { 20367, true }, + { 20377, true }, + { 20398, true }, + { 20420, true }, + { 20432, true }, + { 20443, true }, + { 20458, true }, + { 20469, true }, + { 20484, true }, + { 20499, true }, + { 20511, true }, + { 20530, true }, + { 20543, true }, + { 20557, true }, + { 20579, true }, + { 20598, true }, + { 20618, true }, + { 20626, true }, + { 20639, true }, + { 20653, true }, + { 20667, true }, + { 20678, true }, + { 20691, true }, + { 20707, true }, + { 20722, true }, + { 20736, true }, { 20748, true }, - { 20756, true }, - { 20769, true }, - { 20783, true }, - { 20797, true }, - { 20808, true }, - { 20821, true }, - { 20837, true }, - { 20852, true }, - { 20866, true }, - { 20878, true }, - { 20895, false }, - { 20911, false }, - { 20931, true }, - { 20944, true }, - { 20960, true }, - { 20985, true }, - { 20998, true }, - { 21011, true }, - { 21022, true }, - { 21038, true }, - { 21052, true }, - { 21068, true }, - { 21079, true }, - { 21092, true }, - { 21107, true }, - { 21121, true }, - { 21133, true }, - { 21153, true }, - { 21165, true }, - { 21178, true }, - { 21191, true }, - { 21212, true }, - { 21232, true }, - { 21246, true }, - { 21261, true }, + { 20765, false }, + { 20781, false }, + { 20801, true }, + { 20814, true }, + { 20830, true }, + { 20855, true }, + { 20868, true }, + { 20881, true }, + { 20892, true }, + { 20908, true }, + { 20922, true }, + { 20938, true }, + { 20949, true }, + { 20962, true }, + { 20977, true }, + { 20991, true }, + { 21003, true }, + { 21023, true }, + { 21035, true }, + { 21048, true }, + { 21061, true }, + { 21082, true }, + { 21102, true }, + { 21116, true }, + { 21131, true }, + { 21146, true }, + { 21155, true }, + { 21166, true }, + { 21176, true }, + { 21186, true }, + { 21204, true }, + { 21229, true }, + { 21251, true }, + { 21263, true }, { 21276, true }, - { 21285, true }, - { 21296, true }, - { 21306, true }, + { 21289, true }, + { 21297, true }, { 21316, true }, - { 21334, true }, - { 21359, true }, - { 21381, true }, - { 21393, true }, - { 21406, true }, - { 21419, true }, - { 21427, true }, - { 21446, true }, - { 21456, true }, - { 21469, true }, - { 21484, true }, - { 21501, true }, - { 21517, true }, - { 21529, true }, - { 21540, true }, - { 21554, true }, - { 21578, true }, - { 21593, true }, - { 21608, true }, - { 21630, true }, - { 21641, true }, - { 21654, true }, - { 21674, true }, - { 21685, true }, - { 21693, false }, - { 21705, true }, - { 21722, true }, - { 21741, true }, - { 21755, true }, - { 21770, true }, - { 21785, true }, - { 21795, false }, - { 21804, true }, - { 21818, true }, - { 21830, true }, - { 21845, true }, - { 21857, true }, - { 21875, true }, - { 21895, true }, - { 21911, true }, - { 21923, true }, - { 21940, true }, - { 21952, true }, - { 21966, true }, - { 21986, true }, - { 21998, true }, - { 22015, true }, - { 22024, true }, - { 22036, true }, - { 22058, false }, - { 22072, true }, + { 21326, true }, + { 21339, true }, + { 21354, true }, + { 21371, true }, + { 21387, true }, + { 21399, true }, + { 21411, true }, + { 21422, true }, + { 21436, true }, + { 21460, true }, + { 21475, true }, + { 21490, true }, + { 21512, true }, + { 21523, true }, + { 21536, true }, + { 21556, true }, + { 21567, true }, + { 21575, false }, + { 21587, true }, + { 21604, true }, + { 21623, true }, + { 21637, true }, + { 21652, true }, + { 21667, true }, + { 21677, false }, + { 21686, true }, + { 21700, true }, + { 21712, true }, + { 21727, true }, + { 21739, true }, + { 21757, true }, + { 21777, true }, + { 21793, true }, + { 21805, true }, + { 21822, true }, + { 21834, true }, + { 21848, true }, + { 21868, true }, + { 21880, true }, + { 21897, true }, + { 21906, true }, + { 21918, true }, + { 21940, false }, + { 21954, true }, + { 21970, true }, + { 21987, true }, + { 21999, true }, + { 22017, false }, + { 22039, false }, + { 22064, false }, { 22088, true }, - { 22105, true }, - { 22117, true }, - { 22135, false }, - { 22157, false }, - { 22182, false }, - { 22206, true }, - { 22218, true }, - { 22228, true }, - { 22241, true }, - { 22251, true }, - { 22261, true }, - { 22271, true }, - { 22281, true }, - { 22291, true }, - { 22301, true }, - { 22311, true }, - { 22325, true }, - { 22343, true }, - { 22358, true }, - { 22372, true }, - { 22384, true }, - { 22396, true }, + { 22100, true }, + { 22110, true }, + { 22123, true }, + { 22133, true }, + { 22143, true }, + { 22153, true }, + { 22163, true }, + { 22173, true }, + { 22183, true }, + { 22193, true }, + { 22207, true }, + { 22225, true }, + { 22240, true }, + { 22254, true }, + { 22266, true }, + { 22278, true }, + { 22289, true }, + { 22303, true }, + { 22318, true }, + { 22332, true }, + { 22339, true }, + { 22353, false }, + { 22373, true }, + { 22392, true }, { 22407, true }, - { 22421, true }, - { 22436, true }, - { 22450, true }, - { 22457, true }, - { 22471, false }, - { 22491, true }, - { 22510, true }, - { 22525, true }, - { 22537, true }, - { 22548, true }, - { 22559, true }, - { 22571, true }, - { 22584, false }, - { 22597, true }, - { 22613, true }, - { 22626, true }, - { 22638, true }, - { 22653, true }, - { 22663, true }, + { 22419, true }, + { 22430, true }, + { 22441, true }, + { 22453, true }, + { 22466, false }, + { 22479, true }, + { 22495, true }, + { 22508, true }, + { 22520, true }, + { 22535, true }, + { 22545, true }, + { 22570, true }, + { 22587, true }, + { 22607, true }, + { 22619, true }, + { 22635, true }, + { 22663, false }, + { 22675, true }, { 22688, true }, - { 22705, true }, + { 22697, true }, + { 22707, true }, + { 22716, true }, { 22725, true }, - { 22737, true }, - { 22753, true }, - { 22781, false }, - { 22793, true }, - { 22806, true }, + { 22732, true }, + { 22747, true }, + { 22758, false }, + { 22774, true }, + { 22791, true }, + { 22805, true }, { 22815, true }, - { 22825, true }, - { 22834, true }, - { 22843, true }, - { 22850, true }, - { 22865, true }, - { 22876, false }, - { 22892, true }, + { 22835, true }, + { 22855, true }, + { 22866, true }, + { 22881, true }, + { 22894, true }, { 22909, true }, - { 22923, true }, - { 22933, true }, - { 22953, true }, - { 22973, true }, - { 22984, true }, - { 22999, true }, - { 23012, true }, - { 23027, true }, - { 23044, true }, - { 23052, true }, - { 23066, true }, - { 23078, true }, - { 23095, false }, - { 23116, false }, - { 23138, false }, - { 23157, false }, - { 23175, true }, - { 23191, true }, - { 23215, true }, - { 23243, true }, - { 23254, true }, - { 23269, true }, - { 23288, true }, - { 23311, true }, - { 23335, true }, - { 23352, true }, - { 23366, true }, - { 23377, true }, - { 23395, true }, - { 23410, true }, - { 23423, true }, - { 23436, true }, - { 23451, true }, - { 23466, true }, - { 23481, true }, - { 23493, true }, - { 23508, true }, - { 23527, true }, - { 23545, true }, - { 23553, true }, - { 23561, true }, - { 23573, true }, - { 23585, true }, - { 23603, true }, - { 23618, true }, - { 23633, true }, - { 23648, true }, - { 23664, true }, - { 23681, true }, - { 23690, true }, - { 23703, true }, + { 22926, true }, + { 22934, true }, + { 22948, true }, + { 22960, true }, + { 22977, false }, + { 22998, false }, + { 23020, false }, + { 23039, false }, + { 23057, true }, + { 23073, true }, + { 23097, true }, + { 23125, true }, + { 23136, true }, + { 23151, true }, + { 23170, true }, + { 23193, true }, + { 23217, true }, + { 23234, true }, + { 23248, true }, + { 23259, true }, + { 23277, true }, + { 23292, true }, + { 23305, true }, + { 23318, true }, + { 23333, true }, + { 23348, true }, + { 23363, true }, + { 23375, true }, + { 23390, true }, + { 23409, true }, + { 23427, true }, + { 23435, true }, + { 23443, true }, + { 23455, true }, + { 23467, true }, + { 23485, true }, + { 23500, true }, + { 23515, true }, + { 23531, true }, + { 23548, true }, + { 23557, true }, + { 23570, true }, + { 23580, true }, + { 23593, false }, + { 23607, true }, + { 23623, false }, + { 23630, true }, + { 23640, true }, + { 23654, true }, + { 23669, true }, + { 23677, true }, + { 23685, true }, + { 23695, true }, { 23713, true }, - { 23726, false }, - { 23740, true }, - { 23756, false }, - { 23763, true }, - { 23773, true }, - { 23787, true }, - { 23802, true }, - { 23810, true }, - { 23818, true }, - { 23828, true }, - { 23846, true }, - { 23859, true }, - { 23872, true }, - { 23886, true }, - { 23895, true }, - { 23910, true }, - { 23939, true }, - { 23956, true }, - { 23974, true }, - { 23984, true }, - { 23998, true }, - { 24009, true }, - { 24026, true }, - { 24040, true }, - { 24062, true }, - { 24087, true }, - { 24100, true }, - { 24113, true }, - { 24130, true }, - { 24148, true }, - { 24163, true }, - { 24173, true }, - { 24194, true }, - { 24204, false }, - { 24223, true }, - { 24235, true }, - { 24264, true }, - { 24285, true }, - { 24299, true }, - { 24325, true }, - { 24339, true }, - { 24347, true }, - { 24360, true }, - { 24372, true }, - { 24384, true }, - { 24400, true }, - { 24414, true }, - { 24433, true }, - { 24446, true }, - { 24459, true }, - { 24478, false }, - { 24488, true }, - { 24510, true }, - { 24524, true }, - { 24540, true }, - { 24555, true }, - { 24571, true }, - { 24588, true }, - { 24599, false }, - { 24607, true }, - { 24623, true }, + { 23726, true }, + { 23739, true }, + { 23753, true }, + { 23762, true }, + { 23777, true }, + { 23806, true }, + { 23823, true }, + { 23841, true }, + { 23855, true }, + { 23866, true }, + { 23883, true }, + { 23897, true }, + { 23919, true }, + { 23944, true }, + { 23957, true }, + { 23970, true }, + { 23987, true }, + { 24005, true }, + { 24020, true }, + { 24030, true }, + { 24051, true }, + { 24061, false }, + { 24080, true }, + { 24092, true }, + { 24121, true }, + { 24142, true }, + { 24156, true }, + { 24182, true }, + { 24196, true }, + { 24204, true }, + { 24217, true }, + { 24229, true }, + { 24241, true }, + { 24257, true }, + { 24271, true }, + { 24290, true }, + { 24303, true }, + { 24316, true }, + { 24335, false }, + { 24345, true }, + { 24367, true }, + { 24381, true }, + { 24397, true }, + { 24412, true }, + { 24428, true }, + { 24445, true }, + { 24456, false }, + { 24464, true }, + { 24480, true }, + { 24500, true }, + { 24514, true }, + { 24529, true }, + { 24542, true }, + { 24554, true }, + { 24567, true }, + { 24580, false }, + { 24602, true }, + { 24625, true }, { 24643, true }, - { 24657, true }, - { 24672, true }, - { 24685, true }, - { 24697, true }, - { 24710, true }, - { 24723, false }, - { 24745, true }, - { 24768, true }, - { 24786, true }, - { 24812, true }, - { 24839, true }, - { 24862, true }, - { 24878, true }, - { 24903, true }, - { 24932, true }, - { 24948, true }, - { 24960, true }, - { 24973, true }, - { 24984, true }, - { 24997, true }, - { 25006, true }, - { 25023, true }, - { 25036, true }, - { 25045, true }, - { 25062, true }, + { 24669, true }, + { 24696, true }, + { 24719, true }, + { 24735, true }, + { 24760, true }, + { 24789, true }, + { 24805, true }, + { 24817, true }, + { 24830, true }, + { 24841, true }, + { 24854, true }, + { 24863, true }, + { 24872, true }, + { 24889, true }, + { 24902, true }, + { 24911, true }, + { 24928, true }, + { 24937, true }, + { 24945, true }, + { 24954, true }, + { 24963, false }, + { 24974, true }, + { 24998, true }, + { 25008, true }, + { 25018, true }, + { 25031, true }, + { 25043, true }, + { 25057, true }, { 25071, true }, - { 25079, true }, - { 25088, true }, - { 25097, false }, - { 25108, true }, - { 25132, true }, - { 25142, true }, - { 25152, true }, - { 25165, true }, - { 25177, true }, - { 25191, true }, - { 25205, true }, - { 25223, true }, - { 25238, true }, - { 25252, true }, - { 25264, true }, - { 25280, true }, + { 25089, true }, + { 25104, true }, + { 25118, true }, + { 25130, true }, + { 25146, true }, + { 25159, true }, + { 25174, true }, + { 25186, true }, + { 25201, true }, + { 25215, true }, + { 25224, true }, + { 25233, true }, + { 25247, true }, + { 25256, true }, + { 25270, true }, + { 25283, true }, { 25293, true }, - { 25308, true }, - { 25320, true }, - { 25335, true }, - { 25349, true }, - { 25358, true }, - { 25367, true }, + { 25303, true }, + { 25318, true }, + { 25333, true }, + { 25347, true }, + { 25362, true }, { 25381, true }, - { 25390, true }, - { 25404, true }, - { 25417, true }, + { 25397, true }, + { 25411, false }, { 25427, true }, - { 25437, true }, + { 25438, true }, { 25452, true }, - { 25467, true }, - { 25481, true }, - { 25496, true }, - { 25515, true }, - { 25531, true }, - { 25545, false }, - { 25561, true }, - { 25572, true }, - { 25586, true }, - { 25596, true }, - { 25608, true }, - { 25624, true }, - { 25638, true }, - { 25643, true }, - { 25654, true }, - { 25662, true }, - { 25669, true }, - { 25678, true }, - { 25693, false }, - { 25713, true }, - { 25723, true }, - { 25736, true }, - { 25754, true }, - { 25767, true }, - { 25783, true }, - { 25795, true }, - { 25807, true }, - { 25820, true }, - { 25831, true }, - { 25842, true }, - { 25860, true }, - { 25873, true }, - { 25886, true }, - { 25902, true }, - { 25922, true }, - { 25930, true }, - { 25941, false }, - { 25951, true }, - { 25963, true }, - { 25977, true }, - { 25996, true }, + { 25462, true }, + { 25474, true }, + { 25490, true }, + { 25504, true }, + { 25509, true }, + { 25520, true }, + { 25528, true }, + { 25535, true }, + { 25544, true }, + { 25559, false }, + { 25579, true }, + { 25589, true }, + { 25602, true }, + { 25620, true }, + { 25633, true }, + { 25649, true }, + { 25661, true }, + { 25673, true }, + { 25686, true }, + { 25697, true }, + { 25708, true }, + { 25726, true }, + { 25739, true }, + { 25752, true }, + { 25768, true }, + { 25788, true }, + { 25796, true }, + { 25807, false }, + { 25817, true }, + { 25829, true }, + { 25843, true }, + { 25862, true }, + { 25870, true }, + { 25894, true }, + { 25913, true }, + { 25927, false }, + { 25943, true }, + { 25957, true }, + { 25969, false }, + { 25984, true }, + { 25996, false }, { 26004, true }, - { 26028, true }, - { 26047, true }, - { 26061, false }, - { 26077, true }, + { 26016, true }, + { 26030, false }, + { 26042, true }, + { 26054, true }, + { 26065, true }, + { 26079, true }, { 26091, true }, - { 26103, false }, - { 26118, true }, - { 26130, false }, - { 26138, true }, - { 26150, true }, - { 26164, false }, + { 26104, true }, + { 26124, true }, + { 26134, true }, + { 26153, true }, + { 26165, true }, { 26176, true }, { 26188, true }, - { 26199, true }, - { 26213, true }, - { 26225, true }, - { 26238, true }, - { 26258, true }, - { 26268, true }, - { 26287, true }, - { 26299, true }, - { 26310, true }, - { 26322, true }, - { 26345, true }, - { 26368, true }, - { 26379, true }, - { 26394, true }, - { 26410, true }, - { 26426, true }, - { 26444, false }, - { 26467, true }, - { 26487, true }, - { 26501, true }, - { 26524, true }, - { 26543, true }, - { 26561, true }, - { 26578, true }, - { 26604, true }, - { 26623, true }, - { 26639, true }, - { 26653, true }, - { 26674, true }, - { 26690, true }, - { 26715, true }, - { 26729, true }, - { 26747, true }, + { 26211, true }, + { 26234, true }, + { 26245, true }, + { 26260, true }, + { 26276, true }, + { 26292, true }, + { 26310, false }, + { 26333, true }, + { 26353, true }, + { 26367, true }, + { 26390, true }, + { 26409, true }, + { 26427, true }, + { 26444, true }, + { 26470, true }, + { 26489, true }, + { 26505, true }, + { 26519, true }, + { 26540, true }, + { 26556, true }, + { 26581, true }, + { 26595, true }, + { 26613, true }, + { 26622, true }, + { 26634, true }, + { 26647, true }, + { 26659, true }, + { 26672, true }, + { 26686, true }, + { 26696, true }, + { 26709, true }, + { 26717, true }, + { 26724, true }, + { 26736, true }, { 26756, true }, { 26768, true }, - { 26781, true }, - { 26793, true }, - { 26806, true }, - { 26820, true }, - { 26830, true }, - { 26843, true }, - { 26851, true }, - { 26858, true }, - { 26870, true }, - { 26890, true }, + { 26783, true }, + { 26809, true }, + { 26831, true }, + { 26845, true }, + { 26857, true }, + { 26867, true }, + { 26880, true }, + { 26888, true }, { 26902, true }, - { 26917, true }, - { 26943, true }, - { 26965, true }, - { 26979, true }, - { 26991, true }, - { 27001, true }, - { 27014, true }, - { 27022, true }, - { 27036, true }, - { 27060, true }, - { 27074, true }, - { 27098, true }, - { 27109, true }, - { 27118, true }, - { 27140, true }, - { 27163, true }, - { 27187, true }, - { 27210, false }, - { 27241, false }, - { 27256, true }, - { 27268, true }, - { 27288, true }, - { 27303, true }, - { 27319, true }, - { 27330, true }, - { 27346, true }, - { 27357, true }, - { 27371, true }, - { 27381, true }, - { 27390, false }, - { 27403, true }, - { 27420, true }, - { 27434, true }, - { 27448, true }, - { 27460, true }, - { 27479, true }, - { 27492, true }, - { 27512, true }, - { 27534, true }, - { 27547, true }, - { 27558, true }, - { 27572, true }, - { 27583, true }, - { 27599, true }, - { 27608, true }, - { 27623, true }, - { 27637, true }, - { 27653, true }, - { 27666, true }, - { 27679, true }, - { 27691, true }, - { 27704, true }, - { 27716, true }, - { 27729, true }, + { 26926, true }, + { 26940, true }, + { 26964, true }, + { 26975, true }, + { 26984, true }, + { 27006, true }, + { 27029, true }, + { 27053, true }, + { 27076, false }, + { 27107, false }, + { 27122, true }, + { 27134, true }, + { 27154, true }, + { 27169, true }, + { 27185, true }, + { 27196, true }, + { 27212, true }, + { 27223, true }, + { 27237, true }, + { 27247, true }, + { 27256, false }, + { 27269, true }, + { 27286, true }, + { 27300, true }, + { 27314, true }, + { 27326, true }, + { 27345, true }, + { 27358, true }, + { 27378, true }, + { 27400, true }, + { 27413, true }, + { 27424, true }, + { 27438, true }, + { 27449, true }, + { 27465, true }, + { 27474, true }, + { 27489, true }, + { 27503, true }, + { 27519, true }, + { 27532, true }, + { 27545, true }, + { 27557, true }, + { 27570, true }, + { 27582, true }, + { 27595, true }, + { 27607, true }, + { 27626, true }, + { 27641, true }, + { 27657, true }, + { 27675, true }, + { 27686, true }, + { 27694, false }, + { 27717, true }, + { 27730, true }, { 27741, true }, - { 27760, true }, - { 27775, true }, - { 27791, true }, - { 27809, true }, - { 27820, true }, - { 27828, false }, + { 27753, false }, + { 27763, true }, + { 27779, false }, + { 27790, true }, + { 27799, true }, + { 27812, true }, + { 27830, true }, + { 27841, true }, { 27851, true }, - { 27864, true }, - { 27875, true }, - { 27887, false }, - { 27897, true }, - { 27913, false }, - { 27924, true }, + { 27862, true }, + { 27874, true }, + { 27891, true }, + { 27907, true }, + { 27917, true }, + { 27925, false }, { 27933, true }, - { 27946, true }, - { 27964, true }, - { 27975, true }, - { 27985, true }, - { 27996, true }, + { 27948, true }, + { 27962, true }, + { 27976, true }, + { 27986, true }, + { 27994, true }, { 28008, true }, - { 28025, true }, - { 28041, true }, - { 28051, true }, - { 28059, false }, - { 28067, true }, - { 28082, true }, - { 28096, true }, - { 28110, true }, - { 28120, true }, - { 28128, true }, - { 28142, true }, - { 28156, true }, - { 28172, true }, - { 28187, true }, - { 28198, false }, - { 28211, true }, - { 28229, true }, + { 28022, true }, + { 28038, true }, + { 28053, true }, + { 28064, false }, + { 28077, true }, + { 28095, true }, + { 28111, true }, + { 28122, true }, + { 28140, true }, + { 28162, false }, + { 28179, true }, + { 28194, true }, + { 28210, true }, + { 28226, true }, { 28245, true }, - { 28256, true }, - { 28274, true }, - { 28296, false }, - { 28313, true }, + { 28262, true }, + { 28277, true }, + { 28292, true }, + { 28307, true }, { 28328, true }, - { 28344, true }, - { 28360, true }, - { 28379, true }, - { 28396, true }, - { 28411, true }, - { 28426, true }, - { 28441, true }, - { 28462, true }, - { 28480, true }, - { 28492, true }, - { 28505, true }, - { 28518, true }, - { 28532, true }, - { 28547, true }, - { 28561, true }, - { 28574, true }, + { 28346, true }, + { 28358, true }, + { 28371, true }, + { 28384, true }, + { 28398, true }, + { 28413, true }, + { 28427, true }, + { 28440, true }, + { 28451, true }, + { 28461, true }, + { 28478, true }, + { 28494, true }, + { 28510, true }, + { 28525, true }, + { 28537, true }, + { 28548, false }, + { 28556, true }, + { 28577, true }, { 28585, true }, - { 28595, true }, - { 28612, true }, - { 28628, true }, - { 28644, true }, - { 28659, true }, - { 28671, true }, - { 28682, false }, - { 28690, true }, - { 28711, true }, - { 28719, true }, - { 28732, true }, - { 28740, true }, - { 28748, true }, - { 28766, true }, - { 28780, true }, - { 28794, true }, - { 28802, true }, - { 28812, true }, - { 28826, true }, + { 28598, true }, + { 28606, true }, + { 28614, true }, + { 28632, true }, + { 28646, true }, + { 28660, true }, + { 28668, true }, + { 28678, true }, + { 28692, true }, + { 28712, true }, + { 28720, true }, + { 28729, false }, + { 28749, true }, + { 28767, true }, + { 28778, true }, + { 28796, true }, + { 28814, true }, + { 28834, true }, { 28846, true }, - { 28854, true }, - { 28863, false }, - { 28883, true }, - { 28901, true }, - { 28912, true }, - { 28930, true }, + { 28858, true }, + { 28874, true }, + { 28888, true }, + { 28905, true }, + { 28918, true }, + { 28935, true }, { 28948, true }, - { 28968, true }, - { 28980, true }, - { 28992, true }, - { 29008, true }, - { 29022, true }, - { 29039, true }, - { 29052, true }, - { 29069, true }, + { 28962, true }, + { 28975, true }, + { 28989, true }, + { 28999, true }, + { 29016, true }, + { 29036, true }, + { 29045, true }, + { 29065, true }, { 29082, true }, - { 29096, true }, - { 29109, true }, - { 29123, true }, - { 29133, true }, - { 29150, true }, - { 29170, true }, - { 29179, true }, - { 29199, true }, - { 29216, true }, - { 29236, true }, - { 29250, true }, - { 29270, true }, - { 29288, true }, - { 29302, true }, - { 29320, true }, - { 29330, true }, - { 29360, true }, - { 29375, true }, - { 29388, true }, - { 29401, true }, - { 29415, true }, - { 29430, true }, - { 29450, false }, - { 29460, true }, + { 29102, true }, + { 29116, true }, + { 29136, true }, + { 29154, true }, + { 29168, true }, + { 29186, true }, + { 29196, true }, + { 29226, true }, + { 29241, true }, + { 29254, true }, + { 29267, true }, + { 29281, true }, + { 29296, true }, + { 29316, false }, + { 29326, true }, + { 29343, true }, + { 29353, false }, + { 29364, true }, + { 29372, true }, + { 29385, true }, + { 29406, true }, + { 29427, true }, + { 29448, false }, + { 29464, true }, { 29477, true }, - { 29487, false }, - { 29498, true }, - { 29506, true }, - { 29519, true }, - { 29540, true }, - { 29561, true }, - { 29582, false }, - { 29598, true }, - { 29611, true }, - { 29626, true }, - { 29638, false }, - { 29659, true }, - { 29679, true }, - { 29701, true }, - { 29715, true }, + { 29492, true }, + { 29504, false }, + { 29525, true }, + { 29545, true }, + { 29567, true }, + { 29581, true }, + { 29599, true }, + { 29619, true }, + { 29632, true }, + { 29646, true }, + { 29662, true }, + { 29680, true }, + { 29691, true }, + { 29704, true }, + { 29718, true }, { 29733, true }, - { 29753, true }, - { 29766, true }, - { 29780, true }, - { 29796, true }, - { 29814, true }, + { 29752, true }, + { 29764, false }, + { 29786, true }, + { 29794, true }, + { 29811, true }, { 29825, true }, - { 29838, true }, - { 29852, true }, - { 29867, true }, - { 29886, true }, - { 29898, false }, - { 29920, true }, - { 29928, true }, - { 29945, true }, - { 29959, true }, + { 29842, true }, + { 29860, true }, + { 29871, true }, + { 29895, true }, + { 29911, true }, + { 29927, true }, + { 29942, true }, + { 29955, true }, { 29976, true }, - { 29994, true }, - { 30005, true }, - { 30029, true }, - { 30045, true }, - { 30061, true }, + { 29985, true }, + { 30000, true }, + { 30013, false }, + { 30023, true }, + { 30042, true }, + { 30056, true }, { 30076, true }, - { 30089, true }, - { 30110, true }, - { 30119, true }, + { 30085, true }, + { 30103, false }, + { 30125, true }, { 30134, true }, - { 30147, false }, - { 30157, true }, - { 30176, true }, - { 30190, true }, - { 30210, true }, - { 30219, true }, - { 30237, false }, - { 30259, true }, - { 30268, true }, - { 30287, false }, - { 30303, false }, - { 30317, true }, - { 30333, true }, - { 30348, true }, - { 30366, true }, - { 30384, true }, + { 30153, false }, + { 30169, false }, + { 30183, true }, + { 30199, true }, + { 30214, true }, + { 30232, true }, + { 30250, true }, + { 30270, true }, + { 30292, true }, + { 30310, true }, + { 30327, true }, + { 30342, true }, + { 30357, true }, + { 30374, false }, + { 30390, true }, { 30404, true }, - { 30426, true }, - { 30444, true }, - { 30461, true }, - { 30476, true }, - { 30491, true }, - { 30508, false }, - { 30524, true }, - { 30538, true }, - { 30552, true }, - { 30571, true }, - { 30588, true }, - { 30603, true }, - { 30630, true }, - { 30650, true }, - { 30672, false }, - { 30691, true }, - { 30714, true }, - { 30734, true }, - { 30752, true }, + { 30418, true }, + { 30437, true }, + { 30454, true }, + { 30469, true }, + { 30496, true }, + { 30516, true }, + { 30538, false }, + { 30557, true }, + { 30580, true }, + { 30600, true }, + { 30618, true }, + { 30640, true }, + { 30659, true }, + { 30682, true }, + { 30699, true }, + { 30713, true }, + { 30726, true }, + { 30763, false }, { 30774, true }, - { 30793, true }, - { 30816, true }, - { 30833, true }, - { 30847, true }, - { 30860, true }, - { 30897, false }, - { 30908, true }, - { 30926, true }, - { 30946, true }, - { 30969, true }, - { 30994, false }, - { 31025, true }, - { 31039, true }, - { 31048, true }, - { 31059, true }, - { 31071, true }, + { 30792, true }, + { 30812, true }, + { 30835, true }, + { 30860, false }, + { 30891, true }, + { 30905, true }, + { 30914, true }, + { 30925, true }, + { 30937, true }, + { 30949, true }, + { 30958, true }, + { 30970, true }, + { 30987, true }, + { 30997, true }, + { 31015, false }, + { 31023, true }, + { 31034, true }, + { 31053, true }, + { 31065, false }, { 31083, true }, - { 31092, true }, - { 31104, true }, - { 31121, true }, - { 31131, true }, - { 31149, false }, - { 31157, true }, - { 31168, true }, - { 31187, true }, - { 31199, false }, - { 31217, true }, - { 31230, true }, - { 31243, true }, - { 31260, true }, - { 31276, true }, - { 31287, true }, - { 31301, true }, - { 31313, true }, - { 31328, true }, - { 31336, true }, - { 31350, true }, - { 31362, true }, - { 31374, true }, - { 31384, true }, - { 31395, true }, - { 31406, true }, - { 31420, true }, - { 31443, true }, - { 31459, true }, + { 31096, true }, + { 31109, true }, + { 31126, true }, + { 31142, true }, + { 31153, true }, + { 31167, true }, + { 31179, true }, + { 31194, true }, + { 31202, true }, + { 31216, true }, + { 31228, true }, + { 31240, true }, + { 31250, true }, + { 31261, true }, + { 31272, true }, + { 31286, true }, + { 31309, true }, + { 31325, true }, + { 31333, true }, + { 31348, true }, + { 31367, true }, + { 31386, true }, + { 31402, true }, + { 31412, true }, + { 31431, true }, + { 31444, true }, + { 31452, true }, { 31467, true }, - { 31482, true }, - { 31501, true }, - { 31520, true }, - { 31536, true }, - { 31546, true }, - { 31565, true }, - { 31578, true }, - { 31586, true }, - { 31601, true }, - { 31613, true }, - { 31621, true }, - { 31627, true }, - { 31640, true }, - { 31649, true }, - { 31663, true }, - { 31677, true }, - { 31690, false }, - { 31710, true }, - { 31726, true }, - { 31738, true }, - { 31754, true }, - { 31767, true }, - { 31787, true }, - { 31801, true }, - { 31817, true }, + { 31479, true }, + { 31487, true }, + { 31493, true }, + { 31506, true }, + { 31515, true }, + { 31529, true }, + { 31543, true }, + { 31556, false }, + { 31576, true }, + { 31592, true }, + { 31604, true }, + { 31620, true }, + { 31633, true }, + { 31653, true }, + { 31667, true }, + { 31683, true }, + { 31697, true }, + { 31717, true }, + { 31731, true }, + { 31746, true }, + { 31760, true }, + { 31773, true }, + { 31782, true }, + { 31792, true }, + { 31805, false }, + { 31815, true }, { 31831, true }, - { 31851, true }, - { 31865, true }, - { 31880, true }, - { 31894, true }, - { 31907, true }, - { 31916, true }, - { 31926, true }, - { 31939, false }, - { 31949, true }, - { 31965, true }, - { 31987, true }, - { 32019, true }, - { 32038, true }, - { 32054, true }, - { 32075, true }, - { 32095, true }, - { 32108, true }, - { 32125, true }, - { 32145, true }, - { 32159, true }, - { 32178, true }, - { 32197, true }, - { 32212, true }, - { 32225, true }, - { 32240, true }, - { 32256, true }, - { 32268, true }, - { 32283, true }, - { 32306, true }, - { 32322, true }, - { 32334, false }, - { 32355, true }, - { 32363, true }, - { 32372, true }, - { 32386, true }, - { 32395, true }, - { 32407, true }, - { 32423, true }, - { 32440, false }, - { 32450, true }, - { 32461, true }, - { 32473, true }, - { 32486, true }, - { 32504, true }, - { 32521, true }, - { 32538, false }, - { 32548, true }, - { 32566, true }, - { 32580, true }, - { 32597, true }, - { 32619, true }, - { 32632, true }, - { 32653, true }, - { 32675, true }, - { 32691, true }, - { 32706, true }, - { 32720, true }, - { 32746, true }, - { 32771, true }, - { 32791, true }, - { 32806, true }, + { 31853, true }, + { 31885, true }, + { 31904, true }, + { 31920, true }, + { 31941, true }, + { 31961, true }, + { 31974, true }, + { 31991, true }, + { 32011, true }, + { 32025, true }, + { 32044, true }, + { 32063, true }, + { 32078, true }, + { 32091, true }, + { 32106, true }, + { 32122, true }, + { 32134, true }, + { 32149, true }, + { 32172, true }, + { 32188, true }, + { 32200, false }, + { 32221, true }, + { 32229, true }, + { 32238, true }, + { 32252, true }, + { 32261, true }, + { 32273, true }, + { 32289, true }, + { 32306, false }, + { 32316, true }, + { 32327, true }, + { 32339, true }, + { 32352, true }, + { 32370, true }, + { 32387, true }, + { 32404, false }, + { 32414, true }, + { 32432, true }, + { 32446, true }, + { 32463, true }, + { 32485, true }, + { 32498, true }, + { 32519, true }, + { 32541, true }, + { 32557, true }, + { 32572, true }, + { 32586, true }, + { 32612, true }, + { 32637, true }, + { 32657, true }, + { 32672, true }, + { 32685, true }, + { 32697, true }, + { 32707, true }, + { 32722, true }, + { 32732, true }, + { 32741, true }, + { 32755, true }, + { 32766, true }, + { 32777, true }, + { 32792, true }, + { 32807, true }, { 32819, true }, - { 32831, true }, - { 32841, true }, - { 32856, true }, - { 32866, true }, - { 32875, true }, - { 32889, true }, - { 32900, true }, - { 32911, true }, - { 32926, true }, - { 32941, true }, - { 32953, true }, - { 32967, true }, - { 32980, true }, - { 32996, true }, - { 33006, true }, - { 33015, true }, - { 33027, true }, - { 33038, true }, - { 33047, true }, - { 33063, true }, - { 33073, true }, - { 33084, true }, - { 33095, false }, - { 33115, true }, + { 32833, true }, + { 32846, true }, + { 32862, true }, + { 32872, true }, + { 32881, true }, + { 32893, true }, + { 32904, true }, + { 32913, true }, + { 32929, true }, + { 32939, true }, + { 32950, true }, + { 32961, false }, + { 32981, true }, + { 33005, true }, + { 33026, true }, + { 33034, true }, + { 33044, true }, + { 33058, true }, + { 33078, false }, + { 33088, true }, + { 33106, false }, + { 33120, true }, { 33139, true }, - { 33160, true }, - { 33168, true }, - { 33178, true }, - { 33192, true }, - { 33212, false }, - { 33222, true }, - { 33240, false }, - { 33254, true }, - { 33273, true }, - { 33290, true }, - { 33304, false }, - { 33322, true }, - { 33330, true }, - { 33346, true }, - { 33357, true }, - { 33370, true }, - { 33385, true }, - { 33405, false }, - { 33420, true }, - { 33432, true }, - { 33445, true }, - { 33457, true }, - { 33477, true }, - { 33490, true }, - { 33505, true }, - { 33518, true }, + { 33156, true }, + { 33170, false }, + { 33188, true }, + { 33196, true }, + { 33212, true }, + { 33223, true }, + { 33236, true }, + { 33251, true }, + { 33271, false }, + { 33286, true }, + { 33298, true }, + { 33311, true }, + { 33323, true }, + { 33343, true }, + { 33356, true }, + { 33371, true }, + { 33384, true }, + { 33397, false }, + { 33420, false }, + { 33444, true }, + { 33461, true }, + { 33474, true }, + { 33485, true }, + { 33497, true }, + { 33517, true }, { 33531, true }, - { 33544, false }, - { 33567, false }, - { 33591, true }, - { 33608, true }, - { 33621, true }, - { 33632, true }, - { 33644, true }, - { 33664, true }, + { 33542, true }, + { 33561, true }, + { 33578, true }, + { 33600, true }, + { 33614, true }, + { 33633, true }, + { 33643, true }, + { 33657, true }, { 33678, true }, - { 33689, true }, - { 33708, true }, - { 33725, true }, - { 33747, true }, - { 33761, true }, - { 33780, true }, - { 33790, true }, - { 33804, true }, - { 33825, true }, + { 33690, true }, + { 33705, true }, + { 33719, true }, + { 33730, true }, + { 33744, true }, + { 33757, true }, + { 33773, true }, + { 33786, true }, + { 33806, true }, + { 33814, true }, + { 33826, true }, { 33837, true }, - { 33852, true }, - { 33866, true }, - { 33877, true }, - { 33891, true }, - { 33904, true }, + { 33854, true }, + { 33876, true }, + { 33896, true }, + { 33908, true }, { 33920, true }, - { 33933, true }, - { 33953, true }, - { 33961, true }, - { 33973, true }, - { 33984, true }, + { 33938, true }, + { 33952, true }, + { 33967, true }, + { 33986, true }, { 34001, true }, - { 34023, true }, + { 34015, true }, + { 34027, true }, { 34043, true }, - { 34055, true }, - { 34067, true }, - { 34085, true }, - { 34099, true }, - { 34114, true }, - { 34133, true }, - { 34148, true }, - { 34162, true }, - { 34174, true }, - { 34190, true }, - { 34211, true }, - { 34230, true }, - { 34247, true }, - { 34274, false }, - { 34293, true }, - { 34307, true }, - { 34327, true }, - { 34347, true }, - { 34360, true }, - { 34374, true }, - { 34395, true }, + { 34064, true }, + { 34083, true }, + { 34100, true }, + { 34127, false }, + { 34146, true }, + { 34160, true }, + { 34180, true }, + { 34200, true }, + { 34213, true }, + { 34227, true }, + { 34248, true }, + { 34269, true }, + { 34282, true }, + { 34289, true }, + { 34301, true }, + { 34323, true }, + { 34339, true }, + { 34354, true }, + { 34367, true }, + { 34387, true }, + { 34401, true }, { 34416, true }, - { 34429, true }, - { 34436, true }, - { 34448, true }, - { 34470, true }, - { 34486, true }, - { 34501, true }, - { 34514, true }, - { 34534, true }, - { 34548, true }, - { 34563, true }, - { 34573, true }, - { 34587, true }, - { 34597, true }, - { 34609, true }, - { 34621, true }, - { 34639, true }, - { 34658, true }, - { 34673, true }, - { 34694, false }, - { 34715, true }, - { 34735, true }, - { 34755, true }, - { 34787, true }, - { 34797, true }, - { 34810, true }, - { 34829, true }, - { 34846, false }, - { 34870, false }, - { 34892, true }, - { 34916, true }, - { 34946, true }, - { 34970, true }, - { 34986, true }, - { 35003, true }, - { 35021, true }, - { 35036, true }, - { 35053, true }, - { 35067, true }, - { 35089, true }, - { 35114, true }, - { 35127, true }, - { 35142, true }, - { 35157, true }, - { 35181, true }, - { 35202, true }, - { 35216, true }, - { 35231, true }, - { 35247, true }, - { 35266, true }, - { 35283, true }, - { 35301, true }, - { 35325, false }, - { 35347, true }, - { 35360, true }, - { 35371, true }, - { 35383, true }, - { 35401, true }, + { 34426, true }, + { 34440, true }, + { 34450, true }, + { 34462, true }, + { 34474, true }, + { 34492, true }, + { 34511, true }, + { 34526, true }, + { 34547, false }, + { 34568, true }, + { 34588, true }, + { 34608, true }, + { 34640, true }, + { 34650, true }, + { 34663, true }, + { 34682, true }, + { 34699, false }, + { 34723, false }, + { 34745, true }, + { 34769, true }, + { 34799, true }, + { 34823, true }, + { 34839, true }, + { 34856, true }, + { 34874, true }, + { 34889, true }, + { 34906, true }, + { 34920, true }, + { 34942, true }, + { 34967, true }, + { 34980, true }, + { 34995, true }, + { 35010, true }, + { 35034, true }, + { 35055, true }, + { 35069, true }, + { 35084, true }, + { 35100, true }, + { 35119, true }, + { 35136, true }, + { 35154, true }, + { 35178, false }, + { 35200, true }, + { 35213, true }, + { 35224, true }, + { 35236, true }, + { 35254, true }, + { 35273, true }, + { 35288, false }, + { 35299, true }, + { 35327, true }, + { 35342, true }, + { 35365, true }, + { 35378, true }, + { 35389, true }, + { 35402, true }, { 35420, true }, - { 35435, false }, - { 35446, true }, - { 35474, true }, - { 35489, true }, - { 35512, true }, - { 35525, true }, - { 35536, true }, - { 35549, true }, - { 35567, true }, - { 35589, true }, - { 35614, true }, - { 35637, true }, - { 35651, true }, - { 35664, true }, + { 35442, true }, + { 35467, true }, + { 35490, true }, + { 35504, true }, + { 35517, true }, + { 35533, true }, + { 35546, true }, + { 35564, true }, + { 35574, true }, + { 35587, true }, + { 35605, true }, + { 35626, true }, + { 35641, true }, + { 35656, true }, { 35680, true }, - { 35693, true }, - { 35711, true }, - { 35721, true }, - { 35734, true }, + { 35705, true }, + { 35720, false }, + { 35743, true }, { 35752, true }, { 35773, true }, - { 35788, true }, - { 35803, true }, - { 35827, true }, - { 35852, true }, - { 35867, false }, - { 35890, true }, - { 35899, true }, - { 35920, true }, - { 35937, true }, - { 35948, true }, - { 35961, true }, - { 35974, false }, - { 36013, true }, - { 36026, true }, - { 36042, true }, - { 36056, false }, + { 35790, true }, + { 35801, true }, + { 35814, true }, + { 35827, false }, + { 35866, true }, + { 35879, true }, + { 35895, true }, + { 35909, false }, + { 35924, true }, + { 35944, false }, + { 35960, true }, + { 35979, true }, + { 35990, true }, + { 36003, true }, + { 36015, true }, + { 36038, true }, + { 36047, true }, + { 36057, true }, { 36071, true }, - { 36091, false }, - { 36107, true }, - { 36126, true }, - { 36137, true }, - { 36150, true }, + { 36086, true }, + { 36100, true }, + { 36111, true }, + { 36130, true }, + { 36146, true }, { 36162, true }, - { 36185, true }, - { 36197, true }, - { 36206, true }, - { 36216, true }, - { 36230, true }, - { 36245, true }, + { 36179, true }, + { 36191, true }, + { 36214, true }, + { 36239, true }, { 36259, true }, - { 36270, true }, - { 36289, true }, - { 36305, true }, - { 36321, true }, - { 36338, true }, - { 36350, true }, - { 36373, true }, - { 36398, true }, - { 36418, true }, - { 36430, true }, - { 36445, true }, - { 36462, true }, - { 36481, true }, - { 36494, true }, - { 36506, true }, - { 36536, true }, - { 36550, true }, - { 36574, true }, - { 36597, true }, - { 36611, true }, - { 36624, true }, - { 36636, true }, + { 36271, true }, + { 36286, true }, + { 36303, true }, + { 36322, true }, + { 36335, true }, + { 36347, true }, + { 36377, true }, + { 36391, true }, + { 36415, true }, + { 36438, true }, + { 36452, true }, + { 36465, true }, + { 36477, true }, + { 36497, true }, + { 36509, true }, + { 36532, true }, + { 36551, true }, + { 36562, true }, + { 36576, true }, + { 36588, true }, + { 36606, true }, + { 36622, true }, + { 36640, true }, { 36656, true }, - { 36668, true }, - { 36691, true }, - { 36710, true }, - { 36721, true }, - { 36735, true }, - { 36747, true }, - { 36765, true }, - { 36781, true }, - { 36799, true }, - { 36815, true }, - { 36832, true }, - { 36845, true }, - { 36856, true }, - { 36874, true }, - { 36892, true }, - { 36915, true }, - { 36932, false }, - { 36947, true }, - { 36959, true }, - { 36971, true }, - { 36984, true }, + { 36673, true }, + { 36686, true }, + { 36697, true }, + { 36715, true }, + { 36733, true }, + { 36756, true }, + { 36773, false }, + { 36788, true }, + { 36800, true }, + { 36812, true }, + { 36825, true }, + { 36834, true }, + { 36849, true }, + { 36868, true }, + { 36882, true }, + { 36897, true }, + { 36909, true }, + { 36921, true }, + { 36935, false }, + { 36952, true }, + { 36963, true }, + { 36976, true }, { 36993, true }, - { 37008, true }, - { 37027, true }, - { 37041, true }, - { 37056, true }, - { 37068, true }, - { 37080, true }, - { 37094, false }, - { 37111, true }, - { 37122, true }, - { 37135, true }, - { 37152, true }, - { 37171, true }, - { 37184, true }, - { 37202, true }, - { 37228, true }, - { 37245, true }, - { 37264, true }, - { 37279, true }, - { 37296, true }, - { 37312, true }, - { 37331, true }, - { 37350, true }, - { 37370, true }, - { 37386, true }, + { 37012, true }, + { 37025, true }, + { 37043, true }, + { 37069, true }, + { 37086, true }, + { 37105, true }, + { 37120, true }, + { 37137, true }, + { 37153, true }, + { 37172, true }, + { 37191, true }, + { 37211, true }, + { 37227, true }, + { 37243, true }, + { 37257, true }, + { 37267, true }, + { 37275, true }, + { 37301, true }, + { 37318, true }, + { 37339, true }, + { 37357, true }, + { 37371, true }, + { 37390, true }, { 37402, true }, - { 37416, true }, - { 37426, true }, - { 37434, true }, + { 37418, false }, + { 37437, true }, + { 37446, true }, { 37460, true }, - { 37477, true }, - { 37498, true }, - { 37516, true }, - { 37530, true }, - { 37549, true }, - { 37561, true }, - { 37577, false }, + { 37475, true }, + { 37492, true }, + { 37503, true }, + { 37514, true }, + { 37533, true }, + { 37546, true }, + { 37568, true }, + { 37582, false }, { 37596, true }, - { 37605, true }, - { 37619, true }, - { 37634, true }, - { 37651, true }, + { 37612, true }, + { 37627, true }, + { 37639, true }, { 37662, true }, - { 37673, true }, - { 37692, true }, - { 37705, true }, - { 37727, true }, - { 37741, false }, - { 37755, true }, - { 37771, true }, - { 37786, true }, - { 37798, true }, - { 37821, true }, - { 37833, true }, - { 37856, true }, - { 37875, true }, - { 37891, true }, - { 37906, true }, - { 37916, true }, - { 37923, true }, - { 37934, true }, - { 37951, true }, - { 37965, true }, - { 37974, true }, - { 37982, true }, - { 37996, true }, - { 38015, false }, - { 38026, true }, - { 38042, false }, - { 38052, false }, - { 38068, true }, - { 38081, true }, - { 38095, true }, + { 37674, true }, + { 37697, true }, + { 37716, true }, + { 37732, true }, + { 37747, true }, + { 37757, true }, + { 37764, true }, + { 37775, true }, + { 37792, true }, + { 37806, true }, + { 37814, true }, + { 37828, true }, + { 37847, false }, + { 37858, true }, + { 37874, false }, + { 37884, false }, + { 37900, true }, + { 37913, true }, + { 37927, true }, + { 37942, true }, + { 37958, true }, + { 37980, true }, + { 37994, true }, + { 38007, true }, + { 38021, true }, + { 38035, true }, + { 38050, true }, + { 38065, true }, + { 38090, true }, { 38110, true }, { 38126, true }, - { 38148, true }, - { 38162, true }, - { 38175, true }, - { 38189, true }, - { 38203, true }, - { 38218, true }, - { 38233, true }, - { 38258, true }, - { 38278, true }, - { 38294, true }, + { 38139, true }, + { 38152, true }, + { 38182, true }, + { 38194, true }, + { 38209, true }, + { 38219, true }, + { 38235, true }, + { 38243, false }, + { 38255, true }, + { 38266, true }, + { 38275, true }, + { 38290, true }, { 38307, true }, - { 38320, true }, - { 38350, true }, - { 38362, true }, - { 38377, true }, - { 38387, true }, + { 38323, true }, + { 38336, true }, + { 38349, true }, + { 38366, true }, + { 38375, true }, + { 38383, true }, + { 38394, true }, { 38403, true }, - { 38411, false }, - { 38423, true }, - { 38434, true }, - { 38443, true }, - { 38458, true }, - { 38475, true }, - { 38491, true }, - { 38504, true }, - { 38517, true }, - { 38534, true }, - { 38543, true }, - { 38551, true }, - { 38562, true }, - { 38571, true }, - { 38585, true }, - { 38598, true }, - { 38606, true }, - { 38624, true }, - { 38633, true }, - { 38642, true }, - { 38650, true }, - { 38658, true }, - { 38677, true }, - { 38696, true }, - { 38705, true }, - { 38725, true }, - { 38748, true }, - { 38758, true }, - { 38768, true }, - { 38786, true }, - { 38806, true }, - { 38819, true }, - { 38833, true }, + { 38417, true }, + { 38430, true }, + { 38438, true }, + { 38456, true }, + { 38465, true }, + { 38474, true }, + { 38482, true }, + { 38490, true }, + { 38509, true }, + { 38528, true }, + { 38537, true }, + { 38557, true }, + { 38580, true }, + { 38590, true }, + { 38600, true }, + { 38618, true }, + { 38638, true }, + { 38651, true }, + { 38665, true }, + { 38681, true }, + { 38691, true }, + { 38702, true }, + { 38712, true }, + { 38729, true }, + { 38745, true }, + { 38760, true }, + { 38771, true }, + { 38778, true }, + { 38789, true }, + { 38800, true }, + { 38808, true }, + { 38828, true }, { 38849, true }, - { 38859, true }, - { 38870, true }, - { 38880, true }, - { 38897, true }, - { 38913, true }, - { 38928, true }, + { 38868, true }, + { 38883, true }, + { 38905, true }, + { 38917, false }, { 38939, true }, - { 38946, true }, - { 38957, true }, - { 38968, true }, - { 38976, true }, - { 38996, true }, - { 39017, true }, - { 39036, true }, - { 39051, true }, - { 39073, true }, - { 39085, false }, + { 38958, true }, + { 38974, true }, + { 38992, true }, + { 39007, true }, + { 39024, true }, + { 39039, true }, + { 39058, true }, + { 39070, true }, + { 39090, true }, { 39107, true }, - { 39126, true }, + { 39121, true }, + { 39130, true }, { 39142, true }, - { 39160, true }, - { 39175, true }, - { 39192, true }, - { 39207, true }, + { 39152, true }, + { 39161, true }, + { 39170, true }, + { 39179, true }, + { 39188, true }, + { 39198, true }, + { 39208, true }, + { 39217, true }, { 39226, true }, - { 39238, true }, - { 39258, true }, + { 39244, true }, + { 39260, true }, + { 39268, true }, { 39275, true }, - { 39289, true }, - { 39298, true }, - { 39310, true }, - { 39320, true }, - { 39329, true }, - { 39338, true }, + { 39288, true }, + { 39305, true }, + { 39319, true }, + { 39326, true }, + { 39336, true }, { 39347, true }, - { 39356, true }, - { 39366, true }, - { 39376, true }, - { 39385, true }, - { 39394, true }, - { 39412, true }, - { 39428, true }, - { 39436, true }, - { 39443, true }, - { 39456, true }, - { 39473, true }, - { 39487, true }, - { 39494, true }, - { 39504, true }, - { 39515, true }, - { 39532, true }, - { 39552, true }, - { 39571, false }, - { 39585, true }, - { 39603, true }, - { 39616, true }, - { 39633, true }, - { 39647, true }, - { 39661, true }, - { 39678, true }, - { 39704, true }, - { 39718, true }, - { 39735, true }, - { 39750, true }, - { 39764, true }, - { 39775, true }, - { 39788, true }, + { 39364, true }, + { 39384, true }, + { 39403, false }, + { 39417, true }, + { 39435, true }, + { 39448, true }, + { 39465, true }, + { 39479, true }, + { 39493, true }, + { 39510, true }, + { 39536, true }, + { 39550, true }, + { 39567, true }, + { 39582, true }, + { 39596, true }, + { 39607, true }, + { 39620, true }, + { 39630, true }, + { 39641, true }, + { 39660, true }, + { 39675, true }, + { 39690, true }, + { 39717, true }, + { 39727, true }, + { 39739, true }, + { 39751, true }, + { 39759, true }, + { 39770, true }, + { 39779, true }, + { 39787, true }, { 39798, true }, - { 39809, true }, - { 39828, true }, - { 39843, true }, - { 39858, true }, - { 39885, true }, + { 39825, true }, + { 39835, true }, + { 39846, true }, + { 39857, true }, + { 39867, true }, + { 39881, true }, { 39895, true }, - { 39907, true }, - { 39919, true }, - { 39927, true }, - { 39938, true }, - { 39947, true }, - { 39955, true }, - { 39966, true }, - { 39993, true }, - { 40003, true }, - { 40014, true }, - { 40025, true }, - { 40035, true }, - { 40049, true }, - { 40063, true }, - { 40074, true }, - { 40081, true }, - { 40089, true }, - { 40097, true }, - { 40113, true }, - { 40127, true }, - { 40141, true }, - { 40153, true }, - { 40160, true }, - { 40167, true }, - { 40183, true }, - { 40195, true }, - { 40209, true }, - { 40231, true }, - { 40242, true }, - { 40253, true }, - { 40264, true }, - { 40275, true }, - { 40291, true }, - { 40308, true }, - { 40321, true }, - { 40347, false }, - { 40370, true }, - { 40386, true }, - { 40396, true }, - { 40409, true }, - { 40420, true }, - { 40435, true }, - { 40453, true }, - { 40465, false }, - { 40477, true }, - { 40491, true }, - { 40505, true }, - { 40522, true }, - { 40540, true }, - { 40553, true }, - { 40572, true }, - { 40582, true }, - { 40593, true }, - { 40606, true }, - { 40623, true }, - { 40641, true }, - { 40657, true }, - { 40670, true }, - { 40688, true }, - { 40702, true }, - { 40720, true }, - { 40735, true }, - { 40756, true }, - { 40772, true }, - { 40793, true }, - { 40809, true }, - { 40828, false }, - { 40849, false }, - { 40869, true }, - { 40889, true }, - { 40909, true }, - { 40925, true }, - { 40942, true }, + { 39906, true }, + { 39913, true }, + { 39921, true }, + { 39929, true }, + { 39945, true }, + { 39959, true }, + { 39973, true }, + { 39982, true }, + { 39994, true }, + { 40001, true }, + { 40008, true }, + { 40024, true }, + { 40036, true }, + { 40050, true }, + { 40072, true }, + { 40083, true }, + { 40094, true }, + { 40105, true }, + { 40116, true }, + { 40132, true }, + { 40149, true }, + { 40162, true }, + { 40188, false }, + { 40211, true }, + { 40227, true }, + { 40237, true }, + { 40250, true }, + { 40261, true }, + { 40276, true }, + { 40294, true }, + { 40306, false }, + { 40318, true }, + { 40332, true }, + { 40346, true }, + { 40363, true }, + { 40381, true }, + { 40394, true }, + { 40413, true }, + { 40423, true }, + { 40434, true }, + { 40447, true }, + { 40464, true }, + { 40482, true }, + { 40498, true }, + { 40511, true }, + { 40529, true }, + { 40543, true }, + { 40561, true }, + { 40576, true }, + { 40597, true }, + { 40613, true }, + { 40634, true }, + { 40650, true }, + { 40669, false }, + { 40690, false }, + { 40710, true }, + { 40730, true }, + { 40750, true }, + { 40766, true }, + { 40783, true }, + { 40802, true }, + { 40820, true }, + { 40840, true }, + { 40856, true }, + { 40867, false }, + { 40877, true }, + { 40886, true }, + { 40904, true }, + { 40918, true }, + { 40936, false }, + { 40948, true }, { 40961, true }, - { 40979, true }, + { 40976, true }, + { 40991, true }, { 40999, true }, - { 41015, true }, - { 41026, false }, - { 41036, true }, - { 41045, true }, - { 41063, true }, - { 41077, true }, - { 41095, false }, - { 41107, true }, + { 41033, true }, + { 41044, false }, + { 41058, true }, + { 41076, true }, + { 41094, true }, + { 41109, true }, { 41120, true }, - { 41135, true }, - { 41150, true }, - { 41158, true }, - { 41192, true }, - { 41203, false }, - { 41217, true }, - { 41235, true }, - { 41253, true }, - { 41268, true }, + { 41134, true }, + { 41149, true }, + { 41166, true }, + { 41181, true }, + { 41193, true }, + { 41222, true }, + { 41255, true }, + { 41267, true }, { 41279, true }, - { 41293, true }, + { 41296, true }, { 41308, true }, - { 41325, true }, - { 41340, true }, - { 41352, true }, - { 41381, true }, - { 41414, true }, - { 41426, true }, - { 41438, true }, - { 41455, true }, - { 41467, true }, - { 41479, true }, - { 41494, false }, - { 41506, true }, - { 41515, true }, - { 41531, true }, - { 41543, true }, - { 41560, true }, - { 41575, false }, - { 41589, true }, - { 41609, false }, - { 41623, true }, - { 41634, true }, - { 41647, true }, - { 41657, false }, - { 41673, true }, - { 41687, true }, + { 41320, true }, + { 41335, false }, + { 41347, true }, + { 41356, true }, + { 41372, true }, + { 41384, true }, + { 41401, true }, + { 41416, false }, + { 41430, true }, + { 41450, false }, + { 41464, true }, + { 41475, true }, + { 41488, true }, + { 41498, false }, + { 41514, true }, + { 41528, true }, + { 41542, true }, + { 41553, true }, + { 41566, true }, + { 41582, true }, + { 41593, true }, + { 41610, true }, + { 41636, true }, + { 41656, true }, + { 41670, true }, + { 41687, false }, { 41701, true }, - { 41712, true }, - { 41725, true }, - { 41741, true }, - { 41752, true }, - { 41769, true }, - { 41795, true }, - { 41815, true }, - { 41829, true }, - { 41846, false }, - { 41860, true }, - { 41874, false }, - { 41891, true }, - { 41907, true }, + { 41715, false }, + { 41732, true }, + { 41748, true }, + { 41775, true }, + { 41786, true }, + { 41801, true }, + { 41813, true }, + { 41828, true }, + { 41850, true }, + { 41868, true }, + { 41884, true }, + { 41904, true }, + { 41918, true }, { 41934, true }, - { 41945, true }, - { 41960, true }, - { 41972, true }, - { 41987, true }, - { 42009, true }, - { 42027, true }, - { 42043, true }, - { 42063, true }, - { 42077, true }, - { 42093, true }, - { 42111, true }, - { 42124, true }, - { 42141, true }, - { 42154, true }, - { 42169, true }, - { 42185, true }, - { 42204, true }, - { 42221, true }, - { 42237, true }, - { 42249, true }, + { 41952, true }, + { 41965, true }, + { 41982, true }, + { 41995, true }, + { 42010, true }, + { 42026, true }, + { 42045, true }, + { 42062, true }, + { 42078, true }, + { 42090, true }, + { 42103, true }, + { 42129, true }, + { 42149, false }, + { 42160, true }, + { 42178, true }, + { 42192, true }, + { 42201, true }, + { 42218, true }, + { 42229, true }, + { 42241, true }, + { 42251, true }, { 42262, true }, - { 42288, true }, - { 42308, false }, - { 42319, true }, - { 42337, true }, - { 42351, true }, - { 42360, true }, - { 42377, true }, - { 42388, true }, - { 42400, true }, - { 42410, true }, - { 42421, true }, - { 42442, true }, - { 42454, true }, - { 42465, true }, - { 42473, true }, - { 42481, true }, - { 42492, true }, - { 42508, true }, - { 42518, true }, - { 42529, true }, - { 42542, true }, - { 42557, true }, - { 42574, true }, - { 42596, true }, - { 42617, true }, - { 42625, true }, - { 42638, true }, - { 42649, false }, - { 42669, true }, - { 42684, true }, - { 42697, true }, - { 42709, true }, - { 42730, true }, - { 42744, true }, - { 42758, true }, + { 42283, true }, + { 42295, true }, + { 42306, true }, + { 42314, true }, + { 42322, true }, + { 42333, true }, + { 42349, true }, + { 42359, true }, + { 42370, true }, + { 42383, true }, + { 42398, true }, + { 42415, true }, + { 42437, true }, + { 42458, true }, + { 42466, true }, + { 42479, true }, + { 42490, false }, + { 42510, true }, + { 42525, true }, + { 42538, true }, + { 42550, true }, + { 42571, true }, + { 42585, true }, + { 42599, true }, + { 42616, true }, + { 42631, true }, + { 42645, true }, + { 42659, true }, + { 42673, true }, + { 42687, true }, + { 42701, true }, + { 42716, true }, + { 42728, true }, + { 42742, true }, + { 42760, true }, { 42775, true }, - { 42790, true }, - { 42804, true }, - { 42818, true }, + { 42785, true }, + { 42796, true }, + { 42817, true }, { 42832, true }, - { 42846, true }, + { 42845, true }, { 42860, true }, - { 42875, true }, + { 42872, true }, { 42887, true }, - { 42901, true }, - { 42919, true }, - { 42934, true }, - { 42944, true }, - { 42955, true }, - { 42976, true }, - { 42991, true }, + { 42904, true }, + { 42921, true }, + { 42933, true }, + { 42942, true }, + { 42962, true }, + { 42973, true }, + { 42988, true }, { 43004, true }, - { 43019, true }, - { 43031, true }, - { 43046, true }, + { 43011, true }, + { 43034, true }, + { 43048, true }, { 43063, true }, - { 43080, true }, - { 43092, true }, - { 43101, true }, - { 43121, true }, - { 43132, true }, - { 43147, true }, - { 43163, true }, - { 43170, true }, - { 43193, true }, - { 43207, true }, - { 43222, true }, - { 43237, true }, - { 43252, true }, - { 43263, true }, - { 43273, true }, - { 43282, true }, - { 43293, true }, - { 43305, true }, - { 43316, true }, - { 43327, true }, - { 43340, true }, - { 43356, true }, - { 43371, true }, - { 43387, true }, - { 43404, true }, - { 43421, true }, - { 43435, true }, - { 43450, true }, - { 43466, true }, - { 43481, true }, - { 43491, true }, - { 43504, true }, - { 43516, true }, - { 43544, true }, - { 43556, true }, - { 43570, true }, - { 43586, true }, - { 43599, true }, - { 43610, true }, - { 43632, true }, - { 43652, true }, - { 43673, true }, - { 43688, true }, - { 43702, true }, - { 43712, true }, - { 43723, true }, - { 43742, true }, - { 43759, true }, - { 43772, true }, - { 43786, false }, - { 43799, true }, - { 43811, true }, - { 43822, true }, - { 43840, true }, - { 43858, true }, - { 43870, true }, + { 43078, true }, + { 43093, true }, + { 43104, true }, + { 43114, true }, + { 43123, true }, + { 43134, true }, + { 43146, true }, + { 43157, true }, + { 43168, true }, + { 43181, true }, + { 43197, true }, + { 43212, true }, + { 43228, true }, + { 43245, true }, + { 43262, true }, + { 43276, true }, + { 43291, true }, + { 43307, true }, + { 43322, true }, + { 43332, true }, + { 43345, true }, + { 43357, true }, + { 43385, true }, + { 43397, true }, + { 43411, true }, + { 43427, true }, + { 43440, true }, + { 43451, true }, + { 43473, true }, + { 43493, true }, + { 43514, true }, + { 43529, true }, + { 43543, true }, + { 43553, true }, + { 43564, true }, + { 43583, true }, + { 43600, true }, + { 43613, true }, + { 43627, true }, + { 43639, true }, + { 43650, true }, + { 43668, true }, + { 43686, true }, + { 43698, true }, + { 43713, true }, + { 43727, true }, + { 43741, true }, + { 43749, true }, + { 43778, true }, + { 43797, true }, + { 43810, true }, + { 43835, true }, + { 43852, true }, + { 43873, true }, { 43885, true }, - { 43899, true }, - { 43913, true }, - { 43921, true }, - { 43950, true }, - { 43969, true }, - { 43982, true }, - { 44007, true }, - { 44024, true }, - { 44045, true }, - { 44057, true }, - { 44081, true }, - { 44114, true }, - { 44126, true }, - { 44148, true }, - { 44165, true }, - { 44180, true }, - { 44194, true }, - { 44220, true }, - { 44230, true }, + { 43909, true }, + { 43942, true }, + { 43954, true }, + { 43976, true }, + { 43993, true }, + { 44008, true }, + { 44022, true }, + { 44048, true }, + { 44058, true }, + { 44077, true }, + { 44090, true }, + { 44100, true }, + { 44110, true }, + { 44128, true }, + { 44146, true }, + { 44173, true }, + { 44189, true }, + { 44214, true }, + { 44229, true }, { 44249, true }, - { 44262, true }, - { 44272, true }, - { 44282, true }, + { 44264, true }, + { 44279, true }, { 44300, true }, - { 44318, true }, - { 44345, true }, + { 44324, true }, + { 44337, true }, + { 44347, false }, { 44361, true }, + { 44372, true }, { 44386, true }, - { 44401, true }, - { 44421, true }, - { 44436, true }, - { 44451, true }, - { 44472, true }, - { 44496, true }, - { 44509, true }, - { 44519, false }, - { 44533, true }, + { 44405, true }, + { 44420, false }, + { 44435, true }, + { 44444, true }, + { 44454, true }, + { 44469, true }, + { 44481, true }, + { 44499, true }, + { 44510, true }, + { 44527, true }, + { 44535, true }, { 44544, true }, - { 44558, true }, + { 44554, true }, + { 44567, true }, { 44577, true }, - { 44592, false }, - { 44607, true }, + { 44591, false }, { 44616, true }, - { 44626, true }, - { 44641, true }, - { 44653, true }, - { 44671, true }, - { 44682, true }, - { 44699, true }, - { 44707, true }, - { 44716, true }, - { 44726, true }, - { 44739, true }, - { 44749, true }, - { 44763, false }, - { 44788, true }, - { 44806, false }, - { 44830, true }, - { 44844, true }, - { 44863, true }, - { 44890, true }, - { 44902, true }, - { 44910, true }, - { 44919, true }, - { 44933, true }, - { 44950, true }, - { 44966, true }, - { 44981, true }, - { 44993, true }, - { 45010, true }, - { 45022, true }, - { 45034, true }, - { 45044, true }, - { 45056, true }, + { 44634, false }, + { 44658, true }, + { 44672, true }, + { 44691, true }, + { 44718, true }, + { 44730, true }, + { 44738, true }, + { 44747, true }, + { 44761, true }, + { 44778, true }, + { 44794, true }, + { 44809, true }, + { 44821, true }, + { 44838, true }, + { 44850, true }, + { 44862, true }, + { 44872, true }, + { 44884, true }, + { 44897, true }, + { 44911, true }, + { 44928, true }, + { 44939, true }, + { 44957, false }, + { 44977, true }, + { 44989, true }, + { 45001, true }, + { 45011, true }, + { 45024, true }, + { 45046, true }, + { 45060, true }, { 45069, true }, - { 45083, true }, + { 45081, true }, + { 45088, true }, { 45100, true }, - { 45111, true }, - { 45129, false }, - { 45149, true }, + { 45109, true }, + { 45119, true }, + { 45133, true }, + { 45150, true }, { 45161, true }, - { 45173, true }, - { 45183, true }, - { 45196, true }, - { 45218, true }, - { 45232, true }, - { 45241, true }, - { 45253, true }, - { 45260, true }, - { 45272, true }, - { 45281, true }, - { 45291, true }, - { 45305, true }, + { 45175, true }, + { 45184, true }, + { 45193, true }, + { 45208, true }, + { 45220, true }, + { 45236, true }, + { 45252, true }, + { 45269, true }, + { 45279, true }, + { 45301, true }, + { 45310, true }, { 45322, true }, - { 45333, true }, - { 45347, true }, - { 45356, true }, - { 45365, true }, - { 45380, true }, - { 45392, true }, - { 45408, true }, - { 45424, true }, - { 45441, true }, - { 45451, true }, - { 45473, true }, + { 45336, true }, + { 45369, true }, + { 45394, true }, + { 45403, true }, + { 45419, true }, + { 45431, true }, + { 45442, true }, + { 45467, true }, { 45482, true }, - { 45494, true }, - { 45508, true }, - { 45541, true }, - { 45566, true }, - { 45575, true }, - { 45591, true }, - { 45603, true }, - { 45614, true }, - { 45639, true }, - { 45654, true }, - { 45676, true }, - { 45701, true }, - { 45732, true }, - { 45743, true }, - { 45759, true }, - { 45773, true }, - { 45791, true }, - { 45805, true }, - { 45820, false }, - { 45837, true }, - { 45855, true }, - { 45868, true }, - { 45878, true }, - { 45890, true }, - { 45905, true }, + { 45504, true }, + { 45529, true }, + { 45560, true }, + { 45571, true }, + { 45587, true }, + { 45601, true }, + { 45619, true }, + { 45633, true }, + { 45648, false }, + { 45665, true }, + { 45683, true }, + { 45696, true }, + { 45706, true }, + { 45718, true }, + { 45733, true }, + { 45744, true }, + { 45758, true }, + { 45771, true }, + { 45783, true }, + { 45795, true }, + { 45806, true }, + { 45822, true }, + { 45835, true }, + { 45847, false }, + { 45864, true }, + { 45884, true }, + { 45901, true }, { 45916, true }, - { 45930, true }, - { 45943, true }, - { 45955, true }, - { 45967, true }, - { 45978, true }, - { 45994, true }, - { 46007, true }, - { 46019, false }, - { 46036, true }, - { 46056, true }, - { 46073, true }, - { 46089, true }, - { 46104, true }, - { 46119, true }, - { 46142, true }, - { 46168, false }, - { 46188, true }, - { 46203, false }, - { 46221, true }, - { 46240, true }, + { 45932, true }, + { 45947, true }, + { 45962, true }, + { 45985, true }, + { 46011, false }, + { 46031, true }, + { 46046, false }, + { 46064, true }, + { 46083, true }, + { 46100, true }, + { 46113, true }, + { 46130, true }, + { 46140, false }, + { 46157, true }, + { 46176, true }, + { 46193, true }, + { 46206, true }, + { 46220, true }, + { 46237, true }, + { 46245, true }, { 46257, true }, - { 46270, true }, - { 46287, true }, - { 46297, false }, - { 46314, true }, - { 46333, true }, - { 46350, true }, - { 46363, true }, + { 46267, true }, + { 46278, true }, + { 46288, true }, + { 46301, true }, + { 46315, true }, + { 46326, true }, + { 46339, true }, + { 46358, false }, + { 46366, true }, { 46377, true }, - { 46394, true }, - { 46402, true }, - { 46414, true }, - { 46424, true }, - { 46435, true }, - { 46445, true }, - { 46458, true }, - { 46472, true }, - { 46483, true }, - { 46496, true }, - { 46515, false }, - { 46523, true }, - { 46534, true }, - { 46547, true }, - { 46560, true }, - { 46579, true }, - { 46595, true }, - { 46607, true }, - { 46621, true }, - { 46635, true }, - { 46647, true }, - { 46663, true }, - { 46675, true }, - { 46690, true }, - { 46708, true }, + { 46390, true }, + { 46403, true }, + { 46422, true }, + { 46438, true }, + { 46450, true }, + { 46464, true }, + { 46478, true }, + { 46490, true }, + { 46506, true }, + { 46518, true }, + { 46533, true }, + { 46551, true }, + { 46566, true }, + { 46581, true }, + { 46597, true }, + { 46611, true }, + { 46632, true }, + { 46648, true }, + { 46667, true }, + { 46686, true }, + { 46703, false }, { 46723, true }, - { 46738, true }, - { 46754, true }, - { 46768, true }, - { 46789, true }, - { 46805, true }, - { 46824, true }, - { 46843, true }, - { 46860, false }, - { 46880, true }, - { 46910, true }, - { 46936, true }, - { 46953, true }, - { 46965, true }, - { 46985, true }, - { 46999, true }, - { 47018, true }, - { 47036, true }, - { 47051, true }, - { 47062, true }, - { 47072, true }, - { 47090, true }, - { 47109, true }, - { 47119, true }, - { 47137, true }, - { 47146, false }, - { 47157, false }, - { 47177, true }, - { 47185, true }, - { 47199, true }, - { 47212, true }, - { 47222, true }, - { 47235, true }, - { 47255, false }, - { 47270, true }, - { 47279, false }, - { 47288, true }, - { 47304, true }, - { 47321, true }, - { 47330, true }, - { 47337, true }, - { 47345, true }, - { 47357, true }, - { 47366, true }, - { 47376, true }, - { 47393, true }, - { 47403, true }, - { 47411, true }, - { 47419, true }, + { 46753, true }, + { 46779, true }, + { 46796, true }, + { 46808, true }, + { 46828, true }, + { 46842, true }, + { 46861, true }, + { 46879, true }, + { 46894, true }, + { 46905, true }, + { 46915, true }, + { 46933, true }, + { 46952, true }, + { 46962, true }, + { 46980, true }, + { 46989, false }, + { 47000, false }, + { 47020, true }, + { 47028, true }, + { 47042, true }, + { 47055, true }, + { 47065, true }, + { 47078, true }, + { 47098, false }, + { 47113, true }, + { 47122, false }, + { 47131, true }, + { 47147, true }, + { 47164, true }, + { 47173, true }, + { 47180, true }, + { 47188, true }, + { 47200, true }, + { 47209, true }, + { 47219, true }, + { 47236, true }, + { 47246, true }, + { 47254, true }, + { 47262, true }, + { 47269, true }, + { 47280, true }, + { 47293, true }, + { 47300, true }, + { 47310, true }, + { 47325, true }, + { 47340, true }, + { 47353, true }, + { 47365, true }, + { 47380, true }, + { 47391, true }, + { 47401, true }, + { 47409, true }, + { 47418, true }, { 47426, true }, - { 47437, true }, - { 47450, true }, - { 47457, true }, + { 47440, true }, + { 47452, true }, { 47467, true }, - { 47482, true }, - { 47497, true }, - { 47510, true }, - { 47522, true }, - { 47537, true }, - { 47548, true }, - { 47558, true }, - { 47566, true }, - { 47575, true }, - { 47583, true }, - { 47597, true }, - { 47609, true }, - { 47624, true }, - { 47634, true }, - { 47651, true }, - { 47661, true }, - { 47677, true }, - { 47693, true }, - { 47712, true }, - { 47726, true }, + { 47477, true }, + { 47494, true }, + { 47504, true }, + { 47520, true }, + { 47536, true }, + { 47555, true }, + { 47569, true }, + { 47585, true }, + { 47598, true }, + { 47613, true }, + { 47626, true }, + { 47637, true }, + { 47649, true }, + { 47674, false }, + { 47683, true }, + { 47696, true }, + { 47705, true }, + { 47721, true }, { 47742, true }, - { 47755, true }, + { 47756, true }, { 47770, true }, - { 47783, true }, - { 47794, true }, - { 47806, true }, - { 47831, false }, - { 47840, true }, - { 47853, true }, - { 47862, true }, - { 47878, true }, - { 47899, true }, - { 47913, true }, - { 47927, true }, - { 47939, true }, - { 47961, true }, - { 47972, true }, - { 47984, true }, - { 47995, true }, - { 48009, true }, - { 48029, true }, - { 48043, true }, - { 48066, true }, - { 48080, true }, - { 48095, true }, - { 48112, true }, - { 48126, true }, - { 48145, true }, - { 48161, true }, - { 48172, true }, - { 48183, true }, - { 48195, true }, - { 48216, false }, - { 48232, true }, - { 48249, true }, - { 48267, true }, - { 48282, true }, - { 48310, false }, - { 48320, false }, - { 48330, true }, - { 48349, false }, - { 48361, true }, - { 48375, true }, - { 48388, true }, - { 48407, true }, - { 48423, true }, - { 48438, true }, - { 48461, true }, - { 48474, true }, - { 48491, true }, - { 48500, true }, - { 48521, true }, - { 48536, true }, - { 48552, true }, - { 48565, true }, - { 48578, true }, - { 48590, true }, - { 48604, true }, - { 48621, true }, - { 48638, true }, - { 48649, true }, - { 48663, true }, - { 48670, true }, - { 48679, true }, - { 48694, true }, - { 48705, true }, + { 47782, true }, + { 47804, true }, + { 47815, true }, + { 47827, true }, + { 47838, true }, + { 47852, true }, + { 47872, true }, + { 47886, true }, + { 47909, true }, + { 47923, true }, + { 47938, true }, + { 47955, true }, + { 47969, true }, + { 47988, true }, + { 48004, true }, + { 48015, true }, + { 48027, true }, + { 48048, false }, + { 48064, true }, + { 48081, true }, + { 48099, true }, + { 48114, true }, + { 48142, false }, + { 48152, false }, + { 48162, true }, + { 48181, false }, + { 48193, true }, + { 48207, true }, + { 48220, true }, + { 48239, true }, + { 48255, true }, + { 48270, true }, + { 48293, true }, + { 48306, true }, + { 48323, true }, + { 48332, true }, + { 48353, true }, + { 48368, true }, + { 48384, true }, + { 48397, true }, + { 48410, true }, + { 48422, true }, + { 48436, true }, + { 48453, true }, + { 48470, true }, + { 48481, true }, + { 48495, true }, + { 48502, true }, + { 48511, true }, + { 48526, true }, + { 48537, true }, + { 48561, true }, + { 48572, true }, + { 48582, true }, + { 48595, true }, + { 48606, true }, + { 48618, true }, + { 48639, true }, + { 48653, true }, + { 48668, true }, + { 48685, true }, + { 48700, true }, + { 48712, true }, { 48729, true }, - { 48740, true }, - { 48750, true }, - { 48763, true }, - { 48774, true }, - { 48786, true }, - { 48807, true }, - { 48821, true }, - { 48836, true }, - { 48853, true }, - { 48868, true }, - { 48880, true }, - { 48897, true }, - { 48913, true }, - { 48934, true }, - { 48951, true }, - { 48980, true }, - { 48994, true }, - { 49005, false }, - { 49028, false }, - { 49042, true }, - { 49060, true }, - { 49075, true }, - { 49092, true }, + { 48745, true }, + { 48766, true }, + { 48783, true }, + { 48812, true }, + { 48826, true }, + { 48837, false }, + { 48860, false }, + { 48874, true }, + { 48892, true }, + { 48907, true }, + { 48924, true }, + { 48941, true }, + { 48952, true }, + { 48970, true }, + { 48993, true }, + { 49007, true }, + { 49026, true }, + { 49045, true }, + { 49059, true }, + { 49070, true }, + { 49080, true }, + { 49093, true }, { 49109, true }, - { 49120, true }, - { 49138, true }, - { 49161, true }, - { 49175, true }, - { 49194, true }, - { 49213, true }, - { 49227, true }, - { 49238, true }, - { 49248, true }, - { 49261, true }, - { 49277, true }, - { 49297, false }, - { 49315, true }, - { 49344, true }, - { 49360, true }, - { 49376, true }, + { 49129, false }, + { 49147, true }, + { 49176, true }, + { 49192, true }, + { 49208, true }, + { 49218, true }, + { 49234, true }, + { 49243, true }, + { 49258, true }, + { 49270, true }, + { 49284, true }, + { 49299, true }, + { 49312, true }, + { 49328, false }, + { 49338, true }, + { 49355, true }, + { 49368, true }, { 49386, true }, - { 49402, true }, - { 49411, true }, - { 49426, true }, - { 49438, true }, - { 49452, true }, - { 49467, true }, - { 49480, true }, - { 49496, false }, - { 49506, true }, - { 49523, true }, + { 49408, true }, + { 49430, true }, + { 49441, true }, + { 49450, true }, + { 49471, true }, + { 49483, false }, + { 49496, true }, + { 49508, true }, + { 49521, true }, { 49536, true }, - { 49554, true }, - { 49576, true }, - { 49598, true }, - { 49609, true }, - { 49618, true }, - { 49639, true }, - { 49651, false }, - { 49664, true }, - { 49676, true }, - { 49689, true }, - { 49704, true }, - { 49716, true }, - { 49733, true }, - { 49748, true }, - { 49779, true }, - { 49811, true }, - { 49839, true }, + { 49548, true }, + { 49565, true }, + { 49580, true }, + { 49611, true }, + { 49643, true }, + { 49671, true }, + { 49701, true }, + { 49713, true }, + { 49727, true }, + { 49743, true }, + { 49753, true }, + { 49763, true }, + { 49778, true }, + { 49800, true }, + { 49814, true }, + { 49824, true }, + { 49835, true }, + { 49851, true }, { 49869, true }, - { 49881, true }, - { 49895, true }, - { 49911, true }, - { 49921, true }, - { 49931, true }, + { 49877, true }, + { 49891, true }, + { 49906, true }, + { 49914, true }, + { 49923, true }, { 49946, true }, - { 49968, true }, - { 49982, true }, - { 49992, true }, - { 50003, true }, - { 50019, true }, - { 50037, true }, - { 50045, true }, - { 50059, true }, - { 50074, true }, - { 50082, true }, - { 50091, true }, - { 50114, true }, + { 49957, true }, + { 49972, true }, + { 49990, true }, + { 50002, true }, + { 50018, true }, + { 50033, true }, + { 50046, true }, + { 50057, true }, + { 50072, true }, + { 50089, true }, + { 50100, true }, + { 50109, true }, { 50125, true }, - { 50140, true }, - { 50158, true }, - { 50170, true }, - { 50186, true }, - { 50201, true }, - { 50214, true }, + { 50135, false }, + { 50154, true }, + { 50168, true }, + { 50176, true }, + { 50185, true }, + { 50195, true }, + { 50216, true }, { 50225, true }, - { 50240, true }, - { 50257, true }, - { 50268, true }, - { 50277, true }, - { 50293, true }, - { 50303, false }, - { 50322, true }, - { 50336, true }, - { 50344, true }, - { 50353, true }, - { 50363, true }, - { 50384, true }, - { 50393, true }, - { 50404, true }, - { 50420, true }, - { 50430, true }, - { 50449, true }, - { 50462, true }, - { 50480, true }, - { 50500, true }, - { 50520, true }, - { 50528, true }, - { 50541, true }, - { 50552, true }, - { 50570, true }, - { 50580, true }, - { 50589, true }, + { 50236, true }, + { 50252, true }, + { 50262, true }, + { 50281, true }, + { 50299, true }, + { 50319, true }, + { 50339, true }, + { 50347, true }, + { 50360, true }, + { 50371, true }, + { 50389, true }, + { 50399, true }, + { 50408, true }, + { 50417, true }, + { 50428, true }, + { 50436, true }, + { 50446, true }, + { 50458, true }, + { 50468, true }, + { 50483, true }, + { 50490, true }, + { 50503, true }, + { 50527, false }, + { 50542, true }, + { 50562, true }, + { 50581, true }, { 50598, true }, { 50609, true }, - { 50617, true }, - { 50627, true }, - { 50639, true }, - { 50649, true }, - { 50664, true }, - { 50671, true }, - { 50684, true }, - { 50708, false }, - { 50723, true }, - { 50743, true }, - { 50762, true }, - { 50779, true }, - { 50790, true }, - { 50805, true }, - { 50815, true }, - { 50832, true }, - { 50846, true }, - { 50863, true }, - { 50884, true }, - { 50893, true }, - { 50906, true }, - { 50916, true }, - { 50928, true }, - { 50937, true }, - { 50947, true }, - { 50959, true }, - { 50970, true }, - { 50978, true }, - { 50985, true }, - { 51010, true }, - { 51028, true }, - { 51046, true }, - { 51060, true }, - { 51069, true }, - { 51082, true }, - { 51099, true }, - { 51112, true }, - { 51127, true }, - { 51145, false }, - { 51158, true }, - { 51174, true }, - { 51190, true }, - { 51203, true }, - { 51216, true }, - { 51229, true }, - { 51239, false }, - { 51257, true }, - { 51270, true }, - { 51283, true }, - { 51299, true }, - { 51318, true }, - { 51333, true }, - { 51340, true }, - { 51369, true }, - { 51391, true }, - { 51412, true }, - { 51439, true }, - { 51459, true }, - { 51467, true }, - { 51478, true }, + { 50624, true }, + { 50634, true }, + { 50651, true }, + { 50665, true }, + { 50682, true }, + { 50703, true }, + { 50712, true }, + { 50725, true }, + { 50735, true }, + { 50747, true }, + { 50756, true }, + { 50766, true }, + { 50778, true }, + { 50789, true }, + { 50797, true }, + { 50804, true }, + { 50829, true }, + { 50847, true }, + { 50865, true }, + { 50879, true }, + { 50888, true }, + { 50901, true }, + { 50918, true }, + { 50931, true }, + { 50946, true }, + { 50964, false }, + { 50977, true }, + { 50993, true }, + { 51009, true }, + { 51022, true }, + { 51035, true }, + { 51048, true }, + { 51058, false }, + { 51076, true }, + { 51089, true }, + { 51102, true }, + { 51118, true }, + { 51137, true }, + { 51152, true }, + { 51159, true }, + { 51188, true }, + { 51210, true }, + { 51231, true }, + { 51258, true }, + { 51278, true }, + { 51286, true }, + { 51297, true }, + { 51317, true }, + { 51336, true }, + { 51351, true }, + { 51370, true }, + { 51386, true }, + { 51402, false }, + { 51417, true }, + { 51432, true }, + { 51447, true }, + { 51466, true }, + { 51480, true }, { 51498, true }, + { 51507, true }, { 51517, true }, - { 51532, true }, - { 51551, true }, - { 51567, true }, - { 51583, false }, - { 51598, true }, - { 51613, true }, - { 51628, true }, - { 51647, true }, - { 51661, true }, - { 51679, true }, - { 51688, true }, - { 51698, true }, - { 51709, true }, + { 51528, true }, + { 51544, true }, + { 51558, true }, + { 51572, true }, + { 51605, true }, + { 51619, true }, + { 51633, true }, + { 51642, true }, + { 51653, true }, + { 51677, true }, + { 51689, true }, + { 51700, true }, + { 51706, true }, + { 51716, true }, { 51725, true }, { 51739, true }, - { 51753, true }, - { 51786, true }, - { 51800, true }, - { 51814, true }, - { 51823, true }, - { 51834, true }, - { 51858, true }, - { 51870, true }, - { 51881, false }, - { 51894, true }, - { 51900, true }, - { 51910, true }, - { 51919, true }, - { 51933, true }, - { 51943, true }, - { 51959, true }, - { 51972, true }, - { 51985, true }, - { 51997, true }, + { 51749, true }, + { 51765, true }, + { 51778, true }, + { 51791, true }, + { 51803, true }, + { 51819, true }, + { 51830, true }, + { 51842, true }, + { 51857, true }, + { 51874, true }, + { 51885, true }, + { 51897, true }, + { 51913, false }, + { 51928, true }, + { 51938, true }, + { 51954, true }, + { 51966, true }, + { 51977, true }, + { 51994, true }, { 52013, true }, - { 52024, true }, { 52036, true }, - { 52051, true }, - { 52068, true }, - { 52079, true }, - { 52091, true }, - { 52107, false }, - { 52122, true }, - { 52132, true }, - { 52148, true }, - { 52160, true }, - { 52171, true }, - { 52188, true }, - { 52207, true }, + { 52053, true }, + { 52062, false }, + { 52071, true }, + { 52082, true }, + { 52099, true }, + { 52115, true }, + { 52129, true }, + { 52143, true }, + { 52161, false }, + { 52169, true }, + { 52178, true }, + { 52191, true }, + { 52208, true }, + { 52220, true }, { 52230, true }, - { 52247, true }, - { 52256, false }, - { 52265, true }, - { 52276, true }, - { 52293, true }, - { 52309, true }, - { 52323, true }, - { 52337, true }, - { 52355, false }, - { 52363, true }, - { 52372, true }, - { 52385, true }, - { 52402, true }, - { 52414, true }, - { 52424, true }, - { 52433, true }, - { 52441, false }, - { 52451, true }, - { 52457, true }, - { 52465, true }, - { 52483, true }, - { 52492, true }, - { 52504, true }, + { 52239, true }, + { 52247, false }, + { 52257, true }, + { 52263, true }, + { 52271, true }, + { 52289, true }, + { 52298, true }, + { 52310, true }, + { 52319, true }, + { 52334, true }, + { 52344, true }, + { 52353, true }, + { 52365, true }, + { 52386, true }, + { 52397, true }, + { 52411, true }, + { 52421, true }, + { 52438, true }, + { 52450, true }, + { 52473, true }, + { 52487, true }, + { 52502, true }, { 52513, true }, - { 52528, true }, - { 52538, true }, - { 52547, true }, - { 52559, true }, - { 52580, true }, - { 52591, true }, - { 52605, true }, - { 52615, true }, - { 52632, true }, - { 52644, true }, - { 52667, true }, - { 52681, true }, - { 52696, true }, - { 52707, true }, - { 52723, true }, - { 52734, true }, - { 52750, true }, - { 52778, true }, - { 52794, true }, - { 52806, false }, - { 52824, true }, - { 52835, true }, - { 52845, true }, - { 52866, true }, - { 52881, true }, - { 52895, true }, - { 52905, true }, - { 52920, true }, - { 52931, true }, - { 52943, true }, - { 52956, true }, - { 52969, true }, - { 52978, true }, - { 52987, true }, - { 52999, true }, - { 53015, true }, - { 53026, true }, + { 52529, true }, + { 52540, true }, + { 52556, true }, + { 52584, true }, + { 52600, true }, + { 52612, false }, + { 52630, true }, + { 52641, true }, + { 52651, true }, + { 52672, true }, + { 52687, true }, + { 52701, true }, + { 52711, true }, + { 52726, true }, + { 52737, true }, + { 52749, true }, + { 52762, true }, + { 52775, true }, + { 52784, true }, + { 52793, true }, + { 52805, true }, + { 52821, true }, + { 52832, true }, + { 52848, true }, + { 52867, true }, + { 52883, true }, + { 52898, true }, + { 52929, true }, + { 52953, true }, + { 52972, true }, + { 52992, true }, + { 53008, true }, + { 53023, true }, { 53042, true }, - { 53061, true }, - { 53077, true }, - { 53092, true }, - { 53123, true }, - { 53147, true }, - { 53166, true }, - { 53186, true }, - { 53202, true }, - { 53217, true }, - { 53236, true }, - { 53258, true }, - { 53275, true }, - { 53290, true }, - { 53309, true }, - { 53322, true }, - { 53337, true }, - { 53352, true }, - { 53365, true }, + { 53064, true }, + { 53081, true }, + { 53096, true }, + { 53115, true }, + { 53128, true }, + { 53143, true }, + { 53158, true }, + { 53171, true }, + { 53187, true }, + { 53199, true }, + { 53212, true }, + { 53222, false }, + { 53231, true }, + { 53251, true }, + { 53266, true }, + { 53277, true }, + { 53298, true }, + { 53314, true }, + { 53338, false }, + { 53355, true }, + { 53368, true }, { 53381, true }, - { 53393, true }, - { 53406, true }, - { 53416, false }, - { 53425, true }, - { 53445, true }, - { 53460, true }, - { 53471, true }, - { 53492, true }, - { 53508, true }, - { 53532, false }, - { 53549, true }, - { 53562, true }, + { 53394, true }, + { 53407, true }, + { 53426, true }, + { 53435, true }, + { 53453, true }, + { 53462, true }, + { 53472, true }, + { 53485, true }, + { 53495, true }, + { 53504, true }, + { 53520, true }, + { 53547, true }, + { 53558, true }, { 53575, true }, { 53588, true }, - { 53601, true }, - { 53620, true }, - { 53629, true }, - { 53647, true }, - { 53656, true }, - { 53666, true }, - { 53679, true }, - { 53689, true }, - { 53698, true }, - { 53714, true }, - { 53741, true }, - { 53752, true }, - { 53769, true }, - { 53782, true }, - { 53796, true }, - { 53813, true }, - { 53828, true }, - { 53851, true }, - { 53861, true }, - { 53876, true }, - { 53901, true }, - { 53925, true }, - { 53934, true }, + { 53602, true }, + { 53619, true }, + { 53634, true }, + { 53657, true }, + { 53667, true }, + { 53682, true }, + { 53707, true }, + { 53731, true }, + { 53740, true }, + { 53761, true }, + { 53781, true }, + { 53793, true }, + { 53806, true }, + { 53820, true }, + { 53837, true }, + { 53854, false }, + { 53866, false }, + { 53879, true }, + { 53896, true }, + { 53905, true }, + { 53916, true }, + { 53930, true }, + { 53941, true }, { 53955, true }, - { 53975, true }, - { 53987, true }, - { 54000, true }, - { 54014, true }, - { 54031, true }, - { 54048, false }, - { 54060, false }, - { 54073, true }, - { 54090, true }, - { 54099, true }, - { 54110, true }, - { 54124, true }, - { 54135, true }, - { 54149, true }, + { 53972, true }, + { 53981, true }, + { 53995, false }, + { 54023, true }, + { 54032, true }, + { 54041, true }, + { 54051, true }, + { 54067, true }, + { 54077, true }, + { 54091, true }, + { 54113, false }, + { 54127, false }, + { 54142, true }, { 54166, true }, - { 54175, true }, - { 54189, false }, - { 54217, true }, - { 54226, true }, - { 54235, true }, + { 54187, true }, + { 54209, true }, + { 54223, true }, + { 54233, true }, { 54245, true }, - { 54261, true }, - { 54271, true }, - { 54285, true }, - { 54307, false }, - { 54321, false }, - { 54336, true }, - { 54360, true }, - { 54381, true }, - { 54403, true }, - { 54417, true }, - { 54427, true }, - { 54439, true }, - { 54453, true }, - { 54472, true }, - { 54488, true }, - { 54501, true }, - { 54513, true }, - { 54526, true }, - { 54538, true }, - { 54550, true }, - { 54563, true }, - { 54573, true }, - { 54592, true }, - { 54616, true }, - { 54632, true }, - { 54642, true }, - { 54658, true }, - { 54677, true }, - { 54691, true }, - { 54709, true }, - { 54726, true }, - { 54743, true }, - { 54751, false }, - { 54777, true }, - { 54789, true }, - { 54809, true }, - { 54825, true }, - { 54843, true }, - { 54853, true }, - { 54868, true }, - { 54880, true }, - { 54895, true }, - { 54913, true }, - { 54931, true }, - { 54950, true }, - { 54964, true }, - { 54974, true }, - { 54985, true }, - { 55001, true }, - { 55020, true }, - { 55030, true }, - { 55049, true }, - { 55061, true }, - { 55072, true }, - { 55085, true }, - { 55109, true }, - { 55133, true }, - { 55153, true }, - { 55166, false }, - { 55178, true }, - { 55193, true }, - { 55213, true }, - { 55223, true }, - { 55233, false }, - { 55250, true }, - { 55258, true }, - { 55274, true }, - { 55289, true }, - { 55305, true }, - { 55321, true }, - { 55335, true }, - { 55349, true }, - { 55361, true }, - { 55381, true }, + { 54259, true }, + { 54278, true }, + { 54294, true }, + { 54307, true }, + { 54319, true }, + { 54332, true }, + { 54344, true }, + { 54356, true }, + { 54369, true }, + { 54379, true }, + { 54398, true }, + { 54422, true }, + { 54438, true }, + { 54448, true }, + { 54464, true }, + { 54483, true }, + { 54497, true }, + { 54515, true }, + { 54532, true }, + { 54549, true }, + { 54557, false }, + { 54583, true }, + { 54595, true }, + { 54615, true }, + { 54631, true }, + { 54649, true }, + { 54659, true }, + { 54674, true }, + { 54686, true }, + { 54701, true }, + { 54719, true }, + { 54737, true }, + { 54756, true }, + { 54770, true }, + { 54780, true }, + { 54791, true }, + { 54807, true }, + { 54826, true }, + { 54836, true }, + { 54855, true }, + { 54867, true }, + { 54878, true }, + { 54891, true }, + { 54915, true }, + { 54939, true }, + { 54959, true }, + { 54972, false }, + { 54984, true }, + { 54999, true }, + { 55019, true }, + { 55029, true }, + { 55039, false }, + { 55056, true }, + { 55064, true }, + { 55080, true }, + { 55095, true }, + { 55111, true }, + { 55127, true }, + { 55141, true }, + { 55155, true }, + { 55167, true }, + { 55187, true }, + { 55203, true }, + { 55220, true }, + { 55230, true }, + { 55243, true }, + { 55257, true }, + { 55270, true }, + { 55280, true }, + { 55294, true }, + { 55306, true }, + { 55322, true }, + { 55346, true }, + { 55371, true }, + { 55384, true }, { 55397, true }, - { 55414, true }, - { 55424, true }, - { 55437, true }, - { 55451, true }, - { 55464, true }, - { 55474, true }, - { 55488, true }, - { 55500, true }, - { 55516, true }, + { 55409, true }, + { 55428, true }, + { 55441, true }, + { 55454, true }, + { 55467, true }, + { 55487, true }, + { 55502, true }, + { 55520, true }, + { 55529, true }, { 55540, true }, - { 55565, true }, - { 55578, true }, - { 55591, true }, - { 55603, true }, - { 55622, true }, - { 55635, true }, - { 55648, true }, - { 55661, true }, - { 55681, true }, - { 55696, true }, - { 55714, true }, - { 55723, true }, - { 55734, true }, - { 55745, true }, - { 55756, true }, - { 55768, true }, - { 55779, true }, - { 55789, true }, - { 55803, true }, - { 55815, true }, - { 55825, true }, - { 55839, true }, - { 55873, true }, - { 55903, true }, - { 55913, true }, - { 55925, true }, - { 55934, true }, - { 55945, false }, - { 55958, true }, - { 55965, true }, - { 55977, true }, - { 55993, true }, - { 56010, true }, - { 56023, false }, - { 56043, true }, - { 56056, true }, - { 56068, true }, - { 56081, true }, - { 56100, true }, - { 56111, false }, - { 56132, true }, - { 56142, true }, - { 56151, true }, - { 56166, true }, - { 56179, true }, + { 55551, true }, + { 55562, true }, + { 55574, true }, + { 55585, true }, + { 55595, true }, + { 55609, true }, + { 55621, true }, + { 55631, true }, + { 55645, true }, + { 55679, true }, + { 55709, true }, + { 55719, true }, + { 55731, true }, + { 55740, true }, + { 55751, false }, + { 55764, true }, + { 55771, true }, + { 55783, true }, + { 55799, true }, + { 55816, true }, + { 55829, false }, + { 55849, true }, + { 55862, true }, + { 55874, true }, + { 55887, true }, + { 55906, true }, + { 55917, false }, + { 55938, true }, + { 55948, true }, + { 55957, true }, + { 55972, true }, + { 55985, true }, + { 55996, true }, + { 56005, true }, + { 56018, true }, + { 56027, true }, + { 56040, true }, + { 56049, true }, + { 56061, true }, + { 56070, true }, + { 56079, true }, + { 56098, true }, + { 56112, true }, + { 56130, true }, + { 56152, false }, + { 56177, true }, { 56190, true }, { 56199, true }, - { 56212, true }, - { 56221, true }, - { 56234, true }, - { 56243, true }, - { 56255, true }, - { 56264, true }, - { 56273, true }, - { 56292, true }, - { 56306, true }, - { 56324, true }, - { 56346, false }, - { 56371, true }, - { 56384, true }, - { 56393, true }, - { 56414, true }, - { 56424, true }, - { 56436, true }, - { 56461, true }, - { 56477, true }, + { 56220, true }, + { 56230, true }, + { 56242, true }, + { 56267, true }, + { 56283, true }, + { 56296, true }, + { 56311, true }, + { 56325, true }, + { 56334, true }, + { 56352, true }, + { 56362, true }, + { 56380, true }, + { 56391, true }, + { 56417, false }, + { 56432, true }, + { 56447, true }, + { 56456, true }, + { 56465, true }, + { 56479, false }, { 56490, true }, - { 56505, true }, - { 56519, true }, - { 56528, true }, - { 56546, true }, - { 56556, true }, - { 56574, true }, - { 56585, true }, - { 56611, false }, - { 56626, true }, - { 56641, true }, - { 56650, true }, - { 56659, true }, - { 56673, false }, + { 56498, true }, + { 56507, true }, + { 56515, true }, + { 56524, true }, + { 56536, true }, + { 56550, true }, + { 56564, true }, + { 56584, true }, + { 56596, true }, + { 56614, true }, + { 56630, true }, + { 56644, true }, + { 56661, true }, + { 56674, true }, { 56684, true }, - { 56692, true }, - { 56701, true }, - { 56709, true }, - { 56718, true }, - { 56730, true }, - { 56744, true }, - { 56758, true }, - { 56778, true }, - { 56790, true }, - { 56808, true }, - { 56824, true }, - { 56838, true }, - { 56855, true }, - { 56868, true }, - { 56878, true }, - { 56892, true }, - { 56904, true }, - { 56918, true }, - { 56931, true }, - { 56944, true }, - { 56957, true }, - { 56968, true }, - { 56978, true }, - { 56985, true }, - { 56994, true }, - { 57013, true }, - { 57027, true }, - { 57041, true }, - { 57052, true }, - { 57065, true }, - { 57081, true }, - { 57104, true }, - { 57119, true }, + { 56698, true }, + { 56710, true }, + { 56724, true }, + { 56737, true }, + { 56750, true }, + { 56763, true }, + { 56774, true }, + { 56784, true }, + { 56791, true }, + { 56800, true }, + { 56819, true }, + { 56833, true }, + { 56847, true }, + { 56858, true }, + { 56871, true }, + { 56887, true }, + { 56910, true }, + { 56925, true }, + { 56939, true }, + { 56959, true }, + { 56971, true }, + { 56986, true }, + { 57005, true }, + { 57019, true }, + { 57037, true }, + { 57055, true }, + { 57062, true }, + { 57074, true }, + { 57091, true }, + { 57110, true }, + { 57120, true }, { 57133, true }, - { 57153, true }, - { 57165, true }, - { 57180, true }, - { 57199, true }, - { 57213, true }, - { 57231, true }, + { 57143, true }, + { 57157, false }, + { 57174, true }, + { 57187, true }, + { 57197, true }, + { 57209, true }, + { 57221, true }, + { 57234, false }, { 57249, true }, - { 57256, true }, - { 57268, true }, - { 57285, true }, - { 57304, true }, - { 57314, true }, - { 57327, true }, - { 57337, true }, - { 57351, false }, - { 57368, true }, - { 57381, true }, - { 57391, true }, - { 57403, true }, - { 57415, true }, - { 57428, false }, - { 57443, true }, - { 57456, true }, - { 57470, true }, - { 57487, true }, - { 57499, true }, - { 57518, true }, - { 57530, true }, - { 57542, true }, - { 57553, true }, - { 57567, true }, - { 57592, true }, - { 57615, false }, - { 57625, true }, - { 57636, true }, - { 57649, true }, - { 57660, true }, - { 57670, true }, - { 57683, true }, + { 57262, true }, + { 57276, true }, + { 57293, true }, + { 57305, true }, + { 57324, true }, + { 57336, true }, + { 57348, true }, + { 57359, true }, + { 57373, true }, + { 57398, true }, + { 57421, false }, + { 57431, true }, + { 57442, true }, + { 57455, true }, + { 57466, true }, + { 57476, true }, + { 57489, true }, + { 57500, true }, + { 57520, true }, + { 57540, true }, + { 57558, true }, + { 57570, true }, + { 57589, true }, + { 57612, true }, + { 57630, true }, + { 57647, true }, + { 57661, true }, + { 57684, true }, { 57694, true }, - { 57714, true }, - { 57734, true }, - { 57752, true }, - { 57764, true }, - { 57783, true }, - { 57806, true }, - { 57824, true }, - { 57841, true }, - { 57855, true }, - { 57878, true }, - { 57888, true }, - { 57903, true }, - { 57919, true }, - { 57932, true }, - { 57940, true }, - { 57952, true }, - { 57966, true }, - { 57988, true }, - { 57995, true }, - { 58008, true }, - { 58028, true }, - { 58046, true }, - { 58068, true }, - { 58081, true }, - { 58092, true }, - { 58106, true }, - { 58119, true }, - { 58138, true }, - { 58154, true }, - { 58173, true }, - { 58192, true }, - { 58207, true }, - { 58219, true }, - { 58235, true }, - { 58254, true }, - { 58271, true }, - { 58292, true }, - { 58311, true }, - { 58329, true }, - { 58347, true }, - { 58359, true }, - { 58368, true }, - { 58391, true }, + { 57709, true }, + { 57725, true }, + { 57738, true }, + { 57746, true }, + { 57758, true }, + { 57772, true }, + { 57794, true }, + { 57801, true }, + { 57814, true }, + { 57834, true }, + { 57852, true }, + { 57874, true }, + { 57887, true }, + { 57898, true }, + { 57912, true }, + { 57925, true }, + { 57944, true }, + { 57960, true }, + { 57979, true }, + { 57998, true }, + { 58013, true }, + { 58025, true }, + { 58041, true }, + { 58060, true }, + { 58077, true }, + { 58098, true }, + { 58117, true }, + { 58135, true }, + { 58153, true }, + { 58165, true }, + { 58174, true }, + { 58197, true }, + { 58211, true }, + { 58224, true }, + { 58236, true }, + { 58246, true }, + { 58257, false }, + { 58267, true }, + { 58287, true }, + { 58300, true }, + { 58315, true }, + { 58324, true }, + { 58336, true }, + { 58346, true }, + { 58353, true }, + { 58370, true }, + { 58383, true }, + { 58392, true }, { 58405, true }, { 58418, true }, - { 58430, true }, - { 58440, true }, - { 58451, false }, - { 58461, true }, - { 58481, true }, - { 58494, true }, - { 58509, true }, - { 58518, true }, - { 58530, true }, - { 58540, true }, - { 58547, true }, - { 58564, true }, - { 58577, true }, - { 58586, true }, - { 58599, true }, - { 58612, true }, + { 58436, true }, + { 58456, true }, + { 58472, true }, + { 58488, true }, + { 58502, true }, + { 58519, true }, + { 58529, true }, + { 58556, true }, + { 58591, true }, + { 58617, false }, { 58630, true }, - { 58650, true }, - { 58666, true }, - { 58682, true }, - { 58696, true }, - { 58713, true }, - { 58723, true }, - { 58750, true }, - { 58785, true }, - { 58811, false }, - { 58824, true }, - { 58837, true }, - { 58856, true }, - { 58881, true }, - { 58896, true }, - { 58916, false }, - { 58926, true }, - { 58943, true }, - { 58960, true }, - { 58970, true }, - { 58980, true }, - { 58995, true }, - { 59008, true }, - { 59023, true }, - { 59039, true }, - { 59052, true }, - { 59065, true }, + { 58643, true }, + { 58662, true }, + { 58687, true }, + { 58702, true }, + { 58722, false }, + { 58732, true }, + { 58749, true }, + { 58766, true }, + { 58776, true }, + { 58786, true }, + { 58801, true }, + { 58814, true }, + { 58829, true }, + { 58845, true }, + { 58858, true }, + { 58871, true }, + { 58885, true }, + { 58900, true }, + { 58912, true }, + { 58925, true }, + { 58944, true }, + { 58968, true }, + { 58990, true }, + { 59011, true }, + { 59036, true }, + { 59059, true }, { 59079, true }, - { 59094, true }, - { 59106, true }, - { 59119, true }, - { 59138, true }, - { 59162, true }, - { 59184, true }, - { 59205, true }, - { 59230, true }, - { 59253, true }, - { 59273, true }, - { 59284, true }, - { 59296, true }, - { 59316, true }, - { 59333, true }, - { 59354, true }, - { 59372, true }, - { 59395, true }, - { 59411, true }, - { 59431, true }, - { 59444, true }, + { 59090, true }, + { 59102, true }, + { 59122, true }, + { 59139, true }, + { 59160, true }, + { 59178, true }, + { 59201, true }, + { 59217, true }, + { 59237, true }, + { 59250, true }, + { 59260, true }, + { 59271, true }, + { 59290, true }, + { 59300, true }, + { 59310, true }, + { 59318, true }, + { 59331, true }, + { 59344, true }, + { 59353, true }, + { 59360, true }, + { 59367, false }, + { 59383, true }, + { 59392, true }, + { 59409, true }, + { 59423, true }, + { 59442, true }, { 59454, true }, - { 59465, true }, - { 59484, true }, - { 59494, true }, - { 59504, true }, - { 59512, true }, - { 59525, true }, - { 59538, true }, - { 59547, true }, - { 59554, true }, - { 59561, false }, - { 59577, true }, - { 59586, true }, - { 59603, true }, - { 59617, true }, - { 59636, true }, - { 59648, true }, - { 59671, true }, - { 59685, true }, - { 59701, true }, - { 59713, true }, - { 59729, true }, - { 59746, true }, - { 59764, true }, - { 59785, true }, - { 59802, true }, - { 59819, true }, - { 59836, true }, - { 59853, true }, - { 59870, true }, - { 59887, true }, - { 59903, true }, - { 59917, true }, + { 59477, true }, + { 59491, true }, + { 59507, true }, + { 59519, true }, + { 59535, true }, + { 59552, true }, + { 59570, true }, + { 59591, true }, + { 59608, true }, + { 59625, true }, + { 59642, true }, + { 59659, true }, + { 59676, true }, + { 59693, true }, + { 59709, true }, + { 59723, true }, + { 59748, true }, + { 59759, true }, + { 59775, true }, + { 59791, true }, + { 59807, false }, + { 59820, true }, + { 59830, false }, + { 59846, true }, + { 59860, true }, + { 59873, true }, + { 59883, true }, + { 59894, true }, + { 59908, true }, + { 59922, true }, + { 59932, false }, { 59942, true }, - { 59953, true }, - { 59969, true }, - { 59985, true }, - { 60001, false }, - { 60014, true }, - { 60024, false }, - { 60040, true }, - { 60054, true }, - { 60067, true }, - { 60077, true }, - { 60088, true }, - { 60102, true }, - { 60116, true }, - { 60126, false }, + { 59951, true }, + { 59970, true }, + { 59979, false }, + { 59999, true }, + { 60022, true }, + { 60039, true }, + { 60058, true }, + { 60075, true }, + { 60087, true }, + { 60098, false }, + { 60110, true }, + { 60121, true }, { 60136, true }, - { 60145, true }, + { 60154, true }, { 60164, true }, - { 60173, false }, - { 60193, true }, - { 60216, true }, - { 60233, true }, - { 60252, true }, - { 60269, true }, + { 60172, true }, + { 60186, true }, + { 60199, false }, + { 60212, true }, + { 60227, true }, + { 60241, true }, + { 60253, true }, + { 60267, true }, { 60281, true }, - { 60292, false }, - { 60304, true }, - { 60315, true }, - { 60330, true }, - { 60348, true }, - { 60358, true }, - { 60366, true }, - { 60380, true }, - { 60393, false }, - { 60406, true }, - { 60421, true }, - { 60435, true }, - { 60447, true }, - { 60461, true }, - { 60475, true }, + { 60291, true }, + { 60307, true }, + { 60323, true }, + { 60342, true }, + { 60361, false }, + { 60390, true }, + { 60404, true }, + { 60418, true }, + { 60439, true }, + { 60457, true }, + { 60472, true }, { 60485, true }, - { 60501, true }, - { 60517, true }, - { 60536, true }, - { 60555, false }, - { 60584, true }, - { 60598, true }, - { 60612, true }, + { 60503, true }, + { 60523, true }, + { 60535, true }, + { 60547, true }, + { 60562, true }, + { 60585, true }, + { 60609, true }, { 60633, true }, - { 60651, true }, - { 60666, true }, - { 60679, true }, + { 60643, true }, + { 60665, true }, { 60697, true }, - { 60717, true }, - { 60729, true }, - { 60741, true }, - { 60756, true }, - { 60779, true }, - { 60803, true }, - { 60827, true }, - { 60837, true }, - { 60859, true }, - { 60891, true }, - { 60902, true }, - { 60912, true }, - { 60927, true }, - { 60941, false }, - { 60961, true }, - { 60979, true }, - { 60988, true }, - { 60995, true }, - { 61006, true }, - { 61015, true }, - { 61028, true }, - { 61051, true }, - { 61066, false }, - { 61077, false }, - { 61089, false }, - { 61100, true }, + { 60708, true }, + { 60718, true }, + { 60733, true }, + { 60747, false }, + { 60767, true }, + { 60785, true }, + { 60794, true }, + { 60801, true }, + { 60812, true }, + { 60821, true }, + { 60834, true }, + { 60857, true }, + { 60872, false }, + { 60883, false }, + { 60895, false }, + { 60906, true }, + { 60922, true }, + { 60948, false }, + { 60964, true }, + { 60974, true }, + { 60982, true }, + { 60991, true }, + { 61003, true }, + { 61015, false }, + { 61027, true }, + { 61040, true }, + { 61057, true }, + { 61077, true }, + { 61088, true }, + { 61104, true }, { 61116, true }, - { 61142, false }, - { 61158, true }, + { 61133, true }, + { 61142, true }, + { 61155, true }, { 61168, true }, - { 61176, true }, - { 61185, true }, - { 61197, true }, - { 61209, false }, - { 61221, true }, - { 61234, true }, - { 61251, true }, - { 61271, true }, - { 61282, true }, - { 61298, true }, - { 61310, true }, - { 61327, true }, - { 61336, true }, - { 61349, true }, + { 61186, true }, + { 61199, true }, + { 61223, true }, + { 61237, true }, + { 61254, true }, + { 61269, true }, + { 61279, true }, + { 61291, true }, + { 61303, true }, + { 61318, true }, + { 61335, true }, + { 61343, true }, { 61362, true }, - { 61380, true }, - { 61393, true }, - { 61417, true }, - { 61431, true }, - { 61448, true }, - { 61463, true }, + { 61379, true }, + { 61396, true }, + { 61411, true }, + { 61423, true }, + { 61448, false }, + { 61461, false }, { 61473, true }, - { 61485, true }, - { 61497, true }, - { 61512, true }, - { 61529, true }, - { 61537, true }, - { 61556, true }, - { 61573, true }, - { 61590, true }, - { 61605, true }, - { 61617, true }, - { 61642, false }, - { 61655, false }, - { 61667, true }, - { 61687, true }, - { 61700, true }, - { 61712, true }, - { 61736, true }, - { 61749, true }, - { 61768, true }, - { 61780, true }, - { 61792, true }, - { 61816, true }, - { 61837, true }, - { 61851, true }, - { 61876, true }, - { 61890, true }, - { 61903, false }, - { 61919, true }, - { 61931, true }, - { 61944, true }, - { 61954, true }, - { 61965, true }, - { 61976, true }, - { 61988, true }, - { 62008, true }, - { 62017, true }, - { 62027, true }, - { 62041, true }, - { 62053, true }, - { 62069, true }, - { 62091, true }, - { 62101, false }, - { 62115, true }, - { 62128, true }, - { 62149, true }, - { 62162, true }, - { 62175, true }, - { 62183, false }, - { 62200, true }, - { 62214, true }, + { 61493, true }, + { 61506, true }, + { 61518, true }, + { 61542, true }, + { 61555, true }, + { 61574, true }, + { 61586, true }, + { 61598, true }, + { 61622, true }, + { 61643, true }, + { 61657, true }, + { 61682, true }, + { 61696, true }, + { 61709, false }, + { 61725, true }, + { 61737, true }, + { 61750, true }, + { 61760, true }, + { 61771, true }, + { 61782, true }, + { 61794, true }, + { 61814, true }, + { 61823, true }, + { 61833, true }, + { 61847, true }, + { 61859, true }, + { 61875, true }, + { 61897, true }, + { 61907, false }, + { 61921, true }, + { 61934, true }, + { 61955, true }, + { 61968, true }, + { 61981, true }, + { 61989, false }, + { 62006, true }, + { 62020, true }, + { 62036, true }, + { 62055, true }, + { 62074, true }, + { 62084, true }, + { 62098, true }, + { 62106, true }, + { 62125, false }, + { 62143, true }, + { 62152, true }, + { 62165, true }, + { 62180, true }, + { 62200, false }, + { 62213, true }, { 62230, true }, - { 62249, true }, - { 62268, true }, - { 62278, true }, - { 62292, true }, - { 62300, true }, - { 62319, false }, - { 62337, true }, + { 62243, true }, + { 62256, true }, + { 62280, true }, + { 62307, true }, + { 62320, false }, + { 62334, true }, { 62346, true }, - { 62359, true }, - { 62374, true }, - { 62394, false }, - { 62407, true }, - { 62424, true }, - { 62437, true }, - { 62450, true }, - { 62474, true }, - { 62501, true }, - { 62514, false }, - { 62528, true }, - { 62540, true }, - { 62553, false }, - { 62565, true }, - { 62577, true }, - { 62592, true }, - { 62610, true }, - { 62623, true }, - { 62646, false }, - { 62657, true }, - { 62673, true }, - { 62691, true }, + { 62359, false }, + { 62371, true }, + { 62383, true }, + { 62398, true }, + { 62416, true }, + { 62429, true }, + { 62452, false }, + { 62463, true }, + { 62479, true }, + { 62497, true }, + { 62517, true }, + { 62539, true }, + { 62555, true }, + { 62572, true }, + { 62589, true }, + { 62607, true }, + { 62620, true }, + { 62637, true }, + { 62652, true }, + { 62666, true }, + { 62682, true }, + { 62701, true }, { 62711, true }, - { 62733, true }, + { 62719, true }, + { 62734, true }, { 62749, true }, - { 62766, true }, - { 62783, true }, - { 62801, true }, - { 62814, true }, - { 62831, true }, - { 62846, true }, - { 62860, true }, - { 62876, true }, - { 62895, true }, - { 62905, true }, - { 62913, true }, - { 62922, true }, - { 62937, true }, - { 62952, true }, - { 62969, false }, - { 62980, true }, - { 62996, true }, - { 63010, true }, + { 62766, false }, + { 62777, true }, + { 62793, true }, + { 62807, true }, + { 62819, true }, + { 62827, true }, + { 62836, true }, + { 62852, true }, + { 62862, true }, + { 62868, true }, + { 62880, true }, + { 62902, true }, + { 62916, true }, + { 62931, true }, + { 62942, true }, + { 62955, true }, + { 62971, true }, + { 62989, false }, + { 63002, true }, + { 63011, true }, { 63022, true }, - { 63030, true }, - { 63039, true }, - { 63055, true }, - { 63065, true }, - { 63071, true }, - { 63083, true }, - { 63105, true }, - { 63119, true }, - { 63134, true }, - { 63145, true }, - { 63158, true }, - { 63174, true }, - { 63192, false }, - { 63205, true }, - { 63214, true }, - { 63225, true }, - { 63244, true }, - { 63252, true }, - { 63269, true }, - { 63278, true }, - { 63287, true }, - { 63306, true }, - { 63317, true }, + { 63041, true }, + { 63049, true }, + { 63066, true }, + { 63075, true }, + { 63084, true }, + { 63103, true }, + { 63114, true }, + { 63130, true }, + { 63151, true }, + { 63168, true }, + { 63181, true }, + { 63192, true }, + { 63209, true }, + { 63234, true }, + { 63253, false }, + { 63267, true }, + { 63282, true }, + { 63294, true }, + { 63305, true }, + { 63319, true }, { 63333, true }, - { 63354, true }, - { 63371, true }, - { 63384, true }, - { 63395, true }, - { 63412, true }, - { 63437, true }, - { 63456, false }, - { 63470, true }, + { 63350, true }, + { 63370, true }, + { 63379, true }, + { 63393, true }, + { 63404, true }, + { 63424, false }, + { 63448, true }, + { 63459, false }, + { 63467, true }, { 63485, true }, - { 63497, true }, - { 63508, true }, - { 63522, true }, - { 63536, true }, - { 63553, true }, - { 63573, true }, - { 63582, true }, - { 63596, true }, - { 63607, true }, - { 63627, false }, - { 63651, true }, - { 63662, false }, - { 63670, true }, - { 63688, true }, - { 63706, true }, + { 63503, true }, + { 63525, true }, + { 63547, true }, + { 63563, true }, + { 63575, true }, + { 63587, true }, + { 63601, true }, + { 63614, false }, + { 63631, true }, + { 63640, true }, + { 63662, true }, + { 63682, true }, + { 63709, true }, { 63728, true }, - { 63750, true }, - { 63766, true }, - { 63778, true }, - { 63790, true }, - { 63804, true }, - { 63817, false }, - { 63834, true }, - { 63843, true }, - { 63865, true }, - { 63885, true }, - { 63912, true }, - { 63931, true }, - { 63951, true }, - { 63960, true }, - { 63977, true }, - { 63992, true }, - { 64021, true }, - { 64043, true }, - { 64061, true }, - { 64075, true }, - { 64090, true }, - { 64103, true }, - { 64113, true }, - { 64131, true }, - { 64150, true }, - { 64168, true }, - { 64186, true }, - { 64194, true }, - { 64201, false }, - { 64221, true }, - { 64230, true }, - { 64245, true }, - { 64263, true }, - { 64275, true }, - { 64284, false }, - { 64294, true }, - { 64302, true }, - { 64319, true }, - { 64330, true }, - { 64340, true }, - { 64357, true }, - { 64379, true }, - { 64394, true }, - { 64411, true }, - { 64421, true }, - { 64434, true }, - { 64449, true }, - { 64465, true }, - { 64476, true }, - { 64488, true }, - { 64510, true }, - { 64523, true }, - { 64534, true }, - { 64550, true }, - { 64566, true }, - { 64576, true }, - { 64588, true }, - { 64596, true }, - { 64615, true }, - { 64634, true }, - { 64647, true }, - { 64661, true }, + { 63748, true }, + { 63757, true }, + { 63774, true }, + { 63789, true }, + { 63818, true }, + { 63840, true }, + { 63858, true }, + { 63872, true }, + { 63887, true }, + { 63900, true }, + { 63910, true }, + { 63928, true }, + { 63947, true }, + { 63965, true }, + { 63983, true }, + { 63991, true }, + { 63998, false }, + { 64018, true }, + { 64027, true }, + { 64042, true }, + { 64060, true }, + { 64072, true }, + { 64081, false }, + { 64091, true }, + { 64099, true }, + { 64116, true }, + { 64127, true }, + { 64137, true }, + { 64154, true }, + { 64176, true }, + { 64191, true }, + { 64208, true }, + { 64218, true }, + { 64231, true }, + { 64246, true }, + { 64262, true }, + { 64273, true }, + { 64285, true }, + { 64307, true }, + { 64320, true }, + { 64331, true }, + { 64347, true }, + { 64363, true }, + { 64373, true }, + { 64385, true }, + { 64393, true }, + { 64412, true }, + { 64431, true }, + { 64444, true }, + { 64458, true }, + { 64475, true }, + { 64487, true }, + { 64501, true }, + { 64513, true }, + { 64527, true }, + { 64541, true }, + { 64563, true }, + { 64579, true }, + { 64598, true }, + { 64611, true }, + { 64629, true }, + { 64644, true }, + { 64659, true }, { 64678, true }, - { 64690, true }, - { 64704, true }, + { 64691, true }, { 64716, true }, - { 64730, true }, - { 64744, true }, - { 64766, true }, - { 64782, true }, - { 64801, true }, - { 64814, true }, - { 64832, true }, - { 64847, true }, - { 64862, true }, - { 64881, true }, - { 64894, true }, - { 64919, true }, - { 64932, true }, - { 64943, true }, - { 64957, true }, - { 64970, true }, - { 64988, true }, - { 65007, true }, - { 65021, true }, - { 65032, true }, - { 65045, true }, - { 65061, true }, - { 65073, true }, - { 65089, true }, - { 65102, true }, - { 65118, true }, - { 65133, true }, - { 65148, true }, - { 65162, true }, - { 65181, true }, - { 65194, true }, + { 64729, true }, + { 64740, true }, + { 64754, true }, + { 64767, true }, + { 64785, true }, + { 64804, true }, + { 64818, true }, + { 64829, true }, + { 64842, true }, + { 64858, true }, + { 64870, true }, + { 64886, true }, + { 64899, true }, + { 64915, true }, + { 64930, true }, + { 64945, true }, + { 64959, true }, + { 64978, true }, + { 64991, true }, + { 65001, true }, + { 65013, true }, + { 65023, true }, + { 65039, true }, + { 65047, true }, + { 65055, true }, + { 65068, false }, + { 65079, true }, + { 65095, true }, + { 65105, true }, + { 65122, true }, + { 65140, false }, + { 65153, true }, + { 65166, true }, + { 65175, true }, + { 65190, true }, { 65204, true }, - { 65216, true }, - { 65226, true }, - { 65242, true }, - { 65250, true }, - { 65258, true }, - { 65271, false }, - { 65282, true }, - { 65298, true }, - { 65308, true }, - { 65325, true }, - { 65343, false }, + { 65222, true }, + { 65238, true }, + { 65247, true }, + { 65256, true }, + { 65271, true }, + { 65281, true }, + { 65291, true }, + { 65305, true }, + { 65317, true }, + { 65334, true }, + { 65348, true }, { 65356, true }, - { 65369, true }, - { 65378, true }, - { 65393, true }, - { 65407, true }, - { 65425, true }, - { 65441, true }, - { 65450, true }, + { 65364, true }, + { 65373, true }, + { 65385, true }, + { 65398, false }, + { 65406, true }, + { 65432, true }, + { 65445, true }, { 65459, true }, - { 65474, true }, + { 65469, true }, { 65484, true }, - { 65494, true }, - { 65508, true }, - { 65520, true }, - { 65537, true }, - { 65551, true }, - { 65559, true }, - { 65567, true }, - { 65576, true }, - { 65588, true }, - { 65601, false }, - { 65609, true }, + { 65495, true }, + { 65506, true }, + { 65517, true }, + { 65529, true }, + { 65542, true }, + { 65550, false }, + { 65564, true }, + { 65585, true }, + { 65610, true }, + { 65621, true }, { 65635, true }, - { 65648, true }, - { 65662, true }, - { 65672, true }, - { 65687, true }, - { 65698, true }, - { 65709, true }, - { 65720, true }, - { 65732, true }, - { 65745, true }, - { 65753, false }, + { 65653, true }, + { 65664, true }, + { 65678, true }, + { 65694, true }, + { 65707, false }, + { 65723, true }, + { 65734, true }, + { 65753, true }, { 65767, true }, - { 65788, true }, - { 65813, true }, - { 65824, true }, - { 65838, true }, - { 65856, true }, - { 65867, true }, - { 65881, true }, - { 65897, true }, - { 65910, false }, - { 65926, true }, - { 65937, true }, + { 65776, true }, + { 65790, true }, + { 65801, true }, + { 65810, true }, + { 65828, true }, + { 65842, true }, + { 65860, true }, + { 65879, true }, + { 65889, true }, + { 65902, true }, + { 65913, true }, + { 65922, true }, + { 65942, true }, { 65956, true }, - { 65970, true }, - { 65979, true }, - { 65993, true }, - { 66004, true }, - { 66013, true }, - { 66031, true }, - { 66045, true }, - { 66063, true }, - { 66082, true }, - { 66092, true }, - { 66105, true }, - { 66116, true }, - { 66125, true }, - { 66145, true }, + { 65964, true }, + { 65974, true }, + { 65981, true }, + { 65994, true }, + { 66005, true }, + { 66019, true }, + { 66033, true }, + { 66047, true }, + { 66057, true }, + { 66067, true }, + { 66077, true }, + { 66089, true }, + { 66096, true }, + { 66106, true }, + { 66115, true }, + { 66130, true }, + { 66137, true }, + { 66147, true }, { 66159, true }, - { 66167, true }, - { 66177, true }, - { 66184, true }, - { 66197, true }, + { 66169, true }, + { 66180, true }, + { 66187, true }, + { 66196, true }, { 66208, true }, - { 66222, true }, - { 66236, true }, - { 66250, true }, - { 66260, true }, - { 66270, true }, - { 66280, true }, - { 66292, true }, - { 66299, true }, - { 66309, true }, - { 66318, true }, - { 66333, true }, - { 66340, true }, - { 66350, true }, - { 66362, true }, - { 66372, true }, - { 66383, true }, - { 66390, true }, - { 66399, true }, - { 66411, true }, - { 66420, true }, - { 66434, true }, + { 66217, true }, + { 66231, true }, + { 66244, true }, + { 66253, true }, + { 66265, true }, + { 66287, true }, + { 66310, true }, + { 66324, true }, + { 66339, true }, + { 66354, true }, + { 66370, true }, + { 66388, true }, + { 66398, true }, + { 66418, true }, + { 66429, true }, { 66447, true }, - { 66456, true }, - { 66468, true }, - { 66490, true }, - { 66513, true }, - { 66527, true }, - { 66542, true }, - { 66557, true }, - { 66573, true }, + { 66459, true }, + { 66470, true }, + { 66486, true }, + { 66503, true }, + { 66518, true }, + { 66534, true }, + { 66549, true }, + { 66565, true }, + { 66574, true }, { 66591, true }, - { 66601, true }, - { 66621, true }, - { 66632, true }, - { 66650, true }, - { 66662, true }, - { 66673, true }, - { 66689, true }, - { 66706, true }, - { 66721, true }, - { 66737, true }, - { 66752, true }, + { 66608, true }, + { 66626, true }, + { 66638, true }, + { 66655, true }, + { 66669, true }, + { 66683, true }, + { 66698, true }, + { 66713, true }, + { 66724, true }, + { 66738, true }, + { 66753, true }, { 66768, true }, - { 66777, true }, - { 66794, true }, - { 66811, true }, - { 66829, true }, - { 66841, true }, - { 66858, true }, - { 66872, true }, - { 66886, true }, - { 66901, true }, - { 66916, true }, - { 66927, true }, - { 66941, true }, - { 66956, true }, - { 66971, true }, - { 66986, true }, - { 67008, true }, - { 67026, true }, - { 67047, true }, - { 67071, true }, - { 67093, true }, - { 67105, true }, - { 67118, true }, - { 67134, true }, - { 67148, true }, - { 67161, true }, - { 67179, true }, - { 67192, false }, - { 67213, true }, - { 67231, true }, - { 67247, true }, + { 66783, true }, + { 66805, true }, + { 66823, true }, + { 66844, true }, + { 66868, true }, + { 66890, true }, + { 66902, true }, + { 66915, true }, + { 66931, true }, + { 66945, true }, + { 66958, true }, + { 66976, true }, + { 66989, false }, + { 67010, true }, + { 67028, true }, + { 67044, true }, + { 67057, true }, + { 67072, true }, + { 67086, true }, + { 67097, true }, + { 67122, true }, + { 67138, true }, + { 67155, false }, + { 67172, true }, + { 67184, true }, + { 67197, true }, + { 67208, true }, + { 67223, true }, + { 67235, false }, + { 67246, true }, { 67260, true }, - { 67275, true }, - { 67289, true }, - { 67300, true }, - { 67325, true }, - { 67341, true }, - { 67358, true }, - { 67370, false }, - { 67387, true }, - { 67399, true }, - { 67412, true }, - { 67423, true }, - { 67438, true }, - { 67450, false }, + { 67270, true }, + { 67279, true }, + { 67286, true }, + { 67303, true }, + { 67315, true }, + { 67324, true }, + { 67335, true }, + { 67347, true }, + { 67354, false }, + { 67361, false }, + { 67370, true }, + { 67382, true }, + { 67394, true }, + { 67404, true }, + { 67413, true }, + { 67422, true }, + { 67429, true }, + { 67441, false }, + { 67453, false }, { 67461, true }, - { 67475, true }, - { 67485, true }, - { 67494, true }, - { 67501, true }, - { 67518, true }, - { 67530, true }, - { 67539, true }, - { 67550, true }, - { 67562, true }, - { 67569, false }, - { 67576, false }, - { 67585, true }, - { 67597, true }, - { 67609, true }, - { 67619, true }, - { 67628, true }, - { 67637, true }, - { 67644, true }, - { 67656, false }, - { 67668, false }, - { 67676, true }, - { 67688, true }, - { 67701, true }, + { 67473, true }, + { 67486, true }, + { 67500, true }, + { 67513, true }, + { 67525, true }, + { 67536, true }, + { 67546, true }, + { 67554, true }, + { 67567, true }, + { 67579, true }, + { 67590, true }, + { 67602, true }, + { 67612, false }, + { 67630, true }, + { 67648, true }, + { 67670, true }, + { 67692, true }, + { 67703, true }, { 67715, true }, - { 67728, true }, - { 67740, true }, - { 67751, true }, - { 67761, true }, - { 67769, true }, - { 67782, true }, - { 67794, true }, - { 67805, true }, - { 67817, true }, - { 67827, false }, - { 67845, true }, - { 67863, true }, - { 67885, true }, - { 67907, true }, + { 67730, true }, + { 67741, true }, + { 67757, true }, + { 67780, true }, + { 67798, true }, + { 67809, true }, + { 67827, true }, + { 67854, true }, + { 67874, true }, + { 67886, true }, + { 67904, true }, { 67918, true }, - { 67930, true }, - { 67945, true }, - { 67956, true }, - { 67972, true }, - { 67995, true }, - { 68013, true }, - { 68024, true }, - { 68042, true }, - { 68069, true }, - { 68089, true }, - { 68101, true }, - { 68119, true }, - { 68133, true }, - { 68149, true }, - { 68165, true }, - { 68178, true }, - { 68192, true }, - { 68206, true }, - { 68220, true }, - { 68231, true }, - { 68255, true }, - { 68283, false }, + { 67934, true }, + { 67950, true }, + { 67963, true }, + { 67977, true }, + { 67991, true }, + { 68005, true }, + { 68016, true }, + { 68040, true }, + { 68068, false }, + { 68079, true }, + { 68097, true }, + { 68115, true }, + { 68139, true }, + { 68160, true }, + { 68181, true }, + { 68202, true }, + { 68216, true }, + { 68229, true }, + { 68248, true }, + { 68266, true }, + { 68276, true }, { 68294, true }, { 68312, true }, - { 68330, true }, - { 68354, true }, - { 68375, true }, - { 68396, true }, - { 68417, true }, + { 68333, true }, + { 68353, true }, + { 68363, true }, + { 68379, true }, + { 68393, true }, + { 68409, true }, + { 68420, true }, { 68431, true }, - { 68444, true }, - { 68463, true }, - { 68481, true }, - { 68491, true }, - { 68509, true }, - { 68527, true }, - { 68548, true }, - { 68568, true }, - { 68578, true }, - { 68594, true }, - { 68608, true }, + { 68441, true }, + { 68451, true }, + { 68468, true }, + { 68482, false }, + { 68495, true }, + { 68507, true }, + { 68518, true }, + { 68535, true }, + { 68545, true }, + { 68559, true }, + { 68576, true }, + { 68595, true }, + { 68613, true }, { 68624, true }, { 68635, true }, { 68646, true }, - { 68656, true }, - { 68666, true }, - { 68683, true }, - { 68697, false }, + { 68657, true }, + { 68668, true }, + { 68679, true }, + { 68690, true }, { 68710, true }, - { 68722, true }, - { 68733, true }, - { 68750, true }, - { 68760, true }, - { 68774, true }, - { 68791, true }, - { 68810, true }, - { 68828, true }, - { 68839, true }, + { 68723, true }, + { 68736, true }, + { 68746, true }, + { 68761, true }, + { 68775, true }, + { 68790, true }, + { 68803, true }, + { 68820, true }, + { 68837, true }, { 68850, true }, - { 68861, true }, - { 68872, true }, - { 68883, true }, - { 68894, true }, - { 68905, true }, - { 68925, true }, - { 68938, true }, - { 68951, true }, - { 68961, true }, - { 68976, true }, - { 68990, true }, - { 69005, true }, - { 69018, true }, - { 69035, true }, - { 69052, true }, - { 69065, true }, - { 69079, true }, - { 69088, true }, - { 69107, false }, - { 69118, true }, - { 69129, true }, - { 69139, true }, - { 69156, true }, - { 69165, true }, - { 69179, true }, - { 69187, true }, - { 69195, true }, - { 69202, true }, - { 69209, true }, - { 69218, true }, - { 69237, true }, - { 69252, true }, - { 69273, true }, - { 69293, true }, - { 69310, true }, - { 69326, true }, - { 69346, true }, - { 69365, true }, + { 68864, true }, + { 68873, true }, + { 68892, false }, + { 68903, true }, + { 68914, true }, + { 68924, true }, + { 68941, true }, + { 68950, true }, + { 68964, true }, + { 68972, true }, + { 68980, true }, + { 68987, true }, + { 68994, true }, + { 69003, true }, + { 69022, true }, + { 69037, true }, + { 69058, true }, + { 69078, true }, + { 69095, true }, + { 69111, true }, + { 69131, true }, + { 69150, true }, + { 69171, true }, + { 69184, true }, + { 69199, true }, + { 69211, true }, + { 69227, false }, + { 69241, false }, + { 69254, false }, + { 69261, true }, + { 69269, true }, + { 69281, true }, + { 69291, true }, + { 69306, true }, + { 69319, true }, + { 69330, true }, + { 69345, true }, + { 69367, true }, { 69386, true }, - { 69399, true }, - { 69414, true }, - { 69426, true }, - { 69442, false }, - { 69456, false }, - { 69469, false }, - { 69476, true }, - { 69484, true }, - { 69496, true }, - { 69506, true }, - { 69521, true }, - { 69534, true }, - { 69545, true }, - { 69560, true }, - { 69582, true }, - { 69601, true }, - { 69613, true }, - { 69624, true }, - { 69640, true }, - { 69658, true }, - { 69676, true }, - { 69690, true }, - { 69700, true }, - { 69707, true }, - { 69718, true }, - { 69730, false }, - { 69750, false }, - { 69766, true }, - { 69777, true }, - { 69792, true }, - { 69805, true }, - { 69818, true }, - { 69830, true }, - { 69847, true }, - { 69858, false }, - { 69868, true }, - { 69883, true }, - { 69899, true }, - { 69928, true }, - { 69947, true }, - { 69961, true }, - { 69978, true }, - { 70004, true }, - { 70019, true }, - { 70034, true }, - { 70049, true }, - { 70063, true }, - { 70082, true }, + { 69398, true }, + { 69409, true }, + { 69425, true }, + { 69443, true }, + { 69461, true }, + { 69475, true }, + { 69485, true }, + { 69492, true }, + { 69503, true }, + { 69515, false }, + { 69535, false }, + { 69551, true }, + { 69562, true }, + { 69577, true }, + { 69590, true }, + { 69603, true }, + { 69615, true }, + { 69632, true }, + { 69643, false }, + { 69653, true }, + { 69668, true }, + { 69684, true }, + { 69713, true }, + { 69732, true }, + { 69746, true }, + { 69763, true }, + { 69789, true }, + { 69804, true }, + { 69819, true }, + { 69834, true }, + { 69848, true }, + { 69867, true }, + { 69892, true }, + { 69908, true }, + { 69929, true }, + { 69963, true }, + { 69987, true }, + { 70016, false }, + { 70031, true }, + { 70047, true }, + { 70072, true }, + { 70084, true }, + { 70098, true }, { 70107, true }, - { 70123, true }, - { 70144, true }, - { 70178, true }, - { 70202, true }, - { 70231, false }, - { 70246, true }, - { 70262, true }, - { 70287, true }, - { 70299, true }, - { 70313, true }, - { 70322, true }, - { 70342, false }, - { 70352, true }, - { 70367, true }, - { 70375, true }, - { 70384, true }, - { 70392, true }, - { 70408, true }, - { 70430, true }, - { 70442, true }, + { 70127, false }, + { 70137, true }, + { 70152, true }, + { 70160, true }, + { 70169, true }, + { 70177, true }, + { 70193, true }, + { 70215, true }, + { 70227, true }, + { 70239, true }, + { 70247, true }, + { 70258, true }, + { 70268, false }, + { 70280, true }, + { 70296, true }, + { 70312, true }, + { 70326, true }, + { 70341, true }, + { 70355, true }, + { 70366, true }, + { 70381, true }, + { 70396, true }, + { 70407, false }, + { 70419, true }, + { 70433, true }, + { 70444, true }, { 70454, true }, - { 70462, true }, - { 70473, true }, - { 70483, false }, - { 70495, true }, - { 70511, true }, - { 70527, true }, - { 70541, true }, - { 70556, true }, - { 70570, true }, - { 70581, true }, - { 70596, true }, - { 70611, true }, - { 70622, false }, - { 70634, true }, - { 70648, true }, + { 70471, true }, + { 70489, true }, + { 70499, true }, + { 70522, true }, + { 70536, true }, + { 70552, true }, + { 70565, true }, + { 70584, true }, + { 70597, true }, + { 70614, true }, + { 70632, false }, + { 70645, true }, { 70659, true }, { 70669, true }, - { 70686, true }, - { 70704, true }, - { 70714, true }, - { 70737, true }, - { 70751, true }, - { 70767, true }, + { 70680, false }, + { 70689, true }, + { 70705, true }, + { 70712, true }, + { 70733, false }, + { 70748, true }, + { 70763, true }, { 70780, true }, - { 70799, true }, - { 70812, true }, - { 70829, true }, - { 70847, false }, - { 70860, true }, - { 70874, true }, - { 70884, true }, - { 70895, false }, + { 70789, true }, + { 70798, true }, + { 70810, true }, + { 70828, true }, + { 70838, true }, + { 70851, true }, + { 70862, true }, + { 70877, true }, + { 70888, true }, { 70904, true }, - { 70920, true }, + { 70917, true }, { 70927, true }, - { 70948, false }, - { 70963, true }, - { 70978, true }, - { 70995, true }, - { 71004, true }, - { 71013, true }, - { 71025, true }, - { 71043, true }, - { 71053, true }, - { 71066, true }, - { 71077, true }, - { 71092, true }, - { 71103, true }, - { 71119, true }, - { 71132, true }, - { 71142, true }, - { 71158, true }, + { 70943, true }, + { 70965, true }, + { 70977, true }, + { 70990, true }, + { 71003, true }, + { 71018, true }, + { 71032, true }, + { 71048, false }, + { 71061, true }, + { 71073, true }, + { 71085, true }, + { 71102, true }, + { 71118, true }, + { 71130, false }, + { 71140, true }, + { 71153, true }, + { 71169, true }, { 71180, true }, - { 71192, true }, - { 71205, true }, - { 71218, true }, - { 71233, true }, - { 71247, true }, - { 71263, false }, - { 71276, true }, - { 71288, true }, - { 71300, true }, - { 71317, true }, - { 71333, true }, - { 71345, false }, - { 71355, true }, - { 71368, true }, - { 71384, true }, - { 71395, true }, - { 71415, false }, - { 71423, true }, - { 71435, true }, - { 71446, true }, - { 71465, false }, - { 71485, true }, - { 71494, true }, - { 71505, true }, - { 71536, true }, - { 71550, true }, - { 71564, true }, - { 71584, true }, - { 71603, true }, - { 71619, true }, - { 71634, true }, - { 71648, true }, - { 71670, true }, - { 71678, true }, - { 71691, true }, + { 71200, false }, + { 71208, true }, + { 71220, true }, + { 71231, true }, + { 71250, false }, + { 71270, true }, + { 71279, true }, + { 71290, true }, + { 71321, true }, + { 71335, true }, + { 71349, true }, + { 71369, true }, + { 71388, true }, + { 71404, true }, + { 71419, true }, + { 71433, true }, + { 71455, true }, + { 71463, true }, + { 71476, true }, + { 71487, true }, + { 71499, true }, + { 71511, true }, + { 71527, true }, + { 71538, true }, + { 71563, true }, + { 71579, true }, + { 71595, true }, + { 71611, true }, + { 71635, true }, + { 71651, true }, + { 71667, false }, + { 71680, true }, + { 71690, true }, { 71702, true }, { 71714, true }, - { 71726, true }, - { 71742, true }, - { 71753, true }, - { 71778, true }, - { 71794, true }, - { 71810, true }, - { 71826, true }, - { 71845, true }, - { 71869, true }, - { 71885, true }, - { 71901, false }, - { 71914, true }, - { 71924, true }, - { 71936, true }, - { 71948, true }, - { 71963, true }, + { 71729, true }, + { 71749, true }, + { 71769, true }, + { 71790, false }, + { 71806, true }, + { 71824, true }, + { 71839, true }, + { 71852, true }, + { 71864, false }, + { 71872, true }, + { 71886, true }, + { 71900, true }, + { 71912, true }, + { 71926, true }, + { 71938, true }, + { 71952, true }, + { 71965, true }, { 71983, true }, - { 72003, true }, - { 72024, false }, - { 72040, true }, - { 72058, true }, - { 72073, true }, - { 72086, true }, - { 72098, false }, - { 72106, true }, - { 72120, true }, - { 72134, true }, - { 72146, true }, - { 72160, true }, + { 71999, true }, + { 72019, true }, + { 72050, true }, + { 72081, true }, + { 72103, true }, + { 72121, true }, + { 72135, true }, + { 72157, true }, { 72172, true }, - { 72186, true }, - { 72199, true }, - { 72217, true }, - { 72233, true }, - { 72253, true }, - { 72284, true }, - { 72315, true }, - { 72337, true }, - { 72355, true }, - { 72369, true }, - { 72391, true }, - { 72406, true }, - { 72425, true }, - { 72435, true }, + { 72191, true }, + { 72201, true }, + { 72216, true }, + { 72231, true }, + { 72246, true }, + { 72263, true }, + { 72276, true }, + { 72289, true }, + { 72299, true }, + { 72322, true }, + { 72333, true }, + { 72345, true }, + { 72362, true }, + { 72379, true }, + { 72394, true }, + { 72401, true }, + { 72414, true }, + { 72431, true }, + { 72441, true }, { 72450, true }, - { 72465, true }, - { 72480, true }, - { 72497, true }, - { 72510, true }, - { 72523, true }, - { 72533, true }, - { 72556, true }, - { 72567, true }, - { 72579, true }, - { 72596, true }, - { 72613, true }, - { 72628, true }, - { 72635, true }, - { 72648, true }, - { 72665, true }, - { 72675, true }, - { 72684, true }, - { 72703, true }, - { 72721, true }, - { 72742, true }, - { 72762, true }, - { 72775, true }, - { 72792, true }, - { 72805, true }, - { 72827, true }, - { 72839, true }, - { 72855, true }, + { 72469, true }, + { 72487, true }, + { 72508, true }, + { 72528, true }, + { 72541, true }, + { 72558, true }, + { 72571, true }, + { 72593, true }, + { 72605, true }, + { 72621, true }, + { 72631, true }, + { 72644, true }, + { 72666, true }, + { 72680, true }, + { 72702, true }, + { 72719, true }, + { 72733, true }, + { 72741, true }, + { 72753, true }, + { 72768, true }, + { 72778, true }, + { 72789, true }, + { 72801, true }, + { 72812, true }, + { 72821, true }, + { 72831, true }, + { 72853, true }, { 72865, true }, - { 72878, true }, - { 72900, true }, - { 72914, true }, + { 72883, true }, + { 72894, true }, + { 72909, true }, + { 72922, true }, { 72936, true }, - { 72953, true }, + { 72952, true }, { 72967, true }, - { 72975, true }, - { 72987, true }, - { 73002, true }, - { 73012, true }, - { 73023, true }, - { 73035, true }, - { 73046, true }, - { 73055, true }, - { 73065, true }, - { 73087, true }, - { 73099, true }, - { 73117, true }, - { 73128, true }, - { 73143, true }, - { 73156, true }, - { 73170, true }, - { 73186, true }, - { 73201, true }, - { 73213, true }, - { 73223, true }, - { 73241, true }, - { 73249, true }, - { 73260, true }, - { 73274, true }, - { 73287, true }, - { 73298, true }, - { 73309, false }, - { 73325, true }, - { 73338, true }, - { 73359, true }, - { 73374, true }, - { 73385, true }, - { 73401, true }, - { 73419, true }, - { 73440, true }, - { 73452, true }, - { 73461, true }, - { 73474, false }, - { 73492, true }, - { 73501, true }, - { 73512, true }, - { 73524, false }, - { 73542, true }, - { 73560, true }, - { 73579, true }, - { 73598, true }, - { 73612, true }, - { 73632, false }, - { 73652, true }, - { 73664, true }, - { 73677, true }, - { 73689, true }, - { 73708, true }, - { 73725, true }, - { 73737, true }, - { 73750, true }, - { 73765, true }, - { 73779, true }, - { 73789, true }, - { 73799, true }, - { 73809, true }, - { 73821, true }, - { 73830, true }, - { 73845, true }, - { 73860, true }, - { 73869, true }, - { 73882, true }, - { 73909, true }, - { 73917, true }, - { 73938, true }, - { 73952, true }, - { 73962, true }, - { 73970, true }, - { 73979, true }, - { 73988, true }, - { 74005, true }, + { 72979, true }, + { 72989, true }, + { 73007, true }, + { 73015, true }, + { 73026, true }, + { 73040, true }, + { 73053, true }, + { 73064, true }, + { 73075, false }, + { 73091, true }, + { 73104, true }, + { 73125, true }, + { 73140, true }, + { 73151, true }, + { 73167, true }, + { 73185, true }, + { 73206, true }, + { 73218, true }, + { 73227, true }, + { 73240, false }, + { 73258, true }, + { 73267, true }, + { 73278, true }, + { 73290, false }, + { 73308, true }, + { 73326, true }, + { 73345, true }, + { 73364, true }, + { 73378, true }, + { 73398, false }, + { 73418, true }, + { 73430, true }, + { 73443, true }, + { 73455, true }, + { 73474, true }, + { 73491, true }, + { 73503, true }, + { 73516, true }, + { 73531, true }, + { 73545, true }, + { 73555, true }, + { 73565, true }, + { 73575, true }, + { 73587, true }, + { 73596, true }, + { 73611, true }, + { 73626, true }, + { 73635, true }, + { 73648, true }, + { 73675, true }, + { 73683, true }, + { 73704, true }, + { 73718, true }, + { 73728, true }, + { 73736, true }, + { 73745, true }, + { 73754, true }, + { 73771, true }, + { 73783, true }, + { 73791, true }, + { 73812, true }, + { 73831, true }, + { 73843, true }, + { 73861, true }, + { 73873, true }, + { 73884, true }, + { 73896, true }, + { 73905, true }, + { 73914, true }, + { 73921, true }, + { 73929, true }, + { 73943, false }, + { 73954, true }, + { 73965, true }, + { 73980, true }, + { 73993, false }, + { 74003, true }, { 74017, true }, - { 74025, true }, - { 74046, true }, + { 74037, true }, + { 74052, true }, { 74065, true }, { 74077, true }, - { 74095, true }, - { 74107, true }, - { 74118, true }, - { 74130, true }, - { 74139, true }, - { 74148, true }, - { 74155, true }, - { 74163, true }, - { 74177, true }, - { 74188, true }, - { 74203, true }, - { 74216, false }, - { 74226, true }, - { 74240, true }, - { 74260, true }, + { 74092, true }, + { 74119, true }, + { 74133, true }, + { 74150, true }, + { 74170, true }, + { 74185, true }, + { 74195, true }, + { 74208, true }, + { 74225, true }, + { 74238, true }, + { 74248, true }, { 74275, true }, - { 74288, true }, - { 74300, true }, - { 74315, true }, + { 74285, true }, + { 74294, true }, + { 74301, true }, + { 74317, true }, { 74328, true }, - { 74355, true }, - { 74369, true }, - { 74386, true }, - { 74406, true }, - { 74421, true }, - { 74431, true }, - { 74444, true }, - { 74461, true }, - { 74474, true }, - { 74484, true }, - { 74511, true }, - { 74521, true }, - { 74530, true }, - { 74537, true }, - { 74553, true }, - { 74564, true }, - { 74575, true }, - { 74589, true }, - { 74600, true }, - { 74610, true }, - { 74631, true }, - { 74639, true }, - { 74649, true }, - { 74661, true }, - { 74684, true }, - { 74698, true }, - { 74717, true }, - { 74725, true }, - { 74735, true }, - { 74744, true }, - { 74762, true }, - { 74794, true }, - { 74810, true }, - { 74831, true }, - { 74848, true }, - { 74859, true }, - { 74879, true }, - { 74892, true }, - { 74906, true }, - { 74925, true }, - { 74943, true }, - { 74954, true }, - { 74962, true }, - { 74976, true }, - { 74988, true }, - { 75001, true }, - { 75014, true }, - { 75023, true }, - { 75033, true }, - { 75045, true }, - { 75056, true }, - { 75068, true }, - { 75078, true }, - { 75101, false }, - { 75116, true }, - { 75132, true }, - { 75151, true }, + { 74339, true }, + { 74353, true }, + { 74364, true }, + { 74374, true }, + { 74395, true }, + { 74403, true }, + { 74413, true }, + { 74425, true }, + { 74448, true }, + { 74462, true }, + { 74481, true }, + { 74489, true }, + { 74499, true }, + { 74508, true }, + { 74526, true }, + { 74558, true }, + { 74574, true }, + { 74595, true }, + { 74612, true }, + { 74623, true }, + { 74643, true }, + { 74656, true }, + { 74670, true }, + { 74689, true }, + { 74707, true }, + { 74718, true }, + { 74726, true }, + { 74740, true }, + { 74752, true }, + { 74765, true }, + { 74778, true }, + { 74787, true }, + { 74797, true }, + { 74809, true }, + { 74820, true }, + { 74832, true }, + { 74842, true }, + { 74865, false }, + { 74880, true }, + { 74896, true }, + { 74915, true }, + { 74933, true }, + { 74947, true }, + { 74961, true }, + { 74971, true }, + { 74984, true }, + { 74996, true }, + { 75010, true }, + { 75026, true }, + { 75041, true }, + { 75050, true }, + { 75069, true }, + { 75084, true }, + { 75097, true }, + { 75113, true }, + { 75130, false }, + { 75147, true }, { 75169, true }, - { 75183, true }, - { 75197, true }, - { 75207, true }, - { 75220, true }, - { 75232, true }, - { 75246, true }, - { 75262, true }, + { 75191, true }, + { 75213, true }, + { 75225, true }, + { 75239, true }, + { 75252, true }, + { 75261, true }, { 75277, true }, - { 75286, true }, - { 75305, true }, - { 75320, true }, - { 75333, true }, - { 75349, true }, - { 75366, false }, + { 75294, true }, + { 75308, true }, + { 75321, true }, + { 75335, true }, + { 75347, true }, + { 75360, true }, + { 75373, true }, { 75383, true }, - { 75405, true }, - { 75427, true }, - { 75449, true }, - { 75461, true }, - { 75475, true }, - { 75488, true }, - { 75497, true }, - { 75513, true }, - { 75530, true }, - { 75544, true }, - { 75557, true }, - { 75571, true }, - { 75583, true }, - { 75596, true }, - { 75609, true }, - { 75619, true }, - { 75633, true }, - { 75646, true }, - { 75668, true }, - { 75690, true }, - { 75701, true }, - { 75716, true }, - { 75727, true }, - { 75747, true }, - { 75764, true }, - { 75783, true }, - { 75810, true }, + { 75397, true }, + { 75410, true }, + { 75432, true }, + { 75454, true }, + { 75465, true }, + { 75480, true }, + { 75491, true }, + { 75511, true }, + { 75528, true }, + { 75547, true }, + { 75574, true }, + { 75593, true }, + { 75605, true }, + { 75626, true }, + { 75651, true }, + { 75670, true }, + { 75685, true }, + { 75705, false }, + { 75713, true }, + { 75725, true }, + { 75737, true }, + { 75751, true }, + { 75761, true }, + { 75774, true }, + { 75792, true }, + { 75806, true }, + { 75822, true }, { 75829, true }, - { 75841, true }, - { 75862, true }, - { 75887, true }, - { 75906, true }, - { 75921, true }, - { 75941, false }, - { 75949, true }, - { 75961, true }, - { 75973, true }, - { 75987, true }, - { 75997, true }, - { 76010, true }, - { 76028, true }, - { 76042, true }, - { 76058, true }, - { 76065, true }, - { 76072, true }, - { 76084, true }, - { 76095, true }, - { 76108, true }, - { 76122, true }, - { 76139, true }, - { 76153, true }, - { 76169, true }, - { 76180, true }, - { 76187, true }, - { 76196, true }, - { 76210, false }, - { 76225, true }, + { 75836, true }, + { 75848, true }, + { 75859, true }, + { 75872, true }, + { 75886, true }, + { 75903, true }, + { 75917, true }, + { 75933, true }, + { 75944, true }, + { 75951, true }, + { 75960, true }, + { 75974, false }, + { 75989, true }, + { 76017, true }, + { 76032, true }, + { 76053, true }, + { 76067, true }, + { 76088, true }, + { 76098, true }, + { 76109, true }, + { 76119, true }, + { 76132, true }, + { 76145, true }, + { 76162, true }, + { 76181, true }, + { 76200, true }, + { 76218, true }, + { 76229, true }, + { 76241, true }, { 76253, true }, - { 76268, true }, - { 76289, true }, - { 76303, true }, + { 76264, true }, + { 76276, true }, + { 76291, true }, + { 76302, true }, + { 76313, true }, { 76324, true }, - { 76340, true }, - { 76350, true }, - { 76361, true }, - { 76371, true }, - { 76384, true }, - { 76397, true }, + { 76336, true }, + { 76347, true }, + { 76360, true }, + { 76369, true }, + { 76378, true }, + { 76391, true }, + { 76398, false }, + { 76406, true }, { 76414, true }, - { 76433, true }, - { 76452, true }, - { 76470, true }, - { 76481, true }, - { 76493, true }, - { 76505, true }, - { 76516, true }, - { 76528, true }, - { 76543, true }, - { 76554, true }, - { 76565, true }, - { 76576, true }, - { 76588, true }, - { 76599, true }, - { 76612, true }, - { 76621, true }, - { 76630, true }, - { 76643, true }, - { 76650, false }, - { 76658, true }, + { 76429, true }, + { 76442, true }, + { 76453, false }, + { 76465, true }, + { 76489, true }, + { 76504, true }, + { 76518, true }, + { 76536, true }, + { 76544, true }, + { 76569, true }, + { 76589, true }, + { 76613, true }, + { 76625, true }, + { 76641, true }, + { 76650, true }, { 76666, true }, - { 76681, true }, - { 76694, true }, - { 76705, false }, - { 76717, true }, - { 76741, true }, - { 76756, true }, - { 76770, true }, - { 76788, true }, - { 76796, true }, - { 76821, true }, - { 76841, true }, - { 76865, true }, - { 76877, true }, - { 76893, true }, - { 76902, true }, - { 76918, true }, - { 76936, true }, - { 76951, true }, - { 76971, true }, - { 76984, true }, - { 77000, true }, - { 77014, true }, - { 77030, true }, - { 77050, true }, + { 76684, true }, + { 76699, true }, + { 76719, true }, + { 76732, true }, + { 76748, true }, + { 76762, true }, + { 76778, true }, + { 76798, true }, + { 76816, true }, + { 76835, true }, + { 76852, true }, + { 76868, true }, + { 76897, true }, + { 76917, true }, + { 76934, true }, + { 76950, true }, + { 76959, true }, + { 76972, true }, + { 76984, false }, + { 76998, true }, + { 77015, true }, + { 77048, true }, { 77068, true }, - { 77087, true }, - { 77104, true }, - { 77120, true }, - { 77149, true }, + { 77080, true }, + { 77093, true }, + { 77108, true }, + { 77119, true }, + { 77136, true }, + { 77148, true }, + { 77160, true }, { 77169, true }, { 77186, true }, - { 77202, true }, - { 77211, true }, - { 77224, true }, - { 77236, false }, - { 77250, true }, - { 77267, true }, - { 77300, true }, - { 77320, true }, - { 77332, true }, - { 77345, true }, - { 77360, true }, - { 77371, true }, - { 77388, true }, - { 77400, true }, - { 77412, true }, + { 77207, true }, + { 77222, true }, + { 77240, true }, + { 77256, true }, + { 77277, true }, + { 77291, true }, + { 77305, true }, + { 77316, true }, + { 77327, true }, + { 77343, true }, + { 77355, true }, + { 77366, true }, + { 77380, true }, + { 77389, true }, + { 77398, true }, + { 77413, true }, { 77421, true }, - { 77438, true }, - { 77459, true }, - { 77474, true }, - { 77492, true }, - { 77508, true }, - { 77529, true }, - { 77543, true }, - { 77557, true }, - { 77568, true }, - { 77579, true }, - { 77595, true }, - { 77607, true }, - { 77618, true }, - { 77632, true }, - { 77641, true }, - { 77650, true }, - { 77665, true }, - { 77673, true }, - { 77684, true }, - { 77695, true }, - { 77709, true }, - { 77724, true }, - { 77742, true }, - { 77756, true }, - { 77766, true }, - { 77776, true }, - { 77785, true }, - { 77797, true }, - { 77817, true }, + { 77432, true }, + { 77443, true }, + { 77457, true }, + { 77472, true }, + { 77490, true }, + { 77504, true }, + { 77514, true }, + { 77524, true }, + { 77533, true }, + { 77545, true }, + { 77565, true }, + { 77588, true }, + { 77603, true }, + { 77626, true }, + { 77634, true }, + { 77647, true }, + { 77659, true }, + { 77671, true }, + { 77681, false }, + { 77690, false }, + { 77699, false }, + { 77708, true }, + { 77727, true }, + { 77750, true }, + { 77764, true }, + { 77779, true }, + { 77798, true }, + { 77811, true }, + { 77827, true }, { 77840, true }, - { 77855, true }, - { 77878, true }, - { 77886, true }, - { 77899, true }, - { 77911, true }, - { 77923, true }, - { 77933, false }, - { 77942, false }, - { 77951, false }, - { 77960, true }, - { 77979, true }, - { 78002, true }, - { 78016, true }, - { 78031, true }, - { 78050, true }, - { 78063, true }, - { 78079, true }, - { 78092, true }, - { 78109, true }, - { 78124, true }, - { 78134, true }, - { 78150, true }, + { 77857, true }, + { 77872, true }, + { 77882, true }, + { 77898, true }, + { 77917, true }, + { 77932, true }, + { 77951, true }, + { 77959, true }, + { 77973, true }, + { 77987, true }, + { 78004, false }, + { 78024, true }, + { 78037, true }, + { 78052, true }, + { 78070, true }, + { 78081, true }, + { 78091, true }, + { 78101, true }, + { 78115, true }, + { 78128, true }, + { 78143, true }, { 78169, true }, { 78184, true }, - { 78203, true }, - { 78211, true }, - { 78225, true }, - { 78239, true }, - { 78256, false }, - { 78276, true }, - { 78289, true }, - { 78304, true }, - { 78322, true }, - { 78333, true }, - { 78343, true }, - { 78353, true }, - { 78367, true }, - { 78380, true }, - { 78395, true }, - { 78421, true }, - { 78436, true }, - { 78448, true }, - { 78473, false }, - { 78482, true }, - { 78489, true }, - { 78497, true }, - { 78505, true }, - { 78516, true }, - { 78532, true }, - { 78549, true }, - { 78563, true }, - { 78577, true }, - { 78593, true }, - { 78620, true }, - { 78634, true }, - { 78643, true }, - { 78656, true }, + { 78196, true }, + { 78221, false }, + { 78230, true }, + { 78237, true }, + { 78245, true }, + { 78253, true }, + { 78264, true }, + { 78280, true }, + { 78297, true }, + { 78311, true }, + { 78325, true }, + { 78341, true }, + { 78368, true }, + { 78382, true }, + { 78391, true }, + { 78404, true }, + { 78416, true }, + { 78439, true }, + { 78459, true }, + { 78478, true }, + { 78500, true }, + { 78514, true }, + { 78534, true }, + { 78559, true }, + { 78575, true }, + { 78587, true }, + { 78599, true }, + { 78621, true }, + { 78636, true }, + { 78651, true }, { 78668, true }, - { 78691, true }, - { 78711, true }, + { 78683, true }, + { 78700, true }, + { 78715, true }, { 78730, true }, - { 78752, true }, + { 78742, true }, + { 78756, false }, { 78766, true }, - { 78786, true }, - { 78811, true }, - { 78827, true }, - { 78839, true }, - { 78851, true }, - { 78873, true }, - { 78888, true }, - { 78903, true }, - { 78920, true }, - { 78935, true }, - { 78952, true }, - { 78967, true }, - { 78982, true }, - { 78994, true }, - { 79008, false }, - { 79018, true }, - { 79035, true }, - { 79046, false }, - { 79061, true }, - { 79078, true }, + { 78783, true }, + { 78794, false }, + { 78809, true }, + { 78826, true }, + { 78840, true }, + { 78853, true }, + { 78865, true }, + { 78875, true }, + { 78887, true }, + { 78902, true }, + { 78913, true }, + { 78933, true }, + { 78945, true }, + { 78956, true }, + { 78981, true }, + { 78990, true }, + { 78998, true }, + { 79021, true }, + { 79038, true }, + { 79049, true }, + { 79065, false }, + { 79077, true }, { 79092, true }, - { 79105, true }, - { 79117, true }, - { 79127, true }, + { 79100, true }, + { 79110, true }, + { 79125, true }, { 79139, true }, - { 79154, true }, - { 79165, true }, - { 79185, true }, - { 79197, true }, - { 79208, true }, - { 79233, true }, - { 79242, true }, - { 79250, true }, + { 79149, false }, + { 79167, true }, + { 79191, true }, + { 79203, true }, + { 79231, true }, + { 79247, true }, + { 79259, true }, { 79273, true }, - { 79290, true }, { 79301, true }, - { 79317, false }, - { 79329, true }, - { 79344, true }, - { 79352, true }, + { 79315, true }, + { 79331, true }, + { 79348, true }, { 79362, true }, - { 79377, true }, - { 79391, true }, - { 79401, false }, - { 79419, true }, - { 79443, true }, - { 79455, true }, - { 79483, true }, - { 79499, true }, + { 79379, true }, + { 79401, true }, + { 79411, true }, + { 79429, true }, + { 79448, true }, + { 79467, true }, + { 79492, true }, { 79511, true }, { 79525, true }, - { 79553, true }, + { 79538, true }, { 79567, true }, - { 79583, true }, - { 79600, true }, - { 79614, true }, + { 79597, true }, + { 79609, true }, + { 79618, true }, { 79631, true }, - { 79653, true }, - { 79663, true }, - { 79681, true }, - { 79700, true }, - { 79719, true }, - { 79744, true }, - { 79763, true }, - { 79777, true }, - { 79790, true }, - { 79819, true }, - { 79849, true }, - { 79861, true }, - { 79870, true }, - { 79883, true }, - { 79894, true }, - { 79904, true }, - { 79921, true }, - { 79944, true }, + { 79642, true }, + { 79652, true }, + { 79669, true }, + { 79692, true }, + { 79718, true }, + { 79732, true }, + { 79746, true }, + { 79770, false }, + { 79780, true }, + { 79796, true }, + { 79804, true }, + { 79823, true }, + { 79835, true }, + { 79846, true }, + { 79862, true }, + { 79876, true }, + { 79888, true }, + { 79901, true }, + { 79920, true }, + { 79931, true }, + { 79943, true }, + { 79956, true }, { 79970, true }, - { 79984, true }, - { 79998, true }, - { 80022, false }, - { 80032, true }, - { 80048, true }, - { 80056, true }, - { 80075, true }, - { 80087, true }, - { 80098, true }, - { 80114, true }, - { 80128, true }, + { 79980, true }, + { 79993, true }, + { 80005, true }, + { 80021, true }, + { 80029, false }, + { 80037, true }, + { 80059, true }, + { 80071, true }, + { 80079, true }, + { 80100, true }, + { 80124, true }, { 80140, true }, - { 80153, true }, - { 80172, true }, - { 80183, true }, - { 80195, true }, - { 80208, true }, - { 80222, true }, - { 80232, true }, - { 80245, true }, - { 80257, true }, - { 80273, true }, - { 80281, false }, - { 80289, true }, - { 80311, true }, - { 80323, true }, + { 80157, true }, + { 80169, true }, + { 80179, true }, + { 80194, true }, + { 80204, true }, + { 80227, true }, + { 80241, true }, + { 80256, true }, + { 80268, true }, + { 80277, true }, + { 80290, true }, + { 80305, true }, + { 80319, true }, { 80331, true }, - { 80352, true }, - { 80376, true }, + { 80346, true }, + { 80357, true }, + { 80368, true }, + { 80378, true }, { 80392, true }, - { 80406, true }, - { 80423, true }, - { 80435, true }, - { 80445, true }, - { 80460, true }, - { 80470, true }, - { 80493, true }, - { 80507, true }, - { 80522, true }, - { 80534, true }, - { 80543, true }, - { 80556, true }, - { 80571, true }, - { 80585, true }, - { 80597, true }, - { 80612, true }, - { 80623, true }, - { 80634, true }, - { 80644, true }, - { 80658, true }, - { 80667, true }, - { 80675, true }, - { 80685, true }, - { 80694, true }, - { 80702, true }, - { 80710, true }, - { 80719, true }, - { 80731, true }, - { 80743, true }, - { 80753, true }, - { 80763, true }, - { 80775, true }, - { 80789, true }, - { 80804, true }, - { 80815, true }, + { 80401, true }, + { 80409, true }, + { 80419, true }, + { 80428, true }, + { 80436, true }, + { 80444, true }, + { 80453, true }, + { 80465, true }, + { 80477, true }, + { 80487, true }, + { 80497, true }, + { 80509, true }, + { 80523, true }, + { 80538, true }, + { 80549, true }, + { 80563, true }, + { 80574, true }, + { 80582, true }, + { 80593, true }, + { 80604, true }, + { 80619, true }, + { 80632, true }, + { 80639, true }, + { 80659, true }, + { 80668, true }, + { 80681, true }, + { 80698, true }, + { 80713, true }, + { 80728, true }, + { 80748, true }, + { 80757, true }, + { 80769, false }, + { 80778, true }, + { 80788, true }, + { 80798, false }, + { 80805, true }, + { 80816, true }, { 80829, true }, - { 80840, true }, - { 80848, true }, - { 80859, true }, - { 80870, true }, - { 80885, true }, - { 80898, true }, + { 80844, true }, + { 80851, true }, + { 80871, true }, + { 80881, true }, + { 80892, false }, { 80905, true }, - { 80925, true }, - { 80934, true }, - { 80947, true }, - { 80964, true }, - { 80979, true }, - { 80994, true }, - { 81014, true }, - { 81023, true }, - { 81035, false }, - { 81044, true }, - { 81054, true }, - { 81064, false }, + { 80919, true }, + { 80928, false }, + { 80944, true }, + { 80953, false }, + { 80962, true }, + { 80970, true }, + { 80982, true }, + { 80989, true }, + { 81001, true }, + { 81020, true }, + { 81033, true }, + { 81049, true }, + { 81062, false }, { 81071, true }, - { 81082, true }, - { 81095, true }, - { 81110, true }, - { 81117, true }, - { 81137, true }, - { 81147, true }, - { 81158, false }, - { 81171, true }, - { 81185, true }, - { 81194, false }, + { 81080, true }, + { 81091, true }, + { 81111, true }, + { 81128, true }, + { 81143, true }, + { 81159, false }, + { 81174, true }, + { 81193, true }, { 81210, true }, - { 81219, false }, - { 81228, true }, - { 81236, true }, - { 81248, true }, - { 81255, true }, - { 81267, true }, - { 81286, true }, - { 81299, true }, - { 81315, true }, - { 81328, false }, - { 81337, true }, - { 81346, true }, - { 81357, true }, - { 81377, true }, - { 81394, true }, - { 81409, true }, - { 81425, false }, - { 81440, true }, - { 81459, true }, - { 81476, true }, + { 81221, true }, + { 81238, false }, + { 81259, false }, + { 81275, false }, + { 81295, true }, + { 81307, true }, + { 81330, true }, + { 81342, true }, + { 81355, true }, + { 81367, true }, + { 81378, true }, + { 81390, true }, + { 81399, true }, + { 81410, true }, + { 81428, true }, + { 81455, true }, + { 81465, true }, + { 81473, true }, { 81487, true }, - { 81504, false }, - { 81525, false }, - { 81541, false }, - { 81561, true }, - { 81573, true }, - { 81596, true }, - { 81608, true }, - { 81621, true }, - { 81633, true }, - { 81644, true }, - { 81656, true }, - { 81665, true }, - { 81676, true }, - { 81694, true }, - { 81721, true }, - { 81731, true }, + { 81502, true }, + { 81512, true }, + { 81523, true }, + { 81532, true }, + { 81551, true }, + { 81564, true }, + { 81574, true }, + { 81582, true }, + { 81589, true }, + { 81602, true }, + { 81612, true }, + { 81621, false }, + { 81631, true }, + { 81640, true }, + { 81652, true }, + { 81662, false }, + { 81679, true }, + { 81688, true }, + { 81698, true }, + { 81706, true }, + { 81716, true }, + { 81726, true }, { 81739, true }, - { 81753, true }, - { 81768, true }, + { 81751, true }, + { 81766, true }, { 81778, true }, - { 81789, true }, - { 81798, true }, - { 81817, true }, - { 81830, true }, - { 81840, true }, - { 81848, true }, - { 81855, true }, - { 81868, true }, - { 81878, true }, - { 81887, false }, - { 81897, true }, - { 81906, true }, - { 81918, true }, - { 81928, false }, - { 81945, true }, - { 81954, true }, + { 81794, true }, + { 81808, true }, + { 81822, true }, + { 81829, true }, + { 81843, true }, + { 81854, true }, + { 81863, true }, + { 81877, true }, + { 81889, true }, + { 81899, true }, + { 81909, true }, + { 81921, true }, + { 81931, true }, + { 81949, true }, { 81964, true }, - { 81972, true }, - { 81982, true }, - { 81992, true }, - { 82005, true }, - { 82017, true }, + { 81977, true }, + { 81984, true }, + { 82001, true }, + { 82012, true }, + { 82022, true }, { 82032, true }, - { 82044, true }, - { 82060, true }, - { 82074, true }, - { 82088, true }, - { 82095, true }, - { 82107, true }, - { 82121, true }, - { 82132, true }, - { 82141, true }, - { 82155, true }, + { 82041, true }, + { 82063, true }, + { 82082, true }, + { 82089, true }, + { 82103, true }, + { 82118, true }, + { 82140, true }, + { 82154, true }, { 82167, true }, - { 82177, true }, - { 82187, true }, - { 82199, true }, - { 82209, true }, - { 82227, true }, - { 82242, true }, - { 82255, true }, - { 82262, true }, - { 82279, true }, - { 82290, true }, - { 82300, true }, - { 82310, true }, - { 82319, true }, - { 82341, true }, - { 82360, true }, + { 82181, true }, + { 82204, true }, + { 82215, true }, + { 82224, true }, + { 82235, true }, + { 82249, true }, + { 82260, true }, + { 82272, true }, + { 82291, true }, + { 82304, true }, + { 82313, true }, + { 82329, true }, + { 82342, true }, + { 82354, true }, { 82367, true }, - { 82381, true }, + { 82375, true }, + { 82387, true }, { 82396, true }, - { 82418, true }, + { 82411, true }, + { 82420, true }, { 82432, true }, - { 82445, true }, - { 82459, true }, - { 82482, true }, - { 82493, true }, + { 82442, true }, + { 82457, true }, + { 82465, true }, + { 82480, true }, + { 82491, true }, { 82502, true }, - { 82513, true }, - { 82527, true }, - { 82538, true }, - { 82550, true }, - { 82569, true }, - { 82582, true }, - { 82591, true }, - { 82607, true }, - { 82620, true }, - { 82632, true }, - { 82645, true }, - { 82653, true }, + { 82511, true }, + { 82526, true }, + { 82540, true }, + { 82554, true }, + { 82577, true }, + { 82602, true }, + { 82621, true }, + { 82635, true }, + { 82651, true }, { 82665, true }, - { 82674, true }, - { 82689, true }, - { 82698, true }, - { 82710, true }, - { 82720, true }, - { 82735, true }, - { 82743, true }, - { 82758, true }, - { 82769, true }, - { 82780, true }, - { 82789, true }, - { 82804, true }, - { 82818, true }, - { 82832, true }, - { 82855, true }, - { 82880, true }, - { 82899, true }, - { 82913, true }, - { 82929, true }, - { 82943, true }, - { 82959, true }, - { 82977, true }, - { 82994, true }, - { 83009, true }, - { 83024, true }, - { 83033, true }, - { 83050, true }, - { 83063, true }, - { 83073, true }, - { 83084, true }, - { 83095, true }, - { 83105, true }, - { 83117, true }, - { 83138, true }, - { 83152, false }, - { 83172, false }, - { 83184, true }, - { 83197, true }, - { 83207, true }, - { 83220, true }, - { 83233, true }, - { 83249, true }, - { 83266, true }, - { 83278, true }, + { 82681, true }, + { 82699, true }, + { 82716, true }, + { 82731, true }, + { 82746, true }, + { 82755, true }, + { 82768, true }, + { 82785, true }, + { 82798, true }, + { 82808, true }, + { 82819, true }, + { 82830, true }, + { 82840, true }, + { 82852, true }, + { 82873, true }, + { 82887, false }, + { 82907, false }, + { 82919, true }, + { 82932, true }, + { 82942, true }, + { 82955, true }, + { 82968, true }, + { 82984, true }, + { 83001, true }, + { 83013, true }, + { 83027, true }, + { 83041, true }, + { 83057, true }, + { 83069, true }, + { 83090, false }, + { 83104, true }, + { 83122, true }, + { 83139, true }, + { 83151, true }, + { 83171, true }, + { 83187, true }, + { 83209, true }, + { 83231, true }, + { 83250, true }, + { 83267, true }, + { 83279, true }, { 83292, true }, - { 83306, true }, - { 83322, true }, - { 83334, true }, - { 83355, false }, - { 83369, true }, - { 83387, true }, - { 83404, true }, - { 83416, true }, - { 83436, true }, - { 83452, true }, - { 83474, true }, - { 83496, true }, - { 83515, true }, - { 83532, true }, - { 83544, true }, + { 83312, true }, + { 83337, true }, + { 83350, true }, + { 83365, true }, + { 83382, true }, + { 83402, false }, + { 83415, true }, + { 83426, true }, + { 83442, true }, + { 83462, true }, + { 83487, true }, + { 83503, true }, + { 83520, true }, + { 83531, true }, + { 83543, true }, { 83557, true }, - { 83577, true }, - { 83602, true }, - { 83615, true }, - { 83630, true }, - { 83647, true }, - { 83667, false }, - { 83680, true }, - { 83691, true }, + { 83573, false }, + { 83586, true }, + { 83599, true }, + { 83611, true }, + { 83628, true }, + { 83640, false }, + { 83649, false }, + { 83659, true }, + { 83670, true }, + { 83683, false }, + { 83696, true }, { 83707, true }, - { 83727, true }, - { 83752, true }, - { 83768, true }, - { 83785, true }, - { 83796, true }, - { 83808, true }, - { 83822, true }, - { 83838, false }, - { 83851, true }, - { 83864, true }, - { 83876, true }, - { 83893, true }, - { 83905, false }, - { 83914, false }, - { 83924, true }, - { 83935, true }, - { 83948, false }, - { 83961, true }, - { 83972, true }, - { 83986, true }, - { 84002, true }, - { 84021, true }, - { 84034, true }, - { 84057, true }, - { 84071, true }, - { 84086, true }, - { 84096, true }, - { 84109, true }, - { 84124, true }, - { 84143, true }, - { 84159, true }, - { 84175, true }, - { 84192, true }, - { 84205, true }, + { 83721, true }, + { 83737, true }, + { 83756, true }, + { 83769, true }, + { 83792, true }, + { 83806, true }, + { 83821, true }, + { 83831, true }, + { 83844, true }, + { 83859, true }, + { 83878, true }, + { 83894, true }, + { 83910, true }, + { 83927, true }, + { 83940, true }, + { 83952, true }, + { 83965, true }, + { 83977, true }, + { 83992, true }, + { 84009, true }, + { 84018, true }, + { 84045, true }, + { 84066, true }, + { 84083, true }, + { 84094, false }, + { 84112, true }, + { 84127, true }, + { 84139, true }, + { 84151, true }, + { 84163, true }, + { 84182, true }, { 84217, true }, - { 84230, true }, - { 84242, true }, + { 84240, true }, { 84257, true }, - { 84274, true }, - { 84283, true }, - { 84310, true }, - { 84331, true }, - { 84348, true }, - { 84359, false }, - { 84377, true }, - { 84392, true }, + { 84270, true }, + { 84282, true }, + { 84299, false }, + { 84318, true }, + { 84336, true }, + { 84367, true }, + { 84382, true }, { 84404, true }, { 84416, true }, - { 84428, true }, - { 84447, true }, - { 84482, true }, - { 84505, true }, - { 84522, true }, - { 84535, true }, - { 84547, true }, - { 84564, false }, - { 84583, true }, - { 84601, true }, - { 84632, true }, - { 84647, true }, - { 84669, true }, - { 84681, true }, - { 84698, true }, - { 84715, true }, - { 84727, true }, - { 84746, true }, - { 84758, true }, - { 84773, true }, - { 84790, true }, - { 84807, true }, - { 84823, true }, - { 84839, true }, + { 84433, true }, + { 84450, true }, + { 84462, true }, + { 84481, true }, + { 84493, true }, + { 84508, true }, + { 84525, true }, + { 84542, true }, + { 84558, true }, + { 84574, true }, + { 84598, true }, + { 84623, true }, + { 84645, true }, + { 84672, true }, + { 84690, true }, + { 84707, true }, + { 84722, true }, + { 84740, true }, + { 84761, true }, + { 84789, true }, + { 84813, true }, + { 84837, true }, + { 84850, true }, { 84863, true }, - { 84888, true }, - { 84910, true }, - { 84937, true }, - { 84955, true }, - { 84972, true }, - { 84987, true }, - { 85005, true }, - { 85026, true }, - { 85054, true }, - { 85078, true }, - { 85102, true }, - { 85115, true }, - { 85128, true }, - { 85145, true }, - { 85160, true }, - { 85185, false }, - { 85199, true }, - { 85209, true }, + { 84880, true }, + { 84895, true }, + { 84920, false }, + { 84934, true }, + { 84944, true }, + { 84963, true }, + { 84979, true }, + { 85003, true }, + { 85018, true }, + { 85035, true }, + { 85045, true }, + { 85055, true }, + { 85067, true }, + { 85080, true }, + { 85093, true }, + { 85111, true }, + { 85124, true }, + { 85138, true }, + { 85148, true }, + { 85164, true }, + { 85177, true }, + { 85196, true }, + { 85214, true }, { 85228, true }, - { 85244, true }, - { 85268, true }, - { 85283, true }, - { 85300, true }, - { 85310, true }, - { 85320, true }, - { 85332, true }, - { 85345, true }, - { 85358, true }, - { 85376, true }, - { 85389, true }, - { 85403, true }, - { 85413, true }, - { 85429, true }, - { 85442, true }, - { 85461, true }, + { 85238, true }, + { 85246, true }, + { 85256, true }, + { 85266, true }, + { 85278, true }, + { 85292, false }, + { 85305, true }, + { 85313, true }, + { 85324, true }, + { 85335, true }, + { 85343, true }, + { 85359, true }, + { 85375, true }, + { 85382, true }, + { 85390, true }, + { 85400, true }, + { 85412, true }, + { 85426, true }, + { 85435, true }, + { 85451, true }, + { 85461, false }, { 85479, true }, - { 85493, true }, - { 85503, true }, - { 85511, true }, - { 85521, true }, - { 85533, true }, - { 85547, false }, - { 85560, true }, - { 85568, true }, - { 85579, true }, - { 85590, true }, - { 85598, true }, - { 85614, true }, - { 85630, true }, - { 85637, true }, - { 85645, true }, - { 85655, true }, - { 85667, true }, - { 85681, true }, - { 85690, true }, - { 85706, true }, - { 85716, false }, - { 85734, true }, - { 85746, true }, - { 85758, false }, - { 85769, true }, - { 85782, true }, - { 85792, true }, - { 85802, true }, - { 85812, true }, - { 85822, true }, - { 85832, true }, - { 85851, true }, - { 85860, true }, - { 85871, true }, - { 85880, true }, - { 85900, true }, - { 85916, true }, - { 85924, true }, + { 85491, true }, + { 85503, false }, + { 85514, true }, + { 85527, true }, + { 85537, true }, + { 85547, true }, + { 85557, true }, + { 85567, true }, + { 85577, true }, + { 85596, true }, + { 85605, true }, + { 85616, true }, + { 85636, true }, + { 85652, true }, + { 85660, true }, + { 85676, true }, + { 85693, true }, + { 85704, true }, + { 85716, true }, + { 85727, true }, + { 85742, true }, + { 85753, true }, + { 85763, true }, + { 85772, true }, + { 85781, true }, + { 85799, true }, + { 85815, true }, + { 85829, true }, + { 85857, true }, + { 85866, true }, + { 85881, true }, + { 85898, true }, + { 85921, true }, { 85940, true }, - { 85957, true }, - { 85968, true }, - { 85980, true }, - { 85991, true }, - { 86006, true }, - { 86017, true }, - { 86027, true }, - { 86036, true }, - { 86045, true }, - { 86063, true }, - { 86079, true }, - { 86093, true }, - { 86121, true }, - { 86130, true }, - { 86145, true }, - { 86162, true }, - { 86185, true }, - { 86204, true }, - { 86213, true }, - { 86231, true }, - { 86246, true }, - { 86260, true }, - { 86283, true }, - { 86305, true }, - { 86315, true }, - { 86331, true }, - { 86347, true }, - { 86355, true }, - { 86365, true }, - { 86377, true }, - { 86389, true }, - { 86406, true }, - { 86423, true }, - { 86455, true }, - { 86473, true }, - { 86487, true }, - { 86501, true }, - { 86519, true }, - { 86538, true }, - { 86549, true }, - { 86560, true }, - { 86578, true }, - { 86591, true }, - { 86602, true }, - { 86612, true }, - { 86624, true }, - { 86635, true }, - { 86646, true }, - { 86656, true }, - { 86665, true }, - { 86682, true }, - { 86701, true }, - { 86714, true }, - { 86727, true }, - { 86746, true }, - { 86763, true }, - { 86795, true }, - { 86809, true }, - { 86821, true }, - { 86845, true }, - { 86868, true }, - { 86893, true }, - { 86906, true }, - { 86925, true }, - { 86939, true }, - { 86952, true }, - { 86967, false }, - { 86987, true }, + { 85949, true }, + { 85967, true }, + { 85982, true }, + { 85996, true }, + { 86019, true }, + { 86041, true }, + { 86051, true }, + { 86067, true }, + { 86083, true }, + { 86091, true }, + { 86101, true }, + { 86113, true }, + { 86125, true }, + { 86142, true }, + { 86159, true }, + { 86191, true }, + { 86209, true }, + { 86223, true }, + { 86237, true }, + { 86255, true }, + { 86274, true }, + { 86285, true }, + { 86296, true }, + { 86314, true }, + { 86327, true }, + { 86338, true }, + { 86348, true }, + { 86360, true }, + { 86371, true }, + { 86382, true }, + { 86392, true }, + { 86401, true }, + { 86418, true }, + { 86437, true }, + { 86450, true }, + { 86463, true }, + { 86482, true }, + { 86499, true }, + { 86531, true }, + { 86545, true }, + { 86557, true }, + { 86581, true }, + { 86604, true }, + { 86629, true }, + { 86642, true }, + { 86661, true }, + { 86675, true }, + { 86688, true }, + { 86703, false }, + { 86723, true }, + { 86736, true }, + { 86753, true }, + { 86768, true }, + { 86785, true }, + { 86794, true }, + { 86803, true }, + { 86819, true }, + { 86839, true }, + { 86858, true }, + { 86867, true }, + { 86878, true }, + { 86887, true }, + { 86898, true }, + { 86911, true }, + { 86920, true }, + { 86933, true }, + { 86943, true }, + { 86956, true }, + { 86969, true }, + { 86980, true }, + { 86991, true }, { 87000, true }, - { 87017, true }, - { 87032, true }, - { 87049, true }, - { 87058, true }, - { 87067, true }, - { 87083, true }, - { 87103, true }, - { 87122, true }, - { 87131, true }, - { 87142, true }, - { 87151, true }, - { 87162, true }, - { 87175, true }, - { 87184, true }, - { 87197, true }, - { 87207, true }, - { 87220, true }, - { 87233, true }, - { 87244, true }, - { 87255, true }, - { 87264, true }, - { 87278, true }, - { 87295, true }, - { 87312, true }, - { 87321, true }, - { 87336, true }, - { 87351, true }, - { 87370, true }, - { 87382, true }, - { 87395, false }, - { 87408, true }, - { 87417, true }, - { 87431, true }, - { 87454, false }, + { 87014, true }, + { 87031, true }, + { 87048, true }, + { 87057, true }, + { 87072, true }, + { 87087, true }, + { 87106, true }, + { 87119, false }, + { 87132, true }, + { 87141, true }, + { 87155, true }, + { 87178, false }, + { 87190, true }, + { 87201, true }, + { 87218, true }, + { 87232, true }, + { 87249, true }, + { 87270, true }, + { 87281, true }, + { 87292, true }, + { 87299, true }, + { 87310, true }, + { 87317, true }, + { 87327, true }, + { 87339, true }, + { 87349, true }, + { 87358, true }, + { 87371, true }, + { 87383, true }, + { 87400, true }, + { 87414, true }, + { 87428, true }, + { 87435, true }, + { 87442, true }, + { 87449, true }, + { 87458, true }, { 87466, true }, - { 87477, true }, + { 87476, true }, { 87494, true }, { 87508, true }, - { 87525, true }, - { 87546, true }, - { 87557, true }, - { 87568, true }, - { 87575, true }, + { 87520, true }, + { 87531, true }, + { 87542, true }, + { 87553, true }, + { 87566, true }, + { 87577, true }, { 87586, true }, - { 87593, true }, { 87603, true }, - { 87615, true }, - { 87625, true }, - { 87634, true }, - { 87647, true }, - { 87659, true }, - { 87676, true }, - { 87690, true }, + { 87614, true }, + { 87621, true }, + { 87628, true }, + { 87642, true }, + { 87650, true }, + { 87657, true }, + { 87668, true }, + { 87681, true }, + { 87694, true }, { 87704, true }, - { 87711, true }, - { 87718, true }, - { 87725, true }, - { 87734, true }, - { 87742, true }, - { 87752, true }, - { 87770, true }, - { 87784, true }, - { 87796, true }, - { 87807, true }, - { 87818, true }, - { 87829, true }, - { 87842, true }, - { 87853, true }, - { 87862, true }, - { 87879, true }, - { 87890, true }, - { 87897, true }, - { 87904, true }, - { 87918, true }, - { 87926, true }, - { 87933, true }, - { 87944, true }, - { 87957, true }, - { 87970, true }, - { 87980, true }, - { 87993, true }, - { 88008, true }, - { 88021, true }, - { 88030, true }, - { 88049, false }, - { 88061, true }, - { 88074, true }, - { 88089, true }, - { 88108, true }, - { 88121, true }, - { 88136, true }, - { 88149, true }, - { 88159, true }, - { 88172, true }, - { 88189, true }, - { 88203, false }, - { 88222, true }, - { 88237, true }, - { 88251, true }, - { 88267, true }, - { 88283, true }, - { 88303, true }, - { 88312, true }, + { 87717, true }, + { 87732, true }, + { 87745, true }, + { 87754, true }, + { 87773, false }, + { 87785, true }, + { 87798, true }, + { 87813, true }, + { 87832, true }, + { 87845, true }, + { 87860, true }, + { 87873, true }, + { 87883, true }, + { 87896, true }, + { 87913, true }, + { 87927, false }, + { 87946, true }, + { 87961, true }, + { 87975, true }, + { 87991, true }, + { 88007, true }, + { 88027, true }, + { 88036, true }, + { 88052, true }, + { 88067, true }, + { 88083, true }, + { 88103, true }, + { 88122, true }, + { 88139, true }, + { 88155, true }, + { 88175, true }, + { 88188, true }, + { 88202, false }, + { 88215, true }, + { 88225, true }, + { 88241, true }, + { 88258, true }, + { 88273, true }, + { 88296, true }, + { 88313, true }, { 88328, true }, - { 88343, true }, + { 88345, true }, { 88359, true }, - { 88379, true }, + { 88374, true }, + { 88383, true }, { 88398, true }, - { 88415, true }, - { 88431, true }, + { 88416, true }, + { 88430, true }, + { 88441, true }, { 88451, true }, - { 88464, true }, - { 88478, false }, - { 88491, true }, - { 88501, true }, - { 88517, true }, - { 88534, true }, - { 88549, true }, + { 88466, true }, + { 88480, true }, + { 88493, true }, + { 88504, true }, + { 88518, true }, + { 88528, true }, + { 88540, true }, + { 88558, true }, { 88572, true }, - { 88589, true }, - { 88604, true }, - { 88621, true }, - { 88635, true }, - { 88650, true }, - { 88659, true }, - { 88674, true }, - { 88692, true }, - { 88706, true }, - { 88717, true }, + { 88584, true }, + { 88603, false }, + { 88618, true }, + { 88637, true }, + { 88648, true }, + { 88660, true }, + { 88678, true }, + { 88691, true }, + { 88708, true }, { 88727, true }, - { 88742, true }, - { 88756, true }, - { 88769, true }, - { 88780, true }, - { 88794, true }, - { 88804, true }, + { 88744, true }, + { 88762, true }, + { 88784, true }, + { 88803, true }, { 88816, true }, - { 88834, true }, - { 88848, true }, - { 88860, true }, - { 88879, false }, + { 88832, true }, + { 88847, true }, + { 88855, true }, + { 88869, true }, + { 88883, true }, { 88894, true }, - { 88913, true }, - { 88924, true }, - { 88936, true }, - { 88954, true }, - { 88967, true }, - { 88984, true }, - { 89003, true }, - { 89020, true }, - { 89038, true }, - { 89060, true }, - { 89079, true }, - { 89092, true }, - { 89108, true }, - { 89123, true }, - { 89131, true }, - { 89145, true }, - { 89159, true }, - { 89170, true }, - { 89180, true }, - { 89198, true }, - { 89216, true }, - { 89229, true }, - { 89237, true }, - { 89250, true }, - { 89262, true }, - { 89273, true }, + { 88904, true }, + { 88922, true }, + { 88940, true }, + { 88953, true }, + { 88961, true }, + { 88974, true }, + { 88986, true }, + { 88997, true }, + { 89007, true }, + { 89015, true }, + { 89031, true }, + { 89047, true }, + { 89056, true }, + { 89068, true }, + { 89081, true }, + { 89095, true }, + { 89114, true }, + { 89128, true }, + { 89141, true }, + { 89157, false }, + { 89174, true }, + { 89195, true }, + { 89214, true }, + { 89233, true }, + { 89252, false }, + { 89268, true }, { 89283, true }, - { 89291, true }, - { 89307, true }, - { 89323, true }, - { 89332, true }, - { 89344, true }, - { 89357, true }, - { 89371, true }, - { 89390, true }, - { 89404, true }, - { 89417, true }, - { 89433, false }, - { 89450, true }, + { 89293, true }, + { 89303, true }, + { 89312, true }, + { 89325, true }, + { 89335, false }, + { 89353, true }, + { 89375, true }, + { 89392, true }, + { 89408, false }, + { 89426, true }, + { 89437, true }, + { 89453, true }, { 89471, true }, - { 89490, true }, - { 89509, true }, - { 89528, false }, - { 89544, true }, - { 89559, true }, - { 89569, true }, - { 89579, true }, - { 89588, true }, - { 89601, true }, - { 89611, false }, - { 89629, true }, - { 89651, true }, - { 89668, true }, - { 89684, false }, - { 89702, true }, - { 89713, true }, - { 89729, true }, - { 89747, true }, - { 89762, false }, - { 89776, true }, + { 89486, false }, + { 89500, true }, + { 89517, true }, + { 89535, true }, + { 89554, true }, + { 89565, true }, + { 89581, true }, + { 89598, true }, + { 89614, true }, + { 89632, true }, + { 89649, true }, + { 89671, false }, + { 89688, true }, + { 89704, true }, + { 89718, true }, + { 89730, false }, + { 89745, true }, + { 89757, true }, + { 89765, true }, + { 89778, true }, { 89793, true }, - { 89811, true }, - { 89830, true }, - { 89841, true }, - { 89857, true }, + { 89808, true }, + { 89818, true }, + { 89827, true }, + { 89837, true }, + { 89847, true }, + { 89861, false }, { 89874, true }, - { 89890, true }, - { 89908, true }, - { 89925, true }, - { 89947, false }, - { 89964, true }, - { 89980, true }, - { 89994, true }, - { 90006, false }, - { 90021, true }, - { 90033, true }, - { 90041, true }, - { 90054, true }, - { 90069, true }, - { 90084, true }, + { 89882, true }, + { 89891, true }, + { 89900, true }, + { 89910, true }, + { 89919, true }, + { 89939, false }, + { 89949, true }, + { 89965, true }, + { 89978, true }, + { 89991, true }, + { 89998, true }, + { 90014, true }, + { 90027, true }, + { 90040, true }, + { 90053, true }, + { 90068, true }, + { 90080, true }, + { 90087, true }, { 90094, true }, { 90103, true }, - { 90113, true }, - { 90123, true }, - { 90137, false }, - { 90150, true }, - { 90158, true }, + { 90112, true }, + { 90121, true }, + { 90132, true }, + { 90146, true }, + { 90159, true }, { 90167, true }, - { 90176, true }, - { 90186, true }, - { 90195, true }, - { 90215, false }, - { 90225, true }, - { 90241, true }, - { 90254, true }, - { 90267, true }, - { 90274, true }, - { 90290, true }, - { 90303, true }, - { 90316, true }, - { 90329, true }, - { 90344, true }, - { 90356, true }, - { 90363, true }, - { 90370, true }, - { 90379, true }, - { 90388, true }, - { 90397, true }, - { 90408, true }, - { 90422, true }, - { 90435, true }, - { 90443, true }, + { 90179, true }, + { 90193, true }, + { 90204, true }, + { 90220, true }, + { 90234, true }, + { 90249, true }, + { 90259, false }, + { 90273, true }, + { 90283, true }, + { 90298, false }, + { 90314, true }, + { 90333, true }, + { 90345, true }, + { 90358, true }, + { 90382, false }, + { 90395, true }, + { 90411, true }, + { 90425, true }, + { 90440, true }, { 90457, true }, - { 90468, true }, + { 90474, true }, { 90484, true }, - { 90498, true }, + { 90499, true }, { 90513, true }, - { 90523, false }, - { 90537, true }, - { 90547, true }, - { 90562, false }, - { 90578, true }, - { 90597, true }, - { 90609, true }, - { 90622, true }, - { 90646, false }, - { 90659, true }, - { 90675, true }, - { 90689, true }, - { 90704, true }, - { 90721, true }, - { 90738, true }, - { 90748, true }, - { 90763, true }, + { 90526, true }, + { 90541, true }, + { 90557, true }, + { 90571, true }, + { 90586, true }, + { 90600, true }, + { 90615, true }, + { 90634, true }, + { 90649, true }, + { 90664, true }, + { 90682, true }, + { 90701, true }, + { 90714, true }, + { 90727, true }, + { 90750, true }, + { 90766, true }, { 90777, true }, { 90790, true }, { 90805, true }, - { 90821, true }, - { 90835, true }, - { 90850, true }, - { 90864, true }, - { 90879, true }, - { 90898, true }, - { 90913, true }, - { 90928, true }, - { 90946, true }, - { 90965, true }, - { 90978, true }, - { 90991, true }, - { 91014, true }, - { 91030, true }, - { 91041, true }, - { 91054, true }, - { 91069, true }, - { 91084, true }, + { 90820, true }, + { 90836, true }, + { 90851, true }, + { 90867, true }, + { 90884, true }, + { 90896, true }, + { 90906, true }, + { 90924, true }, + { 90934, true }, + { 90945, true }, + { 90955, true }, + { 90968, true }, + { 90996, true }, + { 91007, true }, + { 91018, true }, + { 91029, true }, + { 91046, true }, + { 91060, false }, + { 91077, true }, + { 91091, true }, { 91100, true }, - { 91115, true }, - { 91131, true }, - { 91148, true }, + { 91117, true }, + { 91134, true }, + { 91146, true }, { 91160, true }, - { 91170, true }, + { 91172, true }, { 91188, true }, - { 91198, true }, - { 91209, true }, - { 91219, true }, - { 91232, true }, - { 91260, true }, - { 91271, true }, - { 91282, true }, - { 91293, true }, - { 91310, true }, - { 91324, false }, - { 91341, true }, - { 91355, true }, - { 91364, true }, - { 91381, true }, - { 91398, true }, - { 91410, true }, - { 91424, true }, - { 91436, true }, - { 91452, true }, - { 91478, true }, - { 91488, true }, - { 91498, true }, - { 91511, true }, - { 91519, true }, - { 91530, true }, - { 91545, true }, - { 91563, true }, - { 91579, true }, - { 91593, true }, - { 91610, true }, + { 91214, true }, + { 91224, true }, + { 91234, true }, + { 91247, true }, + { 91255, true }, + { 91266, true }, + { 91281, true }, + { 91299, true }, + { 91315, true }, + { 91329, true }, + { 91346, true }, + { 91366, true }, + { 91376, true }, + { 91392, true }, + { 91405, true }, + { 91415, false }, + { 91429, true }, + { 91440, true }, + { 91456, true }, + { 91464, true }, + { 91474, true }, + { 91489, true }, + { 91505, true }, + { 91524, true }, + { 91537, true }, + { 91557, true }, + { 91572, true }, + { 91590, true }, + { 91603, true }, + { 91613, true }, { 91630, true }, - { 91640, true }, + { 91645, true }, { 91656, true }, - { 91669, true }, - { 91679, false }, - { 91693, true }, - { 91704, true }, - { 91720, true }, - { 91728, true }, - { 91738, true }, - { 91753, true }, + { 91667, true }, + { 91680, true }, + { 91688, true }, + { 91697, true }, + { 91708, true }, + { 91722, true }, + { 91745, true }, + { 91758, true }, { 91769, true }, - { 91788, true }, - { 91801, true }, - { 91821, true }, - { 91836, true }, - { 91854, true }, - { 91867, true }, - { 91877, true }, - { 91894, true }, - { 91909, true }, - { 91920, true }, - { 91931, true }, - { 91944, true }, - { 91952, true }, - { 91961, true }, - { 91972, true }, - { 91986, true }, - { 92009, true }, - { 92022, true }, - { 92033, true }, - { 92047, true }, - { 92075, true }, - { 92090, true }, - { 92114, true }, - { 92129, true }, - { 92149, true }, - { 92162, true }, - { 92177, true }, - { 92190, true }, + { 91783, true }, + { 91811, true }, + { 91826, true }, + { 91850, true }, + { 91865, true }, + { 91885, true }, + { 91898, true }, + { 91913, true }, + { 91926, true }, + { 91940, true }, + { 91951, true }, + { 91962, true }, + { 91976, true }, + { 91993, true }, + { 92006, true }, + { 92021, true }, + { 92029, true }, + { 92049, true }, + { 92060, true }, + { 92070, true }, + { 92081, true }, + { 92091, true }, + { 92103, true }, + { 92118, true }, + { 92127, true }, + { 92141, true }, + { 92154, true }, + { 92164, true }, + { 92179, true }, + { 92193, true }, { 92204, true }, - { 92215, true }, - { 92226, true }, - { 92240, true }, - { 92257, true }, + { 92219, false }, + { 92229, true }, + { 92248, true }, + { 92261, true }, { 92270, true }, - { 92285, true }, - { 92293, true }, - { 92313, true }, - { 92324, true }, - { 92334, true }, - { 92345, true }, - { 92355, true }, - { 92367, true }, - { 92382, true }, - { 92391, true }, - { 92405, true }, - { 92418, true }, - { 92428, true }, - { 92443, true }, - { 92457, true }, - { 92468, true }, - { 92483, false }, - { 92493, true }, - { 92512, true }, - { 92525, true }, - { 92534, true }, + { 92281, true }, + { 92295, true }, + { 92315, true }, + { 92331, true }, + { 92342, true }, + { 92358, true }, + { 92375, true }, + { 92390, true }, + { 92403, true }, + { 92420, true }, + { 92430, true }, + { 92440, true }, + { 92448, true }, + { 92459, true }, + { 92469, true }, + { 92482, true }, + { 92496, true }, + { 92508, true }, + { 92518, true }, + { 92526, true }, { 92545, true }, - { 92559, true }, - { 92579, true }, - { 92595, true }, - { 92606, true }, - { 92622, true }, - { 92639, true }, - { 92654, true }, - { 92667, true }, - { 92684, true }, - { 92694, true }, - { 92704, true }, - { 92712, true }, - { 92723, true }, + { 92565, true }, + { 92574, true }, + { 92588, true }, + { 92602, true }, + { 92616, true }, + { 92658, true }, + { 92674, true }, + { 92683, true }, + { 92695, true }, + { 92707, true }, + { 92720, true }, { 92733, true }, - { 92746, true }, - { 92760, true }, + { 92751, true }, + { 92759, true }, { 92772, true }, { 92782, true }, - { 92790, true }, - { 92809, true }, - { 92829, true }, - { 92838, true }, - { 92852, true }, - { 92866, true }, - { 92880, true }, - { 92922, true }, - { 92938, true }, - { 92947, true }, - { 92959, true }, + { 92794, true }, + { 92805, true }, + { 92822, true }, + { 92837, true }, + { 92849, true }, + { 92862, true }, + { 92874, true }, + { 92889, true }, + { 92902, true }, + { 92914, true }, + { 92924, true }, + { 92942, true }, + { 92957, true }, { 92971, true }, - { 92984, true }, - { 92997, true }, - { 93015, true }, - { 93023, true }, - { 93036, true }, - { 93046, true }, - { 93058, true }, - { 93069, true }, - { 93086, true }, - { 93101, true }, - { 93113, true }, - { 93126, true }, + { 92989, true }, + { 93007, true }, + { 93019, true }, + { 93037, true }, + { 93048, true }, + { 93062, true }, + { 93082, true }, + { 93095, true }, + { 93107, true }, + { 93127, true }, { 93138, true }, - { 93153, true }, - { 93166, true }, + { 93147, true }, + { 93156, true }, + { 93163, true }, { 93178, true }, - { 93188, true }, - { 93206, true }, - { 93221, true }, - { 93235, true }, - { 93253, true }, - { 93271, true }, - { 93283, true }, - { 93301, true }, - { 93312, true }, - { 93326, true }, - { 93346, true }, - { 93359, true }, - { 93371, true }, - { 93391, true }, - { 93402, true }, - { 93411, true }, - { 93420, true }, - { 93427, true }, - { 93442, true }, - { 93457, true }, - { 93471, true }, - { 93490, true }, - { 93501, true }, - { 93515, true }, - { 93527, true }, - { 93540, true }, - { 93553, true }, - { 93564, true }, - { 93577, true }, - { 93589, true }, - { 93612, true }, - { 93621, true }, + { 93193, true }, + { 93207, true }, + { 93226, true }, + { 93237, true }, + { 93251, true }, + { 93263, true }, + { 93276, true }, + { 93289, true }, + { 93300, true }, + { 93313, true }, + { 93325, true }, + { 93348, true }, + { 93357, true }, + { 93374, true }, + { 93387, true }, + { 93399, true }, + { 93410, true }, + { 93425, true }, + { 93439, true }, + { 93447, true }, + { 93461, true }, + { 93475, true }, + { 93483, true }, + { 93496, true }, + { 93507, true }, + { 93519, false }, + { 93532, true }, + { 93543, true }, + { 93551, true }, + { 93561, true }, + { 93571, true }, + { 93588, true }, + { 93606, true }, + { 93624, true }, { 93638, true }, - { 93651, true }, - { 93663, true }, - { 93674, true }, - { 93689, true }, - { 93703, true }, - { 93711, true }, - { 93725, true }, - { 93739, true }, - { 93747, true }, - { 93760, true }, - { 93771, true }, - { 93783, true }, - { 93794, true }, + { 93648, true }, + { 93672, true }, + { 93686, true }, + { 93705, true }, + { 93717, true }, + { 93736, true }, + { 93753, true }, + { 93763, true }, + { 93778, true }, + { 93790, true }, { 93802, true }, - { 93812, true }, - { 93822, true }, - { 93839, true }, - { 93857, true }, - { 93875, true }, - { 93889, true }, - { 93899, true }, - { 93923, true }, - { 93937, true }, - { 93956, true }, - { 93968, true }, - { 93987, true }, + { 93815, true }, + { 93824, true }, + { 93833, true }, + { 93852, true }, + { 93864, true }, + { 93892, true }, + { 93919, true }, + { 93945, true }, + { 93970, true }, + { 93980, true }, + { 93989, true }, { 94004, true }, - { 94014, true }, - { 94029, true }, - { 94041, true }, - { 94053, true }, - { 94066, true }, - { 94075, true }, - { 94084, true }, - { 94103, true }, - { 94115, true }, - { 94143, true }, - { 94170, true }, - { 94196, true }, + { 94019, false }, + { 94037, true }, + { 94048, true }, + { 94060, true }, + { 94076, true }, + { 94090, true }, + { 94105, true }, + { 94121, true }, + { 94147, true }, + { 94158, true }, + { 94173, true }, + { 94188, true }, + { 94203, true }, { 94221, true }, - { 94231, true }, - { 94240, true }, - { 94255, true }, - { 94270, false }, + { 94236, true }, + { 94249, true }, + { 94265, true }, { 94288, true }, - { 94299, true }, - { 94311, true }, + { 94301, true }, + { 94314, true }, { 94327, true }, - { 94341, true }, - { 94356, true }, - { 94372, true }, - { 94398, true }, - { 94409, true }, - { 94424, true }, - { 94439, true }, - { 94454, true }, - { 94472, true }, - { 94487, true }, - { 94500, true }, - { 94516, true }, - { 94539, true }, - { 94552, true }, - { 94565, true }, - { 94578, true }, - { 94597, true }, - { 94612, true }, - { 94626, true }, - { 94638, false }, - { 94657, true }, - { 94672, true }, - { 94690, true }, - { 94701, true }, - { 94713, true }, - { 94724, true }, - { 94737, true }, - { 94760, true }, - { 94775, true }, - { 94789, true }, - { 94806, false }, - { 94820, true }, - { 94831, true }, - { 94847, true }, - { 94860, true }, - { 94870, true }, - { 94881, true }, - { 94889, true }, - { 94906, true }, - { 94921, true }, - { 94931, true }, + { 94346, true }, + { 94362, true }, + { 94377, true }, + { 94391, true }, + { 94403, false }, + { 94422, true }, + { 94437, true }, + { 94455, true }, + { 94466, true }, + { 94477, true }, + { 94490, true }, + { 94513, true }, + { 94528, true }, + { 94542, true }, + { 94559, false }, + { 94573, true }, + { 94584, true }, + { 94600, true }, + { 94613, true }, + { 94623, true }, + { 94634, true }, + { 94642, true }, + { 94659, true }, + { 94674, true }, + { 94684, true }, + { 94694, true }, + { 94705, true }, + { 94716, true }, + { 94736, true }, + { 94751, true }, + { 94768, true }, + { 94782, true }, + { 94792, true }, + { 94811, true }, + { 94822, true }, + { 94844, true }, + { 94858, true }, + { 94869, false }, + { 94882, true }, + { 94892, true }, + { 94910, true }, + { 94927, true }, { 94941, true }, - { 94952, true }, - { 94963, true }, - { 94983, true }, - { 94998, true }, - { 95015, true }, - { 95029, true }, - { 95039, true }, - { 95058, true }, - { 95069, true }, - { 95091, true }, - { 95105, true }, - { 95116, false }, - { 95129, true }, - { 95139, true }, - { 95157, true }, - { 95174, true }, - { 95188, true }, - { 95200, true }, - { 95216, true }, - { 95227, true }, - { 95237, true }, - { 95257, true }, - { 95284, true }, - { 95300, true }, - { 95315, true }, - { 95328, true }, - { 95340, true }, - { 95356, true }, - { 95368, true }, - { 95385, true }, - { 95395, true }, - { 95412, true }, - { 95429, true }, - { 95441, true }, - { 95454, false }, - { 95468, true }, - { 95491, false }, - { 95505, true }, - { 95517, true }, - { 95528, true }, - { 95540, true }, - { 95558, true }, - { 95571, true }, - { 95586, true }, - { 95604, true }, - { 95614, true }, - { 95626, true }, - { 95636, true }, + { 94953, true }, + { 94969, true }, + { 94980, true }, + { 94990, true }, + { 95010, true }, + { 95037, true }, + { 95053, true }, + { 95068, true }, + { 95081, true }, + { 95093, true }, + { 95109, true }, + { 95121, true }, + { 95138, true }, + { 95148, true }, + { 95165, true }, + { 95182, true }, + { 95194, true }, + { 95207, false }, + { 95221, true }, + { 95244, false }, + { 95258, true }, + { 95270, true }, + { 95281, true }, + { 95293, true }, + { 95311, true }, + { 95324, true }, + { 95339, true }, + { 95357, true }, + { 95367, true }, + { 95379, true }, + { 95389, true }, + { 95398, true }, + { 95410, true }, + { 95424, true }, + { 95445, true }, + { 95459, true }, + { 95473, true }, + { 95491, true }, + { 95509, true }, + { 95521, true }, + { 95533, true }, + { 95541, true }, + { 95555, true }, + { 95570, true }, + { 95585, true }, + { 95599, true }, + { 95608, true }, + { 95618, true }, + { 95630, true }, { 95645, true }, { 95657, true }, - { 95671, true }, - { 95692, true }, - { 95706, true }, - { 95720, true }, - { 95738, true }, - { 95756, true }, - { 95768, true }, + { 95680, true }, + { 95688, true }, + { 95699, true }, + { 95708, true }, + { 95716, true }, + { 95729, true }, + { 95752, true }, + { 95764, true }, { 95780, true }, - { 95788, true }, - { 95802, true }, - { 95817, true }, - { 95832, true }, + { 95803, true }, + { 95814, true }, + { 95830, true }, { 95846, true }, - { 95855, true }, - { 95865, true }, - { 95877, true }, - { 95892, true }, + { 95861, true }, + { 95874, true }, + { 95884, true }, + { 95891, true }, { 95904, true }, { 95927, true }, - { 95935, true }, - { 95946, true }, - { 95955, true }, - { 95963, true }, - { 95976, true }, - { 95999, true }, - { 96011, true }, - { 96027, true }, - { 96050, true }, - { 96061, true }, - { 96077, true }, - { 96093, true }, - { 96108, true }, - { 96121, true }, - { 96131, true }, - { 96138, true }, - { 96151, true }, - { 96174, true }, - { 96191, true }, - { 96209, true }, - { 96238, true }, - { 96255, true }, - { 96265, true }, - { 96279, true }, - { 96291, true }, - { 96300, true }, - { 96316, false }, - { 96331, true }, - { 96344, true }, - { 96362, true }, - { 96380, true }, - { 96390, true }, - { 96398, true }, - { 96408, true }, - { 96418, true }, - { 96426, true }, - { 96438, true }, - { 96452, true }, - { 96470, true }, - { 96479, true }, - { 96494, true }, - { 96517, true }, - { 96525, true }, - { 96540, true }, - { 96558, true }, - { 96570, true }, - { 96580, true }, - { 96591, true }, - { 96603, true }, - { 96614, false }, - { 96630, false }, - { 96651, true }, - { 96668, true }, - { 96686, true }, + { 95944, true }, + { 95962, true }, + { 95991, true }, + { 96008, true }, + { 96018, true }, + { 96032, true }, + { 96044, true }, + { 96053, false }, + { 96068, true }, + { 96081, true }, + { 96099, true }, + { 96109, true }, + { 96117, true }, + { 96127, true }, + { 96137, true }, + { 96145, true }, + { 96157, true }, + { 96171, true }, + { 96189, true }, + { 96198, true }, + { 96213, true }, + { 96236, true }, + { 96244, true }, + { 96259, true }, + { 96277, true }, + { 96289, true }, + { 96299, true }, + { 96310, true }, + { 96322, true }, + { 96333, false }, + { 96349, false }, + { 96370, true }, + { 96387, true }, + { 96405, true }, + { 96422, true }, + { 96439, true }, + { 96453, true }, + { 96461, true }, + { 96474, true }, + { 96492, true }, + { 96519, true }, + { 96543, true }, + { 96560, true }, + { 96576, true }, + { 96590, true }, + { 96602, true }, + { 96613, true }, + { 96624, true }, + { 96634, true }, + { 96645, false }, + { 96666, true }, + { 96677, true }, + { 96691, true }, { 96703, true }, - { 96720, true }, - { 96734, true }, - { 96742, true }, - { 96755, true }, - { 96773, true }, - { 96800, true }, - { 96824, true }, - { 96841, true }, - { 96856, true }, - { 96872, true }, - { 96886, true }, - { 96898, true }, - { 96909, true }, - { 96920, true }, - { 96930, true }, - { 96941, false }, - { 96962, true }, + { 96717, true }, + { 96735, true }, + { 96749, true }, + { 96760, true }, + { 96777, true }, + { 96788, true }, + { 96798, true }, + { 96818, true }, + { 96829, true }, + { 96843, true }, + { 96857, true }, + { 96870, true }, + { 96881, true }, + { 96900, true }, + { 96913, true }, + { 96921, true }, + { 96935, true }, + { 96948, true }, + { 96960, true }, { 96973, true }, - { 96987, true }, - { 96999, true }, - { 97013, true }, - { 97031, true }, - { 97045, true }, - { 97056, true }, - { 97073, true }, - { 97084, true }, - { 97094, true }, - { 97114, true }, - { 97125, true }, - { 97139, true }, + { 96985, true }, + { 96997, true }, + { 97012, true }, + { 97022, true }, + { 97037, true }, + { 97051, true }, + { 97064, true }, + { 97074, false }, + { 97085, true }, + { 97095, true }, + { 97106, true }, + { 97117, true }, + { 97128, true }, + { 97141, true }, { 97153, true }, - { 97166, true }, - { 97177, true }, - { 97196, true }, - { 97209, true }, + { 97165, true }, + { 97175, true }, + { 97183, true }, + { 97205, true }, { 97217, true }, - { 97231, true }, - { 97244, true }, - { 97256, true }, + { 97226, true }, + { 97235, true }, + { 97247, true }, + { 97259, true }, { 97269, true }, - { 97281, true }, - { 97293, true }, - { 97308, true }, - { 97318, true }, - { 97333, true }, - { 97347, true }, - { 97360, true }, - { 97370, false }, - { 97381, true }, - { 97391, true }, - { 97402, true }, - { 97413, true }, - { 97424, true }, - { 97437, true }, - { 97449, true }, - { 97461, true }, - { 97471, true }, - { 97479, true }, - { 97501, true }, - { 97513, true }, - { 97522, true }, - { 97531, true }, - { 97543, true }, - { 97555, true }, - { 97565, true }, - { 97576, true }, - { 97586, true }, - { 97599, false }, - { 97610, true }, - { 97623, false }, - { 97648, true }, - { 97660, true }, - { 97669, true }, - { 97686, true }, - { 97704, true }, - { 97716, true }, - { 97724, true }, - { 97743, true }, - { 97756, true }, - { 97770, true }, - { 97780, true }, - { 97792, true }, - { 97816, true }, - { 97830, true }, - { 97848, true }, - { 97866, true }, - { 97884, true }, - { 97903, true }, - { 97913, true }, - { 97927, true }, - { 97940, true }, - { 97950, true }, - { 97963, true }, - { 97972, true }, - { 97983, true }, - { 97995, true }, - { 98008, true }, - { 98018, true }, - { 98026, true }, + { 97280, true }, + { 97290, true }, + { 97303, false }, + { 97314, true }, + { 97327, false }, + { 97352, true }, + { 97364, true }, + { 97373, true }, + { 97390, true }, + { 97408, true }, + { 97420, true }, + { 97428, true }, + { 97447, true }, + { 97460, true }, + { 97474, true }, + { 97484, true }, + { 97496, true }, + { 97520, true }, + { 97534, true }, + { 97552, true }, + { 97570, true }, + { 97588, true }, + { 97607, true }, + { 97617, true }, + { 97631, true }, + { 97644, true }, + { 97654, true }, + { 97667, true }, + { 97676, true }, + { 97687, true }, + { 97699, true }, + { 97712, true }, + { 97722, true }, + { 97730, true }, + { 97742, true }, + { 97754, true }, + { 97769, true }, + { 97777, true }, + { 97789, true }, + { 97804, true }, + { 97813, true }, + { 97819, true }, + { 97831, true }, + { 97841, true }, + { 97850, false }, + { 97865, true }, + { 97883, true }, + { 97896, true }, + { 97910, true }, + { 97922, true }, + { 97936, true }, + { 97949, true }, + { 97960, true }, + { 97969, true }, + { 97979, true }, + { 97992, true }, + { 98000, true }, + { 98013, true }, + { 98025, true }, { 98038, true }, - { 98050, true }, - { 98065, true }, - { 98073, true }, - { 98085, true }, - { 98100, true }, - { 98109, true }, - { 98115, true }, - { 98127, true }, - { 98137, true }, - { 98146, false }, - { 98161, true }, - { 98179, true }, + { 98058, true }, + { 98077, true }, + { 98094, true }, + { 98106, true }, + { 98121, true }, + { 98134, true }, + { 98146, true }, + { 98165, true }, + { 98173, true }, { 98192, true }, - { 98206, true }, - { 98218, true }, - { 98232, true }, - { 98245, true }, - { 98256, true }, - { 98265, true }, - { 98275, true }, + { 98208, true }, + { 98219, true }, + { 98234, true }, + { 98244, true }, + { 98258, true }, + { 98269, true }, { 98288, true }, - { 98296, true }, - { 98309, true }, - { 98321, true }, - { 98334, true }, - { 98354, true }, - { 98373, true }, - { 98390, true }, - { 98402, true }, - { 98417, true }, - { 98430, true }, - { 98442, true }, + { 98297, false }, + { 98308, true }, + { 98316, true }, + { 98324, true }, + { 98332, true }, + { 98340, true }, + { 98351, true }, + { 98363, true }, + { 98375, false }, + { 98389, true }, + { 98403, true }, + { 98414, true }, + { 98423, true }, + { 98439, true }, { 98461, true }, - { 98469, true }, - { 98488, true }, - { 98504, true }, - { 98515, true }, - { 98530, true }, - { 98540, true }, - { 98554, true }, - { 98565, true }, - { 98584, true }, - { 98593, false }, - { 98604, true }, - { 98612, true }, - { 98620, true }, - { 98628, true }, - { 98636, true }, - { 98647, true }, - { 98659, true }, - { 98671, false }, - { 98685, true }, - { 98699, true }, - { 98710, true }, - { 98719, true }, - { 98735, true }, - { 98757, true }, - { 98769, true }, - { 98776, true }, - { 98786, true }, - { 98796, true }, - { 98808, true }, - { 98826, true }, - { 98836, true }, - { 98859, true }, - { 98914, true }, - { 98929, true }, - { 98939, true }, - { 98957, true }, - { 98972, true }, - { 98985, false }, - { 98999, true }, - { 99013, false }, - { 99029, true }, - { 99054, true }, - { 99073, true }, - { 99083, true }, - { 99094, true }, - { 99106, true }, - { 99128, true }, - { 99151, true }, - { 99161, true }, - { 99171, false }, - { 99185, true }, - { 99203, true }, - { 99214, true }, - { 99225, true }, + { 98473, true }, + { 98480, true }, + { 98492, true }, + { 98502, true }, + { 98512, true }, + { 98524, true }, + { 98542, true }, + { 98552, true }, + { 98575, true }, + { 98630, true }, + { 98645, true }, + { 98655, true }, + { 98673, true }, + { 98688, true }, + { 98701, false }, + { 98715, true }, + { 98729, false }, + { 98745, true }, + { 98770, true }, + { 98789, true }, + { 98799, true }, + { 98810, true }, + { 98822, true }, + { 98844, true }, + { 98867, true }, + { 98877, true }, + { 98887, false }, + { 98901, true }, + { 98919, true }, + { 98930, true }, + { 98941, true }, + { 98960, true }, + { 98976, true }, + { 98989, true }, + { 99003, true }, + { 99016, true }, + { 99045, true }, + { 99058, true }, + { 99068, true }, + { 99080, true }, + { 99092, true }, + { 99111, true }, + { 99121, true }, + { 99135, true }, + { 99145, true }, + { 99162, true }, + { 99173, true }, + { 99189, true }, + { 99208, true }, + { 99223, true }, + { 99235, true }, { 99244, true }, - { 99260, true }, - { 99273, true }, - { 99287, true }, - { 99300, true }, - { 99329, true }, - { 99342, true }, - { 99352, true }, - { 99364, true }, - { 99376, true }, - { 99395, true }, - { 99405, true }, - { 99419, true }, - { 99429, true }, - { 99446, true }, - { 99457, true }, - { 99473, true }, - { 99492, true }, - { 99507, true }, - { 99519, true }, - { 99528, true }, - { 99548, true }, - { 99564, true }, - { 99578, true }, - { 99591, true }, - { 99606, true }, - { 99618, true }, - { 99628, true }, - { 99642, true }, - { 99657, true }, - { 99669, true }, - { 99687, true }, - { 99697, true }, - { 99709, true }, - { 99723, true }, - { 99735, true }, - { 99747, true }, - { 99768, true }, - { 99784, true }, - { 99797, true }, - { 99814, true }, - { 99829, true }, - { 99842, true }, - { 99855, true }, - { 99869, true }, - { 99884, true }, - { 99897, true }, - { 99916, true }, - { 99939, false }, - { 99952, false }, - { 99970, true }, - { 99990, true }, - { 100003, true }, - { 100018, true }, - { 100033, true }, - { 100048, true }, - { 100062, true }, - { 100077, true }, - { 100090, true }, - { 100115, true }, - { 100137, true }, - { 100148, true }, - { 100164, true }, - { 100178, true }, - { 100205, true }, - { 100230, true }, - { 100244, true }, - { 100258, true }, - { 100272, true }, - { 100283, true }, - { 100307, true }, - { 100318, true }, - { 100329, true }, - { 100341, true }, - { 100369, true }, - { 100379, true }, - { 100389, true }, - { 100406, true }, - { 100423, true }, - { 100436, true }, - { 100446, true }, - { 100469, true }, - { 100479, true }, - { 100488, true }, - { 100510, true }, - { 100522, true }, - { 100534, true }, + { 99264, true }, + { 99280, true }, + { 99294, true }, + { 99307, true }, + { 99322, true }, + { 99334, true }, + { 99344, true }, + { 99358, true }, + { 99373, true }, + { 99385, true }, + { 99403, true }, + { 99413, true }, + { 99425, true }, + { 99439, true }, + { 99451, true }, + { 99463, true }, + { 99484, true }, + { 99500, true }, + { 99513, true }, + { 99530, true }, + { 99545, true }, + { 99558, true }, + { 99571, true }, + { 99585, true }, + { 99600, true }, + { 99613, true }, + { 99632, true }, + { 99655, false }, + { 99668, false }, + { 99686, true }, + { 99706, true }, + { 99719, true }, + { 99734, true }, + { 99749, true }, + { 99764, true }, + { 99778, true }, + { 99793, true }, + { 99806, true }, + { 99831, true }, + { 99853, true }, + { 99864, true }, + { 99880, true }, + { 99894, true }, + { 99921, true }, + { 99946, true }, + { 99960, true }, + { 99974, true }, + { 99988, true }, + { 99999, true }, + { 100023, true }, + { 100034, true }, + { 100045, true }, + { 100057, true }, + { 100085, true }, + { 100095, true }, + { 100105, true }, + { 100122, true }, + { 100139, true }, + { 100152, true }, + { 100162, true }, + { 100185, true }, + { 100195, true }, + { 100204, true }, + { 100226, true }, + { 100238, true }, + { 100250, true }, + { 100262, true }, + { 100273, true }, + { 100291, true }, + { 100306, true }, + { 100316, true }, + { 100325, true }, + { 100343, false }, + { 100354, true }, + { 100365, true }, + { 100375, true }, + { 100383, true }, + { 100397, true }, + { 100409, true }, + { 100421, true }, + { 100439, true }, + { 100459, true }, + { 100474, true }, + { 100491, true }, + { 100507, true }, + { 100520, true }, + { 100531, true }, { 100546, true }, - { 100557, true }, - { 100575, true }, + { 100561, true }, + { 100577, true }, { 100590, true }, - { 100600, true }, - { 100609, true }, - { 100627, false }, - { 100638, true }, - { 100649, true }, - { 100659, true }, - { 100667, true }, - { 100681, true }, - { 100693, true }, - { 100705, true }, - { 100723, true }, - { 100743, true }, - { 100758, true }, - { 100775, true }, - { 100791, true }, - { 100804, true }, - { 100815, true }, - { 100830, true }, - { 100845, true }, - { 100861, true }, + { 100615, true }, + { 100631, true }, + { 100651, true }, + { 100666, true }, + { 100677, true }, + { 100688, true }, + { 100704, true }, + { 100716, true }, + { 100733, true }, + { 100741, true }, + { 100753, true }, + { 100765, true }, + { 100779, true }, + { 100796, true }, + { 100812, true }, + { 100828, true }, + { 100847, true }, + { 100862, true }, { 100874, true }, - { 100899, true }, - { 100915, true }, - { 100935, true }, - { 100950, true }, - { 100961, true }, - { 100972, true }, - { 100988, true }, - { 101000, true }, - { 101017, true }, - { 101025, true }, - { 101037, true }, - { 101049, true }, - { 101063, true }, - { 101080, true }, - { 101096, true }, - { 101112, true }, - { 101131, true }, - { 101146, true }, - { 101158, true }, - { 101175, false }, - { 101195, true }, - { 101215, true }, - { 101236, true }, - { 101257, false }, + { 100891, false }, + { 100911, true }, + { 100931, true }, + { 100952, true }, + { 100973, false }, + { 100990, true }, + { 101009, true }, + { 101024, true }, + { 101035, true }, + { 101052, true }, + { 101079, true }, + { 101090, true }, + { 101100, true }, + { 101115, true }, + { 101127, true }, + { 101148, true }, + { 101157, true }, + { 101170, true }, + { 101183, true }, + { 101201, true }, + { 101210, true }, + { 101219, true }, + { 101228, false }, + { 101245, false }, + { 101256, true }, { 101274, true }, - { 101293, true }, - { 101308, true }, - { 101319, true }, - { 101336, true }, - { 101363, true }, - { 101374, true }, - { 101384, true }, - { 101399, true }, - { 101411, true }, - { 101432, true }, - { 101441, true }, - { 101454, true }, - { 101467, true }, - { 101485, true }, - { 101494, true }, - { 101503, true }, - { 101512, false }, - { 101529, false }, - { 101540, true }, - { 101558, true }, - { 101569, true }, + { 101285, true }, + { 101300, true }, + { 101316, true }, + { 101338, true }, + { 101346, true }, + { 101359, true }, + { 101371, true }, + { 101388, true }, + { 101402, true }, + { 101412, true }, + { 101430, true }, + { 101447, true }, + { 101464, true }, + { 101472, true }, + { 101496, true }, + { 101514, true }, + { 101528, true }, + { 101541, true }, + { 101555, true }, + { 101574, true }, { 101584, true }, - { 101600, true }, - { 101622, true }, - { 101630, true }, - { 101643, true }, - { 101655, true }, + { 101596, true }, + { 101608, true }, + { 101620, true }, + { 101633, true }, + { 101640, true }, + { 101660, true }, { 101672, true }, - { 101686, true }, - { 101696, true }, - { 101714, true }, - { 101731, true }, + { 101688, true }, + { 101698, true }, + { 101709, true }, + { 101716, true }, + { 101735, true }, { 101748, true }, - { 101756, true }, - { 101780, true }, - { 101798, true }, + { 101758, true }, + { 101768, true }, + { 101776, true }, + { 101789, true }, + { 101801, false }, { 101812, true }, - { 101825, true }, + { 101824, false }, { 101839, true }, - { 101858, true }, - { 101868, true }, - { 101880, true }, - { 101892, true }, - { 101904, true }, - { 101917, true }, - { 101924, true }, - { 101944, true }, - { 101956, true }, - { 101972, true }, + { 101851, true }, + { 101866, true }, + { 101884, true }, + { 101895, true }, + { 101907, true }, + { 101928, false }, + { 101954, true }, + { 101968, true }, { 101982, true }, - { 101993, true }, - { 102000, true }, - { 102009, true }, - { 102028, true }, - { 102041, true }, - { 102051, true }, - { 102061, true }, - { 102069, true }, - { 102082, true }, - { 102094, true }, - { 102106, false }, - { 102121, true }, - { 102133, true }, - { 102148, true }, - { 102166, true }, - { 102177, true }, - { 102189, true }, - { 102210, false }, - { 102236, true }, - { 102250, true }, - { 102264, true }, - { 102278, true }, - { 102291, false }, - { 102304, true }, - { 102315, true }, - { 102329, true }, - { 102342, true }, + { 101996, true }, + { 102009, false }, + { 102022, true }, + { 102033, true }, + { 102047, true }, + { 102060, true }, + { 102072, true }, + { 102085, false }, + { 102099, true }, + { 102117, true }, + { 102130, true }, + { 102140, true }, + { 102151, true }, + { 102162, true }, + { 102173, true }, + { 102186, true }, + { 102198, true }, + { 102206, true }, + { 102220, true }, + { 102235, true }, + { 102258, true }, + { 102269, true }, + { 102283, false }, + { 102298, true }, + { 102314, true }, + { 102326, true }, + { 102340, true }, { 102354, true }, - { 102367, false }, - { 102381, true }, - { 102399, true }, - { 102412, true }, + { 102367, true }, + { 102380, true }, + { 102394, true }, { 102422, true }, - { 102433, true }, - { 102444, true }, - { 102455, true }, - { 102468, true }, - { 102480, true }, - { 102488, true }, - { 102502, true }, + { 102450, true }, + { 102460, true }, + { 102473, true }, + { 102489, true }, + { 102502, false }, { 102517, true }, - { 102540, true }, - { 102551, true }, - { 102565, false }, - { 102580, true }, - { 102596, true }, - { 102608, true }, - { 102622, true }, - { 102636, true }, + { 102535, true }, + { 102554, true }, + { 102562, false }, + { 102577, true }, + { 102590, true }, + { 102605, true }, + { 102619, true }, + { 102635, true }, { 102649, true }, - { 102662, true }, - { 102676, true }, - { 102704, true }, - { 102732, true }, - { 102742, true }, - { 102755, true }, - { 102771, true }, - { 102784, false }, + { 102659, true }, + { 102668, false }, + { 102679, true }, + { 102690, true }, + { 102700, true }, + { 102712, true }, + { 102739, true }, + { 102750, true }, + { 102759, true }, + { 102768, true }, + { 102785, false }, { 102799, true }, - { 102817, true }, - { 102836, true }, - { 102844, false }, + { 102822, true }, + { 102838, true }, { 102859, true }, - { 102872, true }, - { 102887, true }, - { 102901, true }, - { 102917, true }, - { 102931, true }, - { 102941, true }, - { 102950, false }, - { 102961, true }, - { 102972, true }, - { 102982, true }, - { 102994, true }, - { 103021, true }, - { 103032, true }, - { 103041, true }, - { 103050, true }, - { 103067, false }, - { 103081, true }, - { 103104, true }, - { 103120, true }, - { 103141, true }, - { 103157, true }, - { 103177, true }, - { 103187, true }, - { 103195, true }, - { 103204, true }, - { 103215, true }, - { 103229, true }, - { 103239, true }, + { 102875, true }, + { 102895, true }, + { 102905, true }, + { 102913, true }, + { 102922, true }, + { 102933, true }, + { 102947, true }, + { 102957, true }, + { 102967, true }, + { 102987, true }, + { 102997, true }, + { 103011, true }, + { 103023, true }, + { 103042, true }, + { 103055, true }, + { 103079, false }, + { 103098, true }, + { 103126, true }, + { 103140, true }, + { 103154, true }, + { 103166, true }, + { 103180, true }, + { 103190, true }, + { 103212, true }, + { 103231, true }, { 103249, true }, - { 103269, true }, - { 103279, true }, - { 103293, true }, - { 103305, true }, - { 103324, true }, + { 103257, true }, + { 103273, true }, + { 103288, true }, + { 103296, true }, + { 103307, true }, + { 103323, true }, { 103337, true }, - { 103361, false }, - { 103380, true }, - { 103408, true }, - { 103422, true }, - { 103436, true }, - { 103448, true }, - { 103462, true }, - { 103472, true }, - { 103494, true }, - { 103513, true }, - { 103531, true }, - { 103539, true }, - { 103555, true }, - { 103570, true }, - { 103578, true }, - { 103589, true }, - { 103605, true }, - { 103619, true }, + { 103353, true }, + { 103368, true }, + { 103383, true }, + { 103395, true }, + { 103407, true }, + { 103426, false }, + { 103451, true }, + { 103470, true }, + { 103487, true }, + { 103497, true }, + { 103508, true }, + { 103520, true }, + { 103535, true }, + { 103553, true }, + { 103560, true }, + { 103571, true }, + { 103585, true }, + { 103598, true }, + { 103611, true }, + { 103624, true }, { 103635, true }, - { 103650, true }, - { 103665, true }, - { 103677, true }, - { 103689, true }, - { 103708, false }, - { 103733, true }, - { 103752, true }, - { 103769, true }, - { 103779, true }, - { 103790, true }, - { 103802, true }, - { 103817, true }, - { 103835, true }, - { 103842, true }, - { 103853, true }, - { 103867, true }, - { 103880, true }, - { 103893, true }, - { 103906, true }, - { 103917, true }, - { 103930, true }, - { 103940, true }, - { 103950, true }, - { 103962, true }, - { 103974, true }, - { 103983, true }, - { 103990, true }, + { 103648, true }, + { 103658, true }, + { 103668, true }, + { 103680, true }, + { 103692, true }, + { 103701, true }, + { 103708, true }, + { 103718, true }, + { 103729, true }, + { 103739, true }, + { 103757, true }, + { 103775, true }, + { 103789, true }, + { 103803, true }, + { 103826, true }, + { 103836, true }, + { 103851, true }, + { 103869, true }, + { 103886, true }, + { 103900, true }, + { 103914, true }, + { 103927, true }, + { 103939, true }, + { 103951, true }, + { 103963, true }, + { 103976, true }, + { 103989, false }, { 104000, true }, - { 104011, true }, - { 104021, true }, - { 104039, true }, - { 104057, true }, - { 104071, true }, - { 104085, true }, - { 104108, true }, - { 104118, true }, - { 104133, true }, - { 104151, true }, - { 104168, true }, - { 104182, true }, - { 104196, true }, + { 104014, true }, + { 104027, true }, + { 104042, true }, + { 104049, true }, + { 104068, true }, + { 104087, true }, + { 104102, true }, + { 104126, false }, + { 104141, true }, + { 104152, true }, + { 104175, true }, + { 104186, true }, + { 104197, true }, { 104209, true }, - { 104221, true }, - { 104233, true }, - { 104245, true }, - { 104258, true }, - { 104271, false }, - { 104282, true }, - { 104296, true }, - { 104309, true }, - { 104324, true }, - { 104331, true }, - { 104350, true }, - { 104369, true }, - { 104384, true }, - { 104408, false }, - { 104423, true }, - { 104434, true }, - { 104457, true }, - { 104468, true }, - { 104479, true }, - { 104491, true }, - { 104505, true }, - { 104518, true }, + { 104223, true }, + { 104236, true }, + { 104249, true }, + { 104262, true }, + { 104284, true }, + { 104294, true }, + { 104314, true }, + { 104332, true }, + { 104346, true }, + { 104363, false }, + { 104378, false }, + { 104394, true }, + { 104411, true }, + { 104422, true }, + { 104444, true }, + { 104458, true }, + { 104478, true }, + { 104488, true }, + { 104499, true }, + { 104508, true }, + { 104519, true }, { 104531, true }, - { 104544, true }, - { 104566, true }, - { 104576, true }, - { 104596, true }, + { 104541, true }, + { 104554, true }, + { 104562, true }, + { 104579, true }, + { 104600, true }, { 104614, true }, - { 104628, true }, - { 104645, false }, - { 104660, false }, - { 104676, true }, - { 104693, true }, - { 104704, true }, - { 104726, true }, - { 104740, true }, - { 104760, true }, - { 104770, true }, - { 104781, true }, - { 104790, true }, - { 104801, true }, - { 104813, true }, - { 104823, true }, - { 104836, true }, - { 104844, true }, + { 104629, true }, + { 104643, true }, + { 104663, true }, + { 104678, true }, + { 104689, true }, + { 104701, true }, + { 104714, true }, + { 104725, true }, + { 104738, true }, + { 104752, true }, + { 104765, true }, + { 104775, true }, + { 104798, true }, + { 104808, true }, + { 104818, true }, + { 104828, true }, + { 104845, true }, { 104861, true }, - { 104882, true }, + { 104876, true }, { 104896, true }, - { 104911, true }, - { 104925, true }, - { 104945, true }, - { 104960, true }, + { 104906, true }, + { 104920, true }, + { 104932, true }, + { 104957, true }, { 104971, true }, - { 104983, true }, - { 104996, true }, - { 105007, true }, - { 105020, true }, - { 105034, true }, - { 105047, true }, - { 105057, true }, - { 105080, true }, - { 105090, true }, - { 105100, true }, - { 105113, true }, - { 105123, true }, - { 105140, true }, - { 105156, true }, - { 105171, true }, - { 105191, true }, - { 105201, true }, - { 105215, true }, + { 104985, true }, + { 104999, true }, + { 105013, true }, + { 105027, true }, + { 105042, true }, + { 105056, true }, + { 105070, true }, + { 105084, true }, + { 105104, true }, + { 105121, true }, + { 105136, true }, + { 105149, true }, + { 105167, true }, + { 105182, true }, + { 105198, true }, + { 105210, true }, { 105227, true }, - { 105252, true }, - { 105266, true }, - { 105280, true }, - { 105294, true }, - { 105308, true }, - { 105322, true }, - { 105337, true }, - { 105351, true }, - { 105365, true }, - { 105379, true }, - { 105399, true }, - { 105416, true }, - { 105431, true }, - { 105444, true }, - { 105462, true }, - { 105477, true }, - { 105493, true }, - { 105505, true }, + { 105240, true }, + { 105255, true }, + { 105264, false }, + { 105279, true }, + { 105290, true }, + { 105305, true }, + { 105317, true }, + { 105326, true }, + { 105343, false }, + { 105353, true }, + { 105372, true }, + { 105382, true }, + { 105398, true }, + { 105418, true }, + { 105432, true }, + { 105451, true }, + { 105471, true }, + { 105487, true }, + { 105497, true }, + { 105512, true }, { 105522, true }, - { 105535, true }, - { 105550, true }, - { 105559, false }, - { 105574, true }, + { 105536, true }, + { 105557, true }, + { 105567, true }, + { 105576, true }, { 105585, true }, { 105600, true }, - { 105612, true }, - { 105621, true }, - { 105638, false }, - { 105648, true }, + { 105614, true }, + { 105628, true }, + { 105643, true }, + { 105659, true }, { 105667, true }, - { 105677, true }, - { 105693, true }, - { 105713, true }, - { 105727, true }, - { 105746, true }, + { 105675, true }, + { 105687, true }, + { 105699, true }, + { 105711, true }, + { 105724, true }, + { 105737, true }, + { 105751, true }, { 105766, true }, - { 105782, true }, - { 105792, true }, - { 105807, true }, + { 105780, false }, + { 105806, true }, { 105817, true }, - { 105831, true }, - { 105852, true }, - { 105862, true }, - { 105871, true }, - { 105880, true }, - { 105895, true }, - { 105909, true }, - { 105923, true }, - { 105938, true }, - { 105954, true }, - { 105962, true }, - { 105970, true }, - { 105982, true }, - { 105994, true }, - { 106006, true }, - { 106019, true }, - { 106032, true }, - { 106046, true }, - { 106061, true }, - { 106075, false }, - { 106101, true }, - { 106112, true }, - { 106121, true }, - { 106129, true }, - { 106137, true }, + { 105826, true }, + { 105834, true }, + { 105842, true }, + { 105850, true }, + { 105858, true }, + { 105868, true }, + { 105877, true }, + { 105889, true }, + { 105901, true }, + { 105920, true }, + { 105930, true }, + { 105941, true }, + { 105958, true }, + { 105971, true }, + { 105981, true }, + { 105992, true }, + { 106010, true }, + { 106028, true }, + { 106042, true }, + { 106052, true }, + { 106059, true }, + { 106074, true }, + { 106096, true }, + { 106104, true }, + { 106114, true }, + { 106133, true }, { 106145, true }, - { 106153, true }, - { 106163, true }, - { 106172, true }, - { 106184, true }, - { 106196, true }, - { 106215, true }, - { 106225, true }, - { 106236, true }, - { 106253, true }, - { 106266, true }, - { 106276, true }, - { 106287, true }, - { 106305, true }, - { 106323, true }, - { 106337, true }, - { 106347, true }, - { 106354, true }, - { 106369, true }, - { 106391, true }, - { 106399, true }, - { 106409, true }, - { 106428, true }, - { 106440, true }, - { 106450, true }, - { 106460, true }, + { 106155, true }, + { 106165, true }, + { 106175, true }, + { 106186, true }, + { 106199, true }, + { 106207, true }, + { 106221, true }, + { 106232, true }, + { 106239, true }, + { 106247, true }, + { 106265, true }, + { 106276, false }, + { 106291, true }, + { 106301, true }, + { 106310, true }, + { 106321, true }, + { 106330, true }, + { 106339, true }, + { 106359, true }, + { 106375, true }, + { 106384, false }, + { 106395, true }, + { 106407, true }, + { 106416, true }, + { 106432, true }, + { 106445, true }, + { 106458, true }, { 106470, true }, - { 106481, true }, - { 106494, true }, - { 106502, true }, - { 106516, true }, - { 106526, true }, - { 106537, true }, - { 106544, true }, - { 106552, true }, - { 106570, true }, - { 106581, false }, - { 106596, true }, - { 106606, true }, - { 106615, true }, - { 106626, true }, - { 106635, true }, - { 106644, true }, - { 106664, true }, - { 106680, true }, - { 106689, false }, - { 106700, true }, - { 106712, true }, - { 106721, true }, - { 106737, true }, - { 106750, true }, - { 106763, true }, - { 106775, true }, - { 106790, true }, - { 106800, true }, - { 106812, true }, - { 106823, true }, - { 106834, true }, - { 106846, true }, - { 106869, true }, - { 106879, true }, - { 106895, true }, - { 106910, true }, - { 106923, true }, - { 106932, true }, - { 106947, true }, - { 106960, true }, - { 106973, true }, - { 106988, true }, - { 106998, true }, - { 107015, true }, + { 106485, true }, + { 106495, true }, + { 106507, true }, + { 106518, true }, + { 106529, true }, + { 106541, true }, + { 106564, true }, + { 106574, true }, + { 106590, true }, + { 106605, true }, + { 106618, true }, + { 106627, true }, + { 106642, true }, + { 106655, true }, + { 106668, true }, + { 106683, true }, + { 106693, true }, + { 106710, true }, + { 106733, true }, + { 106749, false }, + { 106759, true }, + { 106773, true }, + { 106784, true }, + { 106794, true }, + { 106808, true }, + { 106819, true }, + { 106832, true }, + { 106845, true }, + { 106857, true }, + { 106875, true }, + { 106886, true }, + { 106897, true }, + { 106921, true }, + { 106936, true }, + { 106961, true }, + { 106969, true }, + { 106985, false }, + { 107000, true }, + { 107012, true }, + { 107024, true }, { 107038, true }, - { 107054, false }, - { 107064, true }, - { 107078, true }, - { 107089, true }, - { 107099, true }, - { 107113, true }, - { 107124, true }, - { 107137, true }, - { 107150, true }, + { 107052, true }, + { 107066, true }, + { 107080, true }, + { 107097, true }, + { 107114, true }, + { 107126, true }, + { 107140, true }, { 107162, true }, - { 107180, true }, - { 107191, true }, - { 107204, true }, + { 107176, true }, + { 107194, true }, { 107215, true }, - { 107239, true }, - { 107254, true }, - { 107279, true }, - { 107287, true }, - { 107303, false }, - { 107318, true }, - { 107330, true }, - { 107342, true }, - { 107356, true }, - { 107370, true }, - { 107384, true }, - { 107398, true }, - { 107415, true }, - { 107432, true }, - { 107444, true }, - { 107458, true }, - { 107480, true }, - { 107494, true }, - { 107512, true }, - { 107533, true }, - { 107550, true }, - { 107561, true }, - { 107574, true }, - { 107590, true }, - { 107602, true }, - { 107616, true }, - { 107632, true }, - { 107649, true }, - { 107663, true }, - { 107675, false }, - { 107700, true }, - { 107710, false }, - { 107736, true }, - { 107753, true }, - { 107767, true }, - { 107778, true }, - { 107808, false }, - { 107822, true }, - { 107839, true }, - { 107853, true }, - { 107876, true }, - { 107894, true }, - { 107909, true }, - { 107917, true }, - { 107925, true }, - { 107933, true }, - { 107941, true }, - { 107949, true }, - { 107960, true }, - { 107970, true }, - { 107984, true }, - { 108000, true }, - { 108011, true }, - { 108036, true }, - { 108045, false }, - { 108061, true }, - { 108071, false }, + { 107232, true }, + { 107243, true }, + { 107256, true }, + { 107272, true }, + { 107284, true }, + { 107298, true }, + { 107314, true }, + { 107331, true }, + { 107345, true }, + { 107357, false }, + { 107382, true }, + { 107392, false }, + { 107418, true }, + { 107435, true }, + { 107449, true }, + { 107460, true }, + { 107490, false }, + { 107504, true }, + { 107521, true }, + { 107535, true }, + { 107558, true }, + { 107576, true }, + { 107591, true }, + { 107599, true }, + { 107607, true }, + { 107615, true }, + { 107623, true }, + { 107631, true }, + { 107642, true }, + { 107652, true }, + { 107666, true }, + { 107682, true }, + { 107693, true }, + { 107718, true }, + { 107727, false }, + { 107743, true }, + { 107753, false }, + { 107775, true }, + { 107790, true }, + { 107804, true }, + { 107817, true }, + { 107834, true }, + { 107850, true }, + { 107873, true }, + { 107895, true }, + { 107913, true }, + { 107932, false }, + { 107951, true }, + { 107964, true }, + { 107977, true }, + { 108001, true }, + { 108012, true }, + { 108031, true }, + { 108059, true }, + { 108080, true }, { 108093, true }, - { 108108, true }, - { 108122, true }, - { 108135, true }, - { 108152, true }, - { 108168, true }, - { 108191, true }, - { 108213, true }, - { 108231, true }, - { 108250, false }, - { 108269, true }, - { 108282, true }, - { 108295, true }, - { 108319, true }, - { 108330, true }, - { 108349, true }, - { 108377, true }, - { 108398, true }, - { 108411, true }, - { 108427, true }, - { 108447, true }, - { 108467, true }, - { 108487, true }, + { 108109, true }, + { 108129, true }, + { 108149, true }, + { 108169, true }, + { 108183, true }, + { 108204, false }, + { 108215, true }, + { 108234, true }, + { 108245, true }, + { 108257, true }, + { 108268, true }, + { 108283, true }, + { 108313, true }, + { 108324, true }, + { 108338, true }, + { 108352, true }, + { 108364, true }, + { 108375, true }, + { 108399, true }, + { 108420, true }, + { 108433, true }, + { 108450, true }, + { 108466, true }, + { 108484, true }, { 108501, true }, - { 108522, false }, - { 108533, true }, - { 108552, true }, - { 108563, true }, - { 108575, true }, - { 108586, true }, - { 108601, true }, - { 108631, true }, - { 108642, true }, - { 108656, true }, - { 108670, true }, - { 108682, true }, - { 108693, true }, - { 108717, true }, - { 108738, true }, - { 108751, true }, - { 108768, true }, - { 108784, true }, - { 108802, true }, - { 108819, true }, - { 108833, true }, - { 108847, true }, - { 108863, true }, - { 108883, true }, - { 108894, true }, + { 108515, true }, + { 108529, true }, + { 108545, true }, + { 108565, true }, + { 108576, true }, + { 108591, true }, + { 108618, true }, + { 108637, true }, + { 108652, true }, + { 108663, true }, + { 108680, true }, + { 108696, true }, + { 108713, true }, + { 108728, true }, + { 108744, true }, + { 108761, true }, + { 108781, true }, + { 108796, true }, + { 108815, true }, + { 108831, true }, + { 108841, true }, + { 108854, true }, + { 108873, true }, + { 108889, true }, { 108909, true }, - { 108936, true }, - { 108955, true }, - { 108970, true }, - { 108981, true }, - { 108998, true }, - { 109014, true }, - { 109031, true }, - { 109046, true }, - { 109062, true }, - { 109079, true }, - { 109099, true }, - { 109114, true }, - { 109133, true }, - { 109149, true }, - { 109159, true }, - { 109172, true }, - { 109191, true }, - { 109207, true }, - { 109227, true }, - { 109239, true }, - { 109256, false }, - { 109271, true }, - { 109283, true }, - { 109296, true }, - { 109306, true }, - { 109323, true }, - { 109335, false }, - { 109345, true }, - { 109362, true }, - { 109385, true }, - { 109399, true }, + { 108921, true }, + { 108938, false }, + { 108953, true }, + { 108965, true }, + { 108978, true }, + { 108988, true }, + { 109005, true }, + { 109017, false }, + { 109027, true }, + { 109044, true }, + { 109067, true }, + { 109081, true }, + { 109098, true }, + { 109113, true }, + { 109146, true }, + { 109156, true }, + { 109170, true }, + { 109186, false }, + { 109209, true }, + { 109223, true }, + { 109235, true }, + { 109250, true }, + { 109270, true }, + { 109282, true }, + { 109300, true }, + { 109313, true }, + { 109326, true }, + { 109339, true }, + { 109350, true }, + { 109365, true }, + { 109376, true }, + { 109390, true }, + { 109402, true }, { 109416, true }, - { 109431, true }, - { 109450, true }, - { 109483, true }, - { 109493, true }, - { 109507, true }, - { 109523, false }, - { 109546, true }, - { 109560, true }, - { 109572, true }, - { 109587, true }, - { 109607, true }, - { 109619, true }, - { 109637, true }, - { 109650, true }, - { 109663, true }, - { 109676, true }, - { 109687, true }, - { 109702, true }, - { 109713, true }, - { 109727, true }, - { 109739, true }, - { 109753, true }, - { 109761, true }, - { 109780, true }, - { 109802, true }, - { 109815, true }, - { 109825, false }, - { 109837, true }, - { 109860, true }, - { 109874, true }, - { 109889, true }, - { 109908, true }, + { 109424, true }, + { 109443, true }, + { 109465, true }, + { 109478, true }, + { 109488, false }, + { 109500, true }, + { 109523, true }, + { 109537, true }, + { 109552, true }, + { 109571, true }, + { 109585, true }, + { 109599, true }, + { 109618, true }, + { 109635, true }, + { 109648, true }, + { 109665, true }, + { 109681, true }, + { 109700, true }, + { 109717, true }, + { 109725, true }, + { 109741, true }, + { 109757, true }, + { 109777, true }, + { 109795, true }, + { 109809, true }, + { 109826, true }, + { 109845, true }, + { 109862, true }, + { 109881, true }, + { 109899, true }, + { 109912, true }, { 109922, true }, - { 109936, true }, - { 109955, true }, - { 109972, true }, - { 109985, true }, - { 110002, true }, - { 110018, true }, - { 110037, true }, - { 110054, true }, - { 110062, true }, + { 109940, true }, + { 109960, true }, + { 109969, true }, + { 109983, true }, + { 110000, true }, + { 110023, true }, + { 110032, true }, + { 110048, true }, + { 110066, true }, { 110078, true }, - { 110094, true }, - { 110114, true }, - { 110132, true }, - { 110146, true }, - { 110163, true }, - { 110182, true }, - { 110199, true }, - { 110218, true }, - { 110236, true }, + { 110087, true }, + { 110100, true }, + { 110113, true }, + { 110129, true }, + { 110137, false }, + { 110149, true }, + { 110159, true }, + { 110178, true }, + { 110193, true }, + { 110208, true }, + { 110227, true }, { 110249, true }, - { 110259, true }, - { 110277, true }, - { 110297, true }, - { 110306, true }, - { 110320, true }, - { 110337, true }, - { 110360, true }, - { 110369, true }, - { 110385, true }, - { 110403, true }, - { 110415, true }, - { 110424, true }, - { 110437, true }, - { 110450, true }, - { 110466, true }, - { 110474, false }, + { 110268, true }, + { 110282, true }, + { 110294, true }, + { 110308, true }, + { 110321, false }, + { 110343, true }, + { 110361, true }, + { 110374, true }, + { 110388, true }, + { 110399, true }, + { 110413, false }, + { 110433, true }, + { 110444, false }, + { 110453, true }, + { 110468, false }, { 110486, true }, { 110496, true }, - { 110515, true }, - { 110530, true }, - { 110545, true }, - { 110564, true }, - { 110586, true }, - { 110605, true }, - { 110619, true }, - { 110631, true }, - { 110645, true }, - { 110658, false }, - { 110680, true }, - { 110698, true }, - { 110711, true }, - { 110725, true }, - { 110736, true }, - { 110750, false }, - { 110770, true }, - { 110781, false }, - { 110790, true }, - { 110805, false }, - { 110823, true }, - { 110833, true }, - { 110844, false }, - { 110859, true }, - { 110868, true }, - { 110880, true }, - { 110889, true }, - { 110902, true }, - { 110915, true }, - { 110926, true }, - { 110940, true }, - { 110953, true }, - { 110970, false }, - { 110987, true }, - { 110994, true }, - { 111002, true }, + { 110507, false }, + { 110522, true }, + { 110531, true }, + { 110543, true }, + { 110552, true }, + { 110565, true }, + { 110578, true }, + { 110589, true }, + { 110603, true }, + { 110616, true }, + { 110633, false }, + { 110650, true }, + { 110657, true }, + { 110665, true }, + { 110674, true }, + { 110686, true }, + { 110709, true }, + { 110723, true }, + { 110737, true }, + { 110754, false }, + { 110770, false }, + { 110784, true }, + { 110791, true }, + { 110802, true }, + { 110817, true }, + { 110829, true }, + { 110837, true }, + { 110852, false }, + { 110862, true }, + { 110874, true }, + { 110886, true }, + { 110901, true }, + { 110930, true }, + { 110944, true }, + { 110952, true }, + { 110960, true }, + { 110969, true }, + { 110982, true }, + { 110993, true }, + { 111004, true }, { 111011, true }, - { 111023, true }, - { 111046, true }, - { 111060, true }, - { 111074, true }, - { 111091, false }, - { 111107, false }, - { 111121, true }, - { 111128, true }, - { 111139, true }, + { 111020, true }, + { 111030, true }, + { 111050, true }, + { 111062, true }, + { 111073, false }, + { 111082, false }, + { 111103, true }, + { 111114, true }, + { 111123, true }, + { 111137, true }, { 111154, true }, - { 111166, true }, - { 111174, true }, - { 111189, false }, + { 111170, true }, + { 111187, true }, { 111199, true }, - { 111211, true }, - { 111223, true }, + { 111212, true }, + { 111224, true }, { 111238, true }, - { 111267, true }, - { 111281, true }, - { 111289, true }, - { 111297, true }, - { 111306, true }, - { 111319, true }, - { 111330, true }, - { 111341, true }, - { 111348, true }, - { 111357, true }, - { 111367, true }, + { 111256, true }, + { 111270, true }, + { 111286, false }, + { 111304, true }, + { 111321, true }, + { 111343, true }, + { 111354, true }, + { 111365, true }, + { 111376, true }, { 111387, true }, - { 111399, true }, - { 111410, false }, - { 111419, false }, - { 111440, true }, - { 111451, true }, - { 111460, true }, - { 111474, true }, - { 111491, true }, - { 111507, true }, - { 111524, true }, - { 111536, true }, + { 111401, true }, + { 111412, true }, + { 111428, true }, + { 111457, false }, + { 111476, true }, + { 111492, true }, + { 111518, true }, + { 111532, true }, { 111549, true }, - { 111561, true }, - { 111575, true }, - { 111593, true }, - { 111607, true }, - { 111623, false }, - { 111641, true }, - { 111658, true }, - { 111680, true }, - { 111691, true }, - { 111702, true }, - { 111713, true }, - { 111724, true }, + { 111568, true }, + { 111585, true }, + { 111596, true }, + { 111604, true }, + { 111616, true }, + { 111629, true }, + { 111644, true }, + { 111657, true }, + { 111670, true }, + { 111684, true }, + { 111696, true }, + { 111708, true }, + { 111725, true }, { 111738, true }, - { 111749, true }, - { 111765, true }, - { 111794, false }, - { 111813, true }, - { 111829, true }, - { 111855, true }, - { 111869, true }, - { 111886, true }, - { 111905, true }, - { 111922, true }, - { 111933, true }, - { 111941, true }, - { 111953, true }, - { 111966, true }, - { 111981, true }, - { 111994, true }, - { 112007, true }, - { 112021, true }, - { 112033, true }, + { 111753, true }, + { 111766, true }, + { 111778, true }, + { 111792, true }, + { 111803, true }, + { 111826, true }, + { 111844, true }, + { 111865, true }, + { 111884, true }, + { 111897, true }, + { 111915, true }, + { 111932, true }, + { 111943, true }, + { 111965, true }, + { 111977, true }, + { 111985, true }, + { 112006, true }, + { 112027, true }, { 112045, true }, - { 112062, true }, - { 112075, true }, - { 112090, true }, + { 112061, true }, + { 112073, true }, + { 112085, true }, { 112103, true }, - { 112115, true }, - { 112129, true }, - { 112140, true }, - { 112163, true }, - { 112181, true }, - { 112202, true }, - { 112221, true }, - { 112234, true }, - { 112252, true }, + { 112113, true }, + { 112127, true }, + { 112143, true }, + { 112169, false }, + { 112198, true }, + { 112209, true }, + { 112224, true }, + { 112240, true }, + { 112255, true }, { 112269, true }, - { 112280, true }, - { 112302, true }, - { 112314, true }, - { 112322, true }, - { 112343, true }, - { 112364, true }, - { 112382, true }, - { 112398, true }, - { 112410, true }, - { 112422, true }, - { 112440, true }, - { 112450, true }, - { 112464, true }, + { 112296, true }, + { 112314, false }, + { 112325, true }, + { 112335, true }, + { 112350, true }, + { 112361, true }, + { 112379, true }, + { 112402, true }, + { 112420, true }, + { 112433, true }, + { 112444, false }, + { 112458, true }, { 112480, true }, - { 112506, false }, - { 112535, true }, - { 112546, true }, + { 112499, true }, + { 112513, true }, + { 112525, false }, + { 112545, true }, { 112561, true }, - { 112577, true }, - { 112592, true }, - { 112606, true }, - { 112633, true }, - { 112651, false }, - { 112662, true }, - { 112672, true }, - { 112687, true }, - { 112698, true }, - { 112716, true }, - { 112739, true }, - { 112757, true }, - { 112770, true }, - { 112781, false }, - { 112795, true }, - { 112817, true }, - { 112836, true }, - { 112850, true }, - { 112862, false }, - { 112882, true }, - { 112898, true }, - { 112908, true }, - { 112922, true }, - { 112940, true }, - { 112952, true }, - { 112962, true }, + { 112571, true }, + { 112585, true }, + { 112603, true }, + { 112615, true }, + { 112625, true }, + { 112637, true }, + { 112645, true }, + { 112659, true }, + { 112671, true }, + { 112689, true }, + { 112701, true }, + { 112713, true }, + { 112725, true }, + { 112737, true }, + { 112749, true }, + { 112761, true }, + { 112773, true }, + { 112785, true }, + { 112801, false }, + { 112821, true }, + { 112830, true }, + { 112844, true }, + { 112860, true }, + { 112873, true }, + { 112896, true }, + { 112909, true }, + { 112917, false }, + { 112933, true }, + { 112951, true }, + { 112965, true }, { 112974, true }, - { 112982, true }, - { 112996, true }, - { 113008, true }, - { 113026, true }, - { 113038, true }, + { 112987, true }, + { 113003, true }, + { 113020, false }, + { 113034, true }, { 113050, true }, - { 113062, true }, - { 113074, true }, - { 113086, true }, - { 113098, true }, - { 113110, true }, - { 113122, true }, - { 113138, false }, + { 113057, true }, + { 113072, true }, + { 113087, true }, + { 113099, true }, + { 113117, true }, + { 113136, true }, { 113158, true }, - { 113167, true }, - { 113181, true }, - { 113197, true }, - { 113210, true }, - { 113233, true }, - { 113246, true }, - { 113254, false }, - { 113270, true }, - { 113288, true }, - { 113302, true }, - { 113311, true }, - { 113324, true }, - { 113340, true }, - { 113357, false }, - { 113371, true }, - { 113387, true }, - { 113394, true }, - { 113409, true }, - { 113424, true }, - { 113436, true }, - { 113454, true }, - { 113473, true }, - { 113495, true }, - { 113515, true }, - { 113532, true }, - { 113550, true }, - { 113568, true }, - { 113590, true }, - { 113604, true }, - { 113620, true }, - { 113637, true }, - { 113658, true }, - { 113673, true }, - { 113697, true }, - { 113714, true }, - { 113727, true }, - { 113738, true }, - { 113751, true }, - { 113764, true }, - { 113778, true }, - { 113790, true }, - { 113800, true }, - { 113811, true }, - { 113826, true }, - { 113837, true }, - { 113849, true }, - { 113858, true }, - { 113868, true }, - { 113877, true }, - { 113888, true }, - { 113913, true }, - { 113925, true }, - { 113943, true }, - { 113959, true }, - { 113970, true }, - { 113993, true }, - { 114014, true }, - { 114032, true }, - { 114051, false }, - { 114065, true }, - { 114076, true }, - { 114089, true }, - { 114103, true }, - { 114118, true }, - { 114129, true }, - { 114140, true }, - { 114154, true }, - { 114167, true }, - { 114181, true }, - { 114194, true }, - { 114205, true }, - { 114218, true }, - { 114232, true }, - { 114241, true }, - { 114256, true }, - { 114269, true }, - { 114282, true }, - { 114301, true }, - { 114319, true }, - { 114335, true }, - { 114348, true }, - { 114360, true }, - { 114375, true }, - { 114385, true }, - { 114395, true }, - { 114409, true }, - { 114420, true }, - { 114447, true }, - { 114461, true }, - { 114469, true }, - { 114491, true }, - { 114505, true }, - { 114519, true }, - { 114538, true }, - { 114557, true }, - { 114576, true }, - { 114595, true }, - { 114615, true }, - { 114635, true }, - { 114655, true }, - { 114673, true }, - { 114692, true }, - { 114711, true }, - { 114730, true }, - { 114749, true }, - { 114763, true }, - { 114775, true }, - { 114787, true }, - { 114800, false }, - { 114822, true }, - { 114837, true }, - { 114849, true }, - { 114857, true }, + { 113178, true }, + { 113195, true }, + { 113213, true }, + { 113231, true }, + { 113253, true }, + { 113267, true }, + { 113283, true }, + { 113300, true }, + { 113321, true }, + { 113336, true }, + { 113360, true }, + { 113377, true }, + { 113390, true }, + { 113401, true }, + { 113414, true }, + { 113427, true }, + { 113441, true }, + { 113453, true }, + { 113463, true }, + { 113474, true }, + { 113489, true }, + { 113500, true }, + { 113512, true }, + { 113521, true }, + { 113531, true }, + { 113540, true }, + { 113551, true }, + { 113576, true }, + { 113588, true }, + { 113606, true }, + { 113622, true }, + { 113633, true }, + { 113656, true }, + { 113677, true }, + { 113695, true }, + { 113714, false }, + { 113728, true }, + { 113739, true }, + { 113752, true }, + { 113766, true }, + { 113781, true }, + { 113792, true }, + { 113806, true }, + { 113819, true }, + { 113833, true }, + { 113846, true }, + { 113857, true }, + { 113870, true }, + { 113884, true }, + { 113893, true }, + { 113908, true }, + { 113921, true }, + { 113934, true }, + { 113953, true }, + { 113971, true }, + { 113987, true }, + { 114000, true }, + { 114012, true }, + { 114027, true }, + { 114037, true }, + { 114047, true }, + { 114061, true }, + { 114072, true }, + { 114099, true }, + { 114113, true }, + { 114121, true }, + { 114143, true }, + { 114157, true }, + { 114171, true }, + { 114190, true }, + { 114209, true }, + { 114228, true }, + { 114247, true }, + { 114267, true }, + { 114287, true }, + { 114307, true }, + { 114325, true }, + { 114344, true }, + { 114363, true }, + { 114382, true }, + { 114401, true }, + { 114415, true }, + { 114427, true }, + { 114439, true }, + { 114452, false }, + { 114474, true }, + { 114489, true }, + { 114501, true }, + { 114509, true }, + { 114534, true }, + { 114550, true }, + { 114559, true }, + { 114571, true }, + { 114588, true }, + { 114601, true }, + { 114616, true }, + { 114629, true }, + { 114641, true }, + { 114651, true }, + { 114662, true }, + { 114676, true }, + { 114691, true }, + { 114704, true }, + { 114715, true }, + { 114729, true }, + { 114744, true }, + { 114753, true }, + { 114769, true }, + { 114788, true }, + { 114802, true }, + { 114817, true }, + { 114828, true }, + { 114838, true }, + { 114850, true }, + { 114865, true }, { 114882, true }, - { 114898, true }, - { 114907, true }, - { 114919, true }, - { 114936, true }, + { 114913, true }, + { 114928, true }, { 114949, true }, - { 114964, true }, - { 114977, true }, - { 114989, true }, - { 114999, true }, - { 115010, true }, - { 115024, true }, - { 115039, true }, - { 115052, true }, - { 115063, true }, - { 115077, true }, - { 115092, true }, - { 115101, true }, + { 114963, true }, + { 114981, true }, + { 114991, true }, + { 115003, true }, + { 115013, true }, + { 115026, true }, + { 115041, true }, + { 115054, true }, + { 115066, true }, + { 115074, true }, + { 115092, false }, + { 115102, true }, { 115117, true }, - { 115136, true }, - { 115150, true }, - { 115165, true }, - { 115176, true }, - { 115186, true }, - { 115198, true }, - { 115213, true }, - { 115230, true }, - { 115261, true }, - { 115276, true }, - { 115297, true }, - { 115311, true }, - { 115329, true }, - { 115339, true }, - { 115351, true }, - { 115361, true }, - { 115374, true }, - { 115389, true }, - { 115402, true }, - { 115414, true }, - { 115422, true }, - { 115440, false }, - { 115450, true }, - { 115465, true }, - { 115482, true }, - { 115497, true }, - { 115510, true }, - { 115522, true }, + { 115134, true }, + { 115149, true }, + { 115162, true }, + { 115174, true }, + { 115190, true }, + { 115210, true }, + { 115221, true }, + { 115235, true }, + { 115247, true }, + { 115260, true }, + { 115270, true }, + { 115284, true }, + { 115294, true }, + { 115314, true }, + { 115323, true }, + { 115333, true }, + { 115344, false }, + { 115353, true }, + { 115366, true }, + { 115385, true }, + { 115395, true }, + { 115406, true }, + { 115419, true }, + { 115426, true }, + { 115435, true }, + { 115451, true }, + { 115462, true }, + { 115469, true }, + { 115478, true }, + { 115488, true }, + { 115509, true }, + { 115521, true }, + { 115530, true }, { 115538, true }, + { 115547, true }, { 115558, true }, - { 115573, true }, - { 115584, true }, - { 115598, true }, - { 115610, true }, - { 115623, true }, - { 115633, true }, - { 115647, true }, - { 115657, true }, - { 115677, true }, - { 115686, true }, - { 115696, true }, - { 115707, false }, - { 115716, true }, - { 115729, true }, - { 115748, true }, - { 115758, true }, - { 115769, true }, - { 115782, true }, - { 115789, true }, - { 115805, true }, - { 115816, true }, - { 115823, true }, - { 115832, true }, - { 115842, true }, - { 115863, true }, - { 115875, true }, - { 115884, true }, - { 115892, true }, - { 115901, true }, - { 115912, true }, - { 115922, true }, - { 115933, true }, - { 115940, true }, - { 115949, true }, - { 115957, true }, - { 115968, true }, - { 115980, true }, - { 115988, true }, - { 115996, true }, - { 116010, true }, - { 116020, true }, - { 116036, true }, - { 116048, true }, - { 116078, true }, - { 116098, true }, - { 116112, false }, - { 116130, false }, + { 115568, true }, + { 115579, true }, + { 115586, true }, + { 115595, true }, + { 115603, true }, + { 115614, true }, + { 115626, true }, + { 115634, true }, + { 115642, true }, + { 115652, true }, + { 115668, true }, + { 115680, true }, + { 115710, true }, + { 115730, true }, + { 115744, false }, + { 115762, false }, + { 115778, true }, + { 115793, true }, + { 115814, true }, + { 115828, true }, + { 115847, true }, + { 115858, true }, + { 115868, true }, + { 115879, true }, + { 115893, true }, + { 115906, true }, + { 115916, false }, + { 115932, true }, + { 115951, true }, + { 115977, true }, + { 116000, true }, + { 116017, true }, + { 116030, true }, + { 116046, true }, + { 116054, true }, + { 116067, true }, + { 116074, true }, + { 116086, true }, + { 116096, true }, + { 116108, true }, + { 116128, false }, { 116146, true }, - { 116161, true }, - { 116182, true }, - { 116196, true }, - { 116215, true }, - { 116226, true }, - { 116236, true }, - { 116247, true }, - { 116261, true }, - { 116274, true }, - { 116284, false }, - { 116300, true }, - { 116319, true }, - { 116345, true }, - { 116368, true }, - { 116385, true }, - { 116398, true }, - { 116414, true }, - { 116422, true }, - { 116435, true }, + { 116159, true }, + { 116170, true }, + { 116180, true }, + { 116194, false }, + { 116210, true }, + { 116221, true }, + { 116230, true }, + { 116238, true }, + { 116248, true }, + { 116265, true }, + { 116276, true }, + { 116292, true }, + { 116303, true }, + { 116315, true }, + { 116325, false }, + { 116340, true }, + { 116355, false }, + { 116363, true }, + { 116378, true }, + { 116397, true }, + { 116417, true }, + { 116428, true }, { 116442, true }, - { 116454, true }, - { 116464, true }, - { 116476, true }, - { 116496, false }, - { 116514, true }, + { 116457, true }, + { 116473, true }, + { 116495, true }, + { 116508, true }, { 116527, true }, - { 116538, true }, - { 116548, true }, - { 116562, false }, - { 116578, true }, + { 116540, true }, + { 116549, true }, + { 116564, true }, + { 116577, true }, { 116589, true }, - { 116598, true }, { 116606, true }, - { 116616, true }, - { 116633, true }, - { 116644, true }, + { 116630, true }, + { 116643, true }, { 116660, true }, - { 116671, true }, - { 116683, true }, - { 116693, false }, - { 116708, true }, - { 116723, false }, - { 116731, true }, - { 116746, true }, - { 116765, true }, - { 116785, true }, - { 116796, true }, - { 116810, true }, - { 116825, true }, - { 116841, true }, - { 116863, true }, - { 116876, true }, - { 116895, true }, - { 116908, true }, - { 116917, true }, + { 116672, true }, + { 116685, true }, + { 116700, true }, + { 116707, true }, + { 116720, true }, + { 116733, true }, + { 116747, true }, + { 116764, true }, + { 116779, true }, + { 116793, true }, + { 116805, true }, + { 116820, true }, + { 116835, true }, + { 116850, true }, + { 116869, true }, + { 116888, true }, + { 116907, true }, + { 116922, true }, { 116932, true }, - { 116945, true }, - { 116957, true }, - { 116974, true }, + { 116945, false }, + { 116958, true }, + { 116972, true }, + { 116983, true }, { 116998, true }, - { 117011, true }, - { 117028, true }, + { 117014, true }, + { 117027, true }, { 117040, true }, - { 117053, true }, - { 117068, true }, - { 117075, true }, - { 117088, true }, - { 117101, true }, - { 117115, true }, - { 117132, true }, - { 117147, true }, - { 117161, true }, - { 117173, true }, - { 117188, true }, - { 117203, true }, - { 117218, true }, - { 117237, true }, - { 117256, true }, - { 117275, true }, - { 117290, true }, + { 117060, true }, + { 117069, true }, + { 117085, true }, + { 117098, true }, + { 117113, true }, + { 117126, true }, + { 117144, true }, + { 117152, false }, + { 117165, true }, + { 117183, true }, + { 117201, true }, + { 117232, true }, + { 117262, true }, + { 117284, true }, { 117300, true }, - { 117313, false }, - { 117326, true }, - { 117340, true }, + { 117311, false }, + { 117324, true }, + { 117336, true }, { 117351, true }, - { 117366, true }, - { 117382, true }, - { 117395, true }, - { 117408, true }, - { 117428, true }, - { 117437, true }, - { 117453, true }, - { 117466, true }, - { 117481, true }, - { 117494, true }, - { 117512, true }, - { 117520, false }, - { 117533, true }, - { 117551, true }, - { 117569, true }, - { 117600, true }, + { 117368, false }, + { 117387, true }, + { 117398, true }, + { 117414, true }, + { 117424, true }, + { 117436, true }, + { 117452, true }, + { 117463, true }, + { 117480, true }, + { 117493, true }, + { 117513, true }, + { 117523, true }, + { 117534, true }, + { 117544, false }, + { 117559, true }, + { 117574, true }, + { 117591, true }, + { 117606, true }, + { 117617, false }, { 117630, true }, - { 117652, true }, - { 117668, true }, - { 117679, false }, - { 117692, true }, - { 117704, true }, - { 117719, true }, - { 117736, false }, - { 117755, true }, - { 117766, true }, - { 117782, true }, - { 117792, true }, - { 117804, true }, - { 117820, true }, - { 117831, true }, - { 117848, true }, - { 117861, true }, - { 117881, true }, - { 117891, true }, - { 117902, true }, - { 117912, false }, + { 117643, true }, + { 117656, true }, + { 117673, true }, + { 117685, true }, + { 117702, true }, + { 117715, true }, + { 117724, true }, + { 117735, true }, + { 117745, true }, + { 117759, true }, + { 117770, true }, + { 117779, true }, + { 117793, true }, + { 117803, true }, + { 117815, true }, + { 117825, true }, + { 117834, true }, + { 117847, true }, + { 117858, false }, + { 117866, true }, + { 117873, true }, + { 117884, false }, + { 117904, true }, + { 117911, false }, { 117927, true }, - { 117942, true }, + { 117939, true }, { 117959, true }, - { 117974, true }, - { 117985, false }, - { 117998, true }, - { 118011, true }, - { 118024, true }, + { 117973, false }, + { 117984, true }, + { 118000, true }, + { 118010, true }, + { 118023, true }, { 118041, true }, - { 118053, true }, - { 118070, true }, - { 118083, true }, - { 118092, true }, - { 118103, true }, - { 118113, true }, - { 118127, true }, - { 118138, true }, - { 118147, true }, - { 118161, true }, - { 118171, true }, - { 118183, true }, + { 118055, true }, + { 118072, true }, + { 118091, true }, + { 118114, true }, + { 118126, true }, + { 118148, true }, + { 118158, true }, + { 118172, true }, + { 118182, true }, { 118193, true }, { 118202, true }, - { 118215, true }, - { 118226, false }, - { 118234, true }, - { 118241, true }, - { 118252, false }, - { 118272, true }, - { 118279, false }, - { 118295, true }, - { 118307, true }, - { 118327, true }, - { 118341, false }, - { 118352, true }, - { 118368, true }, - { 118378, true }, - { 118391, true }, - { 118409, true }, - { 118423, true }, - { 118440, true }, - { 118459, true }, - { 118482, true }, - { 118504, true }, - { 118514, true }, - { 118528, true }, - { 118538, true }, - { 118549, true }, - { 118558, true }, - { 118567, true }, - { 118584, true }, - { 118600, true }, + { 118211, true }, + { 118228, true }, + { 118244, true }, + { 118258, true }, + { 118266, true }, + { 118280, true }, + { 118299, true }, + { 118315, false }, + { 118329, true }, + { 118342, true }, + { 118359, true }, + { 118374, true }, + { 118385, true }, + { 118396, true }, + { 118410, true }, + { 118424, true }, + { 118439, true }, + { 118460, true }, + { 118476, true }, + { 118494, true }, + { 118512, true }, + { 118525, true }, + { 118537, true }, + { 118553, true }, + { 118564, true }, + { 118583, true }, + { 118591, true }, + { 118605, false }, { 118614, true }, - { 118622, true }, - { 118636, true }, - { 118655, true }, - { 118671, false }, - { 118685, true }, - { 118698, true }, - { 118715, true }, - { 118730, true }, - { 118741, true }, - { 118752, true }, - { 118766, true }, - { 118780, true }, - { 118795, true }, - { 118816, true }, - { 118832, true }, - { 118850, true }, - { 118868, true }, - { 118881, true }, - { 118893, true }, - { 118909, true }, - { 118920, true }, + { 118621, false }, + { 118641, true }, + { 118651, false }, + { 118670, false }, + { 118683, false }, + { 118695, true }, + { 118716, true }, + { 118729, true }, + { 118747, true }, + { 118765, true }, + { 118774, true }, + { 118790, true }, + { 118814, false }, + { 118830, true }, + { 118848, true }, + { 118860, true }, + { 118877, true }, + { 118891, true }, + { 118906, true }, + { 118925, true }, { 118939, true }, - { 118947, true }, - { 118961, false }, - { 118970, true }, - { 118977, false }, - { 118997, true }, - { 119007, false }, - { 119026, false }, - { 119039, false }, - { 119051, true }, - { 119072, true }, - { 119085, true }, - { 119103, true }, - { 119121, true }, - { 119130, true }, - { 119146, true }, - { 119170, false }, - { 119186, true }, - { 119204, true }, - { 119216, true }, - { 119233, true }, - { 119247, true }, - { 119262, true }, - { 119281, true }, - { 119295, true }, - { 119313, true }, - { 119323, false }, - { 119352, true }, + { 118957, true }, + { 118967, false }, + { 118996, true }, + { 119020, true }, + { 119039, true }, + { 119052, true }, + { 119067, true }, + { 119081, true }, + { 119096, true }, + { 119114, true }, + { 119124, false }, + { 119139, true }, + { 119147, true }, + { 119160, false }, + { 119174, true }, + { 119185, true }, + { 119193, true }, + { 119201, true }, + { 119215, true }, + { 119237, true }, + { 119249, true }, + { 119261, true }, + { 119276, true }, + { 119296, true }, + { 119319, true }, + { 119338, true }, + { 119357, true }, { 119376, true }, { 119395, true }, - { 119408, true }, - { 119423, true }, - { 119437, true }, + { 119414, true }, + { 119433, true }, { 119452, true }, - { 119470, true }, - { 119480, false }, - { 119495, true }, - { 119503, true }, - { 119516, false }, - { 119530, true }, - { 119541, true }, - { 119549, true }, - { 119557, true }, - { 119571, true }, - { 119593, true }, - { 119605, true }, - { 119617, true }, - { 119632, true }, - { 119652, true }, - { 119675, true }, - { 119694, true }, - { 119713, true }, - { 119732, true }, - { 119751, true }, - { 119770, true }, - { 119789, true }, - { 119808, true }, - { 119825, true }, - { 119843, true }, - { 119860, true }, - { 119873, true }, - { 119887, true }, - { 119902, true }, - { 119920, true }, + { 119469, true }, + { 119487, true }, + { 119504, true }, + { 119517, true }, + { 119531, true }, + { 119546, true }, + { 119564, true }, + { 119579, true }, + { 119592, true }, + { 119616, true }, + { 119633, true }, + { 119651, true }, + { 119667, true }, + { 119685, true }, + { 119702, true }, + { 119718, true }, + { 119731, true }, + { 119744, true }, + { 119761, true }, + { 119778, true }, + { 119786, true }, + { 119799, true }, + { 119813, true }, + { 119840, true }, + { 119856, true }, + { 119872, true }, + { 119886, true }, + { 119899, true }, + { 119912, true }, + { 119922, true }, { 119935, true }, - { 119948, true }, - { 119972, true }, - { 119989, true }, - { 120007, true }, - { 120023, true }, - { 120041, true }, - { 120058, true }, - { 120074, true }, - { 120087, true }, - { 120100, true }, - { 120117, true }, - { 120134, true }, - { 120142, true }, - { 120155, true }, - { 120169, true }, - { 120185, true }, - { 120201, true }, - { 120215, true }, - { 120228, true }, - { 120241, true }, - { 120251, true }, - { 120264, true }, - { 120274, true }, - { 120289, true }, - { 120304, false }, - { 120314, false }, - { 120324, true }, - { 120336, false }, + { 119945, true }, + { 119960, true }, + { 119975, false }, + { 119985, false }, + { 119995, true }, + { 120007, false }, + { 120018, true }, + { 120025, true }, + { 120038, true }, + { 120050, true }, + { 120070, true }, + { 120081, true }, + { 120102, true }, + { 120118, true }, + { 120135, true }, + { 120154, true }, + { 120164, true }, + { 120175, true }, + { 120184, true }, + { 120193, true }, + { 120206, true }, + { 120235, true }, + { 120254, true }, + { 120271, true }, + { 120294, true }, + { 120302, true }, + { 120320, false }, + { 120334, true }, { 120347, true }, - { 120354, true }, - { 120367, true }, - { 120379, true }, - { 120399, true }, - { 120410, true }, - { 120431, true }, - { 120447, true }, - { 120464, true }, - { 120483, true }, - { 120493, true }, - { 120504, true }, - { 120513, true }, - { 120522, true }, - { 120535, true }, - { 120564, true }, - { 120583, true }, - { 120600, true }, - { 120623, true }, - { 120631, true }, - { 120649, false }, - { 120663, true }, - { 120676, true }, - { 120687, true }, - { 120700, true }, - { 120717, true }, - { 120730, true }, - { 120741, false }, - { 120753, true }, - { 120762, true }, - { 120772, true }, - { 120781, true }, - { 120791, true }, - { 120804, true }, - { 120814, true }, - { 120827, true }, - { 120837, true }, - { 120850, true }, - { 120869, true }, - { 120880, true }, - { 120895, true }, - { 120909, true }, - { 120920, true }, - { 120928, true }, - { 120942, true }, - { 120957, false }, - { 120971, true }, - { 120985, true }, - { 120994, true }, - { 121013, true }, - { 121034, true }, - { 121049, true }, - { 121061, true }, - { 121072, true }, - { 121085, true }, - { 121095, true }, - { 121116, true }, - { 121134, true }, - { 121155, true }, - { 121181, true }, - { 121204, true }, - { 121237, true }, - { 121256, true }, - { 121280, true }, - { 121291, true }, - { 121302, true }, - { 121315, true }, - { 121326, true }, - { 121340, true }, - { 121351, true }, - { 121361, true }, - { 121369, true }, - { 121376, true }, - { 121387, true }, - { 121398, true }, - { 121408, true }, - { 121417, true }, - { 121432, true }, - { 121447, true }, - { 121458, true }, - { 121467, true }, - { 121478, true }, - { 121489, true }, - { 121503, true }, - { 121512, true }, - { 121528, true }, + { 120358, true }, + { 120371, true }, + { 120388, true }, + { 120401, true }, + { 120412, false }, + { 120424, true }, + { 120433, true }, + { 120443, true }, + { 120452, true }, + { 120462, true }, + { 120475, true }, + { 120485, true }, + { 120498, true }, + { 120508, true }, + { 120521, true }, + { 120540, true }, + { 120551, true }, + { 120566, true }, + { 120580, true }, + { 120591, true }, + { 120599, true }, + { 120613, true }, + { 120628, false }, + { 120642, true }, + { 120656, true }, + { 120665, true }, + { 120684, true }, + { 120705, true }, + { 120720, true }, + { 120732, true }, + { 120743, true }, + { 120756, true }, + { 120766, true }, + { 120787, true }, + { 120805, true }, + { 120826, true }, + { 120852, true }, + { 120875, true }, + { 120908, true }, + { 120927, true }, + { 120951, true }, + { 120962, true }, + { 120973, true }, + { 120986, true }, + { 120997, true }, + { 121011, true }, + { 121022, true }, + { 121032, true }, + { 121040, true }, + { 121047, true }, + { 121058, true }, + { 121069, true }, + { 121079, true }, + { 121088, true }, + { 121103, true }, + { 121118, true }, + { 121129, true }, + { 121138, true }, + { 121149, true }, + { 121160, true }, + { 121174, true }, + { 121183, true }, + { 121199, true }, + { 121207, true }, + { 121219, true }, + { 121231, true }, + { 121247, true }, + { 121257, true }, + { 121276, true }, + { 121284, true }, + { 121297, true }, + { 121306, true }, + { 121327, true }, + { 121346, true }, + { 121362, true }, + { 121377, true }, + { 121390, true }, + { 121407, true }, + { 121423, true }, + { 121431, true }, + { 121440, true }, + { 121448, true }, + { 121462, true }, + { 121481, false }, + { 121490, true }, + { 121500, true }, + { 121522, true }, { 121536, true }, - { 121548, true }, - { 121560, true }, - { 121576, true }, + { 121551, true }, + { 121564, false }, + { 121578, true }, { 121586, true }, - { 121605, true }, - { 121613, true }, - { 121626, true }, - { 121635, true }, - { 121656, true }, - { 121675, true }, - { 121691, true }, - { 121706, true }, - { 121719, true }, - { 121736, true }, - { 121752, true }, + { 121598, true }, + { 121609, true }, + { 121621, true }, + { 121631, true }, + { 121640, true }, + { 121651, false }, + { 121661, false }, + { 121677, true }, + { 121687, true }, + { 121697, true }, + { 121711, true }, + { 121726, true }, + { 121738, true }, + { 121747, true }, { 121760, true }, - { 121769, true }, - { 121777, true }, - { 121791, true }, - { 121810, false }, - { 121819, true }, - { 121829, true }, - { 121851, true }, - { 121865, true }, - { 121880, true }, - { 121893, false }, - { 121907, true }, - { 121915, true }, - { 121927, true }, - { 121938, true }, - { 121950, true }, - { 121960, true }, - { 121969, true }, - { 121980, false }, - { 121990, false }, - { 122006, true }, + { 121770, true }, + { 121783, true }, + { 121794, true }, + { 121817, false }, + { 121831, true }, + { 121843, true }, + { 121856, true }, + { 121869, true }, + { 121885, true }, + { 121896, true }, + { 121910, true }, + { 121924, true }, + { 121934, true }, + { 121943, true }, + { 121953, true }, + { 121963, true }, + { 121978, true }, + { 121990, true }, + { 122002, true }, { 122016, true }, - { 122026, true }, - { 122040, true }, - { 122055, true }, - { 122067, true }, - { 122076, true }, - { 122089, true }, - { 122099, true }, - { 122112, true }, - { 122123, true }, - { 122146, false }, - { 122160, true }, - { 122172, true }, - { 122185, true }, - { 122198, true }, - { 122214, true }, - { 122225, true }, - { 122239, true }, - { 122253, true }, - { 122263, true }, - { 122272, true }, - { 122282, true }, - { 122292, true }, - { 122307, true }, - { 122319, true }, - { 122331, true }, - { 122345, true }, - { 122362, true }, - { 122372, false }, - { 122381, false }, - { 122400, true }, - { 122416, true }, - { 122431, true }, - { 122443, true }, - { 122458, true }, - { 122470, false }, - { 122482, true }, + { 122033, true }, + { 122043, false }, + { 122052, false }, + { 122071, true }, + { 122087, true }, + { 122102, true }, + { 122114, true }, + { 122129, true }, + { 122141, false }, + { 122153, true }, + { 122166, true }, + { 122184, true }, + { 122199, true }, + { 122214, false }, + { 122230, true }, + { 122242, true }, + { 122254, true }, + { 122265, true }, + { 122278, false }, + { 122293, true }, + { 122308, true }, + { 122318, true }, + { 122328, true }, + { 122342, true }, + { 122356, true }, + { 122368, true }, + { 122379, true }, + { 122395, true }, + { 122406, true }, + { 122424, true }, + { 122442, true }, + { 122455, true }, + { 122476, false }, { 122495, true }, - { 122513, true }, - { 122528, true }, - { 122543, false }, - { 122559, true }, - { 122571, true }, - { 122583, true }, + { 122515, true }, + { 122537, true }, + { 122549, true }, + { 122567, true }, + { 122582, true }, { 122594, true }, - { 122607, false }, - { 122622, true }, - { 122637, true }, - { 122647, true }, - { 122667, true }, - { 122677, true }, - { 122691, true }, - { 122705, true }, - { 122717, true }, - { 122728, true }, - { 122744, true }, - { 122755, true }, - { 122773, true }, - { 122791, true }, - { 122804, true }, - { 122825, false }, - { 122844, true }, - { 122864, true }, - { 122886, true }, - { 122898, true }, - { 122916, true }, - { 122931, true }, + { 122610, true }, + { 122625, true }, + { 122641, true }, + { 122657, true }, + { 122673, true }, + { 122690, true }, + { 122712, true }, + { 122723, true }, + { 122739, true }, + { 122759, true }, + { 122770, true }, + { 122785, true }, + { 122801, true }, + { 122816, true }, + { 122831, true }, + { 122854, true }, + { 122869, true }, + { 122894, true }, + { 122912, true }, + { 122927, true }, { 122943, true }, - { 122959, true }, - { 122974, true }, - { 122990, true }, - { 123006, true }, - { 123022, true }, - { 123039, true }, - { 123061, true }, - { 123072, true }, - { 123088, true }, - { 123108, true }, - { 123119, true }, - { 123134, true }, - { 123150, true }, - { 123165, true }, - { 123180, true }, - { 123203, true }, - { 123218, true }, - { 123243, true }, - { 123261, true }, - { 123276, true }, - { 123292, true }, - { 123307, true }, - { 123336, true }, - { 123361, true }, - { 123383, true }, - { 123401, true }, - { 123415, true }, - { 123428, true }, - { 123443, true }, - { 123450, true }, - { 123466, true }, - { 123477, true }, - { 123488, true }, - { 123498, true }, - { 123512, true }, - { 123526, true }, - { 123538, true }, - { 123550, true }, - { 123561, true }, - { 123576, true }, - { 123591, true }, - { 123598, true }, - { 123608, true }, - { 123618, true }, - { 123627, true }, + { 122958, true }, + { 122987, true }, + { 123012, true }, + { 123034, true }, + { 123052, true }, + { 123066, true }, + { 123079, true }, + { 123094, true }, + { 123101, true }, + { 123117, true }, + { 123128, true }, + { 123139, true }, + { 123149, true }, + { 123163, true }, + { 123177, true }, + { 123189, true }, + { 123201, true }, + { 123212, true }, + { 123227, true }, + { 123242, true }, + { 123249, true }, + { 123259, true }, + { 123269, true }, + { 123278, true }, + { 123294, true }, + { 123303, true }, + { 123312, true }, + { 123321, true }, + { 123333, true }, + { 123349, true }, + { 123368, true }, + { 123380, false }, + { 123397, true }, + { 123417, true }, + { 123432, true }, + { 123445, true }, + { 123463, true }, + { 123478, true }, + { 123487, true }, + { 123502, true }, + { 123516, true }, + { 123532, true }, + { 123547, true }, + { 123569, true }, + { 123588, true }, + { 123607, true }, + { 123623, true }, + { 123634, true }, { 123643, true }, - { 123652, true }, - { 123661, true }, - { 123670, true }, - { 123682, true }, - { 123698, true }, - { 123717, true }, - { 123729, false }, - { 123746, true }, - { 123766, true }, - { 123781, true }, - { 123794, true }, - { 123812, true }, - { 123827, true }, - { 123836, true }, - { 123851, true }, - { 123865, true }, - { 123881, true }, - { 123896, true }, - { 123918, true }, - { 123937, true }, - { 123956, true }, - { 123972, true }, - { 123983, true }, - { 123992, true }, + { 123653, true }, + { 123672, true }, + { 123687, true }, + { 123701, true }, + { 123714, true }, + { 123722, true }, + { 123730, true }, + { 123739, true }, + { 123751, true }, + { 123763, true }, + { 123772, true }, + { 123784, true }, + { 123792, true }, + { 123804, true }, + { 123830, true }, + { 123853, false }, + { 123869, true }, + { 123889, true }, + { 123910, true }, + { 123929, true }, + { 123943, true }, + { 123957, true }, + { 123974, true }, + { 123988, true }, { 124002, true }, - { 124021, true }, - { 124036, true }, + { 124012, false }, + { 124027, true }, + { 124035, true }, { 124050, true }, - { 124063, true }, - { 124071, true }, + { 124065, true }, { 124079, true }, - { 124088, true }, - { 124100, true }, - { 124112, true }, - { 124121, true }, - { 124133, true }, - { 124141, true }, - { 124153, true }, - { 124179, true }, - { 124202, false }, - { 124218, true }, - { 124238, true }, - { 124259, true }, - { 124278, true }, - { 124292, true }, - { 124306, true }, - { 124323, true }, + { 124097, true }, + { 124114, true }, + { 124134, true }, + { 124158, true }, + { 124165, true }, + { 124176, true }, + { 124187, true }, + { 124200, true }, + { 124212, true }, + { 124228, true }, + { 124241, true }, + { 124251, true }, + { 124266, false }, + { 124275, true }, + { 124289, true }, + { 124304, true }, + { 124314, true }, + { 124324, true }, { 124337, true }, - { 124351, true }, - { 124361, false }, - { 124376, true }, - { 124384, true }, - { 124399, true }, - { 124414, true }, - { 124428, true }, - { 124446, true }, - { 124463, true }, - { 124483, true }, - { 124507, true }, - { 124514, true }, - { 124525, true }, - { 124536, true }, - { 124549, true }, - { 124561, true }, - { 124577, true }, - { 124590, true }, - { 124600, true }, - { 124615, false }, - { 124624, true }, - { 124638, true }, - { 124653, true }, - { 124663, true }, - { 124673, true }, + { 124349, true }, + { 124357, true }, + { 124368, true }, + { 124389, true }, + { 124399, false }, + { 124419, true }, + { 124430, true }, + { 124437, true }, + { 124447, true }, + { 124457, true }, + { 124465, false }, + { 124485, true }, + { 124494, true }, + { 124503, true }, + { 124521, true }, + { 124533, true }, + { 124547, true }, + { 124562, true }, + { 124575, true }, + { 124583, true }, + { 124601, true }, + { 124612, true }, + { 124620, true }, + { 124630, true }, + { 124639, true }, + { 124652, true }, + { 124662, true }, + { 124674, true }, { 124686, true }, - { 124698, true }, - { 124706, true }, - { 124717, true }, - { 124738, true }, - { 124748, false }, - { 124768, true }, - { 124779, true }, - { 124786, true }, - { 124796, true }, - { 124806, true }, - { 124814, false }, - { 124834, true }, - { 124843, true }, - { 124852, true }, - { 124870, true }, - { 124882, true }, + { 124700, true }, + { 124716, true }, + { 124734, true }, + { 124747, true }, + { 124760, false }, + { 124773, true }, + { 124792, true }, + { 124800, true }, + { 124812, true }, + { 124824, true }, + { 124850, true }, + { 124868, true }, + { 124885, true }, { 124896, true }, - { 124911, true }, - { 124924, true }, - { 124932, true }, - { 124950, true }, - { 124961, true }, + { 124908, true }, + { 124921, true }, + { 124937, true }, + { 124951, true }, { 124969, true }, - { 124979, true }, - { 124988, true }, - { 125001, true }, - { 125011, true }, - { 125023, true }, - { 125035, true }, - { 125049, true }, - { 125065, true }, - { 125083, true }, - { 125096, true }, - { 125109, false }, - { 125122, true }, - { 125141, true }, - { 125149, true }, + { 124985, true }, + { 125008, true }, + { 125027, true }, + { 125041, true }, + { 125057, true }, + { 125073, true }, + { 125090, true }, + { 125120, false }, + { 125136, true }, + { 125148, true }, { 125161, true }, - { 125173, true }, - { 125199, true }, - { 125217, true }, - { 125234, true }, - { 125245, true }, - { 125257, true }, - { 125270, true }, - { 125286, true }, - { 125300, true }, - { 125318, true }, - { 125334, true }, - { 125357, true }, - { 125376, true }, - { 125390, true }, - { 125406, true }, - { 125422, true }, - { 125439, true }, - { 125469, false }, - { 125485, true }, - { 125497, true }, - { 125510, true }, - { 125527, true }, - { 125541, true }, - { 125558, true }, - { 125573, true }, - { 125588, true }, - { 125599, true }, - { 125617, true }, - { 125633, true }, - { 125645, true }, - { 125662, true }, - { 125674, false }, - { 125688, true }, - { 125695, false }, - { 125727, true }, - { 125741, true }, - { 125751, true }, + { 125178, true }, + { 125192, true }, + { 125209, true }, + { 125224, true }, + { 125239, true }, + { 125250, true }, + { 125268, true }, + { 125284, true }, + { 125296, true }, + { 125313, true }, + { 125325, false }, + { 125339, true }, + { 125346, false }, + { 125378, true }, + { 125392, true }, + { 125402, true }, + { 125416, true }, + { 125433, true }, + { 125445, true }, + { 125459, true }, + { 125475, true }, + { 125490, true }, + { 125501, true }, + { 125512, true }, + { 125524, true }, + { 125533, true }, + { 125540, true }, + { 125551, true }, + { 125559, true }, + { 125566, true }, + { 125576, true }, + { 125587, true }, + { 125595, true }, + { 125603, true }, + { 125611, true }, + { 125624, true }, + { 125639, true }, + { 125649, true }, + { 125659, true }, + { 125666, true }, + { 125678, true }, + { 125694, true }, + { 125706, true }, + { 125718, true }, + { 125730, true }, + { 125739, true }, + { 125750, true }, { 125765, true }, - { 125782, true }, - { 125794, true }, - { 125808, true }, - { 125824, true }, - { 125839, true }, - { 125850, true }, - { 125861, true }, - { 125873, true }, - { 125882, true }, - { 125889, true }, - { 125900, true }, - { 125908, true }, - { 125915, true }, - { 125925, true }, - { 125936, true }, - { 125944, true }, - { 125952, true }, + { 125773, true }, + { 125784, true }, + { 125795, true }, + { 125809, true }, + { 125825, true }, + { 125837, true }, + { 125851, true }, + { 125865, false }, + { 125875, true }, + { 125896, true }, + { 125917, true }, + { 125931, true }, + { 125943, true }, { 125960, true }, { 125973, true }, - { 125988, true }, + { 125987, true }, { 125998, true }, - { 126008, true }, - { 126015, true }, - { 126027, true }, - { 126043, true }, - { 126055, true }, - { 126067, true }, - { 126079, true }, - { 126088, true }, - { 126103, true }, - { 126111, true }, - { 126122, true }, - { 126133, true }, - { 126147, true }, + { 126007, true }, + { 126017, true }, + { 126024, true }, + { 126032, true }, + { 126044, true }, + { 126053, true }, + { 126062, true }, + { 126070, true }, + { 126085, true }, + { 126093, true }, + { 126105, false }, + { 126115, true }, + { 126125, true }, + { 126136, true }, + { 126145, true }, { 126163, true }, - { 126175, true }, - { 126189, true }, - { 126203, false }, - { 126213, true }, - { 126234, true }, - { 126255, true }, - { 126269, true }, - { 126281, true }, - { 126298, true }, - { 126311, true }, - { 126325, true }, - { 126336, true }, - { 126345, true }, + { 126173, false }, + { 126184, true }, + { 126206, true }, + { 126214, true }, + { 126222, false }, + { 126230, true }, + { 126246, true }, + { 126259, true }, + { 126270, true }, + { 126282, true }, + { 126301, true }, + { 126327, true }, + { 126341, true }, { 126355, true }, - { 126362, true }, - { 126370, true }, - { 126382, true }, - { 126391, true }, - { 126400, true }, - { 126408, true }, - { 126423, true }, - { 126431, true }, - { 126443, false }, - { 126453, true }, - { 126463, true }, - { 126474, true }, + { 126370, false }, + { 126388, true }, + { 126404, true }, + { 126419, true }, + { 126430, true }, + { 126446, true }, + { 126458, true }, + { 126470, true }, { 126483, true }, - { 126501, true }, - { 126511, false }, - { 126522, true }, - { 126544, true }, - { 126552, true }, - { 126560, false }, - { 126568, true }, - { 126584, true }, + { 126495, true }, + { 126502, true }, + { 126515, true }, + { 126532, true }, + { 126554, true }, + { 126564, true }, + { 126574, true }, + { 126586, false }, { 126597, true }, - { 126608, true }, + { 126611, true }, { 126620, true }, - { 126639, true }, - { 126665, true }, - { 126679, true }, - { 126693, true }, - { 126708, false }, - { 126726, true }, - { 126742, true }, - { 126757, true }, - { 126768, true }, - { 126784, true }, - { 126796, true }, - { 126808, true }, - { 126821, true }, - { 126833, true }, - { 126840, true }, - { 126853, true }, - { 126870, true }, - { 126892, true }, - { 126902, true }, - { 126912, true }, - { 126924, false }, - { 126935, true }, - { 126949, true }, - { 126958, true }, - { 126969, true }, - { 126985, true }, - { 126998, true }, - { 127014, true }, + { 126631, true }, + { 126647, true }, + { 126660, true }, + { 126676, true }, + { 126703, true }, + { 126715, true }, + { 126729, true }, + { 126737, true }, + { 126747, true }, + { 126770, true }, + { 126779, false }, + { 126802, true }, + { 126820, true }, + { 126837, true }, + { 126846, true }, + { 126858, true }, + { 126867, true }, + { 126875, true }, + { 126888, true }, + { 126913, true }, + { 126924, true }, + { 126937, true }, + { 126951, true }, + { 126964, false }, + { 126975, true }, + { 126983, true }, + { 126995, false }, + { 127006, true }, + { 127021, true }, { 127041, true }, - { 127053, true }, + { 127049, true }, { 127067, true }, - { 127075, true }, - { 127085, true }, + { 127087, true }, { 127108, true }, - { 127117, false }, - { 127140, true }, - { 127158, true }, - { 127175, true }, - { 127184, true }, - { 127196, true }, - { 127205, true }, - { 127213, true }, - { 127226, true }, - { 127251, true }, - { 127262, true }, - { 127275, true }, - { 127289, true }, - { 127302, false }, - { 127313, true }, - { 127321, true }, - { 127333, false }, - { 127344, true }, - { 127359, true }, - { 127379, true }, - { 127387, true }, - { 127405, true }, - { 127425, true }, - { 127446, true }, - { 127456, true }, - { 127469, false }, - { 127487, true }, - { 127518, true }, - { 127538, true }, - { 127555, true }, - { 127568, true }, - { 127583, true }, - { 127595, true }, - { 127605, true }, - { 127612, true }, - { 127629, true }, - { 127645, true }, - { 127657, true }, - { 127671, true }, + { 127118, true }, + { 127131, false }, + { 127149, true }, + { 127180, true }, + { 127200, true }, + { 127217, true }, + { 127230, true }, + { 127245, true }, + { 127257, true }, + { 127267, true }, + { 127274, true }, + { 127291, true }, + { 127307, true }, + { 127319, true }, + { 127333, true }, + { 127345, true }, + { 127360, true }, + { 127378, true }, + { 127391, true }, + { 127401, true }, + { 127412, true }, + { 127423, true }, + { 127434, true }, + { 127449, true }, + { 127460, true }, + { 127472, false }, + { 127484, true }, + { 127501, true }, + { 127515, true }, + { 127532, true }, + { 127542, true }, + { 127555, false }, + { 127573, true }, + { 127584, true }, + { 127599, true }, + { 127616, true }, + { 127633, true }, + { 127643, true }, + { 127658, true }, + { 127668, true }, { 127683, true }, - { 127698, true }, - { 127716, true }, - { 127729, true }, - { 127739, true }, - { 127750, true }, - { 127761, true }, - { 127772, true }, + { 127700, true }, + { 127712, true }, + { 127730, true }, + { 127745, true }, + { 127770, true }, { 127787, true }, - { 127798, true }, - { 127810, false }, - { 127822, true }, - { 127839, true }, - { 127853, true }, - { 127870, true }, - { 127880, true }, - { 127893, false }, - { 127911, true }, - { 127922, true }, - { 127937, true }, - { 127954, true }, - { 127971, true }, - { 127981, true }, - { 127996, true }, - { 128006, true }, - { 128021, true }, + { 127806, true }, + { 127823, true }, + { 127843, true }, + { 127864, true }, + { 127878, true }, + { 127903, true }, + { 127924, true }, + { 127946, true }, + { 127976, true }, + { 128000, true }, + { 128015, true }, + { 128028, true }, { 128038, true }, - { 128050, true }, - { 128068, true }, - { 128083, true }, - { 128108, true }, - { 128125, true }, - { 128144, true }, - { 128161, true }, - { 128181, true }, - { 128202, true }, + { 128061, true }, + { 128072, true }, + { 128079, true }, + { 128093, true }, + { 128112, true }, + { 128119, true }, + { 128139, true }, + { 128150, true }, + { 128169, true }, + { 128185, true }, + { 128195, true }, + { 128206, true }, { 128216, true }, + { 128227, true }, { 128241, true }, - { 128262, true }, - { 128284, true }, - { 128314, true }, - { 128338, true }, - { 128353, true }, - { 128366, true }, - { 128376, true }, + { 128253, true }, + { 128269, true }, + { 128277, true }, + { 128287, true }, + { 128297, true }, + { 128309, true }, + { 128320, true }, + { 128335, true }, + { 128359, true }, + { 128373, true }, + { 128381, true }, { 128399, true }, { 128410, true }, - { 128417, true }, - { 128431, true }, - { 128450, true }, - { 128457, true }, - { 128477, true }, - { 128488, true }, - { 128507, true }, - { 128523, true }, - { 128533, true }, + { 128423, true }, + { 128434, true }, + { 128453, true }, + { 128464, true }, + { 128479, true }, + { 128494, true }, + { 128506, true }, + { 128524, true }, { 128544, true }, - { 128554, true }, - { 128565, true }, - { 128579, true }, - { 128591, true }, - { 128607, true }, - { 128615, true }, - { 128625, true }, - { 128635, true }, - { 128647, true }, - { 128658, true }, - { 128673, true }, - { 128697, true }, - { 128711, true }, - { 128719, true }, - { 128737, true }, - { 128748, true }, - { 128761, true }, - { 128772, true }, - { 128791, true }, + { 128556, true }, + { 128573, true }, + { 128588, true }, + { 128602, true }, + { 128616, true }, + { 128627, true }, + { 128636, true }, + { 128645, true }, + { 128663, true }, + { 128674, true }, + { 128681, true }, + { 128692, true }, + { 128709, false }, + { 128735, false }, + { 128747, true }, + { 128760, true }, + { 128774, true }, + { 128785, true }, { 128802, true }, - { 128817, true }, - { 128832, true }, - { 128844, true }, - { 128862, true }, - { 128882, true }, - { 128894, true }, - { 128911, true }, - { 128926, true }, - { 128940, true }, - { 128954, true }, - { 128965, true }, - { 128974, true }, - { 128983, true }, - { 129001, true }, - { 129012, true }, - { 129019, true }, - { 129030, true }, - { 129047, false }, - { 129073, false }, - { 129085, true }, - { 129098, true }, - { 129112, true }, - { 129123, true }, - { 129140, true }, - { 129150, true }, - { 129163, true }, - { 129178, true }, - { 129199, true }, - { 129223, true }, - { 129237, true }, - { 129248, true }, - { 129262, true }, - { 129277, true }, - { 129287, true }, - { 129300, true }, - { 129313, true }, - { 129326, true }, - { 129349, true }, - { 129369, true }, - { 129391, true }, - { 129405, true }, - { 129420, false }, - { 129433, true }, - { 129448, true }, - { 129459, true }, - { 129479, true }, - { 129492, false }, - { 129511, true }, - { 129522, true }, - { 129541, true }, - { 129549, true }, - { 129566, true }, - { 129582, true }, - { 129591, true }, - { 129602, true }, - { 129612, true }, - { 129623, true }, - { 129633, true }, + { 128812, true }, + { 128825, true }, + { 128840, true }, + { 128861, true }, + { 128885, true }, + { 128899, true }, + { 128910, true }, + { 128924, true }, + { 128939, true }, + { 128949, true }, + { 128962, true }, + { 128975, true }, + { 128988, true }, + { 129011, true }, + { 129031, true }, + { 129053, true }, + { 129067, true }, + { 129082, false }, + { 129095, true }, + { 129110, true }, + { 129121, true }, + { 129141, true }, + { 129154, false }, + { 129173, true }, + { 129184, true }, + { 129203, true }, + { 129211, true }, + { 129228, true }, + { 129244, true }, + { 129253, true }, + { 129264, true }, + { 129274, true }, + { 129285, true }, + { 129295, true }, + { 129307, true }, + { 129314, true }, + { 129332, true }, + { 129344, true }, + { 129355, true }, + { 129377, true }, + { 129396, true }, + { 129404, true }, + { 129423, true }, + { 129432, true }, + { 129444, true }, + { 129462, true }, + { 129476, true }, + { 129495, true }, + { 129504, true }, + { 129520, true }, + { 129528, true }, + { 129540, true }, + { 129555, true }, + { 129575, true }, + { 129583, true }, + { 129596, true }, + { 129614, true }, + { 129626, true }, { 129645, true }, - { 129652, true }, - { 129670, true }, - { 129682, true }, - { 129693, true }, - { 129715, true }, - { 129734, true }, - { 129742, true }, - { 129761, true }, - { 129770, true }, - { 129782, true }, - { 129800, true }, - { 129814, true }, - { 129833, true }, - { 129842, true }, - { 129858, true }, - { 129866, true }, - { 129878, true }, - { 129893, true }, + { 129659, true }, + { 129672, true }, + { 129684, true }, + { 129708, true }, + { 129724, true }, + { 129738, true }, + { 129752, true }, + { 129769, true }, + { 129785, true }, + { 129802, true }, + { 129810, true }, + { 129828, true }, + { 129837, false }, + { 129846, true }, + { 129860, true }, + { 129870, true }, + { 129881, true }, + { 129890, true }, { 129913, true }, - { 129921, true }, - { 129934, true }, - { 129952, true }, - { 129964, true }, - { 129983, true }, - { 129997, true }, - { 130010, true }, - { 130022, true }, - { 130046, true }, - { 130062, true }, - { 130076, true }, - { 130090, true }, - { 130107, true }, - { 130123, true }, - { 130140, true }, - { 130148, true }, + { 129925, true }, + { 129935, false }, + { 129944, true }, + { 129951, true }, + { 129960, true }, + { 129968, true }, + { 129977, false }, + { 129991, true }, + { 130005, true }, + { 130015, true }, + { 130025, true }, + { 130035, true }, + { 130053, false }, + { 130066, true }, + { 130084, true }, + { 130094, true }, + { 130105, true }, + { 130118, true }, + { 130132, true }, + { 130145, true }, + { 130155, true }, { 130166, true }, - { 130175, false }, - { 130184, true }, - { 130198, true }, - { 130208, true }, - { 130219, true }, - { 130228, true }, - { 130251, true }, - { 130263, true }, - { 130273, false }, - { 130282, true }, - { 130289, true }, - { 130298, true }, - { 130306, true }, - { 130315, false }, - { 130329, true }, - { 130343, true }, - { 130353, true }, - { 130363, true }, - { 130373, true }, - { 130391, false }, - { 130404, true }, - { 130422, true }, - { 130432, true }, - { 130443, true }, - { 130456, true }, - { 130470, true }, - { 130483, true }, - { 130493, true }, + { 130175, true }, + { 130192, true }, + { 130201, true }, + { 130214, true }, + { 130225, true }, + { 130243, true }, + { 130253, true }, + { 130265, true }, + { 130277, false }, + { 130294, true }, + { 130305, true }, + { 130322, true }, + { 130335, true }, + { 130349, true }, + { 130358, true }, + { 130371, false }, + { 130380, false }, + { 130391, true }, + { 130403, false }, + { 130418, false }, + { 130429, false }, + { 130436, true }, + { 130452, true }, + { 130467, true }, + { 130485, true }, { 130504, true }, - { 130513, true }, - { 130530, true }, - { 130539, true }, - { 130552, true }, - { 130563, true }, - { 130581, true }, - { 130591, true }, - { 130603, true }, - { 130615, false }, - { 130632, true }, - { 130643, true }, - { 130660, true }, - { 130673, true }, - { 130687, true }, - { 130696, true }, - { 130709, false }, - { 130718, false }, - { 130729, true }, - { 130741, false }, - { 130756, false }, - { 130767, false }, - { 130774, true }, - { 130790, true }, - { 130805, true }, - { 130823, true }, + { 130519, true }, + { 130536, true }, + { 130550, true }, + { 130566, true }, + { 130580, true }, + { 130597, true }, + { 130616, false }, + { 130631, false }, + { 130645, true }, + { 130659, true }, + { 130672, true }, + { 130693, true }, + { 130705, true }, + { 130718, true }, + { 130728, true }, + { 130748, true }, + { 130761, true }, + { 130779, true }, + { 130798, true }, + { 130816, true }, + { 130830, true }, { 130842, true }, - { 130857, true }, - { 130874, true }, - { 130888, true }, - { 130904, true }, - { 130918, true }, - { 130935, true }, - { 130954, false }, - { 130969, false }, - { 130983, true }, - { 130997, true }, - { 131010, true }, + { 130852, true }, + { 130866, true }, + { 130876, true }, + { 130892, true }, + { 130905, true }, + { 130920, true }, + { 130936, true }, + { 130960, true }, + { 130976, true }, + { 130988, true }, + { 131000, false }, + { 131018, true }, { 131031, true }, - { 131043, true }, - { 131056, true }, - { 131066, true }, - { 131086, true }, - { 131099, true }, - { 131117, true }, - { 131135, true }, - { 131149, true }, - { 131161, true }, - { 131171, true }, - { 131185, true }, - { 131195, true }, - { 131211, true }, - { 131224, true }, - { 131239, true }, + { 131050, true }, + { 131068, true }, + { 131083, true }, + { 131106, true }, + { 131125, true }, + { 131145, true }, + { 131168, true }, + { 131187, true }, + { 131206, true }, + { 131225, true }, + { 131244, true }, { 131255, true }, - { 131279, true }, - { 131295, true }, - { 131307, true }, - { 131319, false }, - { 131337, true }, - { 131350, true }, - { 131369, true }, - { 131387, true }, - { 131402, true }, - { 131425, true }, - { 131442, true }, - { 131461, true }, - { 131481, true }, - { 131504, true }, - { 131523, true }, - { 131542, true }, - { 131561, true }, - { 131580, true }, + { 131265, true }, + { 131280, true }, + { 131301, true }, + { 131321, true }, + { 131340, true }, + { 131354, true }, + { 131366, true }, + { 131376, true }, + { 131388, true }, + { 131406, true }, + { 131422, true }, + { 131443, true }, + { 131455, true }, + { 131465, false }, + { 131477, true }, + { 131494, true }, + { 131512, true }, + { 131532, true }, + { 131547, true }, + { 131556, true }, + { 131568, true }, + { 131579, true }, { 131591, true }, - { 131601, true }, - { 131616, true }, - { 131637, true }, - { 131657, true }, - { 131676, true }, - { 131690, true }, - { 131702, true }, - { 131712, true }, - { 131724, true }, - { 131742, true }, + { 131603, false }, + { 131620, true }, + { 131633, true }, + { 131651, true }, + { 131666, true }, + { 131681, true }, + { 131701, true }, + { 131713, true }, + { 131727, true }, + { 131745, true }, { 131758, true }, - { 131779, true }, - { 131791, true }, - { 131801, false }, - { 131813, true }, - { 131830, true }, - { 131848, true }, - { 131868, true }, - { 131883, true }, - { 131892, true }, - { 131904, true }, + { 131774, true }, + { 131789, true }, + { 131801, true }, + { 131817, true }, + { 131827, true }, + { 131834, true }, + { 131849, true }, + { 131869, true }, + { 131882, true }, + { 131893, true }, + { 131906, true }, { 131915, true }, - { 131927, true }, - { 131939, false }, - { 131956, true }, - { 131969, true }, - { 131987, true }, - { 132002, true }, - { 132017, true }, - { 132037, true }, - { 132049, true }, - { 132063, true }, + { 131935, true }, + { 131955, true }, + { 131978, true }, + { 131998, true }, + { 132010, true }, + { 132021, true }, + { 132032, false }, + { 132043, true }, + { 132054, false }, + { 132064, false }, { 132081, true }, - { 132094, true }, - { 132110, true }, - { 132125, true }, - { 132137, true }, - { 132153, true }, - { 132163, true }, - { 132170, true }, - { 132185, true }, - { 132205, true }, - { 132218, true }, - { 132229, true }, - { 132242, true }, - { 132251, true }, - { 132271, true }, - { 132291, true }, - { 132314, true }, + { 132093, true }, + { 132109, true }, + { 132122, true }, + { 132131, true }, + { 132145, true }, + { 132156, true }, + { 132168, true }, + { 132186, true }, + { 132200, true }, + { 132213, true }, + { 132222, true }, + { 132237, true }, + { 132248, true }, + { 132268, true }, + { 132280, true }, + { 132290, true }, + { 132301, true }, { 132334, true }, { 132346, true }, - { 132357, true }, - { 132368, false }, + { 132365, true }, { 132379, true }, - { 132390, false }, - { 132400, false }, - { 132417, true }, - { 132429, true }, - { 132445, true }, - { 132458, true }, - { 132467, true }, - { 132481, true }, - { 132492, true }, - { 132504, true }, - { 132522, true }, + { 132393, false }, + { 132413, true }, + { 132430, true }, + { 132441, true }, + { 132454, true }, + { 132469, true }, + { 132485, true }, + { 132503, true }, + { 132519, true }, { 132536, true }, - { 132549, true }, - { 132558, true }, - { 132573, true }, - { 132584, true }, - { 132604, true }, - { 132616, true }, - { 132626, true }, - { 132637, true }, - { 132670, true }, - { 132682, true }, - { 132701, true }, - { 132715, true }, - { 132729, false }, - { 132749, true }, - { 132766, true }, - { 132777, true }, - { 132790, true }, - { 132805, true }, - { 132821, true }, - { 132839, true }, - { 132855, true }, - { 132872, true }, - { 132884, true }, - { 132898, true }, - { 132914, true }, - { 132927, true }, - { 132939, true }, - { 132950, true }, - { 132967, true }, - { 132976, true }, - { 132985, true }, - { 132998, true }, - { 133029, true }, - { 133042, true }, - { 133055, true }, - { 133068, true }, - { 133079, true }, - { 133088, true }, - { 133103, true }, - { 133115, true }, - { 133131, true }, - { 133152, true }, - { 133169, false }, - { 133182, true }, - { 133194, true }, - { 133205, true }, - { 133222, true }, - { 133233, true }, - { 133252, true }, - { 133270, true }, - { 133306, true }, - { 133319, true }, - { 133333, true }, - { 133342, true }, - { 133352, true }, - { 133364, true }, - { 133382, true }, - { 133396, true }, - { 133414, true }, - { 133435, true }, - { 133455, true }, - { 133478, true }, - { 133494, true }, - { 133508, true }, - { 133524, true }, - { 133538, true }, - { 133551, true }, - { 133572, true }, - { 133592, true }, - { 133601, true }, - { 133618, true }, - { 133629, true }, - { 133640, true }, - { 133651, true }, - { 133670, true }, - { 133682, true }, - { 133695, true }, - { 133711, true }, + { 132548, true }, + { 132562, true }, + { 132578, true }, + { 132591, true }, + { 132603, true }, + { 132614, true }, + { 132631, true }, + { 132640, true }, + { 132649, true }, + { 132662, true }, + { 132693, true }, + { 132706, true }, + { 132719, true }, + { 132732, true }, + { 132743, true }, + { 132752, true }, + { 132767, true }, + { 132779, true }, + { 132795, true }, + { 132816, true }, + { 132833, false }, + { 132846, true }, + { 132858, true }, + { 132869, true }, + { 132886, true }, + { 132897, true }, + { 132916, true }, + { 132934, true }, + { 132970, true }, + { 132983, true }, + { 132997, true }, + { 133006, true }, + { 133016, true }, + { 133028, true }, + { 133046, true }, + { 133060, true }, + { 133078, true }, + { 133099, true }, + { 133119, true }, + { 133142, true }, + { 133158, true }, + { 133172, true }, + { 133188, true }, + { 133202, true }, + { 133215, true }, + { 133236, true }, + { 133256, true }, + { 133265, true }, + { 133282, true }, + { 133293, true }, + { 133304, true }, + { 133315, true }, + { 133334, true }, + { 133346, true }, + { 133359, true }, + { 133375, true }, + { 133394, true }, + { 133409, true }, + { 133426, false }, + { 133441, true }, + { 133461, true }, + { 133472, true }, + { 133483, true }, + { 133503, false }, + { 133512, true }, + { 133521, true }, + { 133532, true }, + { 133544, true }, + { 133558, true }, + { 133576, true }, + { 133590, true }, + { 133602, true }, + { 133615, true }, + { 133632, true }, + { 133642, true }, + { 133663, true }, + { 133691, false }, + { 133702, true }, + { 133709, true }, + { 133720, true }, { 133730, true }, - { 133745, true }, - { 133762, false }, - { 133777, true }, - { 133797, true }, - { 133808, true }, - { 133819, true }, - { 133839, false }, - { 133848, true }, - { 133857, true }, - { 133868, true }, - { 133880, true }, - { 133894, true }, - { 133912, true }, + { 133740, true }, + { 133754, true }, + { 133768, true }, + { 133779, false }, + { 133790, true }, + { 133798, false }, + { 133818, true }, + { 133833, true }, + { 133846, true }, + { 133862, true }, + { 133877, true }, + { 133890, true }, + { 133906, true }, { 133926, true }, - { 133938, true }, - { 133951, true }, - { 133968, true }, - { 133978, true }, - { 133999, true }, - { 134027, false }, - { 134038, true }, - { 134045, true }, - { 134056, true }, - { 134066, true }, - { 134076, true }, - { 134090, true }, - { 134104, true }, - { 134115, false }, - { 134126, true }, - { 134134, false }, - { 134154, true }, - { 134169, true }, - { 134182, true }, + { 133939, true }, + { 133958, true }, + { 133976, true }, + { 133986, true }, + { 134000, true }, + { 134018, true }, + { 134026, true }, + { 134046, true }, + { 134078, true }, + { 134093, true }, + { 134112, true }, + { 134127, true }, + { 134142, true }, + { 134163, true }, + { 134184, true }, { 134198, true }, - { 134213, true }, - { 134226, true }, - { 134242, true }, - { 134262, true }, - { 134275, true }, - { 134294, true }, - { 134312, true }, - { 134322, true }, - { 134336, true }, - { 134354, true }, - { 134362, true }, - { 134382, true }, - { 134414, true }, - { 134429, true }, - { 134448, true }, - { 134463, true }, - { 134478, true }, - { 134499, true }, - { 134520, true }, - { 134534, true }, - { 134556, true }, - { 134572, true }, + { 134220, true }, + { 134236, true }, + { 134261, true }, + { 134273, true }, + { 134286, true }, + { 134297, true }, + { 134314, true }, + { 134338, true }, + { 134352, true }, + { 134365, true }, + { 134377, true }, + { 134390, true }, + { 134408, true }, + { 134425, true }, + { 134445, true }, + { 134470, true }, + { 134484, true }, + { 134498, true }, + { 134515, true }, + { 134535, true }, + { 134551, true }, + { 134569, true }, + { 134584, true }, { 134597, true }, - { 134609, true }, - { 134622, true }, + { 134612, true }, + { 134620, false }, { 134633, true }, - { 134650, true }, - { 134674, true }, - { 134688, true }, - { 134701, true }, - { 134713, true }, - { 134726, true }, - { 134744, true }, - { 134761, true }, - { 134781, true }, - { 134806, true }, - { 134820, true }, - { 134834, true }, - { 134851, true }, - { 134871, true }, - { 134887, true }, - { 134905, true }, - { 134920, true }, - { 134933, true }, - { 134948, true }, - { 134956, false }, - { 134969, true }, - { 134981, true }, - { 134995, true }, - { 135003, true }, - { 135025, true }, - { 135039, true }, - { 135053, true }, - { 135061, true }, - { 135072, true }, - { 135088, true }, - { 135098, true }, - { 135111, true }, + { 134645, true }, + { 134659, true }, + { 134667, true }, + { 134689, true }, + { 134703, true }, + { 134717, true }, + { 134725, true }, + { 134736, true }, + { 134752, true }, + { 134762, true }, + { 134775, true }, + { 134788, true }, + { 134802, true }, + { 134818, true }, + { 134831, true }, + { 134845, true }, + { 134856, true }, + { 134866, true }, + { 134886, true }, + { 134900, true }, + { 134915, true }, + { 134927, true }, + { 134935, true }, + { 134947, true }, + { 134958, true }, + { 134979, true }, + { 134998, true }, + { 135016, true }, + { 135034, true }, + { 135054, true }, + { 135063, true }, + { 135081, true }, + { 135097, true }, + { 135110, true }, { 135124, true }, - { 135138, true }, - { 135154, true }, - { 135167, true }, - { 135181, true }, - { 135192, true }, - { 135202, true }, - { 135222, true }, - { 135236, true }, + { 135143, true }, + { 135156, true }, + { 135168, true }, + { 135180, true }, + { 135191, true }, + { 135205, true }, + { 135219, false }, + { 135234, true }, { 135251, true }, - { 135263, true }, - { 135271, true }, - { 135283, true }, - { 135294, true }, - { 135315, true }, - { 135334, true }, - { 135352, true }, - { 135370, true }, - { 135390, true }, - { 135399, true }, - { 135417, true }, - { 135433, true }, - { 135446, true }, - { 135460, true }, - { 135479, true }, - { 135492, true }, - { 135504, true }, - { 135516, true }, - { 135527, true }, - { 135541, true }, - { 135555, false }, - { 135570, true }, - { 135587, true }, - { 135598, true }, - { 135609, true }, - { 135623, true }, - { 135644, true }, - { 135660, true }, - { 135679, true }, - { 135695, true }, - { 135713, true }, + { 135262, true }, + { 135273, true }, + { 135287, true }, + { 135308, true }, + { 135324, true }, + { 135343, true }, + { 135359, true }, + { 135377, true }, + { 135400, true }, + { 135412, true }, + { 135421, true }, + { 135434, true }, + { 135452, true }, + { 135467, true }, + { 135482, true }, + { 135498, true }, + { 135513, true }, + { 135528, true }, + { 135543, true }, + { 135559, true }, + { 135574, true }, + { 135589, true }, + { 135605, true }, + { 135615, true }, + { 135628, true }, + { 135641, true }, + { 135651, true }, + { 135663, false }, + { 135674, true }, + { 135688, true }, + { 135700, false }, + { 135719, true }, { 135736, true }, - { 135748, true }, - { 135757, true }, - { 135770, true }, + { 135749, true }, + { 135765, false }, + { 135778, false }, { 135788, true }, - { 135803, true }, - { 135818, true }, - { 135834, true }, - { 135849, true }, - { 135864, true }, - { 135879, true }, + { 135801, true }, + { 135811, true }, + { 135821, false }, + { 135830, false }, + { 135838, false }, + { 135858, true }, + { 135871, true }, + { 135883, false }, { 135895, true }, - { 135910, true }, - { 135925, true }, - { 135940, true }, - { 135956, true }, - { 135966, true }, - { 135979, true }, - { 135992, true }, - { 136002, true }, - { 136014, false }, + { 135912, true }, + { 135926, true }, + { 135943, true }, + { 135959, true }, + { 135978, true }, + { 135994, false }, + { 136011, true }, { 136025, true }, { 136039, true }, - { 136051, false }, - { 136070, true }, - { 136087, true }, - { 136100, true }, - { 136116, false }, - { 136129, false }, - { 136139, true }, - { 136152, true }, - { 136162, true }, - { 136172, false }, - { 136181, false }, - { 136189, false }, - { 136209, true }, - { 136222, true }, - { 136234, false }, - { 136246, true }, - { 136263, true }, - { 136277, true }, + { 136060, true }, + { 136074, true }, + { 136090, true }, + { 136103, false }, + { 136117, true }, + { 136131, true }, + { 136150, true }, + { 136172, true }, + { 136187, true }, + { 136204, true }, + { 136212, true }, + { 136224, true }, + { 136237, true }, + { 136250, true }, + { 136263, false }, + { 136272, false }, + { 136283, true }, { 136294, true }, - { 136310, true }, - { 136329, true }, - { 136345, false }, + { 136303, true }, + { 136312, false }, + { 136326, true }, + { 136344, true }, { 136362, true }, - { 136376, true }, - { 136390, true }, - { 136411, true }, - { 136425, true }, - { 136441, true }, - { 136454, false }, - { 136468, true }, - { 136482, true }, - { 136501, true }, - { 136523, true }, - { 136538, true }, - { 136555, true }, - { 136563, true }, - { 136575, true }, - { 136588, true }, - { 136601, true }, - { 136614, false }, - { 136623, false }, - { 136634, true }, - { 136645, true }, - { 136654, true }, - { 136663, false }, - { 136677, true }, - { 136695, true }, - { 136713, true }, - { 136730, true }, - { 136742, false }, - { 136758, false }, - { 136782, true }, - { 136809, true }, - { 136828, true }, + { 136379, true }, + { 136391, false }, + { 136407, false }, + { 136431, true }, + { 136458, true }, + { 136477, true }, + { 136485, true }, + { 136494, true }, + { 136506, true }, + { 136518, true }, + { 136543, true }, + { 136560, true }, + { 136577, true }, + { 136592, true }, + { 136604, true }, + { 136617, true }, + { 136635, true }, + { 136644, false }, + { 136652, true }, + { 136673, true }, + { 136687, true }, + { 136709, true }, + { 136722, true }, + { 136735, true }, + { 136747, true }, + { 136760, false }, + { 136773, true }, + { 136789, true }, + { 136803, true }, + { 136824, true }, { 136836, true }, - { 136845, true }, { 136857, true }, - { 136869, true }, - { 136894, true }, - { 136911, true }, - { 136928, true }, - { 136943, true }, - { 136955, true }, - { 136968, true }, - { 136986, true }, - { 136995, false }, - { 137003, true }, - { 137024, true }, - { 137038, true }, - { 137060, true }, - { 137073, true }, - { 137086, true }, - { 137098, true }, - { 137111, false }, - { 137124, true }, - { 137140, true }, - { 137154, true }, - { 137175, true }, - { 137187, true }, - { 137208, true }, - { 137227, true }, - { 137252, true }, - { 137264, true }, - { 137277, true }, - { 137290, true }, - { 137302, true }, - { 137314, true }, - { 137331, true }, - { 137349, true }, - { 137361, false }, - { 137370, true }, - { 137385, true }, - { 137407, true }, - { 137421, true }, - { 137434, true }, - { 137456, true }, - { 137471, true }, - { 137486, true }, - { 137497, true }, - { 137522, true }, - { 137539, true }, - { 137551, true }, - { 137567, false }, - { 137582, false }, - { 137606, true }, - { 137614, false }, - { 137627, true }, - { 137639, true }, - { 137652, true }, - { 137664, true }, - { 137680, true }, - { 137695, true }, - { 137714, true }, - { 137728, true }, - { 137742, true }, - { 137762, true }, - { 137778, true }, - { 137797, true }, - { 137817, true }, - { 137829, true }, - { 137841, true }, - { 137871, true }, - { 137883, true }, - { 137894, true }, - { 137904, true }, - { 137918, true }, - { 137931, true }, - { 137949, false }, - { 137959, true }, - { 137974, true }, - { 137992, true }, - { 138001, true }, - { 138014, false }, - { 138031, true }, - { 138047, true }, - { 138058, true }, - { 138069, true }, - { 138079, true }, - { 138088, true }, - { 138102, true }, - { 138123, true }, - { 138134, true }, - { 138156, true }, - { 138171, true }, - { 138193, true }, - { 138203, true }, - { 138225, true }, - { 138247, true }, - { 138264, true }, - { 138278, true }, - { 138291, true }, - { 138308, true }, - { 138333, true }, - { 138349, true }, - { 138359, true }, - { 138370, true }, - { 138379, false }, - { 138388, true }, - { 138398, true }, - { 138412, true }, - { 138430, true }, - { 138439, true }, + { 136876, true }, + { 136901, true }, + { 136913, true }, + { 136926, true }, + { 136939, true }, + { 136951, true }, + { 136963, true }, + { 136975, true }, + { 136992, true }, + { 137010, true }, + { 137022, false }, + { 137031, true }, + { 137046, true }, + { 137068, true }, + { 137082, true }, + { 137095, true }, + { 137117, true }, + { 137132, true }, + { 137147, true }, + { 137158, true }, + { 137183, true }, + { 137200, true }, + { 137212, true }, + { 137228, false }, + { 137243, false }, + { 137267, true }, + { 137275, false }, + { 137288, true }, + { 137300, true }, + { 137313, true }, + { 137325, true }, + { 137341, true }, + { 137356, true }, + { 137375, true }, + { 137389, true }, + { 137403, true }, + { 137423, true }, + { 137439, true }, + { 137458, true }, + { 137478, true }, + { 137490, true }, + { 137502, true }, + { 137532, true }, + { 137544, true }, + { 137555, true }, + { 137565, true }, + { 137579, true }, + { 137592, true }, + { 137610, false }, + { 137620, true }, + { 137634, true }, + { 137649, true }, + { 137667, true }, + { 137676, true }, + { 137689, false }, + { 137706, true }, + { 137722, true }, + { 137733, true }, + { 137744, true }, + { 137754, true }, + { 137763, true }, + { 137777, true }, + { 137798, true }, + { 137809, true }, + { 137831, true }, + { 137846, true }, + { 137868, true }, + { 137878, true }, + { 137900, true }, + { 137922, true }, + { 137939, true }, + { 137953, true }, + { 137966, true }, + { 137983, true }, + { 138008, true }, + { 138024, true }, + { 138034, true }, + { 138045, true }, + { 138054, false }, + { 138063, true }, + { 138073, true }, + { 138087, true }, + { 138105, true }, + { 138114, true }, + { 138138, true }, + { 138159, true }, + { 138179, true }, + { 138197, true }, + { 138210, true }, + { 138231, true }, + { 138249, true }, + { 138261, true }, + { 138283, false }, + { 138302, true }, + { 138313, true }, + { 138326, true }, + { 138347, true }, + { 138358, true }, + { 138373, true }, + { 138385, true }, + { 138402, true }, + { 138428, true }, + { 138445, false }, { 138463, true }, - { 138484, true }, - { 138504, true }, - { 138522, true }, - { 138535, true }, - { 138556, true }, - { 138574, true }, - { 138586, true }, - { 138608, false }, - { 138627, true }, - { 138638, true }, - { 138651, true }, - { 138672, true }, + { 138482, false }, + { 138501, true }, + { 138513, true }, + { 138533, true }, + { 138555, true }, + { 138568, true }, + { 138590, true }, + { 138603, true }, + { 138626, true }, + { 138640, true }, + { 138663, true }, + { 138673, true }, { 138683, true }, - { 138698, true }, - { 138710, true }, - { 138727, true }, - { 138753, true }, - { 138770, false }, - { 138788, true }, - { 138807, false }, - { 138826, true }, - { 138838, true }, - { 138858, true }, - { 138880, true }, - { 138893, true }, - { 138915, true }, - { 138928, true }, - { 138951, true }, - { 138965, true }, - { 138988, true }, - { 138998, true }, - { 139008, true }, - { 139027, true }, - { 139040, true }, - { 139060, true }, - { 139070, true }, - { 139089, true }, - { 139101, true }, - { 139122, true }, - { 139148, true }, - { 139169, true }, - { 139189, true }, - { 139201, true }, - { 139215, true }, - { 139227, true }, - { 139250, true }, - { 139266, true }, - { 139278, true }, - { 139303, true }, - { 139318, true }, + { 138702, true }, + { 138715, true }, + { 138735, true }, + { 138745, true }, + { 138764, true }, + { 138776, true }, + { 138797, true }, + { 138823, true }, + { 138844, true }, + { 138864, true }, + { 138876, true }, + { 138890, true }, + { 138902, true }, + { 138925, true }, + { 138941, true }, + { 138953, true }, + { 138978, true }, + { 138993, true }, + { 139014, true }, + { 139031, true }, + { 139052, false }, + { 139069, true }, + { 139079, true }, + { 139093, true }, + { 139107, true }, + { 139117, true }, + { 139129, true }, + { 139141, true }, + { 139151, true }, + { 139165, true }, + { 139177, true }, + { 139206, true }, + { 139221, true }, + { 139235, true }, + { 139249, true }, + { 139265, true }, + { 139280, true }, + { 139292, true }, + { 139312, true }, + { 139326, true }, { 139339, true }, - { 139356, true }, - { 139377, false }, - { 139394, true }, - { 139404, true }, - { 139418, true }, - { 139432, true }, + { 139351, true }, + { 139364, true }, + { 139376, true }, + { 139395, true }, + { 139419, true }, { 139442, true }, { 139454, true }, - { 139466, true }, - { 139476, true }, - { 139490, true }, - { 139502, true }, - { 139531, true }, + { 139472, true }, + { 139488, true }, + { 139508, true }, + { 139526, true }, { 139546, true }, - { 139560, true }, - { 139574, true }, - { 139590, true }, - { 139605, true }, - { 139617, true }, - { 139637, true }, - { 139651, true }, - { 139664, true }, - { 139676, true }, - { 139689, true }, - { 139701, true }, - { 139720, true }, - { 139744, true }, - { 139767, true }, - { 139779, true }, - { 139797, true }, - { 139813, true }, - { 139833, true }, - { 139851, true }, - { 139871, true }, - { 139892, true }, - { 139905, true }, - { 139925, true }, - { 139933, true }, - { 139952, true }, - { 139971, true }, - { 139985, true }, - { 140003, true }, - { 140019, false }, - { 140038, true }, - { 140059, true }, - { 140073, true }, - { 140082, true }, - { 140100, true }, + { 139567, true }, + { 139580, true }, + { 139600, true }, + { 139608, true }, + { 139627, true }, + { 139646, true }, + { 139660, true }, + { 139678, true }, + { 139694, false }, + { 139713, true }, + { 139734, true }, + { 139748, true }, + { 139757, true }, + { 139775, true }, + { 139792, true }, + { 139808, true }, + { 139830, true }, + { 139847, true }, + { 139865, true }, + { 139884, true }, + { 139901, true }, + { 139914, true }, + { 139924, true }, + { 139932, true }, + { 139960, true }, + { 139977, true }, + { 139991, true }, + { 140006, false }, + { 140019, true }, + { 140031, true }, + { 140041, true }, + { 140054, true }, + { 140069, true }, + { 140081, true }, + { 140093, true }, + { 140105, true }, { 140117, true }, - { 140133, true }, + { 140130, true }, + { 140143, true }, { 140155, true }, - { 140172, true }, - { 140190, true }, - { 140209, true }, - { 140226, true }, - { 140239, true }, - { 140249, true }, - { 140257, true }, - { 140285, true }, + { 140171, true }, + { 140183, true }, + { 140196, true }, + { 140206, true }, + { 140216, true }, + { 140231, true }, + { 140242, true }, + { 140260, true }, + { 140268, true }, + { 140276, true }, + { 140288, true }, { 140302, true }, - { 140316, true }, - { 140331, false }, - { 140344, true }, - { 140356, true }, - { 140366, true }, - { 140379, true }, - { 140394, true }, - { 140406, true }, - { 140418, true }, - { 140430, true }, - { 140442, true }, - { 140455, true }, - { 140468, true }, - { 140480, true }, - { 140496, true }, - { 140508, true }, - { 140521, true }, - { 140531, true }, - { 140541, true }, - { 140556, true }, - { 140567, true }, - { 140578, true }, - { 140596, true }, - { 140604, true }, - { 140612, true }, - { 140624, true }, - { 140638, true }, - { 140653, true }, - { 140669, true }, - { 140684, true }, - { 140699, true }, - { 140714, true }, - { 140722, true }, - { 140737, true }, - { 140750, true }, - { 140758, true }, - { 140768, true }, - { 140789, true }, - { 140802, true }, - { 140814, true }, - { 140822, true }, - { 140839, true }, - { 140855, true }, - { 140862, true }, + { 140317, true }, + { 140333, true }, + { 140348, true }, + { 140363, true }, + { 140378, true }, + { 140386, true }, + { 140401, true }, + { 140414, true }, + { 140422, true }, + { 140432, true }, + { 140453, true }, + { 140466, true }, + { 140478, true }, + { 140486, true }, + { 140503, true }, + { 140519, true }, + { 140526, true }, + { 140537, true }, + { 140545, false }, + { 140569, true }, + { 140601, true }, + { 140628, true }, + { 140648, true }, + { 140672, true }, + { 140689, false }, + { 140702, true }, + { 140717, true }, + { 140728, true }, + { 140739, true }, + { 140749, true }, + { 140761, true }, + { 140773, false }, + { 140785, false }, + { 140793, false }, + { 140818, true }, + { 140831, true }, + { 140846, true }, + { 140860, true }, { 140873, true }, - { 140881, false }, - { 140905, true }, - { 140937, true }, - { 140964, true }, - { 140984, true }, + { 140885, true }, + { 140898, true }, + { 140915, true }, + { 140929, true }, + { 140946, true }, + { 140960, true }, + { 140975, true }, + { 140990, true }, + { 141001, true }, { 141008, true }, - { 141025, false }, - { 141038, true }, + { 141022, true }, + { 141030, true }, + { 141038, false }, { 141053, true }, - { 141064, true }, - { 141075, true }, - { 141085, true }, - { 141097, true }, - { 141109, false }, - { 141121, false }, - { 141129, false }, - { 141154, true }, - { 141167, true }, - { 141182, true }, - { 141196, true }, - { 141209, true }, - { 141221, true }, - { 141234, true }, + { 141065, true }, + { 141079, true }, + { 141089, true }, + { 141099, true }, + { 141106, true }, + { 141119, true }, + { 141132, true }, + { 141140, true }, + { 141157, true }, + { 141165, true }, + { 141174, true }, + { 141190, true }, + { 141201, true }, + { 141213, true }, + { 141223, true }, + { 141240, false }, { 141251, true }, - { 141265, true }, - { 141282, true }, - { 141296, true }, - { 141311, true }, - { 141326, true }, - { 141337, true }, - { 141344, true }, - { 141358, true }, - { 141366, true }, - { 141374, false }, - { 141389, true }, - { 141401, true }, - { 141415, true }, - { 141425, true }, - { 141435, true }, - { 141442, true }, - { 141455, true }, - { 141468, true }, - { 141476, true }, - { 141493, true }, - { 141501, true }, - { 141510, true }, - { 141526, true }, - { 141537, true }, + { 141259, true }, + { 141269, true }, + { 141278, true }, + { 141299, true }, + { 141324, false }, + { 141340, true }, + { 141352, true }, + { 141364, true }, + { 141377, true }, + { 141385, true }, + { 141393, false }, + { 141413, false }, + { 141432, false }, + { 141451, false }, + { 141471, false }, + { 141491, false }, + { 141511, false }, + { 141530, false }, { 141549, true }, - { 141559, true }, - { 141576, false }, - { 141587, true }, - { 141595, true }, - { 141605, true }, - { 141614, true }, - { 141635, true }, - { 141660, false }, - { 141676, true }, - { 141688, true }, - { 141700, true }, - { 141713, true }, + { 141560, true }, + { 141570, true }, + { 141579, true }, + { 141592, true }, + { 141607, true }, + { 141617, true }, + { 141630, true }, + { 141642, false }, + { 141653, true }, + { 141664, true }, + { 141673, true }, + { 141681, true }, + { 141694, true }, + { 141702, true }, + { 141712, true }, { 141721, true }, - { 141729, false }, - { 141749, false }, - { 141768, false }, - { 141787, false }, - { 141807, false }, - { 141827, false }, - { 141847, false }, - { 141866, false }, - { 141885, true }, - { 141896, true }, - { 141906, true }, - { 141915, true }, - { 141928, true }, - { 141943, true }, + { 141744, true }, + { 141763, false }, + { 141774, true }, + { 141796, true }, + { 141810, true }, + { 141819, true }, + { 141826, true }, + { 141835, true }, + { 141842, true }, + { 141854, true }, + { 141871, true }, + { 141878, true }, + { 141886, true }, + { 141897, true }, + { 141911, true }, + { 141923, true }, + { 141935, true }, + { 141944, true }, { 141953, true }, - { 141966, true }, - { 141978, false }, + { 141965, false }, + { 141976, true }, { 141989, true }, - { 142000, true }, - { 142009, true }, - { 142017, true }, - { 142030, true }, - { 142038, true }, - { 142048, true }, - { 142057, true }, - { 142080, true }, - { 142099, false }, - { 142110, true }, - { 142132, true }, - { 142146, true }, - { 142155, true }, - { 142162, true }, - { 142171, true }, - { 142178, true }, - { 142190, true }, - { 142207, true }, - { 142214, true }, - { 142222, true }, - { 142233, true }, - { 142247, true }, - { 142259, true }, - { 142271, true }, + { 142015, true }, + { 142038, false }, + { 142058, true }, + { 142075, true }, + { 142090, true }, + { 142104, true }, + { 142123, true }, + { 142136, true }, + { 142147, true }, + { 142165, true }, + { 142180, true }, + { 142200, true }, + { 142215, true }, + { 142224, true }, + { 142245, true }, + { 142265, true }, { 142280, true }, - { 142289, true }, - { 142301, false }, - { 142312, true }, - { 142325, true }, - { 142351, true }, - { 142374, false }, - { 142394, true }, - { 142411, true }, - { 142426, true }, - { 142440, true }, + { 142295, true }, + { 142310, true }, + { 142324, true }, + { 142338, true }, + { 142347, true }, + { 142358, true }, + { 142373, true }, + { 142382, true }, + { 142390, true }, + { 142408, true }, + { 142419, true }, + { 142429, true }, + { 142438, true }, + { 142449, true }, { 142459, true }, - { 142472, true }, - { 142483, true }, - { 142501, true }, - { 142516, true }, - { 142536, true }, - { 142551, true }, - { 142560, true }, - { 142581, true }, - { 142601, true }, - { 142616, true }, - { 142631, true }, - { 142646, true }, - { 142660, true }, - { 142674, true }, - { 142683, true }, - { 142694, true }, - { 142709, true }, - { 142718, true }, - { 142726, true }, - { 142744, true }, - { 142755, true }, - { 142765, true }, - { 142774, true }, - { 142785, true }, - { 142795, true }, - { 142804, true }, - { 142817, true }, - { 142828, true }, - { 142838, true }, - { 142845, true }, + { 142468, true }, + { 142481, true }, + { 142492, true }, + { 142502, true }, + { 142509, true }, + { 142520, true }, + { 142531, true }, + { 142545, true }, + { 142556, true }, + { 142564, true }, + { 142582, true }, + { 142595, true }, + { 142607, true }, + { 142615, true }, + { 142635, false }, + { 142651, true }, + { 142670, true }, + { 142693, true }, + { 142712, true }, + { 142723, true }, + { 142745, true }, + { 142758, true }, + { 142767, true }, + { 142790, true }, + { 142824, true }, + { 142840, true }, { 142856, true }, - { 142867, true }, - { 142881, true }, - { 142888, true }, - { 142899, true }, - { 142907, true }, - { 142925, true }, - { 142938, true }, - { 142950, true }, - { 142958, true }, - { 142978, false }, - { 142994, true }, - { 143013, true }, - { 143036, true }, + { 142878, true }, + { 142891, true }, + { 142918, true }, + { 142932, true }, + { 142942, true }, + { 142960, true }, + { 142970, true }, + { 142989, true }, + { 143003, true }, + { 143017, true }, + { 143033, true }, + { 143044, true }, { 143055, true }, - { 143066, true }, - { 143088, true }, + { 143078, true }, { 143101, true }, - { 143110, true }, - { 143133, true }, - { 143167, true }, - { 143183, true }, + { 143119, true }, + { 143136, true }, + { 143146, true }, + { 143171, true }, + { 143189, true }, { 143199, true }, - { 143221, true }, - { 143248, true }, + { 143211, true }, + { 143224, true }, + { 143235, true }, + { 143252, true }, { 143262, true }, - { 143272, true }, - { 143290, true }, - { 143300, true }, - { 143319, true }, - { 143333, true }, + { 143283, true }, + { 143305, true }, + { 143323, true }, + { 143334, true }, { 143347, true }, - { 143363, true }, - { 143374, true }, + { 143358, true }, + { 143372, true }, { 143385, true }, - { 143408, true }, - { 143431, true }, - { 143449, true }, - { 143466, true }, - { 143476, true }, - { 143501, true }, - { 143519, true }, - { 143529, true }, - { 143541, true }, - { 143554, true }, - { 143565, true }, - { 143582, true }, - { 143592, true }, - { 143613, true }, - { 143635, true }, - { 143653, true }, - { 143664, true }, - { 143677, true }, - { 143688, true }, - { 143702, true }, + { 143396, true }, + { 143406, true }, + { 143420, true }, + { 143430, true }, + { 143441, true }, + { 143454, false }, + { 143472, true }, + { 143481, true }, + { 143497, true }, + { 143513, false }, + { 143526, false }, + { 143539, false }, + { 143551, true }, + { 143568, true }, + { 143579, true }, + { 143594, true }, + { 143606, true }, + { 143623, true }, + { 143637, true }, + { 143650, true }, + { 143659, true }, + { 143670, true }, + { 143681, true }, + { 143693, true }, + { 143706, true }, { 143715, true }, { 143726, true }, - { 143736, true }, - { 143750, true }, - { 143760, true }, - { 143771, true }, - { 143784, false }, - { 143802, true }, - { 143811, true }, - { 143827, true }, - { 143843, false }, - { 143856, false }, - { 143869, false }, - { 143881, true }, - { 143898, true }, - { 143909, true }, - { 143924, true }, - { 143936, true }, - { 143953, true }, - { 143967, true }, - { 143980, true }, - { 143989, true }, - { 144000, true }, - { 144011, true }, - { 144023, true }, - { 144036, true }, - { 144045, true }, - { 144056, true }, - { 144072, true }, - { 144084, true }, - { 144096, true }, - { 144108, true }, - { 144125, true }, - { 144137, true }, - { 144151, true }, - { 144161, true }, - { 144174, true }, - { 144191, true }, + { 143742, true }, + { 143754, true }, + { 143766, true }, + { 143778, true }, + { 143795, true }, + { 143807, true }, + { 143821, true }, + { 143831, true }, + { 143844, true }, + { 143861, true }, + { 143875, true }, + { 143890, true }, + { 143906, true }, + { 143922, true }, + { 143931, true }, + { 143938, true }, + { 143949, true }, + { 143966, true }, + { 143979, true }, + { 143994, true }, + { 144004, true }, + { 144015, true }, + { 144038, true }, + { 144050, false }, + { 144064, true }, + { 144080, true }, + { 144091, true }, + { 144107, false }, + { 144126, true }, + { 144145, true }, + { 144156, true }, + { 144177, true }, + { 144193, true }, { 144205, true }, - { 144220, true }, - { 144236, true }, - { 144252, true }, - { 144261, true }, - { 144268, true }, - { 144279, true }, - { 144296, true }, - { 144309, true }, - { 144324, true }, - { 144334, true }, - { 144345, true }, - { 144368, true }, - { 144380, false }, - { 144394, true }, - { 144410, true }, - { 144421, true }, - { 144437, false }, - { 144456, true }, - { 144475, true }, - { 144486, true }, - { 144507, true }, - { 144523, true }, - { 144535, true }, - { 144549, true }, + { 144219, true }, + { 144233, true }, + { 144244, true }, + { 144265, true }, + { 144278, true }, + { 144288, true }, + { 144299, true }, + { 144316, true }, + { 144336, true }, + { 144351, true }, + { 144370, false }, + { 144387, true }, + { 144403, true }, + { 144426, true }, + { 144441, true }, + { 144457, true }, + { 144468, true }, + { 144476, true }, + { 144499, true }, + { 144511, true }, + { 144519, true }, + { 144545, true }, { 144563, true }, - { 144574, true }, - { 144595, true }, - { 144608, true }, - { 144618, true }, - { 144629, true }, + { 144576, true }, + { 144588, true }, + { 144615, true }, { 144646, true }, - { 144666, true }, - { 144681, true }, - { 144700, false }, + { 144657, true }, + { 144667, true }, + { 144682, true }, + { 144693, true }, + { 144704, false }, { 144717, true }, - { 144733, true }, - { 144756, true }, - { 144771, true }, - { 144787, true }, - { 144798, true }, - { 144806, true }, - { 144829, true }, + { 144726, true }, + { 144739, true }, + { 144767, true }, + { 144788, true }, + { 144802, true }, + { 144824, true }, { 144841, true }, - { 144849, true }, - { 144875, true }, + { 144851, true }, + { 144863, true }, + { 144879, true }, { 144893, true }, - { 144906, true }, - { 144918, true }, - { 144945, true }, - { 144976, true }, - { 144987, true }, - { 144997, true }, - { 145012, true }, - { 145023, true }, - { 145034, false }, - { 145047, true }, + { 144907, true }, + { 144925, true }, + { 144942, true }, + { 144962, true }, + { 144973, true }, + { 144984, false }, + { 144991, true }, + { 145018, true }, + { 145038, true }, { 145056, true }, - { 145069, true }, - { 145097, true }, - { 145118, true }, + { 145071, false }, + { 145082, true }, + { 145098, true }, + { 145115, true }, { 145132, true }, { 145154, true }, - { 145171, true }, - { 145181, true }, - { 145193, true }, - { 145209, true }, - { 145223, true }, - { 145237, true }, - { 145255, true }, - { 145272, true }, - { 145292, true }, - { 145303, true }, - { 145314, false }, - { 145321, true }, - { 145348, true }, - { 145368, true }, - { 145386, true }, - { 145401, false }, - { 145412, true }, - { 145428, true }, - { 145445, true }, + { 145168, true }, + { 145184, false }, + { 145201, true }, + { 145217, true }, + { 145227, true }, + { 145248, true }, + { 145266, true }, + { 145284, true }, + { 145298, true }, + { 145308, true }, + { 145319, true }, + { 145341, true }, + { 145358, true }, + { 145378, true }, + { 145392, true }, + { 145407, true }, + { 145424, true }, + { 145441, true }, { 145462, true }, - { 145484, true }, - { 145498, true }, - { 145514, false }, - { 145531, true }, - { 145547, true }, - { 145557, true }, - { 145578, true }, - { 145596, true }, - { 145614, true }, - { 145628, true }, - { 145638, true }, - { 145649, true }, - { 145671, true }, - { 145688, true }, - { 145708, true }, - { 145722, true }, - { 145737, true }, - { 145754, true }, - { 145771, true }, - { 145792, true }, - { 145808, true }, - { 145831, true }, - { 145848, true }, - { 145866, true }, + { 145478, true }, + { 145501, true }, + { 145518, true }, + { 145536, true }, + { 145546, true }, + { 145562, true }, + { 145573, false }, + { 145593, true }, + { 145606, true }, + { 145616, true }, + { 145633, true }, + { 145653, true }, + { 145668, true }, + { 145682, true }, + { 145700, true }, + { 145714, true }, + { 145735, true }, + { 145746, true }, + { 145760, true }, + { 145776, false }, + { 145790, true }, + { 145806, true }, + { 145823, true }, + { 145840, true }, + { 145856, true }, { 145876, true }, - { 145892, true }, - { 145903, false }, - { 145923, true }, - { 145936, true }, - { 145946, true }, - { 145963, true }, - { 145983, true }, - { 145998, true }, - { 146012, true }, - { 146030, true }, - { 146044, true }, - { 146065, true }, - { 146076, true }, - { 146090, true }, - { 146106, false }, - { 146120, true }, - { 146136, true }, - { 146153, true }, - { 146170, true }, - { 146186, true }, - { 146206, true }, - { 146229, true }, - { 146238, false }, - { 146246, true }, - { 146258, false }, - { 146280, true }, + { 145899, true }, + { 145908, false }, + { 145916, true }, + { 145928, false }, + { 145950, true }, + { 145965, true }, + { 145979, true }, + { 145993, true }, + { 146006, true }, + { 146021, true }, + { 146035, true }, + { 146056, true }, + { 146067, true }, + { 146077, true }, + { 146085, true }, + { 146097, true }, + { 146122, true }, + { 146132, true }, + { 146157, true }, + { 146170, false }, + { 146195, true }, + { 146212, true }, + { 146225, true }, + { 146233, true }, + { 146242, true }, + { 146256, true }, + { 146269, true }, + { 146285, true }, { 146295, true }, - { 146309, true }, - { 146323, true }, - { 146336, true }, - { 146351, true }, - { 146365, true }, - { 146386, true }, - { 146397, true }, - { 146407, true }, - { 146415, true }, - { 146427, true }, - { 146452, true }, + { 146306, true }, + { 146317, true }, + { 146333, true }, + { 146343, false }, + { 146355, true }, + { 146367, true }, + { 146382, true }, + { 146400, true }, + { 146412, true }, + { 146422, true }, + { 146438, true }, { 146462, true }, - { 146487, true }, - { 146500, false }, - { 146525, true }, - { 146542, true }, - { 146555, true }, - { 146563, true }, - { 146572, true }, - { 146586, true }, - { 146599, true }, + { 146475, true }, + { 146482, true }, + { 146489, true }, + { 146506, true }, + { 146520, true }, + { 146532, true }, + { 146544, true }, + { 146556, true }, + { 146570, true }, + { 146591, true }, + { 146604, true }, { 146615, true }, - { 146625, true }, - { 146636, true }, + { 146632, true }, { 146647, true }, - { 146663, true }, - { 146673, false }, - { 146685, true }, - { 146697, true }, - { 146712, true }, - { 146730, true }, - { 146742, true }, - { 146752, true }, - { 146768, true }, - { 146792, true }, - { 146805, true }, + { 146672, true }, + { 146687, true }, + { 146698, true }, + { 146720, true }, + { 146729, true }, + { 146744, true }, + { 146754, true }, + { 146770, true }, + { 146783, true }, + { 146795, true }, { 146812, true }, - { 146819, true }, - { 146836, true }, - { 146850, true }, - { 146862, true }, - { 146874, true }, - { 146886, true }, - { 146900, true }, - { 146921, true }, - { 146934, true }, - { 146945, true }, - { 146962, true }, - { 146977, true }, - { 147002, true }, - { 147017, true }, - { 147028, true }, - { 147050, true }, - { 147059, true }, - { 147074, true }, - { 147084, true }, + { 146833, true }, + { 146854, true }, + { 146871, true }, + { 146889, true }, + { 146901, true }, + { 146916, true }, + { 146932, true }, + { 146946, true }, + { 146958, true }, + { 146972, true }, + { 146984, true }, + { 147003, true }, + { 147019, true }, + { 147035, true }, + { 147051, true }, + { 147069, true }, + { 147086, true }, { 147100, true }, - { 147113, true }, - { 147125, true }, - { 147142, true }, - { 147163, true }, - { 147184, true }, - { 147201, true }, - { 147219, true }, - { 147231, true }, - { 147246, true }, - { 147262, true }, - { 147276, true }, - { 147288, true }, - { 147302, true }, - { 147314, true }, - { 147333, true }, - { 147349, true }, - { 147365, true }, - { 147381, true }, - { 147399, true }, - { 147416, true }, - { 147430, true }, - { 147448, true }, - { 147465, true }, - { 147484, true }, - { 147504, true }, - { 147521, true }, - { 147537, true }, - { 147555, true }, - { 147568, true }, - { 147585, true }, - { 147602, false }, - { 147623, true }, + { 147118, true }, + { 147135, true }, + { 147154, true }, + { 147174, true }, + { 147191, true }, + { 147207, true }, + { 147225, true }, + { 147238, true }, + { 147255, false }, + { 147272, false }, + { 147293, true }, + { 147310, true }, + { 147329, true }, + { 147343, true }, + { 147356, true }, + { 147371, true }, + { 147384, true }, + { 147395, true }, + { 147413, true }, + { 147425, true }, + { 147438, true }, + { 147462, true }, + { 147471, true }, + { 147486, true }, + { 147513, true }, + { 147531, true }, + { 147540, true }, + { 147550, true }, + { 147561, true }, + { 147571, true }, + { 147584, true }, + { 147592, true }, + { 147599, true }, + { 147618, true }, + { 147625, true }, { 147640, true }, - { 147659, true }, - { 147673, true }, - { 147686, true }, - { 147701, true }, - { 147714, true }, - { 147725, true }, + { 147649, true }, + { 147661, false }, + { 147681, true }, + { 147691, true }, + { 147708, true }, + { 147726, true }, { 147743, true }, - { 147755, true }, - { 147768, true }, - { 147792, true }, - { 147801, true }, - { 147816, true }, - { 147843, true }, - { 147861, true }, - { 147870, true }, - { 147880, true }, - { 147891, true }, - { 147901, true }, - { 147914, true }, - { 147922, true }, - { 147929, true }, - { 147948, true }, - { 147955, true }, - { 147970, true }, - { 147979, true }, - { 147991, false }, - { 148011, true }, - { 148021, true }, - { 148038, true }, - { 148056, true }, - { 148073, true }, - { 148095, true }, - { 148108, true }, + { 147765, true }, + { 147778, true }, + { 147797, true }, + { 147809, true }, + { 147820, true }, + { 147833, true }, + { 147852, true }, + { 147867, true }, + { 147883, true }, + { 147906, true }, + { 147926, true }, + { 147939, true }, + { 147953, true }, + { 147965, true }, + { 147976, true }, + { 147995, true }, + { 148007, true }, + { 148024, true }, + { 148041, true }, + { 148053, true }, + { 148070, true }, + { 148081, true }, + { 148105, true }, + { 148115, true }, { 148127, true }, - { 148139, true }, - { 148150, true }, - { 148163, true }, - { 148182, true }, - { 148197, true }, - { 148213, true }, - { 148236, true }, - { 148256, true }, - { 148269, true }, - { 148283, true }, - { 148295, true }, - { 148306, true }, - { 148325, true }, - { 148337, true }, - { 148354, true }, - { 148371, true }, - { 148383, true }, - { 148400, true }, + { 148137, true }, + { 148153, true }, + { 148184, true }, + { 148193, true }, + { 148210, true }, + { 148222, true }, + { 148241, true }, + { 148257, true }, + { 148274, true }, + { 148287, true }, + { 148300, true }, + { 148310, true }, + { 148324, true }, + { 148333, true }, + { 148343, true }, + { 148358, true }, + { 148368, true }, + { 148382, true }, + { 148398, true }, { 148411, true }, - { 148435, true }, - { 148445, true }, - { 148457, true }, - { 148467, true }, - { 148483, true }, - { 148514, true }, + { 148421, true }, + { 148439, true }, + { 148456, true }, + { 148472, true }, + { 148489, true }, + { 148511, true }, { 148523, true }, - { 148540, true }, - { 148552, true }, - { 148571, true }, - { 148587, true }, - { 148604, true }, - { 148617, true }, - { 148630, true }, - { 148640, true }, - { 148654, true }, - { 148663, true }, - { 148673, true }, - { 148688, true }, - { 148698, true }, - { 148712, true }, - { 148728, true }, - { 148741, true }, - { 148751, true }, - { 148769, true }, - { 148786, true }, - { 148802, true }, - { 148819, true }, - { 148841, true }, - { 148853, true }, - { 148871, true }, - { 148885, false }, - { 148900, true }, - { 148913, true }, - { 148926, true }, - { 148938, true }, - { 148950, true }, - { 148961, true }, - { 148978, true }, - { 148990, true }, - { 149009, true }, - { 149035, true }, - { 149044, true }, - { 149059, false }, - { 149066, true }, - { 149082, true }, - { 149097, true }, - { 149119, true }, - { 149144, true }, - { 149160, true }, - { 149178, true }, - { 149192, true }, - { 149202, true }, - { 149212, true }, - { 149223, true }, - { 149238, true }, - { 149248, true }, - { 149260, true }, - { 149278, true }, - { 149294, true }, - { 149309, true }, - { 149324, false }, - { 149347, true }, + { 148541, true }, + { 148555, false }, + { 148570, true }, + { 148583, true }, + { 148596, true }, + { 148608, true }, + { 148620, true }, + { 148631, true }, + { 148648, true }, + { 148660, true }, + { 148679, true }, + { 148705, true }, + { 148714, true }, + { 148729, false }, + { 148736, true }, + { 148752, true }, + { 148767, true }, + { 148789, true }, + { 148814, true }, + { 148830, true }, + { 148848, true }, + { 148862, true }, + { 148872, true }, + { 148882, true }, + { 148893, true }, + { 148908, true }, + { 148918, true }, + { 148930, true }, + { 148948, true }, + { 148964, true }, + { 148979, true }, + { 148994, false }, + { 149017, true }, + { 149033, true }, + { 149046, true }, + { 149057, true }, + { 149074, true }, + { 149094, true }, + { 149125, true }, + { 149146, true }, + { 149159, true }, + { 149180, true }, + { 149191, true }, + { 149208, true }, + { 149220, true }, + { 149233, true }, + { 149241, true }, + { 149252, true }, + { 149261, true }, + { 149270, true }, + { 149282, false }, + { 149289, true }, + { 149297, true }, + { 149306, true }, + { 149317, true }, + { 149324, true }, + { 149341, true }, + { 149349, true }, { 149363, true }, - { 149376, true }, - { 149387, true }, - { 149404, true }, - { 149424, true }, - { 149455, true }, - { 149476, true }, - { 149489, true }, - { 149510, true }, - { 149521, true }, - { 149538, true }, - { 149550, true }, - { 149563, true }, + { 149382, false }, + { 149402, true }, + { 149412, true }, + { 149433, true }, + { 149444, false }, + { 149456, true }, + { 149473, true }, + { 149484, true }, + { 149513, true }, + { 149527, true }, + { 149544, true }, + { 149556, true }, { 149571, true }, - { 149582, true }, - { 149591, true }, - { 149600, true }, - { 149612, false }, - { 149619, true }, - { 149627, true }, + { 149579, true }, + { 149587, true }, + { 149601, true }, + { 149618, true }, { 149636, true }, - { 149647, true }, - { 149654, true }, - { 149671, true }, - { 149679, true }, - { 149693, true }, - { 149712, false }, - { 149732, true }, - { 149742, true }, - { 149763, true }, - { 149774, false }, - { 149786, true }, - { 149803, true }, - { 149814, true }, - { 149843, true }, - { 149857, true }, - { 149871, true }, - { 149888, true }, - { 149900, true }, - { 149915, true }, - { 149923, true }, - { 149931, true }, - { 149945, true }, - { 149962, true }, - { 149980, true }, - { 149993, true }, - { 150002, false }, - { 150020, true }, - { 150032, true }, - { 150045, true }, - { 150054, true }, - { 150077, true }, - { 150091, true }, - { 150104, true }, - { 150120, true }, - { 150137, true }, - { 150150, true }, - { 150168, true }, - { 150180, true }, - { 150199, true }, - { 150221, true }, - { 150243, true }, - { 150263, false }, - { 150279, true }, - { 150302, true }, - { 150311, true }, - { 150319, true }, - { 150334, true }, - { 150353, true }, - { 150369, true }, - { 150383, true }, - { 150399, true }, + { 149649, true }, + { 149658, false }, + { 149676, true }, + { 149688, true }, + { 149701, true }, + { 149710, true }, + { 149733, true }, + { 149747, true }, + { 149760, true }, + { 149776, true }, + { 149793, true }, + { 149806, true }, + { 149824, true }, + { 149836, true }, + { 149855, true }, + { 149877, true }, + { 149899, true }, + { 149919, false }, + { 149935, true }, + { 149958, true }, + { 149967, true }, + { 149975, true }, + { 149990, true }, + { 150009, true }, + { 150025, true }, + { 150039, true }, + { 150055, true }, + { 150075, true }, + { 150085, true }, + { 150103, true }, + { 150110, true }, + { 150122, true }, + { 150135, true }, + { 150145, true }, + { 150153, true }, + { 150161, true }, + { 150169, false }, + { 150192, true }, + { 150211, true }, + { 150236, true }, + { 150253, true }, + { 150265, true }, + { 150277, true }, + { 150292, true }, + { 150301, true }, + { 150315, true }, + { 150328, true }, + { 150350, true }, + { 150360, true }, + { 150381, true }, + { 150402, true }, { 150419, true }, - { 150429, true }, - { 150447, true }, + { 150440, true }, { 150454, true }, - { 150466, true }, - { 150479, true }, - { 150489, true }, - { 150497, true }, - { 150505, true }, - { 150513, false }, - { 150536, true }, - { 150555, true }, - { 150580, true }, - { 150597, true }, - { 150609, true }, - { 150621, true }, + { 150470, true }, + { 150483, true }, + { 150493, true }, + { 150506, true }, + { 150530, true }, + { 150549, true }, + { 150561, true }, + { 150579, true }, + { 150588, true }, + { 150605, true }, + { 150623, true }, { 150636, true }, - { 150645, true }, - { 150659, true }, - { 150672, true }, - { 150694, true }, - { 150704, true }, - { 150725, true }, - { 150746, true }, - { 150763, true }, - { 150784, true }, + { 150649, false }, + { 150670, true }, + { 150680, true }, + { 150699, true }, + { 150712, true }, + { 150732, true }, + { 150743, true }, + { 150755, true }, + { 150770, true }, + { 150783, true }, { 150798, true }, - { 150814, true }, - { 150827, true }, - { 150837, true }, - { 150850, true }, - { 150874, true }, - { 150893, true }, - { 150905, true }, + { 150813, true }, + { 150826, false }, + { 150835, true }, + { 150854, true }, + { 150871, false }, + { 150886, true }, + { 150900, true }, + { 150910, true }, { 150923, true }, - { 150932, true }, - { 150949, true }, + { 150939, true }, + { 150957, true }, { 150967, true }, - { 150980, true }, - { 150993, false }, + { 150979, true }, + { 150992, true }, + { 151005, true }, { 151014, true }, - { 151024, true }, - { 151043, true }, - { 151056, true }, - { 151076, true }, - { 151087, true }, - { 151099, true }, + { 151038, true }, + { 151062, false }, + { 151075, true }, + { 151086, true }, + { 151102, true }, { 151114, true }, - { 151127, true }, - { 151142, true }, - { 151157, true }, - { 151170, false }, - { 151179, true }, - { 151198, true }, - { 151215, false }, - { 151230, true }, - { 151244, true }, - { 151254, true }, - { 151267, true }, + { 151130, true }, + { 151147, false }, + { 151159, true }, + { 151176, true }, + { 151195, false }, + { 151204, true }, + { 151226, true }, + { 151240, true }, + { 151253, false }, + { 151268, true }, { 151283, true }, - { 151301, true }, - { 151311, true }, - { 151323, true }, - { 151336, true }, - { 151349, true }, - { 151358, true }, - { 151382, true }, - { 151406, false }, - { 151419, true }, - { 151430, true }, - { 151446, true }, - { 151458, true }, - { 151474, true }, - { 151491, false }, - { 151503, true }, - { 151520, true }, - { 151539, false }, - { 151548, true }, - { 151570, true }, - { 151584, true }, - { 151597, false }, - { 151612, true }, - { 151627, true }, - { 151639, true }, - { 151658, false }, - { 151681, true }, - { 151697, true }, - { 151713, false }, - { 151733, true }, + { 151295, true }, + { 151314, false }, + { 151337, true }, + { 151353, true }, + { 151369, false }, + { 151389, true }, + { 151402, true }, + { 151418, true }, + { 151429, true }, + { 151448, true }, + { 151462, true }, + { 151473, true }, + { 151483, true }, + { 151500, true }, + { 151512, true }, + { 151531, true }, + { 151543, true }, + { 151554, true }, + { 151573, true }, + { 151594, true }, + { 151607, true }, + { 151615, true }, + { 151631, true }, + { 151655, false }, + { 151673, true }, + { 151691, false }, + { 151711, true }, + { 151730, true }, { 151746, true }, - { 151762, true }, - { 151773, true }, - { 151792, true }, - { 151806, true }, - { 151817, true }, - { 151827, true }, - { 151844, true }, - { 151856, true }, - { 151875, true }, - { 151887, true }, - { 151898, true }, - { 151917, true }, - { 151938, true }, - { 151951, true }, - { 151959, true }, - { 151975, true }, - { 151999, false }, - { 152017, true }, - { 152035, false }, - { 152055, true }, - { 152074, true }, - { 152090, true }, - { 152108, true }, - { 152120, true }, - { 152137, true }, - { 152160, true }, + { 151764, true }, + { 151776, true }, + { 151793, true }, + { 151816, true }, + { 151835, true }, + { 151855, true }, + { 151868, true }, + { 151880, true }, + { 151888, true }, + { 151908, true }, + { 151916, true }, + { 151932, true }, + { 151946, true }, + { 151955, true }, + { 151967, true }, + { 151977, true }, + { 151986, true }, + { 152003, true }, + { 152015, true }, + { 152026, true }, + { 152036, true }, + { 152047, true }, + { 152060, true }, + { 152077, true }, + { 152088, true }, + { 152098, true }, + { 152115, true }, + { 152124, true }, + { 152138, true }, + { 152150, true }, + { 152169, true }, { 152179, true }, - { 152199, true }, - { 152212, true }, - { 152224, true }, + { 152196, true }, + { 152218, true }, { 152232, true }, - { 152252, true }, - { 152260, true }, - { 152276, true }, + { 152246, true }, + { 152261, true }, + { 152275, true }, + { 152284, true }, { 152290, true }, - { 152299, true }, - { 152311, true }, - { 152321, true }, - { 152330, true }, + { 152296, true }, + { 152304, true }, + { 152316, true }, + { 152337, true }, { 152347, true }, - { 152359, true }, - { 152370, true }, - { 152380, true }, - { 152391, true }, - { 152404, true }, - { 152421, true }, - { 152432, true }, - { 152442, true }, - { 152459, true }, - { 152468, true }, - { 152482, true }, - { 152494, true }, - { 152513, true }, - { 152523, true }, - { 152540, true }, - { 152562, true }, - { 152576, true }, - { 152590, true }, - { 152605, true }, - { 152619, true }, - { 152628, true }, - { 152634, true }, - { 152640, true }, - { 152648, true }, - { 152660, true }, - { 152681, true }, - { 152691, true }, - { 152702, true }, - { 152720, true }, - { 152733, true }, - { 152752, true }, - { 152768, true }, - { 152781, true }, + { 152358, true }, + { 152376, true }, + { 152389, true }, + { 152408, true }, + { 152424, true }, + { 152437, true }, + { 152448, true }, + { 152461, true }, + { 152475, true }, + { 152492, false }, + { 152506, true }, + { 152525, true }, + { 152535, true }, + { 152543, true }, + { 152560, true }, + { 152574, true }, + { 152586, true }, + { 152603, true }, + { 152617, true }, + { 152631, false }, + { 152644, true }, + { 152662, true }, + { 152674, true }, + { 152686, true }, + { 152705, true }, + { 152724, true }, + { 152738, true }, + { 152750, true }, + { 152763, true }, + { 152779, true }, { 152792, true }, { 152805, true }, - { 152819, true }, - { 152836, false }, - { 152850, true }, - { 152869, true }, - { 152879, true }, - { 152887, true }, + { 152820, true }, + { 152848, true }, + { 152859, true }, + { 152872, true }, + { 152891, true }, { 152904, true }, - { 152918, true }, - { 152930, true }, - { 152947, true }, - { 152961, true }, - { 152975, false }, - { 152988, true }, - { 153006, true }, - { 153018, true }, - { 153030, true }, - { 153049, true }, - { 153068, true }, - { 153082, true }, - { 153094, true }, - { 153107, true }, - { 153123, true }, - { 153136, true }, - { 153149, true }, - { 153164, true }, - { 153192, true }, - { 153203, true }, - { 153216, true }, - { 153235, true }, - { 153248, true }, - { 153273, true }, - { 153285, true }, - { 153299, true }, - { 153313, true }, - { 153328, true }, - { 153342, true }, - { 153356, true }, - { 153370, true }, - { 153384, true }, - { 153400, true }, - { 153423, true }, - { 153439, true }, - { 153454, true }, - { 153478, true }, - { 153497, true }, - { 153510, true }, - { 153521, true }, + { 152929, true }, + { 152941, true }, + { 152955, true }, + { 152969, true }, + { 152984, true }, + { 152998, true }, + { 153012, true }, + { 153026, true }, + { 153040, true }, + { 153056, true }, + { 153079, true }, + { 153095, true }, + { 153110, true }, + { 153134, true }, + { 153153, true }, + { 153166, true }, + { 153177, true }, + { 153197, true }, + { 153209, true }, + { 153227, true }, + { 153242, true }, + { 153261, true }, + { 153274, true }, + { 153292, true }, + { 153316, true }, + { 153332, true }, + { 153345, true }, + { 153365, true }, + { 153378, true }, + { 153395, true }, + { 153410, true }, + { 153430, true }, + { 153443, true }, + { 153458, true }, + { 153470, true }, + { 153488, true }, + { 153507, true }, + { 153526, true }, { 153541, true }, { 153553, true }, - { 153571, true }, - { 153586, true }, - { 153605, true }, - { 153618, true }, - { 153636, true }, - { 153660, true }, - { 153676, true }, - { 153689, true }, - { 153709, true }, - { 153722, true }, - { 153739, true }, - { 153754, true }, - { 153774, true }, - { 153787, true }, - { 153802, true }, - { 153814, true }, - { 153832, true }, - { 153851, true }, - { 153870, true }, - { 153884, true }, - { 153899, true }, - { 153911, true }, - { 153928, true }, - { 153943, true }, - { 153961, true }, - { 153973, true }, - { 153987, true }, - { 153998, true }, - { 154020, true }, + { 153570, true }, + { 153585, true }, + { 153603, true }, + { 153615, true }, + { 153629, true }, + { 153640, true }, + { 153662, true }, + { 153674, true }, + { 153683, true }, + { 153695, true }, + { 153710, true }, + { 153733, true }, + { 153751, true }, + { 153767, true }, + { 153783, true }, + { 153800, true }, + { 153819, true }, + { 153837, true }, + { 153843, true }, + { 153861, false }, + { 153881, true }, + { 153898, true }, + { 153912, true }, + { 153924, true }, + { 153943, false }, + { 153960, true }, + { 153979, true }, + { 153990, true }, + { 154009, true }, { 154032, true }, - { 154041, true }, - { 154053, true }, - { 154068, true }, - { 154091, true }, - { 154109, true }, - { 154125, true }, - { 154141, true }, - { 154158, true }, - { 154177, true }, - { 154195, true }, - { 154201, true }, - { 154219, false }, - { 154239, true }, - { 154256, true }, - { 154270, true }, + { 154043, true }, + { 154061, true }, + { 154078, true }, + { 154097, true }, + { 154115, true }, + { 154124, true }, + { 154131, true }, + { 154138, true }, + { 154150, false }, + { 154170, true }, + { 154178, true }, + { 154189, true }, + { 154212, true }, + { 154236, true }, + { 154259, true }, { 154282, true }, - { 154301, false }, - { 154318, true }, - { 154337, true }, - { 154348, true }, + { 154310, true }, + { 154339, true }, + { 154352, true }, { 154367, true }, - { 154390, true }, - { 154401, true }, - { 154419, true }, - { 154436, true }, - { 154455, true }, - { 154473, true }, - { 154482, true }, - { 154489, true }, - { 154496, true }, - { 154508, false }, - { 154528, true }, - { 154536, true }, - { 154547, true }, - { 154570, true }, - { 154594, true }, - { 154617, true }, - { 154640, true }, - { 154668, true }, - { 154697, true }, - { 154710, true }, - { 154725, true }, - { 154744, true }, - { 154757, true }, - { 154780, true }, - { 154791, true }, - { 154808, true }, - { 154819, true }, - { 154830, true }, - { 154848, true }, + { 154386, true }, + { 154399, true }, + { 154422, true }, + { 154433, true }, + { 154450, true }, + { 154461, true }, + { 154472, true }, + { 154490, true }, + { 154516, true }, + { 154545, true }, + { 154557, true }, + { 154570, false }, + { 154590, true }, + { 154608, false }, + { 154623, true }, + { 154644, false }, + { 154660, true }, + { 154678, true }, + { 154694, true }, + { 154712, true }, + { 154728, true }, + { 154740, true }, + { 154762, true }, + { 154782, true }, + { 154802, true }, + { 154821, true }, + { 154838, true }, + { 154856, false }, { 154874, true }, - { 154903, true }, - { 154915, true }, - { 154928, false }, - { 154948, true }, - { 154966, false }, - { 154981, true }, - { 155002, false }, - { 155018, true }, - { 155036, true }, - { 155052, true }, - { 155070, true }, - { 155086, true }, - { 155098, true }, - { 155120, true }, - { 155140, true }, - { 155160, true }, - { 155179, true }, - { 155196, true }, - { 155214, false }, - { 155232, true }, - { 155252, true }, - { 155271, true }, - { 155298, true }, - { 155310, true }, - { 155322, true }, - { 155333, true }, - { 155347, true }, - { 155362, true }, - { 155371, true }, - { 155386, true }, - { 155396, true }, - { 155409, true }, - { 155429, true }, - { 155438, true }, - { 155448, true }, - { 155469, false }, - { 155486, true }, - { 155495, true }, - { 155508, true }, + { 154894, true }, + { 154913, true }, + { 154940, true }, + { 154952, true }, + { 154964, true }, + { 154975, true }, + { 154989, true }, + { 155004, true }, + { 155013, true }, + { 155028, true }, + { 155038, true }, + { 155051, true }, + { 155071, true }, + { 155080, true }, + { 155090, true }, + { 155111, false }, + { 155128, true }, + { 155137, true }, + { 155150, true }, + { 155167, true }, + { 155181, true }, + { 155195, true }, + { 155207, true }, + { 155224, true }, + { 155234, true }, + { 155250, true }, + { 155262, true }, + { 155273, false }, + { 155289, true }, + { 155300, true }, + { 155316, true }, + { 155329, true }, + { 155338, true }, + { 155351, true }, + { 155368, true }, + { 155380, true }, + { 155392, true }, + { 155404, true }, + { 155413, true }, + { 155425, true }, + { 155440, true }, + { 155454, true }, + { 155464, true }, + { 155485, true }, + { 155503, true }, + { 155515, true }, { 155525, true }, - { 155539, true }, - { 155553, true }, - { 155565, true }, - { 155582, true }, - { 155592, true }, - { 155608, true }, - { 155620, true }, - { 155631, false }, - { 155647, true }, - { 155658, true }, - { 155674, true }, - { 155687, true }, - { 155696, true }, - { 155709, true }, - { 155726, true }, - { 155738, true }, - { 155750, true }, - { 155762, true }, - { 155771, true }, - { 155783, true }, - { 155798, true }, - { 155812, true }, - { 155822, true }, - { 155843, true }, - { 155861, true }, - { 155873, true }, - { 155883, true }, - { 155898, true }, - { 155910, true }, - { 155922, true }, - { 155937, true }, - { 155948, true }, - { 155959, true }, - { 155967, true }, - { 155980, true }, - { 155993, true }, - { 156010, true }, - { 156020, true }, - { 156033, true }, - { 156050, true }, - { 156064, true }, - { 156073, true }, - { 156088, true }, - { 156102, true }, - { 156115, true }, - { 156129, true }, - { 156143, true }, - { 156151, true }, - { 156168, true }, - { 156183, true }, + { 155540, true }, + { 155552, true }, + { 155564, true }, + { 155579, true }, + { 155590, true }, + { 155601, true }, + { 155614, true }, + { 155627, true }, + { 155644, true }, + { 155654, true }, + { 155667, true }, + { 155684, true }, + { 155698, true }, + { 155707, true }, + { 155722, true }, + { 155736, true }, + { 155749, true }, + { 155763, true }, + { 155777, true }, + { 155785, true }, + { 155802, true }, + { 155817, true }, + { 155832, true }, + { 155846, true }, + { 155862, true }, + { 155878, true }, + { 155892, true }, + { 155908, true }, + { 155925, true }, + { 155938, true }, + { 155952, false }, + { 155970, true }, + { 155985, true }, + { 156002, true }, + { 156019, false }, + { 156045, true }, + { 156060, true }, + { 156078, true }, + { 156091, true }, + { 156104, true }, + { 156116, true }, + { 156135, true }, + { 156145, true }, + { 156157, true }, + { 156170, true }, + { 156181, true }, { 156198, true }, - { 156212, true }, - { 156228, true }, - { 156244, true }, - { 156258, true }, - { 156274, true }, - { 156291, true }, - { 156304, true }, - { 156318, false }, - { 156336, true }, - { 156351, true }, - { 156368, true }, - { 156385, false }, - { 156411, true }, - { 156426, true }, - { 156444, true }, - { 156457, true }, - { 156470, true }, + { 156229, true }, + { 156239, true }, + { 156250, true }, + { 156261, true }, + { 156273, true }, + { 156287, true }, + { 156299, true }, + { 156307, true }, + { 156315, true }, + { 156326, false }, + { 156346, true }, + { 156364, true }, + { 156379, false }, + { 156393, true }, + { 156413, true }, + { 156424, true }, + { 156449, true }, + { 156467, true }, { 156482, true }, - { 156501, true }, - { 156511, true }, - { 156523, true }, - { 156536, true }, - { 156547, true }, + { 156499, true }, + { 156515, true }, + { 156540, true }, + { 156551, true }, { 156564, true }, - { 156595, true }, - { 156605, true }, - { 156616, true }, - { 156627, true }, - { 156639, true }, - { 156653, true }, - { 156665, true }, - { 156673, true }, - { 156681, true }, - { 156692, false }, - { 156712, true }, - { 156730, true }, - { 156745, false }, - { 156759, true }, - { 156779, true }, - { 156790, true }, - { 156815, true }, - { 156833, true }, - { 156848, true }, - { 156865, true }, - { 156881, true }, - { 156906, true }, - { 156917, true }, - { 156930, true }, - { 156942, true }, - { 156955, false }, - { 156963, true }, - { 156973, true }, - { 156988, true }, - { 157007, true }, - { 157020, true }, - { 157033, true }, - { 157048, true }, - { 157061, true }, - { 157074, true }, - { 157088, true }, - { 157101, true }, - { 157121, true }, - { 157139, true }, - { 157153, true }, - { 157167, true }, - { 157178, true }, + { 156576, true }, + { 156589, false }, + { 156597, true }, + { 156607, true }, + { 156622, true }, + { 156641, true }, + { 156654, true }, + { 156667, true }, + { 156682, true }, + { 156695, true }, + { 156708, true }, + { 156722, true }, + { 156735, true }, + { 156755, true }, + { 156773, true }, + { 156787, true }, + { 156801, true }, + { 156812, true }, + { 156823, true }, + { 156836, true }, + { 156853, true }, + { 156861, true }, + { 156876, true }, + { 156889, true }, + { 156903, true }, + { 156918, true }, + { 156943, true }, + { 156979, true }, + { 156992, true }, + { 157002, true }, + { 157017, true }, + { 157030, true }, + { 157052, true }, + { 157070, true }, + { 157083, true }, + { 157094, true }, + { 157106, true }, + { 157124, true }, + { 157132, true }, + { 157165, true }, + { 157172, true }, { 157189, true }, - { 157202, true }, - { 157219, true }, - { 157227, true }, - { 157242, true }, + { 157207, false }, + { 157225, true }, + { 157243, true }, { 157255, true }, - { 157269, true }, - { 157284, true }, - { 157309, true }, - { 157345, true }, - { 157358, true }, - { 157368, true }, - { 157383, true }, - { 157396, true }, - { 157418, true }, - { 157436, true }, - { 157449, true }, - { 157460, true }, - { 157472, true }, - { 157490, true }, - { 157498, true }, - { 157531, true }, - { 157538, true }, - { 157555, true }, - { 157573, false }, - { 157591, true }, - { 157609, true }, - { 157621, true }, + { 157267, true }, + { 157280, true }, + { 157296, true }, + { 157310, true }, + { 157330, true }, + { 157350, true }, + { 157361, true }, + { 157371, true }, + { 157380, true }, + { 157391, true }, + { 157410, true }, + { 157424, true }, + { 157438, true }, + { 157461, true }, + { 157475, true }, + { 157489, true }, + { 157501, true }, + { 157515, false }, + { 157525, true }, + { 157539, true }, + { 157548, true }, + { 157560, true }, + { 157572, true }, + { 157583, true }, + { 157592, true }, + { 157601, true }, + { 157613, true }, + { 157627, true }, { 157633, true }, - { 157646, true }, - { 157662, true }, - { 157676, true }, - { 157696, true }, - { 157716, true }, - { 157727, true }, - { 157737, true }, - { 157746, true }, - { 157757, true }, - { 157776, true }, - { 157790, true }, - { 157804, true }, - { 157827, true }, - { 157841, true }, - { 157855, true }, + { 157645, true }, + { 157660, false }, + { 157687, true }, + { 157707, true }, + { 157717, true }, + { 157730, true }, + { 157743, true }, + { 157759, true }, + { 157780, true }, + { 157799, true }, + { 157809, true }, + { 157821, true }, + { 157833, true }, + { 157844, false }, + { 157852, true }, { 157867, true }, - { 157881, false }, - { 157891, true }, - { 157905, true }, - { 157914, true }, - { 157926, true }, - { 157938, true }, + { 157881, true }, + { 157893, true }, + { 157906, true }, + { 157916, true }, + { 157937, true }, { 157949, true }, - { 157958, true }, - { 157967, true }, - { 157979, true }, - { 157993, true }, + { 157960, true }, + { 157980, true }, { 157999, true }, - { 158011, true }, - { 158026, false }, - { 158053, true }, - { 158073, true }, - { 158083, true }, - { 158096, true }, - { 158109, true }, - { 158125, true }, - { 158146, true }, - { 158165, true }, - { 158175, true }, - { 158187, true }, - { 158199, true }, - { 158210, false }, + { 158010, true }, + { 158025, true }, + { 158050, false }, + { 158078, false }, + { 158090, true }, + { 158101, true }, + { 158112, true }, + { 158127, true }, + { 158142, true }, + { 158159, true }, + { 158171, false }, + { 158188, true }, + { 158204, true }, { 158218, true }, { 158233, true }, - { 158247, true }, - { 158259, true }, - { 158272, true }, - { 158282, true }, - { 158303, true }, - { 158315, true }, - { 158326, true }, - { 158346, true }, - { 158365, true }, - { 158376, true }, - { 158391, true }, - { 158416, false }, - { 158444, false }, - { 158456, true }, - { 158467, true }, - { 158478, true }, - { 158493, true }, - { 158508, true }, - { 158525, true }, - { 158537, false }, - { 158554, true }, - { 158570, true }, - { 158584, true }, - { 158599, true }, - { 158614, true }, - { 158630, true }, - { 158647, true }, - { 158670, true }, - { 158689, true }, - { 158703, true }, + { 158248, true }, + { 158264, true }, + { 158281, true }, + { 158304, true }, + { 158323, true }, + { 158337, true }, + { 158358, true }, + { 158378, true }, + { 158396, true }, + { 158415, true }, + { 158433, true }, + { 158451, false }, + { 158468, false }, + { 158483, true }, + { 158494, true }, + { 158505, true }, + { 158517, true }, + { 158532, true }, + { 158550, true }, + { 158572, true }, + { 158586, true }, + { 158603, true }, + { 158622, true }, + { 158640, true }, + { 158661, true }, + { 158675, true }, + { 158690, true }, + { 158706, true }, { 158724, true }, - { 158744, true }, - { 158762, true }, - { 158781, true }, - { 158799, true }, - { 158817, false }, - { 158834, false }, - { 158849, true }, - { 158860, true }, + { 158734, true }, + { 158746, false }, + { 158757, true }, + { 158776, false }, + { 158795, true }, + { 158810, true }, + { 158823, false }, + { 158842, true }, + { 158853, true }, { 158871, true }, - { 158883, true }, - { 158898, true }, - { 158916, true }, - { 158938, true }, - { 158952, true }, - { 158969, true }, - { 158988, true }, - { 159009, true }, - { 159023, true }, - { 159038, true }, - { 159054, true }, + { 158885, true }, + { 158910, true }, + { 158925, true }, + { 158943, true }, + { 158958, true }, + { 158973, true }, + { 158990, true }, + { 159001, true }, + { 159011, true }, + { 159026, true }, + { 159035, true }, + { 159045, true }, + { 159055, true }, { 159072, true }, - { 159082, true }, - { 159094, false }, - { 159105, true }, - { 159124, false }, - { 159143, true }, - { 159158, true }, - { 159171, false }, - { 159190, true }, - { 159201, true }, - { 159219, true }, - { 159233, true }, - { 159258, true }, - { 159273, true }, - { 159291, true }, + { 159087, false }, + { 159100, true }, + { 159116, true }, + { 159137, true }, + { 159157, true }, + { 159176, true }, + { 159188, true }, + { 159199, true }, + { 159209, true }, + { 159221, true }, + { 159236, true }, + { 159250, true }, + { 159270, true }, + { 159293, true }, { 159306, true }, - { 159321, true }, - { 159338, true }, - { 159349, true }, - { 159359, true }, - { 159374, true }, - { 159383, true }, - { 159393, true }, - { 159403, true }, - { 159420, true }, - { 159435, false }, - { 159448, true }, - { 159464, true }, - { 159485, true }, - { 159505, true }, - { 159524, true }, - { 159536, true }, - { 159547, true }, - { 159557, true }, - { 159569, true }, - { 159584, true }, - { 159598, true }, - { 159618, true }, - { 159641, true }, - { 159654, true }, - { 159672, true }, - { 159680, true }, - { 159688, true }, - { 159700, true }, - { 159712, true }, - { 159729, true }, - { 159740, true }, - { 159757, false }, - { 159774, true }, - { 159787, true }, - { 159798, false }, - { 159811, true }, - { 159826, false }, - { 159850, false }, - { 159862, true }, - { 159887, true }, - { 159896, true }, - { 159908, true }, - { 159928, true }, - { 159945, true }, - { 159955, true }, - { 159976, true }, - { 159985, true }, - { 160004, true }, - { 160022, true }, - { 160038, true }, - { 160053, true }, - { 160068, true }, - { 160083, true }, - { 160103, true }, - { 160116, true }, - { 160129, true }, - { 160138, true }, - { 160152, false }, - { 160175, true }, - { 160197, true }, - { 160223, true }, - { 160238, true }, - { 160253, true }, - { 160267, true }, - { 160279, true }, - { 160302, true }, - { 160312, true }, - { 160320, true }, - { 160336, true }, - { 160350, true }, - { 160362, true }, - { 160375, false }, - { 160393, true }, - { 160406, true }, - { 160417, true }, - { 160430, true }, - { 160440, true }, - { 160455, true }, - { 160468, true }, - { 160484, true }, - { 160494, false }, - { 160504, true }, - { 160517, true }, - { 160532, true }, - { 160542, true }, - { 160558, true }, - { 160570, true }, - { 160579, true }, - { 160594, true }, - { 160605, true }, - { 160623, true }, - { 160643, true }, + { 159324, true }, + { 159332, true }, + { 159340, true }, + { 159352, true }, + { 159364, true }, + { 159381, true }, + { 159392, true }, + { 159409, false }, + { 159426, true }, + { 159439, true }, + { 159450, false }, + { 159463, true }, + { 159478, false }, + { 159502, false }, + { 159514, true }, + { 159539, true }, + { 159548, true }, + { 159560, true }, + { 159580, true }, + { 159597, true }, + { 159607, true }, + { 159628, true }, + { 159637, true }, + { 159656, true }, + { 159674, true }, + { 159690, true }, + { 159705, true }, + { 159720, true }, + { 159735, true }, + { 159755, true }, + { 159768, true }, + { 159781, true }, + { 159790, true }, + { 159804, true }, + { 159827, true }, + { 159849, true }, + { 159875, true }, + { 159890, true }, + { 159905, true }, + { 159919, true }, + { 159931, true }, + { 159954, true }, + { 159964, true }, + { 159972, true }, + { 159988, true }, + { 160002, true }, + { 160015, false }, + { 160033, true }, + { 160046, true }, + { 160057, true }, + { 160070, true }, + { 160080, true }, + { 160095, true }, + { 160108, true }, + { 160124, true }, + { 160134, false }, + { 160144, true }, + { 160157, true }, + { 160172, true }, + { 160182, true }, + { 160198, true }, + { 160210, true }, + { 160219, true }, + { 160234, true }, + { 160245, true }, + { 160263, true }, + { 160283, true }, + { 160299, true }, + { 160316, true }, + { 160329, true }, + { 160339, true }, + { 160349, true }, + { 160363, true }, + { 160375, true }, + { 160388, true }, + { 160405, true }, + { 160420, true }, + { 160437, true }, + { 160449, true }, + { 160466, true }, + { 160480, true }, + { 160496, true }, + { 160509, true }, + { 160524, false }, + { 160536, true }, + { 160546, true }, + { 160555, true }, + { 160567, true }, + { 160575, true }, + { 160583, true }, + { 160591, true }, + { 160597, true }, + { 160612, true }, + { 160625, true }, + { 160640, true }, { 160659, true }, - { 160676, true }, - { 160689, true }, - { 160699, true }, - { 160709, true }, - { 160723, true }, + { 160683, true }, + { 160696, true }, + { 160711, true }, { 160735, true }, - { 160748, true }, - { 160765, true }, - { 160780, true }, - { 160797, true }, - { 160809, true }, + { 160745, true }, + { 160761, true }, + { 160782, false }, + { 160805, true }, { 160826, true }, - { 160840, true }, - { 160856, true }, + { 160839, true }, + { 160852, true }, { 160869, true }, - { 160884, false }, - { 160896, true }, - { 160906, true }, - { 160915, true }, + { 160883, true }, + { 160895, false }, + { 160908, true }, { 160927, true }, - { 160935, true }, - { 160943, true }, - { 160951, true }, - { 160957, true }, - { 160972, true }, - { 160985, true }, - { 161000, true }, + { 160951, false }, + { 160978, true }, + { 161004, true }, { 161019, true }, - { 161043, true }, - { 161056, true }, - { 161071, true }, - { 161095, true }, - { 161105, true }, - { 161121, true }, - { 161142, false }, + { 161036, true }, + { 161052, true }, + { 161069, true }, + { 161082, true }, + { 161093, true }, + { 161104, true }, + { 161115, true }, + { 161125, true }, + { 161134, true }, + { 161147, true }, { 161165, true }, - { 161186, true }, - { 161199, true }, - { 161212, true }, - { 161229, true }, - { 161243, true }, - { 161255, false }, - { 161268, true }, - { 161287, true }, - { 161311, false }, - { 161338, true }, - { 161364, true }, - { 161379, true }, - { 161396, true }, - { 161412, true }, - { 161429, true }, - { 161442, true }, - { 161453, true }, - { 161464, true }, - { 161475, true }, - { 161485, true }, + { 161178, true }, + { 161192, true }, + { 161202, true }, + { 161213, true }, + { 161234, true }, + { 161248, true }, + { 161257, true }, + { 161264, true }, + { 161272, true }, + { 161295, true }, + { 161308, true }, + { 161322, true }, + { 161335, true }, + { 161350, true }, + { 161359, true }, + { 161367, true }, + { 161380, true }, + { 161388, true }, + { 161406, true }, + { 161417, false }, + { 161433, true }, + { 161454, true }, + { 161470, true }, + { 161483, true }, { 161494, true }, - { 161507, true }, - { 161525, true }, - { 161538, true }, - { 161552, true }, - { 161562, true }, - { 161573, true }, - { 161594, true }, - { 161608, true }, - { 161617, true }, - { 161624, true }, - { 161632, true }, - { 161655, true }, - { 161668, true }, - { 161682, true }, - { 161695, true }, - { 161710, true }, - { 161719, true }, - { 161727, true }, - { 161740, true }, - { 161748, true }, - { 161766, true }, - { 161777, false }, - { 161793, true }, - { 161814, true }, - { 161830, true }, - { 161843, true }, - { 161854, true }, - { 161866, true }, - { 161881, true }, - { 161890, true }, - { 161902, true }, - { 161913, true }, - { 161925, true }, - { 161938, true }, - { 161953, true }, - { 161973, true }, - { 161985, true }, - { 162002, true }, - { 162012, true }, - { 162022, true }, - { 162029, true }, - { 162039, true }, - { 162051, true }, - { 162067, true }, + { 161506, true }, + { 161521, true }, + { 161530, true }, + { 161542, true }, + { 161553, true }, + { 161565, true }, + { 161578, true }, + { 161593, true }, + { 161613, true }, + { 161625, true }, + { 161642, true }, + { 161652, true }, + { 161662, true }, + { 161669, true }, + { 161679, true }, + { 161691, true }, + { 161707, true }, + { 161722, true }, + { 161731, true }, + { 161745, true }, + { 161765, true }, + { 161777, true }, + { 161790, true }, + { 161808, true }, + { 161815, true }, + { 161832, true }, + { 161849, true }, + { 161869, true }, + { 161888, true }, + { 161904, false }, + { 161922, true }, + { 161949, true }, + { 161966, true }, + { 161980, true }, + { 161994, true }, + { 162009, false }, + { 162028, true }, + { 162046, true }, + { 162064, true }, { 162082, true }, - { 162091, true }, - { 162105, true }, - { 162125, true }, - { 162137, true }, - { 162150, true }, - { 162168, true }, - { 162175, true }, - { 162192, true }, - { 162209, true }, - { 162229, true }, - { 162248, true }, - { 162264, false }, - { 162282, true }, - { 162309, true }, - { 162326, true }, - { 162340, true }, - { 162354, true }, - { 162369, false }, - { 162388, true }, - { 162406, true }, + { 162099, true }, + { 162120, true }, + { 162139, true }, + { 162153, true }, + { 162164, true }, + { 162172, true }, + { 162182, true }, + { 162197, true }, + { 162212, true }, + { 162223, true }, + { 162245, true }, + { 162258, true }, + { 162277, true }, + { 162303, true }, + { 162319, true }, + { 162337, true }, + { 162355, true }, + { 162370, true }, + { 162378, true }, + { 162391, true }, + { 162399, true }, + { 162410, true }, { 162424, true }, - { 162442, true }, - { 162459, true }, + { 162440, true }, + { 162457, true }, + { 162467, true }, { 162480, true }, - { 162499, true }, - { 162513, true }, - { 162524, true }, - { 162532, true }, - { 162542, true }, + { 162498, true }, + { 162511, true }, + { 162530, false }, + { 162540, true }, { 162557, true }, - { 162572, true }, - { 162583, true }, - { 162605, true }, - { 162618, true }, - { 162637, true }, - { 162663, true }, - { 162679, true }, - { 162697, true }, - { 162715, true }, - { 162730, true }, - { 162738, true }, - { 162751, true }, - { 162759, true }, - { 162770, true }, - { 162784, true }, - { 162800, true }, - { 162817, true }, - { 162827, true }, - { 162840, true }, - { 162858, true }, - { 162871, true }, - { 162890, false }, - { 162900, true }, - { 162917, true }, - { 162933, true }, - { 162956, true }, - { 162981, true }, - { 162995, true }, + { 162573, true }, + { 162596, true }, + { 162621, true }, + { 162635, true }, + { 162648, true }, + { 162659, true }, + { 162674, true }, + { 162686, true }, + { 162704, true }, + { 162729, true }, + { 162741, true }, + { 162753, true }, + { 162765, true }, + { 162783, true }, + { 162804, true }, + { 162820, true }, + { 162832, true }, + { 162846, true }, + { 162861, true }, + { 162874, true }, + { 162890, true }, + { 162908, true }, + { 162922, true }, + { 162932, false }, + { 162943, true }, + { 162951, false }, + { 162963, true }, + { 162980, true }, + { 162990, true }, + { 163001, true }, { 163008, true }, { 163019, true }, - { 163034, true }, - { 163046, true }, - { 163064, true }, - { 163089, true }, - { 163101, true }, - { 163113, true }, - { 163125, true }, - { 163143, true }, - { 163164, true }, - { 163180, true }, - { 163192, true }, - { 163206, true }, - { 163221, true }, - { 163234, true }, - { 163250, true }, - { 163268, true }, - { 163282, true }, - { 163292, false }, - { 163303, true }, - { 163311, false }, - { 163323, true }, - { 163340, true }, - { 163350, true }, - { 163361, true }, - { 163368, true }, - { 163379, true }, - { 163396, true }, - { 163416, true }, - { 163431, true }, - { 163440, true }, - { 163447, true }, - { 163457, true }, - { 163468, true }, - { 163477, true }, - { 163492, true }, - { 163502, true }, - { 163523, true }, - { 163532, true }, - { 163548, false }, - { 163561, true }, - { 163577, true }, - { 163597, true }, - { 163611, true }, - { 163627, true }, + { 163036, true }, + { 163056, true }, + { 163065, true }, + { 163072, true }, + { 163082, true }, + { 163093, true }, + { 163102, true }, + { 163117, true }, + { 163127, true }, + { 163148, true }, + { 163157, true }, + { 163173, false }, + { 163186, true }, + { 163202, true }, + { 163222, true }, + { 163236, true }, + { 163252, true }, + { 163266, true }, + { 163281, true }, + { 163289, true }, + { 163302, true }, + { 163318, true }, + { 163331, true }, + { 163344, true }, + { 163358, true }, + { 163380, true }, + { 163401, true }, + { 163420, true }, + { 163448, true }, + { 163469, true }, + { 163488, true }, + { 163512, true }, + { 163522, true }, + { 163531, true }, + { 163544, true }, + { 163550, true }, + { 163562, true }, + { 163576, true }, + { 163590, true }, + { 163604, false }, + { 163617, true }, + { 163630, false }, { 163641, true }, - { 163656, true }, + { 163654, true }, { 163664, true }, { 163677, true }, - { 163693, true }, - { 163706, true }, - { 163719, true }, - { 163733, true }, + { 163696, true }, + { 163715, true }, + { 163735, true }, + { 163744, true }, { 163755, true }, - { 163776, true }, - { 163795, true }, + { 163764, true }, + { 163783, false }, + { 163799, false }, + { 163812, true }, { 163823, true }, - { 163844, true }, - { 163863, true }, - { 163887, true }, - { 163897, true }, + { 163838, true }, + { 163849, true }, + { 163868, true }, + { 163881, true }, + { 163893, true }, { 163906, true }, - { 163919, true }, - { 163925, true }, - { 163937, true }, - { 163951, true }, - { 163965, true }, - { 163979, false }, - { 163992, true }, - { 164005, false }, - { 164016, true }, - { 164029, true }, - { 164039, true }, + { 163921, true }, + { 163930, true }, + { 163943, true }, + { 163958, true }, + { 163974, true }, + { 163988, true }, + { 164005, true }, + { 164014, true }, + { 164028, true }, { 164052, true }, - { 164071, true }, - { 164090, true }, - { 164110, true }, - { 164119, true }, - { 164130, true }, - { 164139, true }, - { 164158, false }, - { 164174, false }, - { 164187, true }, - { 164198, true }, - { 164213, true }, - { 164224, true }, - { 164243, true }, - { 164256, true }, - { 164268, true }, - { 164281, true }, - { 164296, true }, - { 164305, true }, - { 164318, true }, - { 164333, true }, - { 164349, true }, - { 164363, true }, - { 164380, true }, - { 164389, true }, - { 164403, true }, - { 164427, true }, - { 164442, true }, - { 164458, true }, - { 164473, true }, - { 164491, true }, - { 164504, true }, - { 164517, true }, - { 164526, true }, - { 164539, true }, - { 164559, true }, - { 164570, true }, - { 164584, true }, - { 164593, true }, - { 164602, true }, - { 164620, true }, - { 164638, true }, - { 164652, true }, - { 164669, true }, - { 164686, true }, + { 164067, true }, + { 164083, true }, + { 164098, true }, + { 164116, true }, + { 164129, true }, + { 164142, true }, + { 164151, true }, + { 164164, true }, + { 164184, true }, + { 164195, true }, + { 164209, true }, + { 164218, true }, + { 164227, true }, + { 164245, true }, + { 164263, true }, + { 164277, true }, + { 164294, true }, + { 164311, true }, + { 164327, true }, + { 164339, true }, + { 164353, true }, + { 164374, true }, + { 164399, false }, + { 164415, true }, + { 164434, true }, + { 164449, true }, + { 164459, true }, + { 164483, true }, + { 164495, true }, + { 164508, true }, + { 164522, true }, + { 164531, true }, + { 164560, true }, + { 164585, true }, + { 164610, true }, + { 164639, true }, + { 164651, true }, + { 164667, true }, + { 164676, true }, + { 164688, true }, { 164702, true }, - { 164714, true }, - { 164728, true }, - { 164749, true }, - { 164774, false }, - { 164790, true }, - { 164809, true }, - { 164824, true }, - { 164834, true }, - { 164858, true }, - { 164870, true }, - { 164883, true }, - { 164897, true }, + { 164716, true }, + { 164730, true }, + { 164743, true }, + { 164762, true }, + { 164775, true }, + { 164792, true }, + { 164801, true }, + { 164819, true }, + { 164833, false }, + { 164844, true }, + { 164864, false }, + { 164877, true }, + { 164887, true }, { 164906, true }, - { 164935, true }, - { 164960, true }, - { 164985, true }, - { 165014, true }, - { 165026, true }, - { 165042, true }, - { 165051, true }, - { 165063, true }, - { 165077, true }, - { 165091, true }, - { 165105, true }, - { 165118, true }, - { 165137, true }, - { 165150, true }, - { 165167, true }, - { 165176, true }, - { 165194, true }, - { 165208, false }, - { 165219, true }, - { 165239, false }, - { 165252, true }, - { 165262, true }, - { 165281, true }, - { 165303, true }, - { 165314, true }, - { 165325, true }, - { 165336, true }, - { 165346, true }, - { 165355, true }, - { 165363, true }, - { 165369, false }, - { 165377, true }, - { 165386, true }, - { 165394, true }, - { 165404, true }, - { 165412, true }, - { 165431, true }, - { 165456, true }, + { 164928, true }, + { 164939, true }, + { 164950, true }, + { 164961, true }, + { 164971, true }, + { 164980, true }, + { 164988, true }, + { 164994, false }, + { 165002, true }, + { 165011, true }, + { 165019, true }, + { 165029, true }, + { 165037, true }, + { 165056, true }, + { 165081, true }, + { 165088, true }, + { 165101, true }, + { 165115, true }, + { 165125, true }, + { 165135, true }, + { 165154, true }, + { 165166, true }, + { 165181, true }, + { 165193, true }, + { 165206, true }, + { 165218, true }, + { 165237, true }, + { 165248, false }, + { 165259, true }, + { 165274, true }, + { 165290, true }, + { 165312, true }, + { 165326, true }, + { 165339, true }, + { 165352, true }, + { 165371, true }, + { 165387, true }, + { 165400, true }, + { 165420, false }, + { 165447, false }, { 165463, true }, - { 165476, true }, - { 165490, true }, - { 165500, true }, + { 165479, true }, + { 165494, true }, { 165510, true }, - { 165529, true }, - { 165541, true }, + { 165528, true }, + { 165547, true }, { 165556, true }, - { 165568, true }, - { 165581, true }, - { 165593, true }, - { 165612, true }, - { 165623, false }, + { 165569, true }, + { 165586, true }, + { 165605, true }, + { 165618, true }, { 165634, true }, - { 165649, true }, - { 165665, true }, - { 165687, true }, - { 165701, true }, - { 165714, true }, - { 165727, true }, - { 165746, true }, - { 165762, true }, - { 165775, true }, - { 165795, false }, - { 165822, false }, - { 165838, true }, - { 165854, true }, - { 165869, true }, - { 165885, true }, - { 165903, true }, - { 165922, true }, - { 165931, true }, - { 165944, true }, - { 165961, true }, - { 165980, true }, - { 165993, true }, - { 166009, true }, - { 166022, true }, + { 165647, true }, + { 165666, true }, + { 165683, true }, + { 165697, true }, + { 165715, true }, + { 165733, true }, + { 165751, true }, + { 165769, true }, + { 165782, true }, + { 165798, true }, + { 165819, true }, + { 165829, true }, + { 165850, true }, + { 165863, true }, + { 165872, true }, + { 165883, true }, + { 165896, true }, + { 165909, true }, + { 165925, true }, + { 165938, true }, + { 165952, true }, + { 165967, true }, + { 165981, true }, + { 165996, true }, + { 166008, true }, + { 166025, true }, { 166041, true }, - { 166058, true }, - { 166072, true }, - { 166090, true }, - { 166108, true }, - { 166126, true }, - { 166144, true }, - { 166157, true }, - { 166173, true }, - { 166194, true }, - { 166204, true }, - { 166225, true }, - { 166238, true }, - { 166247, true }, - { 166258, true }, - { 166271, true }, - { 166284, true }, - { 166300, true }, + { 166060, true }, + { 166076, true }, + { 166089, true }, + { 166104, true }, + { 166113, true }, + { 166123, true }, + { 166150, false }, + { 166167, true }, + { 166185, true }, + { 166209, true }, + { 166233, true }, + { 166252, true }, + { 166266, true }, + { 166274, true }, + { 166285, true }, { 166313, true }, { 166327, true }, - { 166342, true }, - { 166356, true }, - { 166371, true }, - { 166383, true }, - { 166400, true }, - { 166416, true }, - { 166435, true }, - { 166451, true }, - { 166464, true }, - { 166479, true }, - { 166488, true }, - { 166498, true }, - { 166525, false }, - { 166542, true }, - { 166560, true }, - { 166584, true }, - { 166608, true }, - { 166627, true }, - { 166641, true }, - { 166649, true }, - { 166660, true }, - { 166688, true }, - { 166702, true }, - { 166714, true }, - { 166723, true }, - { 166733, true }, - { 166753, true }, - { 166767, true }, - { 166780, true }, + { 166339, true }, + { 166348, true }, + { 166358, true }, + { 166378, true }, + { 166392, true }, + { 166405, true }, + { 166425, true }, + { 166443, true }, + { 166455, true }, + { 166470, true }, + { 166485, true }, + { 166500, false }, + { 166517, true }, + { 166529, false }, + { 166552, true }, + { 166569, true }, + { 166582, true }, + { 166593, true }, + { 166616, true }, + { 166634, true }, + { 166655, true }, + { 166677, true }, + { 166698, true }, + { 166719, true }, + { 166729, false }, + { 166743, true }, + { 166760, true }, + { 166777, true }, + { 166787, true }, { 166800, true }, - { 166818, true }, - { 166830, true }, - { 166845, true }, - { 166860, true }, - { 166875, false }, - { 166892, true }, - { 166904, false }, - { 166927, true }, - { 166944, true }, - { 166957, true }, - { 166968, true }, - { 166991, true }, - { 167009, true }, - { 167030, true }, - { 167052, true }, - { 167073, true }, - { 167094, true }, - { 167104, false }, - { 167118, true }, - { 167135, true }, - { 167152, true }, - { 167162, true }, - { 167175, true }, - { 167190, true }, - { 167208, true }, - { 167225, true }, - { 167241, true }, - { 167278, true }, - { 167297, true }, - { 167311, true }, - { 167326, true }, - { 167341, false }, - { 167353, true }, - { 167370, false }, - { 167387, false }, - { 167402, true }, - { 167415, true }, - { 167436, false }, - { 167448, false }, - { 167465, true }, - { 167482, true }, - { 167499, true }, - { 167512, true }, - { 167528, true }, + { 166815, true }, + { 166833, true }, + { 166850, true }, + { 166866, true }, + { 166903, true }, + { 166922, true }, + { 166936, true }, + { 166951, true }, + { 166966, false }, + { 166978, true }, + { 166995, false }, + { 167012, false }, + { 167027, true }, + { 167040, true }, + { 167061, false }, + { 167073, false }, + { 167090, true }, + { 167107, true }, + { 167124, true }, + { 167137, true }, + { 167153, true }, + { 167169, true }, + { 167182, true }, + { 167200, true }, + { 167210, true }, + { 167221, true }, + { 167237, true }, + { 167247, true }, + { 167266, true }, + { 167279, true }, + { 167293, true }, + { 167308, true }, + { 167319, true }, + { 167339, true }, + { 167352, true }, + { 167365, true }, + { 167377, true }, + { 167396, true }, + { 167409, true }, + { 167420, true }, + { 167431, true }, + { 167451, true }, + { 167461, true }, + { 167471, true }, + { 167493, true }, + { 167513, true }, + { 167531, true }, { 167544, true }, - { 167557, true }, - { 167575, true }, - { 167585, true }, - { 167596, true }, - { 167612, true }, - { 167622, true }, - { 167641, true }, - { 167654, true }, - { 167668, true }, - { 167683, true }, - { 167694, true }, - { 167714, true }, - { 167727, true }, - { 167740, true }, - { 167752, true }, - { 167771, true }, - { 167784, true }, - { 167795, true }, - { 167806, true }, - { 167826, true }, + { 167553, true }, + { 167564, true }, + { 167579, true }, + { 167595, true }, + { 167611, true }, + { 167633, true }, + { 167649, true }, + { 167665, true }, + { 167680, true }, + { 167693, true }, + { 167712, true }, + { 167722, true }, + { 167736, true }, + { 167747, true }, + { 167765, true }, + { 167782, true }, + { 167794, true }, + { 167807, true }, + { 167824, true }, { 167836, true }, - { 167846, true }, - { 167868, true }, - { 167888, true }, - { 167906, true }, + { 167853, true }, + { 167862, true }, + { 167882, true }, + { 167902, true }, { 167919, true }, - { 167928, true }, - { 167939, true }, - { 167954, true }, - { 167970, true }, - { 167986, true }, - { 168008, true }, - { 168024, true }, - { 168040, true }, - { 168055, true }, - { 168068, true }, - { 168087, true }, - { 168097, true }, - { 168111, true }, - { 168122, true }, - { 168140, true }, - { 168157, true }, - { 168169, true }, - { 168182, true }, + { 167929, true }, + { 167946, true }, + { 167958, true }, + { 167975, true }, + { 167990, true }, + { 168009, true }, + { 168026, true }, + { 168043, true }, + { 168060, true }, + { 168071, true }, + { 168083, true }, + { 168095, true }, + { 168105, true }, + { 168114, true }, + { 168127, true }, + { 168142, true }, + { 168152, true }, + { 168164, true }, + { 168178, false }, + { 168187, true }, { 168199, true }, - { 168211, true }, - { 168228, true }, - { 168237, true }, - { 168257, true }, - { 168277, true }, - { 168294, true }, - { 168304, true }, + { 168210, true }, + { 168227, true }, + { 168240, true }, + { 168250, true }, + { 168260, true }, + { 168271, true }, + { 168280, true }, + { 168292, false }, + { 168305, true }, { 168321, true }, - { 168333, true }, - { 168350, true }, - { 168365, true }, - { 168384, true }, - { 168401, true }, - { 168418, true }, - { 168435, true }, - { 168446, true }, - { 168458, true }, - { 168470, true }, - { 168480, true }, - { 168489, true }, - { 168502, true }, - { 168517, true }, - { 168527, true }, - { 168539, true }, - { 168553, false }, - { 168562, true }, - { 168574, true }, - { 168585, true }, - { 168602, true }, - { 168615, true }, - { 168625, true }, - { 168635, true }, - { 168646, true }, - { 168655, true }, - { 168667, false }, - { 168680, true }, - { 168696, true }, - { 168707, true }, - { 168721, false }, - { 168732, true }, - { 168755, true }, - { 168763, true }, - { 168773, true }, - { 168785, true }, - { 168798, true }, + { 168332, true }, + { 168346, false }, + { 168357, true }, + { 168380, true }, + { 168388, true }, + { 168398, true }, + { 168410, true }, + { 168423, true }, + { 168431, true }, + { 168439, true }, + { 168454, true }, + { 168464, true }, + { 168477, true }, + { 168486, true }, + { 168501, true }, + { 168510, true }, + { 168519, true }, + { 168538, true }, + { 168553, true }, + { 168575, true }, + { 168591, true }, + { 168607, true }, + { 168620, true }, + { 168631, true }, + { 168643, true }, + { 168657, true }, + { 168668, true }, + { 168685, true }, + { 168698, true }, + { 168714, true }, + { 168735, true }, + { 168752, true }, + { 168768, true }, + { 168781, true }, + { 168792, true }, { 168806, true }, - { 168814, true }, - { 168829, true }, - { 168839, true }, - { 168852, true }, - { 168861, true }, - { 168876, true }, - { 168885, true }, - { 168894, true }, - { 168913, true }, - { 168928, true }, - { 168950, true }, - { 168966, false }, - { 168978, true }, - { 168994, true }, - { 169007, true }, - { 169018, true }, - { 169030, true }, - { 169044, true }, - { 169055, true }, - { 169072, true }, - { 169085, true }, - { 169101, true }, - { 169122, true }, - { 169139, true }, - { 169155, true }, - { 169168, true }, - { 169179, true }, - { 169193, true }, - { 169217, true }, - { 169240, true }, - { 169262, false }, - { 169275, true }, - { 169289, true }, - { 169303, false }, - { 169324, true }, - { 169334, true }, - { 169346, true }, - { 169372, true }, - { 169385, true }, - { 169399, true }, - { 169416, true }, - { 169435, true }, - { 169452, true }, + { 168830, true }, + { 168853, true }, + { 168875, false }, + { 168888, true }, + { 168902, true }, + { 168916, false }, + { 168937, true }, + { 168947, true }, + { 168959, true }, + { 168985, true }, + { 168998, true }, + { 169012, true }, + { 169029, true }, + { 169048, true }, + { 169065, true }, + { 169083, true }, + { 169104, true }, + { 169118, true }, + { 169140, true }, + { 169159, true }, + { 169171, true }, + { 169195, true }, + { 169205, true }, + { 169218, true }, + { 169233, true }, + { 169250, true }, + { 169266, true }, + { 169284, true }, + { 169301, true }, + { 169316, true }, + { 169332, true }, + { 169359, true }, + { 169373, true }, + { 169389, true }, + { 169404, true }, + { 169417, true }, + { 169426, true }, + { 169442, true }, + { 169457, true }, { 169470, true }, - { 169491, true }, - { 169505, true }, - { 169527, true }, - { 169546, true }, - { 169558, true }, - { 169582, true }, - { 169592, true }, - { 169605, true }, - { 169620, true }, - { 169637, true }, - { 169653, true }, - { 169671, true }, - { 169688, true }, - { 169703, true }, - { 169719, true }, - { 169746, true }, - { 169760, true }, - { 169776, true }, - { 169791, true }, - { 169804, true }, - { 169813, true }, + { 169481, true }, + { 169493, true }, + { 169510, true }, + { 169521, true }, + { 169544, true }, + { 169554, true }, + { 169568, true }, + { 169577, true }, + { 169584, true }, + { 169598, false }, + { 169618, true }, + { 169629, true }, + { 169643, true }, + { 169656, false }, + { 169670, true }, + { 169678, true }, + { 169689, true }, + { 169707, true }, + { 169717, true }, + { 169727, true }, + { 169738, true }, + { 169763, true }, + { 169777, true }, + { 169788, true }, + { 169799, true }, + { 169814, true }, { 169829, true }, - { 169844, true }, - { 169857, true }, - { 169868, true }, - { 169880, true }, - { 169897, true }, - { 169908, true }, - { 169931, true }, - { 169941, true }, - { 169955, true }, - { 169964, true }, - { 169971, true }, - { 169985, false }, + { 169845, false }, + { 169856, true }, + { 169871, true }, + { 169886, false }, + { 169905, true }, + { 169916, true }, + { 169926, true }, + { 169946, true }, + { 169960, true }, + { 169974, true }, + { 169985, true }, + { 169992, true }, { 170005, true }, - { 170016, true }, - { 170030, true }, - { 170043, false }, - { 170057, true }, - { 170065, true }, - { 170076, true }, - { 170094, true }, - { 170104, true }, - { 170114, true }, - { 170125, true }, + { 170018, false }, + { 170028, true }, + { 170037, true }, + { 170047, true }, + { 170058, true }, + { 170070, true }, + { 170078, true }, + { 170088, true }, + { 170105, true }, + { 170122, false }, + { 170131, true }, { 170150, true }, - { 170164, true }, - { 170175, true }, - { 170186, true }, - { 170201, true }, - { 170216, true }, - { 170232, false }, - { 170243, true }, - { 170258, true }, - { 170273, false }, - { 170292, true }, - { 170303, true }, - { 170313, true }, - { 170333, true }, - { 170347, true }, - { 170361, true }, + { 170161, true }, + { 170180, false }, + { 170191, true }, + { 170208, true }, + { 170225, true }, + { 170238, true }, + { 170254, true }, + { 170265, true }, + { 170276, true }, + { 170293, true }, + { 170310, false }, + { 170318, true }, + { 170327, false }, + { 170340, true }, + { 170351, true }, + { 170358, true }, { 170372, true }, - { 170379, true }, - { 170392, true }, - { 170405, false }, - { 170415, true }, - { 170424, true }, + { 170386, true }, + { 170406, false }, + { 170418, false }, { 170434, true }, - { 170445, true }, - { 170457, true }, + { 170446, true }, { 170465, true }, - { 170475, true }, - { 170492, true }, - { 170509, false }, - { 170518, true }, - { 170537, true }, - { 170548, true }, - { 170567, false }, - { 170578, true }, - { 170595, true }, - { 170612, true }, + { 170489, true }, + { 170497, true }, + { 170514, true }, + { 170530, true }, + { 170546, true }, + { 170555, true }, + { 170567, true }, + { 170580, true }, + { 170594, true }, + { 170610, false }, { 170625, true }, - { 170641, true }, - { 170652, true }, - { 170663, true }, + { 170645, true }, + { 170653, true }, + { 170667, true }, { 170680, true }, - { 170697, false }, - { 170705, true }, - { 170714, false }, - { 170727, true }, - { 170738, true }, - { 170745, true }, - { 170759, true }, - { 170773, true }, - { 170793, false }, - { 170805, false }, - { 170821, true }, + { 170691, true }, + { 170701, false }, + { 170711, true }, + { 170725, true }, + { 170737, true }, + { 170747, false }, + { 170760, true }, + { 170776, true }, + { 170798, true }, + { 170815, true }, + { 170824, true }, { 170833, true }, - { 170852, true }, - { 170876, true }, - { 170884, true }, - { 170901, true }, - { 170917, true }, - { 170933, true }, - { 170942, true }, - { 170954, true }, - { 170967, true }, - { 170981, true }, - { 170997, false }, - { 171012, true }, - { 171032, true }, + { 170848, true }, + { 170862, true }, + { 170872, true }, + { 170882, true }, + { 170903, true }, + { 170918, true }, + { 170932, true }, + { 170952, true }, + { 170968, true }, + { 170980, false }, + { 170996, true }, + { 171011, true }, + { 171026, true }, { 171040, true }, - { 171054, true }, - { 171067, true }, - { 171078, true }, - { 171088, false }, - { 171098, true }, - { 171112, true }, - { 171124, true }, - { 171134, false }, - { 171147, true }, - { 171163, true }, - { 171185, true }, - { 171202, true }, - { 171211, true }, - { 171220, true }, - { 171235, true }, - { 171249, true }, - { 171259, true }, - { 171269, true }, - { 171290, true }, - { 171305, true }, - { 171319, true }, - { 171339, true }, - { 171355, true }, - { 171367, false }, - { 171383, true }, - { 171398, true }, - { 171413, true }, - { 171427, true }, - { 171440, true }, - { 171451, true }, - { 171461, false }, - { 171480, false }, - { 171492, true }, - { 171508, true }, - { 171536, true }, - { 171568, true }, - { 171583, true }, - { 171595, true }, - { 171604, true }, - { 171618, false }, - { 171631, true }, - { 171649, true }, - { 171657, true }, - { 171671, true }, - { 171685, true }, - { 171697, true }, - { 171718, true }, - { 171733, true }, - { 171749, false }, - { 171757, false }, - { 171769, true }, - { 171778, true }, - { 171788, true }, + { 171053, true }, + { 171064, true }, + { 171074, false }, + { 171093, false }, + { 171105, true }, + { 171121, true }, + { 171149, true }, + { 171181, true }, + { 171196, true }, + { 171208, true }, + { 171217, true }, + { 171231, false }, + { 171244, true }, + { 171262, true }, + { 171270, true }, + { 171284, true }, + { 171298, true }, + { 171310, true }, + { 171331, true }, + { 171346, true }, + { 171362, false }, + { 171370, false }, + { 171382, true }, + { 171391, true }, + { 171401, true }, + { 171412, true }, + { 171424, true }, + { 171437, true }, + { 171453, true }, + { 171463, true }, + { 171474, true }, + { 171485, true }, + { 171497, true }, + { 171507, true }, + { 171516, true }, + { 171535, true }, + { 171563, true }, + { 171579, true }, + { 171590, true }, + { 171605, true }, + { 171618, true }, + { 171634, true }, + { 171651, true }, + { 171664, true }, + { 171682, true }, + { 171700, true }, + { 171714, true }, + { 171726, true }, + { 171741, true }, + { 171761, true }, + { 171780, true }, { 171799, true }, - { 171811, true }, - { 171824, true }, - { 171840, true }, - { 171850, true }, - { 171861, true }, + { 171812, true }, + { 171828, true }, + { 171841, true }, + { 171856, true }, { 171872, true }, - { 171884, true }, - { 171894, true }, - { 171903, true }, + { 171889, true }, + { 171905, true }, { 171922, true }, + { 171935, true }, { 171950, true }, - { 171966, true }, - { 171977, true }, - { 171992, true }, - { 172005, true }, + { 171969, true }, + { 171982, true }, + { 171998, true }, + { 172009, true }, { 172022, true }, - { 172035, true }, - { 172053, true }, - { 172071, true }, + { 172036, true }, + { 172050, false }, + { 172066, true }, { 172085, true }, - { 172097, true }, - { 172112, true }, - { 172132, true }, - { 172151, true }, - { 172170, true }, - { 172183, true }, - { 172199, true }, - { 172212, true }, - { 172227, true }, - { 172243, true }, - { 172260, true }, - { 172276, true }, - { 172293, true }, - { 172306, true }, - { 172321, true }, - { 172340, true }, - { 172353, true }, - { 172369, true }, - { 172380, true }, - { 172393, true }, - { 172407, true }, - { 172421, false }, - { 172437, true }, - { 172456, true }, - { 172476, true }, - { 172496, false }, - { 172512, true }, - { 172528, true }, - { 172543, true }, - { 172558, true }, - { 172579, true }, - { 172597, false }, - { 172616, true }, - { 172627, true }, - { 172643, true }, - { 172657, true }, - { 172670, true }, - { 172683, true }, - { 172699, true }, - { 172710, true }, - { 172719, true }, + { 172105, true }, + { 172125, false }, + { 172141, true }, + { 172157, true }, + { 172172, true }, + { 172187, true }, + { 172208, true }, + { 172226, false }, + { 172245, true }, + { 172256, true }, + { 172272, true }, + { 172286, true }, + { 172299, true }, + { 172312, true }, + { 172325, true }, + { 172341, true }, + { 172352, true }, + { 172361, true }, + { 172371, true }, + { 172382, true }, + { 172394, true }, + { 172408, true }, + { 172417, true }, + { 172430, true }, + { 172449, true }, + { 172466, false }, + { 172481, false }, + { 172497, false }, + { 172509, true }, + { 172529, true }, + { 172542, true }, + { 172562, true }, + { 172584, true }, + { 172607, true }, + { 172625, true }, + { 172641, true }, + { 172654, true }, + { 172666, true }, + { 172680, true }, + { 172689, true }, + { 172703, true }, + { 172711, true }, { 172729, true }, - { 172740, true }, - { 172752, true }, - { 172766, true }, - { 172775, true }, - { 172788, true }, + { 172739, true }, + { 172759, true }, + { 172776, true }, + { 172796, true }, { 172807, true }, - { 172824, false }, - { 172839, false }, - { 172855, false }, - { 172867, true }, - { 172887, true }, - { 172900, true }, - { 172920, true }, - { 172942, true }, - { 172965, true }, - { 172983, true }, - { 172999, true }, - { 173012, true }, - { 173024, true }, - { 173038, true }, - { 173047, true }, - { 173061, true }, - { 173069, true }, - { 173087, true }, - { 173097, true }, - { 173117, true }, - { 173134, true }, - { 173154, true }, - { 173165, true }, - { 173178, true }, - { 173193, true }, - { 173205, true }, - { 173221, true }, - { 173234, true }, - { 173251, true }, - { 173272, true }, - { 173280, true }, - { 173290, true }, - { 173313, true }, - { 173322, true }, - { 173332, true }, - { 173345, true }, - { 173355, true }, - { 173368, true }, - { 173389, true }, - { 173399, true }, - { 173413, true }, - { 173433, true }, - { 173446, true }, - { 173466, false }, - { 173489, true }, - { 173502, true }, - { 173513, true }, - { 173524, true }, - { 173534, true }, + { 172820, true }, + { 172835, true }, + { 172847, true }, + { 172863, true }, + { 172876, true }, + { 172893, true }, + { 172914, true }, + { 172922, true }, + { 172932, true }, + { 172955, true }, + { 172964, true }, + { 172974, true }, + { 172987, true }, + { 172997, true }, + { 173010, true }, + { 173031, false }, + { 173041, true }, + { 173055, true }, + { 173075, true }, + { 173088, true }, + { 173108, false }, + { 173131, true }, + { 173144, true }, + { 173155, true }, + { 173166, true }, + { 173176, true }, + { 173201, true }, + { 173211, true }, + { 173225, true }, + { 173239, false }, + { 173254, true }, + { 173268, true }, + { 173293, true }, + { 173307, true }, + { 173319, true }, + { 173333, true }, + { 173343, false }, + { 173363, true }, + { 173377, true }, + { 173396, true }, + { 173409, true }, + { 173424, true }, + { 173434, true }, + { 173448, true }, + { 173457, true }, + { 173468, true }, + { 173479, true }, + { 173490, true }, + { 173500, false }, + { 173520, true }, + { 173535, true }, + { 173547, true }, { 173559, true }, - { 173569, true }, - { 173583, true }, - { 173597, false }, - { 173612, true }, - { 173626, true }, - { 173651, true }, - { 173665, true }, - { 173677, true }, - { 173691, true }, - { 173701, false }, - { 173721, true }, - { 173735, true }, - { 173754, true }, - { 173767, true }, - { 173782, true }, + { 173578, true }, + { 173598, true }, + { 173608, true }, + { 173622, true }, + { 173639, true }, + { 173654, true }, + { 173662, true }, + { 173683, false }, + { 173701, true }, + { 173713, true }, + { 173729, true }, + { 173744, true }, + { 173755, true }, + { 173777, true }, { 173792, true }, { 173806, true }, - { 173815, true }, - { 173826, true }, - { 173837, true }, - { 173848, true }, - { 173858, false }, - { 173878, true }, - { 173893, true }, - { 173905, true }, - { 173917, true }, - { 173936, true }, - { 173956, true }, - { 173966, true }, - { 173980, true }, - { 173997, true }, - { 174012, true }, - { 174020, true }, - { 174041, false }, - { 174059, true }, - { 174071, true }, - { 174087, true }, - { 174102, true }, - { 174113, true }, - { 174135, true }, - { 174150, true }, - { 174164, true }, - { 174185, true }, - { 174199, true }, - { 174216, true }, - { 174235, true }, - { 174254, true }, - { 174267, true }, - { 174287, true }, + { 173827, true }, + { 173841, true }, + { 173858, true }, + { 173877, true }, + { 173896, true }, + { 173909, true }, + { 173929, true }, + { 173945, true }, + { 173971, true }, + { 173992, true }, + { 174010, true }, + { 174029, true }, + { 174053, true }, + { 174069, true }, + { 174094, true }, + { 174120, true }, + { 174131, true }, + { 174155, true }, + { 174181, true }, + { 174203, true }, + { 174224, true }, + { 174241, true }, + { 174259, true }, + { 174269, true }, + { 174285, false }, { 174303, true }, - { 174329, true }, - { 174350, true }, - { 174368, true }, - { 174387, true }, - { 174411, true }, - { 174427, true }, - { 174452, true }, - { 174478, true }, + { 174318, false }, + { 174337, true }, + { 174359, true }, + { 174382, true }, + { 174401, true }, + { 174419, true }, + { 174442, true }, + { 174455, true }, + { 174471, true }, { 174489, true }, - { 174513, true }, - { 174539, true }, - { 174561, true }, - { 174582, true }, - { 174599, true }, - { 174617, true }, - { 174627, true }, - { 174643, false }, - { 174661, true }, - { 174676, false }, - { 174695, true }, - { 174717, true }, - { 174740, true }, - { 174759, true }, - { 174777, true }, - { 174800, true }, - { 174813, true }, - { 174829, true }, - { 174847, true }, - { 174863, true }, - { 174877, true }, - { 174895, true }, - { 174910, true }, + { 174505, true }, + { 174519, true }, + { 174537, true }, + { 174552, true }, + { 174569, true }, + { 174583, true }, + { 174597, false }, + { 174614, true }, + { 174632, true }, + { 174648, true }, + { 174664, true }, + { 174677, true }, + { 174697, true }, + { 174715, true }, + { 174734, true }, + { 174747, true }, + { 174783, true }, + { 174806, true }, + { 174821, true }, + { 174837, true }, + { 174848, true }, + { 174866, true }, + { 174896, true }, + { 174912, true }, { 174927, true }, - { 174941, true }, - { 174955, false }, - { 174972, true }, - { 174990, true }, - { 175006, true }, - { 175022, true }, - { 175035, true }, - { 175055, true }, - { 175073, true }, - { 175092, true }, - { 175105, true }, - { 175141, true }, - { 175164, true }, - { 175179, true }, - { 175195, true }, - { 175206, true }, - { 175224, true }, - { 175254, true }, - { 175270, true }, - { 175285, true }, - { 175300, true }, - { 175311, true }, - { 175325, true }, - { 175347, true }, - { 175362, true }, - { 175375, true }, - { 175398, true }, - { 175407, true }, - { 175429, true }, + { 174942, true }, + { 174953, true }, + { 174967, true }, + { 174989, true }, + { 175004, true }, + { 175027, true }, + { 175036, true }, + { 175058, true }, + { 175077, true }, + { 175101, true }, + { 175127, true }, + { 175138, true }, + { 175155, true }, + { 175168, true }, + { 175184, true }, + { 175203, true }, + { 175227, true }, + { 175240, true }, + { 175257, true }, + { 175268, true }, + { 175283, true }, + { 175305, true }, + { 175324, true }, + { 175341, false }, + { 175356, true }, + { 175374, true }, + { 175396, true }, + { 175412, true }, + { 175424, true }, + { 175436, true }, { 175448, true }, - { 175472, true }, - { 175498, true }, - { 175509, true }, - { 175526, true }, - { 175539, true }, - { 175555, true }, - { 175574, true }, - { 175598, true }, - { 175611, true }, - { 175628, true }, - { 175639, true }, - { 175654, true }, - { 175676, true }, - { 175695, true }, - { 175712, false }, - { 175727, true }, - { 175745, true }, - { 175767, true }, - { 175783, true }, - { 175795, true }, - { 175807, true }, - { 175819, true }, - { 175835, true }, - { 175854, true }, - { 175870, true }, - { 175889, true }, - { 175919, false }, - { 175933, true }, + { 175464, true }, + { 175483, true }, + { 175499, true }, + { 175518, true }, + { 175548, false }, + { 175562, true }, + { 175579, true }, + { 175600, true }, + { 175620, true }, + { 175634, true }, + { 175652, true }, + { 175668, true }, + { 175678, true }, + { 175689, true }, + { 175701, true }, + { 175720, true }, + { 175736, true }, + { 175750, true }, + { 175763, true }, + { 175779, true }, + { 175790, true }, + { 175811, true }, + { 175839, true }, + { 175855, true }, + { 175868, true }, + { 175893, true }, + { 175910, false }, + { 175925, true }, { 175950, true }, - { 175971, true }, - { 175991, true }, - { 176005, true }, - { 176023, true }, - { 176039, true }, - { 176049, true }, - { 176060, true }, - { 176072, true }, - { 176091, true }, - { 176107, true }, - { 176127, true }, - { 176141, true }, - { 176154, true }, - { 176170, true }, - { 176181, true }, - { 176202, true }, - { 176230, true }, - { 176246, true }, - { 176259, true }, - { 176284, true }, - { 176301, false }, - { 176316, true }, - { 176341, true }, - { 176350, true }, - { 176360, true }, - { 176372, true }, - { 176391, true }, - { 176408, true }, - { 176425, true }, - { 176441, false }, - { 176459, false }, - { 176479, true }, - { 176496, true }, - { 176509, true }, - { 176529, true }, - { 176553, true }, - { 176571, true }, + { 175959, true }, + { 175969, true }, + { 175981, true }, + { 176000, true }, + { 176017, true }, + { 176034, true }, + { 176050, false }, + { 176068, false }, + { 176088, true }, + { 176105, true }, + { 176118, true }, + { 176138, true }, + { 176162, true }, + { 176180, true }, + { 176201, true }, + { 176216, true }, + { 176231, true }, + { 176243, true }, + { 176268, true }, + { 176281, true }, + { 176303, true }, + { 176313, true }, + { 176330, true }, + { 176343, true }, + { 176357, true }, + { 176390, true }, + { 176405, true }, + { 176419, true }, + { 176428, true }, + { 176442, true }, + { 176452, true }, + { 176463, false }, + { 176477, true }, + { 176486, true }, + { 176497, true }, + { 176508, true }, + { 176526, true }, + { 176541, true }, + { 176554, true }, + { 176564, true }, + { 176579, true }, { 176592, true }, - { 176607, true }, - { 176622, true }, - { 176634, true }, - { 176659, true }, - { 176672, true }, - { 176694, true }, - { 176704, true }, - { 176721, true }, - { 176734, true }, - { 176748, true }, - { 176781, true }, - { 176796, true }, - { 176810, true }, - { 176819, true }, - { 176833, true }, - { 176843, true }, - { 176854, false }, - { 176868, true }, - { 176877, true }, - { 176888, true }, - { 176899, true }, - { 176917, true }, - { 176932, true }, - { 176945, true }, - { 176955, true }, - { 176970, true }, - { 176989, true }, - { 177009, true }, - { 177024, true }, - { 177031, true }, - { 177047, true }, - { 177065, true }, - { 177086, true }, - { 177098, true }, + { 176611, true }, + { 176631, true }, + { 176646, true }, + { 176653, true }, + { 176669, true }, + { 176687, true }, + { 176708, true }, + { 176720, true }, + { 176750, true }, + { 176763, true }, + { 176773, true }, + { 176785, true }, + { 176799, true }, + { 176813, true }, + { 176824, true }, + { 176838, true }, + { 176857, true }, + { 176872, true }, + { 176884, true }, + { 176895, true }, + { 176910, true }, + { 176922, true }, + { 176938, true }, + { 176953, true }, + { 176969, true }, + { 176978, true }, + { 176992, true }, + { 177003, false }, + { 177018, true }, + { 177032, true }, + { 177048, true }, + { 177061, true }, + { 177081, true }, + { 177094, false }, + { 177114, true }, { 177128, true }, - { 177141, true }, - { 177151, true }, - { 177163, true }, - { 177177, true }, - { 177191, true }, - { 177202, true }, - { 177216, true }, - { 177235, true }, - { 177250, true }, - { 177262, true }, - { 177273, true }, - { 177288, true }, - { 177300, true }, - { 177316, true }, - { 177331, true }, - { 177347, true }, - { 177356, true }, - { 177370, true }, - { 177381, false }, - { 177396, true }, - { 177410, true }, - { 177426, true }, - { 177439, true }, - { 177459, true }, - { 177472, false }, - { 177492, true }, - { 177506, true }, - { 177517, true }, - { 177534, true }, - { 177548, true }, - { 177560, true }, - { 177574, true }, - { 177586, true }, - { 177598, true }, + { 177139, true }, + { 177156, true }, + { 177170, true }, + { 177182, true }, + { 177196, true }, + { 177208, true }, + { 177220, true }, + { 177232, true }, + { 177244, true }, + { 177254, true }, + { 177267, true }, + { 177284, true }, + { 177311, true }, + { 177324, true }, + { 177342, true }, + { 177350, true }, + { 177362, true }, + { 177375, true }, + { 177402, true }, + { 177420, true }, + { 177427, true }, + { 177435, true }, + { 177445, true }, + { 177454, true }, + { 177463, true }, + { 177471, true }, + { 177484, true }, + { 177493, true }, + { 177505, true }, + { 177512, true }, + { 177528, true }, + { 177545, true }, + { 177552, true }, + { 177566, true }, + { 177583, true }, + { 177595, true }, + { 177603, true }, { 177610, true }, - { 177622, true }, - { 177632, true }, - { 177645, true }, - { 177662, true }, - { 177689, true }, - { 177702, true }, - { 177720, true }, - { 177728, true }, - { 177740, true }, - { 177753, true }, - { 177780, true }, - { 177798, true }, - { 177805, true }, - { 177813, true }, - { 177823, true }, - { 177832, true }, - { 177841, true }, - { 177849, true }, - { 177862, true }, - { 177871, true }, - { 177883, true }, - { 177890, true }, - { 177906, true }, - { 177923, true }, - { 177930, true }, - { 177944, true }, - { 177961, true }, - { 177973, true }, - { 177981, true }, - { 177988, true }, - { 177997, true }, - { 178006, true }, - { 178020, true }, - { 178036, true }, - { 178052, true }, - { 178071, true }, - { 178089, true }, - { 178104, true }, - { 178122, true }, - { 178132, true }, - { 178144, true }, - { 178163, true }, - { 178178, true }, - { 178193, true }, - { 178205, true }, - { 178213, false }, - { 178238, true }, - { 178248, true }, - { 178263, true }, - { 178275, true }, - { 178289, true }, - { 178298, false }, + { 177619, true }, + { 177628, true }, + { 177642, true }, + { 177658, true }, + { 177674, true }, + { 177693, true }, + { 177711, true }, + { 177726, true }, + { 177744, true }, + { 177754, true }, + { 177766, true }, + { 177785, true }, + { 177800, true }, + { 177815, true }, + { 177827, true }, + { 177835, false }, + { 177860, true }, + { 177870, true }, + { 177885, true }, + { 177897, true }, + { 177911, true }, + { 177920, false }, + { 177932, true }, + { 177945, false }, + { 177978, true }, + { 177993, true }, + { 178016, true }, + { 178029, true }, + { 178040, true }, + { 178054, true }, + { 178074, true }, + { 178087, true }, + { 178101, true }, + { 178119, true }, + { 178133, true }, + { 178145, true }, + { 178160, true }, + { 178182, true }, + { 178192, true }, + { 178204, true }, + { 178220, true }, + { 178230, true }, + { 178243, true }, + { 178258, true }, + { 178267, true }, + { 178275, false }, + { 178283, true }, + { 178294, true }, { 178310, true }, - { 178323, false }, - { 178356, true }, - { 178371, true }, + { 178321, true }, + { 178334, true }, + { 178346, false }, + { 178360, true }, + { 178373, true }, + { 178384, true }, { 178394, true }, - { 178407, true }, - { 178418, true }, - { 178432, true }, + { 178408, true }, + { 178427, true }, + { 178438, true }, { 178452, true }, - { 178465, true }, - { 178479, true }, - { 178497, true }, - { 178511, true }, - { 178523, true }, - { 178538, true }, - { 178560, true }, - { 178570, true }, - { 178582, true }, - { 178598, true }, - { 178608, true }, - { 178621, true }, - { 178636, true }, - { 178645, true }, - { 178653, false }, - { 178661, true }, - { 178672, true }, - { 178688, true }, - { 178699, true }, - { 178712, true }, - { 178724, false }, - { 178738, true }, - { 178751, true }, - { 178762, true }, - { 178772, true }, - { 178786, true }, - { 178805, true }, - { 178816, true }, - { 178830, true }, - { 178841, true }, - { 178852, true }, - { 178863, true }, - { 178874, true }, - { 178885, true }, - { 178899, true }, - { 178911, true }, - { 178926, true }, - { 178940, true }, - { 178955, true }, - { 178968, true }, - { 178984, true }, - { 178993, true }, - { 179002, true }, - { 179016, true }, - { 179027, true }, - { 179038, false }, - { 179054, true }, - { 179065, true }, - { 179076, true }, - { 179092, false }, - { 179106, true }, - { 179115, true }, - { 179128, true }, - { 179138, true }, - { 179152, true }, - { 179162, true }, - { 179175, true }, + { 178463, true }, + { 178474, true }, + { 178485, true }, + { 178496, true }, + { 178507, true }, + { 178521, true }, + { 178533, true }, + { 178548, true }, + { 178562, true }, + { 178577, true }, + { 178590, true }, + { 178606, true }, + { 178615, true }, + { 178624, true }, + { 178638, true }, + { 178649, true }, + { 178660, false }, + { 178676, true }, + { 178687, true }, + { 178698, true }, + { 178714, false }, + { 178728, true }, + { 178737, true }, + { 178750, true }, + { 178760, true }, + { 178774, true }, + { 178784, true }, + { 178797, true }, + { 178811, true }, + { 178825, true }, + { 178846, true }, + { 178860, true }, + { 178872, true }, + { 178887, false }, + { 178906, true }, + { 178916, true }, + { 178928, true }, + { 178947, true }, + { 178956, false }, + { 178971, true }, + { 178987, false }, + { 178999, true }, + { 179025, true }, + { 179036, true }, + { 179057, true }, + { 179072, true }, + { 179090, true }, + { 179107, true }, + { 179122, true }, + { 179142, true }, + { 179153, true }, + { 179165, true }, + { 179176, true }, { 179189, true }, - { 179203, true }, - { 179224, true }, - { 179238, true }, - { 179250, true }, - { 179265, false }, - { 179284, true }, - { 179294, true }, - { 179306, true }, - { 179325, true }, - { 179334, false }, - { 179349, true }, - { 179365, false }, - { 179377, true }, - { 179403, true }, - { 179414, true }, - { 179435, true }, - { 179450, true }, - { 179468, true }, - { 179485, true }, - { 179500, true }, - { 179520, true }, - { 179531, true }, + { 179207, true }, + { 179227, true }, + { 179246, true }, + { 179265, true }, + { 179286, true }, + { 179295, true }, + { 179319, false }, + { 179338, true }, + { 179352, true }, + { 179370, true }, + { 179387, true }, + { 179407, true }, + { 179421, true }, + { 179431, true }, + { 179444, true }, + { 179465, true }, + { 179477, true }, + { 179488, true }, + { 179503, true }, + { 179524, true }, { 179543, true }, - { 179554, true }, - { 179567, true }, - { 179585, true }, - { 179605, true }, - { 179624, true }, - { 179643, true }, - { 179664, true }, - { 179673, true }, - { 179697, false }, - { 179716, true }, - { 179730, true }, - { 179748, true }, - { 179765, true }, - { 179785, true }, - { 179799, true }, - { 179809, true }, - { 179822, true }, + { 179572, true }, + { 179579, true }, + { 179591, true }, + { 179606, true }, + { 179622, true }, + { 179639, true }, + { 179661, true }, + { 179671, true }, + { 179683, true }, + { 179695, true }, + { 179712, false }, + { 179725, false }, + { 179745, true }, + { 179755, true }, + { 179767, true }, + { 179784, true }, + { 179800, true }, + { 179815, true }, + { 179828, true }, { 179843, true }, - { 179855, true }, - { 179866, true }, - { 179881, true }, + { 179856, true }, + { 179872, true }, + { 179890, true }, { 179902, true }, - { 179921, true }, - { 179950, true }, - { 179957, true }, - { 179969, true }, - { 179984, true }, + { 179916, true }, + { 179929, true }, + { 179940, true }, + { 179959, true }, + { 179978, true }, + { 179988, true }, { 180000, true }, - { 180017, true }, - { 180039, true }, - { 180049, true }, - { 180061, true }, - { 180073, true }, - { 180090, false }, - { 180103, false }, + { 180020, true }, + { 180033, true }, + { 180046, true }, + { 180059, true }, + { 180072, true }, + { 180085, true }, + { 180100, true }, + { 180110, true }, { 180123, true }, - { 180133, true }, - { 180145, true }, - { 180162, true }, + { 180141, true }, + { 180159, true }, { 180178, true }, - { 180193, true }, - { 180206, true }, - { 180221, true }, - { 180234, true }, - { 180250, true }, - { 180268, true }, - { 180280, true }, - { 180294, true }, - { 180307, true }, - { 180318, true }, - { 180337, true }, - { 180356, true }, - { 180366, true }, - { 180378, true }, - { 180398, true }, - { 180411, true }, - { 180424, true }, - { 180437, true }, - { 180450, true }, - { 180463, true }, - { 180475, true }, - { 180490, true }, - { 180500, true }, - { 180513, true }, - { 180531, true }, - { 180549, true }, - { 180568, true }, - { 180581, true }, - { 180599, true }, - { 180621, true }, - { 180634, true }, - { 180651, true }, - { 180671, true }, - { 180687, true }, - { 180715, true }, - { 180740, true }, - { 180772, true }, - { 180791, true }, - { 180806, true }, - { 180826, true }, - { 180839, true }, - { 180855, true }, - { 180872, true }, - { 180889, true }, - { 180901, true }, - { 180914, true }, - { 180927, true }, - { 180949, true }, - { 180967, true }, - { 180981, true }, - { 181002, true }, + { 180191, true }, + { 180209, true }, + { 180231, true }, + { 180244, true }, + { 180261, true }, + { 180281, true }, + { 180297, true }, + { 180325, true }, + { 180350, true }, + { 180382, true }, + { 180401, true }, + { 180416, true }, + { 180436, true }, + { 180449, true }, + { 180465, true }, + { 180482, true }, + { 180499, true }, + { 180511, true }, + { 180524, true }, + { 180537, true }, + { 180559, true }, + { 180577, true }, + { 180591, true }, + { 180612, true }, + { 180624, true }, + { 180639, true }, + { 180656, true }, + { 180668, true }, + { 180683, true }, + { 180694, true }, + { 180708, true }, + { 180727, true }, + { 180744, true }, + { 180754, true }, + { 180766, true }, + { 180786, true }, + { 180800, true }, + { 180810, true }, + { 180823, true }, + { 180842, true }, + { 180856, true }, + { 180870, true }, + { 180884, true }, + { 180894, true }, + { 180906, true }, + { 180924, false }, + { 180932, true }, + { 180948, true }, + { 180960, true }, + { 180972, true }, + { 180983, true }, + { 180995, true }, + { 181004, true }, { 181014, true }, - { 181029, true }, - { 181046, true }, - { 181058, true }, - { 181073, true }, - { 181084, true }, - { 181098, true }, - { 181117, true }, - { 181134, true }, - { 181144, true }, - { 181156, true }, - { 181176, true }, - { 181190, true }, - { 181200, true }, - { 181213, true }, - { 181232, true }, - { 181246, true }, - { 181260, true }, - { 181274, true }, - { 181284, true }, - { 181296, true }, - { 181314, false }, - { 181322, true }, - { 181338, true }, - { 181350, true }, - { 181362, true }, - { 181373, true }, - { 181385, true }, - { 181394, true }, - { 181404, true }, - { 181418, true }, - { 181432, true }, - { 181446, true }, - { 181457, true }, - { 181465, true }, - { 181481, true }, - { 181499, true }, - { 181519, true }, - { 181540, true }, - { 181551, true }, - { 181566, false }, - { 181584, false }, - { 181605, true }, - { 181614, true }, - { 181637, true }, - { 181660, true }, - { 181677, true }, - { 181689, true }, - { 181710, true }, - { 181727, true }, - { 181747, true }, - { 181760, true }, - { 181773, true }, - { 181787, true }, + { 181028, true }, + { 181042, true }, + { 181056, true }, + { 181067, true }, + { 181075, true }, + { 181091, true }, + { 181109, true }, + { 181129, true }, + { 181150, true }, + { 181161, true }, + { 181176, false }, + { 181194, false }, + { 181215, true }, + { 181224, true }, + { 181247, true }, + { 181270, true }, + { 181287, true }, + { 181299, true }, + { 181320, true }, + { 181337, true }, + { 181357, true }, + { 181370, true }, + { 181383, true }, + { 181397, true }, + { 181419, true }, + { 181434, true }, + { 181451, true }, + { 181468, true }, + { 181488, true }, + { 181513, true }, + { 181538, true }, + { 181564, true }, + { 181580, true }, + { 181595, true }, + { 181604, true }, + { 181615, true }, + { 181624, true }, + { 181646, true }, + { 181658, true }, + { 181666, true }, + { 181680, true }, + { 181688, true }, + { 181698, true }, + { 181705, true }, + { 181715, true }, + { 181722, true }, + { 181734, true }, + { 181744, true }, + { 181757, true }, + { 181767, true }, + { 181778, true }, + { 181789, true }, + { 181797, true }, { 181809, true }, - { 181824, true }, - { 181841, true }, - { 181858, true }, - { 181878, true }, + { 181820, true }, + { 181834, true }, + { 181847, true }, + { 181873, false }, + { 181887, true }, { 181903, true }, - { 181928, true }, - { 181954, true }, - { 181970, true }, - { 181985, true }, - { 181994, true }, - { 182005, true }, - { 182019, true }, - { 182028, true }, - { 182050, true }, - { 182062, true }, + { 181919, true }, + { 181932, true }, + { 181944, true }, + { 181965, true }, + { 181977, true }, + { 181987, true }, + { 182009, true }, + { 182026, true }, + { 182037, false }, + { 182048, true }, + { 182058, true }, { 182070, true }, - { 182084, true }, - { 182092, true }, - { 182102, true }, - { 182109, true }, - { 182119, true }, - { 182126, true }, - { 182138, true }, - { 182148, true }, - { 182161, true }, - { 182171, true }, - { 182182, true }, - { 182193, true }, - { 182201, true }, - { 182213, true }, - { 182224, true }, - { 182238, true }, - { 182251, true }, - { 182277, false }, - { 182291, true }, - { 182307, true }, - { 182323, true }, - { 182336, true }, + { 182079, true }, + { 182093, true }, + { 182104, false }, + { 182117, false }, + { 182137, true }, + { 182147, true }, + { 182155, false }, + { 182164, true }, + { 182177, true }, + { 182223, true }, + { 182270, true }, + { 182283, true }, + { 182296, true }, + { 182319, true }, + { 182335, true }, { 182348, true }, - { 182369, true }, - { 182381, true }, - { 182391, true }, - { 182413, true }, - { 182430, true }, - { 182441, false }, - { 182452, true }, - { 182462, true }, - { 182474, true }, - { 182483, true }, - { 182497, true }, - { 182508, false }, - { 182521, false }, - { 182541, true }, - { 182551, true }, - { 182559, false }, - { 182568, true }, - { 182581, true }, - { 182627, true }, - { 182674, true }, - { 182687, true }, - { 182700, true }, - { 182723, true }, - { 182739, true }, - { 182752, true }, - { 182768, true }, - { 182778, false }, - { 182790, true }, - { 182807, true }, - { 182825, true }, - { 182841, true }, + { 182364, true }, + { 182374, false }, + { 182386, true }, + { 182403, true }, + { 182421, true }, + { 182437, true }, + { 182448, true }, + { 182456, true }, + { 182466, true }, + { 182473, true }, + { 182482, true }, + { 182489, true }, + { 182507, true }, + { 182526, true }, + { 182539, true }, + { 182553, true }, + { 182565, true }, + { 182579, true }, + { 182594, true }, + { 182606, true }, + { 182619, true }, + { 182630, true }, + { 182640, true }, + { 182649, true }, + { 182658, true }, + { 182665, true }, + { 182672, true }, + { 182680, true }, + { 182704, true }, + { 182718, true }, + { 182728, true }, + { 182745, false }, + { 182760, true }, + { 182774, true }, + { 182786, true }, + { 182800, true }, + { 182817, true }, + { 182828, true }, + { 182840, true }, { 182852, true }, - { 182860, true }, - { 182870, true }, - { 182877, true }, - { 182886, true }, + { 182862, true }, + { 182872, true }, + { 182883, true }, { 182893, true }, - { 182902, true }, - { 182920, true }, - { 182936, true }, + { 182912, true }, + { 182924, true }, + { 182940, true }, { 182955, true }, - { 182968, true }, - { 182982, true }, - { 182994, true }, - { 183008, true }, - { 183023, true }, - { 183035, true }, - { 183048, true }, - { 183059, true }, - { 183069, true }, - { 183078, true }, - { 183087, true }, - { 183094, true }, - { 183101, true }, - { 183109, true }, - { 183133, true }, - { 183147, true }, - { 183157, true }, - { 183174, false }, - { 183189, true }, + { 182978, true }, + { 182985, true }, + { 182996, true }, + { 183003, true }, + { 183010, true }, + { 183022, true }, + { 183033, true }, + { 183043, false }, + { 183063, true }, + { 183086, true }, + { 183110, true }, + { 183120, false }, + { 183127, true }, + { 183140, true }, + { 183154, true }, + { 183168, true }, + { 183181, true }, + { 183192, true }, { 183203, true }, - { 183215, true }, + { 183213, true }, { 183229, true }, - { 183246, true }, - { 183257, true }, - { 183269, true }, - { 183279, true }, - { 183289, true }, + { 183250, true }, + { 183260, true }, + { 183271, true }, + { 183286, true }, { 183300, true }, - { 183310, true }, - { 183329, true }, - { 183341, true }, - { 183357, true }, - { 183372, true }, - { 183395, true }, - { 183402, true }, - { 183413, true }, - { 183420, true }, + { 183311, true }, + { 183325, true }, + { 183345, true }, + { 183359, true }, + { 183368, true }, + { 183383, true }, + { 183396, true }, + { 183411, true }, { 183427, true }, - { 183439, true }, - { 183450, true }, - { 183460, false }, - { 183480, true }, - { 183503, true }, - { 183527, true }, - { 183537, false }, - { 183544, true }, - { 183557, true }, - { 183571, true }, - { 183585, true }, - { 183598, true }, - { 183609, true }, + { 183442, true }, + { 183456, true }, + { 183472, true }, + { 183486, true }, + { 183500, true }, + { 183518, true }, + { 183536, true }, + { 183556, true }, + { 183575, true }, + { 183591, true }, + { 183606, true }, { 183620, true }, - { 183630, true }, - { 183646, true }, - { 183667, true }, - { 183677, true }, - { 183688, true }, - { 183703, true }, - { 183717, true }, - { 183728, true }, - { 183742, true }, - { 183762, true }, - { 183776, true }, - { 183785, true }, - { 183796, true }, + { 183640, true }, + { 183656, true }, + { 183671, true }, + { 183685, true }, + { 183716, true }, + { 183727, true }, + { 183737, false }, + { 183761, true }, + { 183775, true }, + { 183787, true }, + { 183801, true }, { 183811, true }, - { 183824, true }, - { 183839, true }, - { 183855, true }, - { 183870, true }, - { 183884, true }, - { 183900, true }, - { 183914, true }, - { 183928, true }, - { 183946, true }, - { 183964, true }, - { 183984, true }, + { 183828, true }, + { 183841, true }, + { 183854, true }, + { 183871, true }, + { 183888, false }, + { 183905, true }, + { 183918, true }, + { 183939, true }, + { 183952, true }, + { 183965, true }, + { 183985, true }, { 184003, true }, - { 184019, true }, - { 184034, true }, - { 184048, true }, - { 184068, true }, + { 184013, true }, + { 184026, true }, + { 184045, true }, + { 184059, true }, + { 184073, false }, { 184084, true }, - { 184099, true }, - { 184113, true }, - { 184144, true }, - { 184155, true }, - { 184165, false }, - { 184189, true }, - { 184203, true }, - { 184215, true }, - { 184229, true }, - { 184239, true }, - { 184256, true }, - { 184269, true }, - { 184282, true }, - { 184299, true }, - { 184316, false }, - { 184333, true }, + { 184101, true }, + { 184124, true }, + { 184152, true }, + { 184168, true }, + { 184180, true }, + { 184194, false }, + { 184207, true }, + { 184219, true }, + { 184235, true }, + { 184248, true }, + { 184264, true }, + { 184274, true }, + { 184289, true }, + { 184297, true }, + { 184312, true }, + { 184329, true }, + { 184336, true }, { 184346, true }, - { 184367, true }, - { 184380, true }, + { 184356, true }, + { 184377, true }, { 184393, true }, - { 184413, true }, - { 184431, true }, - { 184441, true }, - { 184454, true }, - { 184473, true }, + { 184412, true }, + { 184425, true }, + { 184445, true }, + { 184460, true }, + { 184468, true }, { 184487, true }, - { 184501, false }, - { 184512, true }, - { 184529, true }, - { 184552, true }, - { 184580, true }, - { 184596, true }, - { 184608, true }, - { 184622, false }, - { 184635, true }, - { 184647, true }, - { 184663, true }, - { 184676, true }, - { 184692, true }, - { 184702, true }, - { 184717, true }, - { 184725, true }, - { 184740, true }, - { 184757, true }, - { 184764, true }, - { 184774, true }, - { 184784, true }, - { 184805, true }, + { 184503, false }, + { 184511, true }, + { 184526, true }, + { 184534, true }, + { 184545, true }, + { 184558, true }, + { 184569, true }, + { 184584, false }, + { 184604, true }, + { 184619, true }, + { 184634, true }, + { 184644, true }, + { 184656, true }, + { 184680, true }, + { 184693, true }, + { 184706, true }, + { 184718, true }, + { 184731, true }, + { 184745, true }, + { 184761, true }, + { 184780, true }, + { 184800, true }, + { 184811, true }, { 184821, true }, + { 184832, true }, { 184840, true }, { 184853, true }, - { 184873, true }, - { 184888, true }, - { 184896, true }, - { 184915, true }, - { 184931, false }, - { 184939, true }, - { 184954, true }, - { 184962, true }, - { 184973, true }, - { 184986, true }, - { 184997, true }, - { 185012, false }, - { 185032, true }, - { 185047, true }, - { 185062, true }, - { 185072, true }, - { 185084, true }, - { 185108, true }, + { 184867, true }, + { 184877, true }, + { 184895, true }, + { 184922, false }, + { 184931, true }, + { 184944, false }, + { 184967, true }, + { 184989, true }, + { 185000, true }, + { 185013, true }, + { 185028, true }, + { 185035, true }, + { 185042, true }, + { 185053, true }, + { 185069, true }, + { 185082, true }, + { 185094, true }, + { 185104, true }, { 185121, true }, - { 185134, true }, - { 185146, true }, - { 185159, true }, - { 185173, true }, - { 185189, true }, - { 185208, true }, - { 185228, true }, - { 185239, true }, - { 185249, true }, - { 185260, true }, - { 185268, true }, - { 185281, true }, - { 185295, true }, - { 185305, true }, - { 185323, true }, - { 185350, false }, - { 185359, true }, - { 185372, false }, - { 185395, true }, - { 185417, true }, - { 185428, true }, - { 185441, true }, - { 185456, true }, - { 185463, true }, - { 185470, true }, + { 185136, true }, + { 185145, true }, + { 185156, true }, + { 185174, true }, + { 185188, true }, + { 185200, true }, + { 185209, true }, + { 185219, true }, + { 185231, true }, + { 185243, true }, + { 185256, true }, + { 185272, true }, + { 185291, true }, + { 185310, true }, + { 185325, true }, + { 185335, true }, + { 185353, true }, + { 185365, false }, + { 185380, true }, + { 185394, true }, + { 185409, true }, + { 185420, false }, + { 185430, true }, + { 185436, true }, + { 185445, true }, + { 185453, true }, + { 185472, true }, { 185481, true }, - { 185497, true }, - { 185510, true }, - { 185522, true }, - { 185532, true }, - { 185549, true }, - { 185564, true }, - { 185573, true }, - { 185584, true }, - { 185602, true }, - { 185616, true }, - { 185628, true }, - { 185637, true }, - { 185647, true }, - { 185659, true }, - { 185671, true }, - { 185684, true }, - { 185700, true }, - { 185719, true }, - { 185738, true }, - { 185753, true }, - { 185763, true }, - { 185781, true }, - { 185793, false }, - { 185808, true }, - { 185822, true }, - { 185837, true }, - { 185848, false }, - { 185858, true }, - { 185864, true }, - { 185873, true }, - { 185881, true }, - { 185900, true }, - { 185909, true }, - { 185923, true }, - { 185941, true }, - { 185953, true }, - { 185963, true }, - { 185987, true }, - { 186010, true }, - { 186023, true }, + { 185495, true }, + { 185513, true }, + { 185525, true }, + { 185535, true }, + { 185559, true }, + { 185582, true }, + { 185595, true }, + { 185611, true }, + { 185623, true }, + { 185637, false }, + { 185650, true }, + { 185669, true }, + { 185679, true }, + { 185701, true }, + { 185714, true }, + { 185723, true }, + { 185734, true }, + { 185747, true }, + { 185760, true }, + { 185771, true }, + { 185785, true }, + { 185800, true }, + { 185815, true }, + { 185838, false }, + { 185851, true }, + { 185866, true }, + { 185878, true }, + { 185888, true }, + { 185902, true }, + { 185915, true }, + { 185928, false }, + { 185942, true }, + { 185954, true }, + { 185966, true }, + { 185982, true }, + { 186008, true }, + { 186026, false }, { 186039, true }, - { 186051, true }, - { 186065, false }, - { 186078, true }, - { 186097, true }, - { 186107, true }, - { 186129, true }, - { 186142, true }, - { 186151, true }, - { 186162, true }, - { 186175, true }, - { 186188, true }, - { 186199, true }, - { 186213, true }, - { 186228, true }, - { 186243, true }, - { 186266, false }, - { 186279, true }, - { 186294, true }, - { 186306, true }, - { 186316, true }, - { 186330, true }, - { 186343, true }, - { 186356, false }, - { 186370, true }, - { 186382, true }, - { 186394, true }, - { 186410, true }, + { 186057, true }, + { 186067, true }, + { 186077, true }, + { 186088, true }, + { 186103, true }, + { 186115, true }, + { 186131, true }, + { 186139, true }, + { 186149, true }, + { 186159, true }, + { 186169, true }, + { 186179, true }, + { 186190, true }, + { 186210, true }, + { 186218, false }, + { 186239, true }, + { 186252, true }, + { 186261, true }, + { 186275, true }, + { 186285, true }, + { 186298, true }, + { 186307, true }, + { 186323, true }, + { 186334, false }, + { 186354, true }, + { 186364, true }, + { 186374, true }, + { 186389, true }, + { 186403, true }, + { 186420, true }, { 186436, true }, - { 186454, false }, - { 186467, true }, - { 186485, true }, - { 186495, true }, - { 186505, true }, - { 186516, true }, - { 186531, true }, - { 186547, true }, - { 186555, true }, - { 186565, true }, - { 186575, true }, - { 186585, true }, - { 186595, true }, - { 186606, true }, - { 186626, true }, - { 186634, false }, - { 186655, true }, - { 186668, true }, - { 186677, true }, - { 186691, true }, - { 186701, true }, - { 186714, true }, - { 186723, true }, + { 186447, true }, + { 186477, true }, + { 186503, true }, + { 186511, true }, + { 186530, true }, + { 186544, true }, + { 186553, true }, + { 186572, true }, + { 186582, true }, + { 186597, true }, + { 186613, true }, + { 186630, true }, + { 186641, true }, + { 186658, true }, + { 186674, true }, + { 186694, true }, + { 186716, true }, + { 186729, true }, { 186739, true }, - { 186750, false }, - { 186770, true }, - { 186780, true }, - { 186790, true }, - { 186805, true }, - { 186819, true }, - { 186836, true }, - { 186852, true }, + { 186761, true }, + { 186782, true }, + { 186803, true }, + { 186816, true }, + { 186840, true }, + { 186851, true }, { 186863, true }, - { 186893, true }, - { 186919, true }, - { 186927, true }, - { 186946, true }, - { 186960, true }, - { 186969, true }, - { 186988, true }, - { 186998, true }, - { 187013, true }, - { 187029, true }, - { 187046, true }, - { 187057, true }, - { 187074, true }, - { 187090, true }, - { 187110, true }, + { 186875, true }, + { 186885, true }, + { 186903, false }, + { 186920, true }, + { 186952, true }, + { 186963, true }, + { 186973, true }, + { 186986, true }, + { 186995, true }, + { 187008, true }, + { 187019, true }, + { 187030, true }, + { 187040, true }, + { 187047, true }, + { 187059, true }, + { 187072, false }, + { 187084, true }, + { 187094, true }, + { 187115, true }, { 187132, true }, - { 187145, true }, - { 187155, true }, - { 187177, true }, - { 187198, true }, - { 187219, true }, - { 187232, true }, - { 187256, true }, - { 187267, true }, - { 187279, true }, - { 187291, true }, - { 187301, true }, - { 187319, false }, - { 187336, true }, - { 187368, true }, - { 187379, true }, - { 187389, true }, - { 187402, true }, - { 187411, true }, - { 187424, true }, - { 187435, true }, - { 187446, true }, - { 187456, true }, - { 187463, true }, - { 187475, true }, - { 187488, false }, - { 187500, true }, - { 187520, true }, - { 187530, true }, - { 187551, true }, - { 187568, true }, - { 187585, true }, - { 187603, true }, - { 187621, false }, - { 187639, false }, - { 187657, false }, - { 187674, true }, - { 187696, true }, - { 187709, true }, - { 187722, false }, - { 187737, false }, - { 187747, false }, - { 187761, true }, - { 187776, true }, - { 187788, true }, - { 187806, true }, - { 187821, true }, - { 187839, true }, - { 187855, true }, - { 187865, true }, - { 187875, true }, - { 187903, true }, - { 187918, true }, - { 187929, true }, - { 187939, false }, - { 187957, true }, - { 187972, true }, - { 187984, true }, - { 187997, true }, - { 188015, true }, - { 188032, true }, - { 188042, true }, - { 188053, false }, - { 188068, true }, - { 188086, true }, - { 188101, true }, - { 188119, true }, - { 188131, true }, - { 188154, true }, - { 188168, true }, - { 188184, true }, - { 188198, true }, - { 188216, true }, - { 188240, true }, - { 188273, false }, + { 187149, true }, + { 187167, true }, + { 187185, false }, + { 187203, false }, + { 187221, false }, + { 187238, true }, + { 187260, true }, + { 187273, true }, + { 187286, false }, + { 187301, false }, + { 187311, false }, + { 187325, true }, + { 187340, true }, + { 187352, true }, + { 187370, true }, + { 187385, true }, + { 187403, true }, + { 187419, true }, + { 187429, true }, + { 187439, true }, + { 187467, true }, + { 187482, true }, + { 187493, true }, + { 187503, false }, + { 187521, true }, + { 187536, true }, + { 187548, true }, + { 187561, true }, + { 187579, true }, + { 187596, true }, + { 187606, true }, + { 187617, false }, + { 187632, true }, + { 187650, true }, + { 187665, true }, + { 187683, true }, + { 187695, true }, + { 187718, true }, + { 187732, true }, + { 187748, true }, + { 187762, true }, + { 187780, true }, + { 187804, true }, + { 187837, false }, + { 187860, true }, + { 187880, true }, + { 187897, true }, + { 187915, true }, + { 187925, true }, + { 187938, true }, + { 187951, true }, + { 187968, true }, + { 187979, true }, + { 188001, true }, + { 188019, false }, + { 188033, true }, + { 188047, true }, + { 188065, true }, + { 188085, true }, + { 188099, true }, + { 188108, true }, + { 188121, true }, + { 188139, true }, + { 188151, true }, + { 188166, true }, + { 188179, true }, + { 188191, true }, + { 188203, true }, + { 188214, true }, + { 188225, true }, + { 188234, true }, + { 188247, true }, + { 188261, true }, + { 188272, true }, + { 188283, true }, { 188296, true }, - { 188316, true }, - { 188333, true }, - { 188351, true }, - { 188361, true }, - { 188374, true }, - { 188387, true }, - { 188404, true }, - { 188415, true }, - { 188437, true }, - { 188455, false }, - { 188469, true }, - { 188483, true }, - { 188501, true }, - { 188521, true }, - { 188535, true }, - { 188544, true }, - { 188557, true }, - { 188575, true }, - { 188587, true }, - { 188602, true }, - { 188615, true }, - { 188627, true }, + { 188310, false }, + { 188323, true }, + { 188332, true }, + { 188349, true }, + { 188359, true }, + { 188372, true }, + { 188381, true }, + { 188391, true }, + { 188402, true }, + { 188412, true }, + { 188420, true }, + { 188428, false }, + { 188442, false }, + { 188462, true }, + { 188472, true }, + { 188486, true }, + { 188496, true }, + { 188507, true }, + { 188519, true }, + { 188530, true }, + { 188542, true }, + { 188552, true }, + { 188561, true }, + { 188573, true }, + { 188585, true }, + { 188596, true }, + { 188608, true }, + { 188624, true }, { 188639, true }, - { 188650, true }, + { 188651, true }, { 188661, true }, - { 188670, true }, - { 188683, true }, - { 188697, true }, - { 188708, true }, - { 188719, true }, - { 188732, true }, - { 188746, false }, - { 188759, true }, - { 188768, true }, + { 188676, true }, + { 188691, true }, + { 188703, true }, + { 188710, true }, + { 188721, true }, + { 188731, true }, + { 188746, true }, + { 188757, true }, + { 188771, true }, { 188785, true }, - { 188795, true }, - { 188808, true }, - { 188817, true }, - { 188827, true }, - { 188838, true }, - { 188848, true }, - { 188856, true }, - { 188864, false }, - { 188878, false }, - { 188898, true }, - { 188908, true }, - { 188922, true }, - { 188932, true }, - { 188943, true }, - { 188955, true }, - { 188966, true }, - { 188978, true }, - { 188988, true }, - { 188997, true }, - { 189009, true }, - { 189021, true }, - { 189032, true }, - { 189044, true }, - { 189060, true }, - { 189075, true }, - { 189087, true }, - { 189097, true }, - { 189112, true }, - { 189127, true }, - { 189139, true }, - { 189146, true }, - { 189157, true }, - { 189167, true }, - { 189182, true }, - { 189193, true }, - { 189207, true }, + { 188796, true }, + { 188809, true }, + { 188820, false }, + { 188835, true }, + { 188845, true }, + { 188852, true }, + { 188863, true }, + { 188875, true }, + { 188897, true }, + { 188911, true }, + { 188934, true }, + { 188969, true }, + { 189012, false }, + { 189023, true }, + { 189036, true }, + { 189046, true }, + { 189056, true }, + { 189083, true }, + { 189092, true }, + { 189101, true }, + { 189118, true }, + { 189130, true }, + { 189143, true }, + { 189170, true }, + { 189177, true }, + { 189188, true }, + { 189205, true }, { 189221, true }, { 189232, true }, { 189245, true }, - { 189256, false }, - { 189271, true }, - { 189281, true }, - { 189288, true }, - { 189299, true }, - { 189311, true }, - { 189333, true }, - { 189347, true }, - { 189370, true }, + { 189269, true }, + { 189276, true }, + { 189286, true }, + { 189293, true }, + { 189313, true }, + { 189325, true }, + { 189346, true }, + { 189357, true }, + { 189369, true }, + { 189379, true }, + { 189388, true }, + { 189396, true }, { 189405, true }, - { 189448, false }, - { 189459, true }, - { 189472, true }, - { 189482, true }, - { 189492, true }, - { 189519, true }, - { 189528, true }, + { 189414, true }, + { 189433, true }, + { 189453, true }, + { 189467, true }, + { 189488, true }, + { 189501, true }, + { 189513, true }, { 189537, true }, - { 189554, true }, - { 189566, true }, - { 189579, true }, - { 189606, true }, - { 189613, true }, - { 189624, true }, - { 189641, true }, - { 189657, true }, - { 189668, true }, - { 189681, true }, - { 189705, true }, - { 189712, true }, - { 189722, true }, + { 189555, false }, + { 189569, true }, + { 189584, true }, + { 189599, true }, + { 189608, false }, + { 189625, false }, + { 189635, true }, + { 189645, true }, + { 189659, true }, + { 189674, true }, + { 189690, true }, + { 189706, true }, { 189729, true }, - { 189749, true }, - { 189761, true }, - { 189782, true }, - { 189793, true }, - { 189805, true }, - { 189815, true }, - { 189824, true }, - { 189832, true }, - { 189841, true }, - { 189850, true }, - { 189869, true }, - { 189889, true }, - { 189903, true }, - { 189924, true }, - { 189937, true }, - { 189949, true }, - { 189973, true }, - { 189991, false }, - { 190005, true }, - { 190020, true }, - { 190035, true }, - { 190044, false }, - { 190061, false }, - { 190071, true }, - { 190081, true }, - { 190095, true }, + { 189739, true }, + { 189750, true }, + { 189760, true }, + { 189776, true }, + { 189787, true }, + { 189798, true }, + { 189810, true }, + { 189821, true }, + { 189835, true }, + { 189849, true }, + { 189866, true }, + { 189882, true }, + { 189894, false }, + { 189913, true }, + { 189928, true }, + { 189938, true }, + { 189956, true }, + { 189979, true }, + { 189990, true }, + { 190010, true }, + { 190027, true }, + { 190043, true }, + { 190062, true }, + { 190077, true }, + { 190093, true }, { 190110, true }, - { 190126, true }, + { 190130, true }, { 190142, true }, - { 190165, true }, - { 190175, true }, - { 190186, true }, - { 190196, true }, - { 190212, true }, - { 190223, true }, - { 190234, true }, - { 190246, true }, + { 190157, true }, + { 190176, true }, + { 190185, true }, + { 190202, true }, + { 190214, true }, + { 190226, true }, + { 190238, true }, + { 190247, true }, { 190257, true }, - { 190271, true }, - { 190285, true }, - { 190302, true }, - { 190318, true }, - { 190330, false }, - { 190349, true }, - { 190364, true }, - { 190374, true }, - { 190392, true }, - { 190415, true }, - { 190426, true }, - { 190446, true }, - { 190463, true }, - { 190479, true }, - { 190498, true }, - { 190513, true }, - { 190529, true }, - { 190546, true }, - { 190566, true }, - { 190578, true }, - { 190593, true }, - { 190612, true }, + { 190274, true }, + { 190292, true }, + { 190303, true }, + { 190313, true }, + { 190328, true }, + { 190338, true }, + { 190348, false }, + { 190355, true }, + { 190365, true }, + { 190386, true }, + { 190406, true }, + { 190429, true }, + { 190449, true }, + { 190464, true }, + { 190482, true }, + { 190493, false }, + { 190517, true }, + { 190536, true }, + { 190549, true }, + { 190565, false }, + { 190581, true }, + { 190595, true }, + { 190607, false }, { 190621, true }, - { 190638, true }, - { 190650, true }, - { 190662, true }, - { 190674, true }, - { 190683, true }, - { 190693, true }, - { 190710, true }, - { 190728, true }, - { 190739, true }, - { 190749, true }, - { 190764, true }, - { 190774, true }, - { 190784, false }, - { 190791, true }, - { 190801, true }, - { 190822, true }, - { 190842, true }, - { 190865, true }, - { 190885, true }, - { 190900, true }, - { 190918, true }, - { 190929, false }, - { 190953, true }, - { 190972, true }, - { 190985, true }, - { 191001, false }, - { 191017, true }, - { 191031, true }, - { 191043, false }, - { 191057, true }, - { 191075, false }, - { 191088, true }, - { 191102, false }, - { 191118, true }, - { 191136, true }, - { 191159, true }, - { 191172, true }, - { 191184, true }, - { 191195, true }, + { 190639, false }, + { 190652, true }, + { 190666, false }, + { 190682, true }, + { 190700, true }, + { 190723, true }, + { 190736, true }, + { 190748, true }, + { 190759, true }, + { 190770, true }, + { 190785, true }, + { 190810, true }, + { 190843, true }, + { 190869, true }, + { 190903, true }, + { 190926, true }, + { 190939, true }, + { 190955, true }, + { 190967, true }, + { 190979, true }, + { 190995, false }, + { 191015, true }, + { 191028, false }, + { 191046, false }, + { 191069, true }, + { 191089, true }, + { 191105, true }, + { 191119, true }, + { 191140, true }, + { 191155, false }, + { 191168, true }, + { 191182, true }, + { 191194, true }, { 191206, true }, - { 191221, true }, - { 191246, true }, - { 191279, true }, - { 191305, true }, - { 191339, true }, - { 191362, true }, - { 191375, true }, - { 191391, true }, - { 191403, true }, + { 191222, false }, + { 191244, true }, + { 191264, true }, + { 191276, true }, + { 191292, false }, + { 191304, true }, + { 191320, true }, + { 191338, true }, + { 191350, true }, + { 191364, true }, + { 191384, true }, + { 191398, true }, { 191415, true }, - { 191431, false }, - { 191451, true }, - { 191464, false }, - { 191482, false }, - { 191505, true }, - { 191525, true }, - { 191541, true }, - { 191555, true }, - { 191576, true }, - { 191591, false }, - { 191604, true }, - { 191618, true }, - { 191630, true }, - { 191642, true }, - { 191658, false }, + { 191432, true }, + { 191446, true }, + { 191456, false }, + { 191470, true }, + { 191480, true }, + { 191501, true }, + { 191514, true }, + { 191527, true }, + { 191538, true }, + { 191551, true }, + { 191572, true }, + { 191592, true }, + { 191609, true }, + { 191621, true }, + { 191635, true }, + { 191645, true }, + { 191662, true }, + { 191672, true }, { 191680, true }, - { 191700, true }, + { 191696, true }, { 191712, true }, - { 191728, false }, - { 191740, true }, - { 191756, true }, - { 191774, true }, - { 191786, true }, - { 191800, true }, - { 191820, true }, - { 191834, true }, - { 191851, true }, - { 191868, true }, - { 191882, true }, - { 191892, false }, - { 191906, true }, - { 191916, true }, - { 191937, true }, - { 191950, true }, - { 191963, true }, - { 191974, true }, - { 191987, true }, - { 192008, true }, - { 192028, true }, - { 192045, true }, - { 192057, true }, - { 192071, true }, - { 192081, true }, - { 192098, true }, - { 192108, true }, - { 192116, true }, - { 192132, true }, - { 192148, true }, - { 192164, true }, + { 191728, true }, + { 191749, true }, + { 191760, true }, + { 191773, true }, + { 191798, true }, + { 191813, true }, + { 191833, true }, + { 191847, true }, + { 191861, true }, + { 191876, true }, + { 191898, true }, + { 191918, true }, + { 191933, true }, + { 191943, true }, + { 191961, true }, + { 191976, true }, + { 191992, true }, + { 192013, true }, + { 192029, true }, + { 192038, false }, + { 192048, true }, + { 192060, true }, + { 192077, true }, + { 192089, true }, + { 192105, true }, + { 192121, true }, + { 192142, true }, + { 192154, true }, + { 192173, false }, { 192185, true }, - { 192196, true }, - { 192209, true }, - { 192234, true }, - { 192249, true }, - { 192269, true }, - { 192283, true }, - { 192297, true }, - { 192312, true }, - { 192334, true }, - { 192354, true }, - { 192369, true }, - { 192379, true }, - { 192397, true }, - { 192412, true }, - { 192428, true }, - { 192449, true }, + { 192195, true }, + { 192210, true }, + { 192222, true }, + { 192236, true }, + { 192260, true }, + { 192272, true }, + { 192293, true }, + { 192324, true }, + { 192349, true }, + { 192372, true }, + { 192383, true }, + { 192395, true }, + { 192410, true }, + { 192423, true }, + { 192436, true }, { 192465, true }, - { 192474, false }, - { 192484, true }, - { 192496, true }, - { 192513, true }, - { 192525, true }, - { 192541, true }, - { 192557, true }, - { 192578, true }, - { 192590, true }, - { 192609, false }, - { 192621, true }, - { 192631, true }, - { 192646, true }, - { 192658, true }, - { 192672, true }, - { 192696, true }, - { 192708, true }, - { 192729, true }, - { 192760, true }, - { 192785, true }, - { 192808, true }, - { 192819, true }, - { 192831, true }, - { 192846, true }, - { 192859, true }, - { 192872, true }, - { 192901, true }, - { 192924, true }, - { 192948, true }, - { 192975, true }, - { 192989, true }, - { 193012, true }, - { 193038, true }, - { 193066, true }, - { 193097, true }, - { 193122, true }, - { 193130, true }, + { 192488, true }, + { 192512, true }, + { 192539, true }, + { 192553, true }, + { 192576, true }, + { 192602, true }, + { 192630, true }, + { 192661, true }, + { 192686, true }, + { 192694, true }, + { 192701, true }, + { 192713, true }, + { 192721, true }, + { 192733, true }, + { 192746, true }, + { 192767, true }, + { 192780, true }, + { 192801, true }, + { 192820, true }, + { 192839, true }, + { 192850, true }, + { 192863, true }, + { 192879, false }, + { 192895, true }, + { 192903, true }, + { 192918, true }, + { 192935, false }, + { 192950, true }, + { 192966, true }, + { 192976, true }, + { 192988, true }, + { 193004, true }, + { 193023, true }, + { 193037, false }, + { 193046, true }, + { 193058, true }, + { 193071, false }, + { 193083, true }, + { 193098, true }, + { 193120, true }, { 193137, true }, - { 193149, true }, - { 193157, true }, - { 193169, true }, - { 193182, true }, - { 193203, true }, - { 193216, true }, - { 193237, true }, - { 193256, true }, - { 193275, true }, - { 193286, true }, - { 193299, true }, - { 193315, false }, - { 193331, true }, - { 193339, true }, - { 193354, true }, - { 193371, false }, - { 193386, true }, - { 193402, true }, - { 193412, true }, - { 193424, true }, - { 193443, true }, - { 193457, false }, - { 193466, true }, - { 193478, true }, - { 193491, false }, - { 193503, true }, - { 193518, true }, - { 193540, true }, - { 193557, true }, - { 193579, true }, + { 193159, true }, + { 193173, true }, + { 193180, true }, + { 193193, true }, + { 193206, true }, + { 193232, true }, + { 193244, true }, + { 193255, true }, + { 193281, true }, + { 193291, false }, + { 193308, true }, + { 193320, true }, + { 193335, true }, + { 193345, true }, + { 193362, true }, + { 193375, true }, + { 193387, true }, + { 193397, true }, + { 193410, false }, + { 193426, true }, + { 193442, true }, + { 193456, false }, + { 193471, true }, + { 193484, false }, + { 193501, true }, + { 193515, true }, + { 193529, true }, + { 193543, true }, + { 193567, true }, + { 193580, true }, { 193593, true }, - { 193600, true }, - { 193613, true }, - { 193626, true }, - { 193652, true }, - { 193664, true }, - { 193675, true }, - { 193701, true }, - { 193711, false }, - { 193728, true }, - { 193740, true }, - { 193755, true }, - { 193765, true }, - { 193782, true }, + { 193607, true }, + { 193621, true }, + { 193636, true }, + { 193650, true }, + { 193666, true }, + { 193681, true }, + { 193696, true }, + { 193714, true }, + { 193726, true }, + { 193738, true }, + { 193754, true }, + { 193771, true }, { 193795, true }, - { 193807, true }, - { 193817, true }, - { 193830, false }, - { 193846, true }, - { 193862, true }, - { 193876, false }, - { 193891, true }, - { 193904, false }, - { 193921, true }, - { 193935, true }, + { 193812, true }, + { 193830, true }, + { 193849, true }, + { 193869, true }, + { 193884, true }, + { 193896, true }, + { 193910, true }, + { 193927, true }, + { 193936, true }, { 193949, true }, { 193963, true }, - { 193987, true }, - { 194000, true }, + { 193978, true }, + { 193990, true }, + { 194000, false }, { 194013, true }, - { 194027, true }, - { 194041, true }, - { 194056, true }, - { 194070, true }, - { 194086, true }, - { 194101, true }, - { 194116, true }, - { 194134, true }, - { 194146, true }, - { 194158, true }, - { 194174, true }, - { 194191, true }, - { 194215, true }, - { 194232, true }, + { 194024, true }, + { 194038, true }, + { 194051, true }, + { 194063, false }, + { 194082, true }, + { 194104, true }, + { 194119, true }, + { 194138, true }, + { 194152, false }, + { 194163, true }, + { 194178, true }, + { 194192, true }, + { 194204, true }, + { 194221, true }, + { 194239, true }, { 194250, true }, - { 194269, true }, - { 194289, true }, - { 194304, true }, - { 194316, true }, - { 194330, true }, - { 194347, true }, - { 194356, true }, - { 194369, true }, - { 194383, true }, - { 194398, true }, - { 194410, true }, - { 194420, false }, - { 194433, true }, - { 194444, true }, - { 194458, true }, - { 194471, true }, - { 194483, false }, - { 194502, true }, - { 194524, true }, - { 194539, true }, - { 194558, true }, - { 194572, false }, - { 194583, true }, - { 194598, true }, - { 194612, true }, - { 194624, true }, - { 194641, true }, - { 194659, true }, - { 194670, true }, - { 194677, true }, - { 194690, true }, - { 194702, true }, - { 194710, true }, - { 194720, true }, - { 194730, true }, - { 194745, true }, - { 194764, true }, - { 194780, false }, - { 194790, false }, - { 194802, true }, - { 194811, true }, - { 194825, true }, - { 194837, true }, - { 194845, true }, + { 194257, true }, + { 194270, true }, + { 194282, true }, + { 194290, true }, + { 194300, true }, + { 194310, true }, + { 194325, true }, + { 194344, true }, + { 194360, false }, + { 194370, false }, + { 194382, true }, + { 194391, true }, + { 194405, true }, + { 194417, true }, + { 194425, true }, + { 194432, true }, + { 194442, true }, + { 194454, true }, + { 194467, true }, + { 194486, true }, + { 194494, false }, + { 194506, true }, + { 194519, true }, + { 194534, true }, + { 194556, true }, + { 194570, true }, + { 194581, true }, + { 194593, true }, + { 194611, true }, + { 194627, true }, + { 194636, false }, + { 194653, true }, + { 194674, true }, + { 194695, true }, + { 194707, true }, + { 194732, true }, + { 194758, true }, + { 194784, true }, + { 194795, true }, + { 194807, true }, + { 194820, true }, + { 194833, true }, + { 194843, true }, { 194852, true }, - { 194862, true }, - { 194874, true }, - { 194887, true }, - { 194906, true }, - { 194914, false }, - { 194926, true }, + { 194866, true }, + { 194886, true }, + { 194901, true }, + { 194917, true }, + { 194927, true }, { 194939, true }, - { 194954, true }, - { 194976, true }, - { 194990, true }, - { 195001, true }, - { 195013, true }, - { 195031, true }, - { 195047, true }, - { 195056, false }, - { 195073, true }, - { 195094, true }, - { 195115, true }, - { 195127, true }, - { 195152, true }, + { 194959, true }, + { 194981, true }, + { 194998, true }, + { 195011, true }, + { 195030, true }, + { 195044, true }, + { 195056, true }, + { 195080, true }, + { 195097, false }, + { 195111, true }, + { 195124, true }, + { 195137, true }, + { 195156, true }, { 195178, true }, - { 195204, true }, - { 195215, true }, - { 195227, true }, - { 195240, true }, - { 195253, true }, - { 195263, true }, - { 195272, true }, - { 195286, true }, - { 195306, true }, - { 195321, true }, - { 195337, true }, - { 195347, true }, - { 195359, true }, - { 195379, true }, - { 195401, true }, - { 195418, true }, - { 195431, true }, - { 195450, true }, - { 195464, true }, - { 195476, true }, - { 195500, true }, - { 195517, false }, - { 195531, true }, - { 195544, true }, - { 195557, true }, - { 195576, true }, - { 195598, true }, - { 195610, true }, + { 195190, true }, + { 195205, true }, + { 195226, true }, + { 195251, true }, + { 195267, true }, + { 195293, true }, + { 195313, true }, + { 195329, true }, + { 195342, true }, + { 195354, true }, + { 195372, true }, + { 195386, true }, + { 195405, true }, + { 195416, true }, + { 195428, true }, + { 195438, true }, + { 195447, true }, + { 195461, true }, + { 195472, true }, + { 195483, true }, + { 195491, true }, + { 195504, true }, + { 195518, true }, + { 195535, true }, + { 195546, false }, + { 195558, true }, + { 195577, true }, + { 195590, true }, + { 195601, true }, + { 195612, true }, { 195625, true }, - { 195646, true }, - { 195671, true }, + { 195637, true }, + { 195647, true }, + { 195657, true }, + { 195677, true }, { 195687, true }, - { 195713, true }, - { 195733, true }, + { 195710, true }, + { 195722, true }, + { 195741, true }, { 195749, true }, - { 195762, true }, - { 195774, true }, - { 195792, true }, - { 195806, true }, - { 195825, true }, - { 195836, true }, - { 195848, true }, - { 195858, true }, - { 195867, true }, - { 195881, true }, - { 195892, true }, - { 195903, true }, - { 195911, true }, - { 195924, true }, - { 195938, true }, - { 195955, true }, - { 195966, false }, - { 195978, true }, - { 195997, true }, - { 196010, true }, - { 196021, true }, - { 196032, true }, - { 196045, true }, - { 196057, true }, - { 196067, true }, - { 196077, true }, - { 196097, true }, - { 196107, true }, - { 196130, true }, - { 196142, true }, - { 196161, true }, - { 196169, true }, + { 195763, true }, + { 195775, true }, + { 195790, false }, + { 195803, true }, + { 195816, true }, + { 195827, true }, + { 195838, true }, + { 195854, true }, + { 195864, true }, + { 195878, true }, + { 195885, true }, + { 195898, true }, + { 195915, true }, + { 195925, true }, + { 195933, true }, + { 195945, true }, + { 195961, true }, + { 195976, true }, + { 195986, true }, + { 196011, true }, + { 196019, true }, + { 196031, false }, + { 196042, false }, + { 196060, false }, + { 196073, true }, + { 196088, true }, + { 196102, true }, + { 196116, true }, + { 196133, true }, + { 196150, true }, + { 196165, true }, { 196183, true }, - { 196195, true }, - { 196210, false }, - { 196223, true }, - { 196236, true }, + { 196201, true }, + { 196219, true }, + { 196233, true }, { 196247, true }, - { 196258, true }, - { 196274, true }, - { 196284, true }, - { 196298, true }, - { 196305, true }, - { 196318, true }, - { 196335, true }, - { 196345, true }, - { 196353, true }, - { 196365, true }, - { 196381, true }, - { 196396, true }, - { 196406, true }, - { 196431, true }, - { 196439, true }, - { 196451, false }, - { 196462, false }, - { 196480, false }, - { 196493, true }, - { 196508, true }, - { 196522, true }, - { 196536, true }, - { 196553, true }, - { 196570, true }, - { 196585, true }, - { 196603, true }, - { 196621, true }, - { 196639, true }, - { 196653, true }, - { 196667, true }, - { 196681, true }, - { 196695, true }, - { 196709, false }, - { 196727, false }, - { 196750, false }, - { 196771, false }, - { 196790, true }, - { 196806, false }, - { 196822, false }, - { 196838, true }, - { 196860, true }, - { 196873, false }, - { 196890, false }, - { 196907, true }, - { 196924, false }, - { 196941, false }, + { 196261, true }, + { 196275, true }, + { 196289, false }, + { 196307, false }, + { 196330, false }, + { 196351, false }, + { 196370, true }, + { 196386, false }, + { 196402, false }, + { 196418, true }, + { 196440, true }, + { 196453, false }, + { 196470, false }, + { 196487, true }, + { 196504, false }, + { 196521, false }, + { 196535, false }, + { 196554, false }, + { 196565, false }, + { 196577, false }, + { 196589, false }, + { 196608, true }, + { 196626, false }, + { 196640, true }, + { 196656, false }, + { 196673, false }, + { 196690, false }, + { 196705, false }, + { 196721, true }, + { 196742, false }, + { 196761, false }, + { 196779, false }, + { 196799, true }, + { 196815, false }, + { 196830, true }, + { 196845, true }, + { 196869, true }, + { 196876, true }, + { 196895, false }, + { 196910, true }, + { 196931, false }, { 196955, false }, { 196974, false }, - { 196985, false }, - { 196997, false }, - { 197009, false }, - { 197028, true }, - { 197046, false }, - { 197060, true }, - { 197076, false }, - { 197093, false }, - { 197110, false }, - { 197125, false }, - { 197141, true }, - { 197162, false }, - { 197181, false }, - { 197199, false }, - { 197219, true }, - { 197235, false }, - { 197250, true }, - { 197265, true }, - { 197289, true }, - { 197296, true }, - { 197315, false }, - { 197330, true }, - { 197351, false }, - { 197375, false }, - { 197394, false }, - { 197410, false }, - { 197425, false }, - { 197438, true }, - { 197454, false }, - { 197469, false }, - { 197483, false }, - { 197501, true }, - { 197512, true }, - { 197523, true }, - { 197531, true }, - { 197546, true }, - { 197556, true }, - { 197569, true }, - { 197586, true }, - { 197598, true }, - { 197606, true }, - { 197617, true }, - { 197627, true }, - { 197643, true }, - { 197648, true }, - { 197653, true }, - { 197663, true }, - { 197671, true }, - { 197691, true }, - { 197698, true }, - { 197717, true }, + { 196990, false }, + { 197005, false }, + { 197018, true }, + { 197034, false }, + { 197049, false }, + { 197063, false }, + { 197081, true }, + { 197092, true }, + { 197103, true }, + { 197111, true }, + { 197126, true }, + { 197136, true }, + { 197149, true }, + { 197166, true }, + { 197178, true }, + { 197186, true }, + { 197197, true }, + { 197207, true }, + { 197223, true }, + { 197228, true }, + { 197233, true }, + { 197243, true }, + { 197251, true }, + { 197271, true }, + { 197278, true }, + { 197297, true }, + { 197304, true }, + { 197311, true }, + { 197318, true }, + { 197327, true }, + { 197348, true }, + { 197368, true }, + { 197392, true }, + { 197399, true }, + { 197409, true }, + { 197426, true }, + { 197446, true }, + { 197452, true }, + { 197459, true }, + { 197471, true }, + { 197484, true }, + { 197499, false }, + { 197510, true }, + { 197521, true }, + { 197529, false }, + { 197548, true }, + { 197559, true }, + { 197570, true }, + { 197577, true }, + { 197589, true }, + { 197608, true }, + { 197624, true }, + { 197636, true }, + { 197647, true }, + { 197660, true }, + { 197674, true }, + { 197689, true }, + { 197704, true }, + { 197714, true }, { 197724, true }, - { 197731, true }, - { 197738, true }, - { 197747, true }, - { 197768, true }, - { 197788, true }, - { 197812, true }, + { 197735, false }, + { 197745, true }, + { 197756, true }, + { 197766, true }, + { 197775, false }, + { 197789, true }, + { 197799, true }, + { 197807, true }, { 197819, true }, - { 197829, true }, - { 197846, true }, - { 197866, true }, - { 197872, true }, - { 197879, true }, - { 197891, true }, - { 197904, true }, - { 197919, false }, - { 197930, true }, - { 197941, true }, - { 197949, false }, - { 197968, true }, - { 197979, true }, - { 197990, true }, - { 197997, true }, - { 198009, true }, - { 198028, true }, - { 198044, true }, - { 198056, true }, - { 198067, true }, - { 198080, true }, - { 198094, true }, - { 198109, true }, - { 198124, true }, - { 198134, true }, - { 198144, true }, - { 198155, false }, - { 198165, true }, - { 198176, true }, - { 198186, true }, - { 198195, false }, - { 198209, true }, - { 198219, true }, - { 198227, true }, - { 198239, true }, - { 198250, true }, - { 198261, true }, - { 198273, true }, - { 198281, true }, - { 198295, true }, - { 198302, true }, - { 198309, true }, - { 198327, true }, - { 198353, true }, - { 198379, true }, - { 198402, true }, - { 198433, true }, - { 198444, true }, - { 198460, true }, - { 198472, true }, - { 198491, true }, - { 198524, true }, - { 198548, true }, - { 198574, true }, - { 198599, true }, - { 198624, true }, - { 198648, true }, - { 198678, true }, + { 197830, true }, + { 197841, true }, + { 197853, true }, + { 197861, true }, + { 197875, true }, + { 197882, true }, + { 197889, true }, + { 197907, true }, + { 197933, true }, + { 197959, true }, + { 197982, true }, + { 198013, true }, + { 198024, true }, + { 198040, true }, + { 198052, true }, + { 198071, true }, + { 198104, true }, + { 198128, true }, + { 198154, true }, + { 198179, true }, + { 198204, true }, + { 198228, true }, + { 198258, true }, + { 198269, true }, + { 198288, true }, + { 198319, true }, + { 198330, false }, + { 198351, true }, + { 198388, true }, + { 198411, true }, + { 198439, true }, + { 198454, true }, + { 198468, true }, + { 198490, true }, + { 198532, true }, + { 198555, true }, + { 198571, true }, + { 198597, true }, + { 198631, true }, + { 198655, true }, + { 198682, false }, { 198689, true }, - { 198708, true }, - { 198739, true }, - { 198750, false }, - { 198771, true }, - { 198808, true }, - { 198831, true }, - { 198859, true }, - { 198874, true }, - { 198888, true }, - { 198910, true }, - { 198952, true }, + { 198695, true }, + { 198704, true }, + { 198715, true }, + { 198725, true }, + { 198735, true }, + { 198742, true }, + { 198749, true }, + { 198762, true }, + { 198769, true }, + { 198783, true }, + { 198792, true }, + { 198806, true }, + { 198816, true }, + { 198826, true }, + { 198839, true }, + { 198846, true }, + { 198853, true }, + { 198864, true }, + { 198873, true }, + { 198882, true }, + { 198895, true }, + { 198902, true }, + { 198912, true }, + { 198920, true }, + { 198931, true }, + { 198940, true }, + { 198950, true }, + { 198965, true }, { 198975, true }, + { 198984, true }, { 198991, true }, - { 199017, true }, - { 199051, true }, - { 199075, true }, - { 199102, false }, - { 199109, true }, - { 199115, true }, - { 199124, true }, - { 199135, true }, - { 199145, true }, - { 199155, true }, - { 199162, true }, - { 199169, true }, - { 199182, true }, - { 199189, true }, - { 199203, true }, - { 199212, true }, - { 199226, true }, - { 199236, true }, - { 199246, true }, - { 199259, true }, + { 199011, true }, + { 199022, true }, + { 199033, true }, + { 199047, true }, + { 199063, true }, + { 199070, true }, + { 199082, true }, + { 199092, true }, + { 199099, true }, + { 199110, true }, + { 199122, false }, + { 199134, true }, + { 199148, true }, + { 199161, true }, + { 199177, true }, + { 199192, true }, + { 199204, false }, + { 199214, true }, + { 199227, true }, + { 199239, true }, + { 199249, true }, + { 199257, true }, { 199266, true }, - { 199273, true }, - { 199284, true }, - { 199293, true }, - { 199302, true }, + { 199278, true }, + { 199288, false }, + { 199296, true }, + { 199306, true }, { 199315, true }, - { 199322, true }, - { 199332, true }, - { 199340, true }, - { 199351, true }, - { 199360, true }, - { 199370, true }, - { 199385, true }, - { 199395, true }, - { 199404, true }, - { 199411, true }, - { 199431, true }, - { 199442, true }, - { 199453, true }, - { 199467, true }, - { 199483, true }, - { 199490, true }, - { 199502, true }, - { 199512, true }, - { 199519, true }, - { 199530, true }, - { 199542, false }, - { 199554, true }, - { 199568, true }, - { 199581, true }, - { 199597, true }, - { 199612, true }, - { 199624, false }, - { 199634, true }, - { 199647, true }, - { 199659, true }, - { 199669, true }, - { 199677, true }, - { 199686, true }, - { 199698, true }, - { 199708, false }, - { 199716, true }, - { 199726, true }, - { 199735, true }, - { 199755, true }, - { 199770, true }, - { 199786, false }, - { 199801, false }, - { 199814, true }, - { 199828, true }, - { 199838, false }, - { 199847, true }, - { 199863, true }, - { 199870, true }, - { 199880, true }, - { 199889, true }, - { 199898, true }, - { 199909, true }, - { 199920, true }, - { 199931, true }, + { 199335, true }, + { 199350, true }, + { 199366, false }, + { 199381, false }, + { 199394, true }, + { 199408, true }, + { 199418, false }, + { 199427, true }, + { 199443, true }, + { 199450, true }, + { 199460, true }, + { 199469, true }, + { 199478, true }, + { 199489, true }, + { 199500, true }, + { 199511, true }, + { 199533, true }, + { 199548, true }, + { 199555, true }, + { 199566, true }, + { 199574, true }, + { 199584, false }, + { 199593, true }, + { 199607, true }, + { 199623, true }, + { 199641, true }, + { 199652, true }, + { 199664, false }, + { 199679, true }, + { 199689, true }, + { 199701, true }, + { 199721, true }, + { 199731, true }, + { 199742, true }, + { 199752, true }, + { 199764, true }, + { 199777, true }, + { 199792, true }, + { 199806, true }, + { 199821, true }, + { 199836, true }, + { 199848, true }, + { 199860, true }, + { 199871, true }, + { 199881, true }, + { 199893, true }, + { 199906, true }, + { 199919, true }, + { 199934, true }, { 199953, true }, { 199968, true }, - { 199975, true }, - { 199986, true }, - { 199994, true }, - { 200004, true }, - { 200017, false }, - { 200026, true }, - { 200040, true }, - { 200056, true }, - { 200074, true }, - { 200085, true }, - { 200097, false }, - { 200112, true }, - { 200122, true }, - { 200134, true }, - { 200154, true }, - { 200164, true }, - { 200175, true }, - { 200185, true }, - { 200197, true }, - { 200210, true }, - { 200225, true }, + { 199980, true }, + { 199989, true }, + { 200000, true }, + { 200022, true }, + { 200038, true }, + { 200058, true }, + { 200067, true }, + { 200075, true }, + { 200083, false }, + { 200095, true }, + { 200108, true }, + { 200120, true }, + { 200132, true }, + { 200147, true }, + { 200157, true }, + { 200168, true }, + { 200184, true }, + { 200193, true }, + { 200202, true }, + { 200211, true }, + { 200226, true }, { 200239, true }, - { 200254, true }, - { 200269, true }, - { 200281, true }, - { 200293, true }, - { 200304, true }, - { 200314, true }, - { 200326, true }, - { 200339, true }, - { 200352, true }, - { 200367, true }, - { 200386, true }, - { 200401, true }, - { 200413, true }, - { 200422, true }, + { 200248, true }, + { 200259, true }, + { 200273, true }, + { 200285, true }, + { 200298, true }, + { 200306, true }, + { 200318, true }, + { 200325, true }, + { 200333, true }, + { 200341, true }, + { 200351, true }, + { 200360, true }, + { 200373, true }, + { 200378, true }, + { 200388, true }, + { 200395, true }, + { 200402, true }, + { 200414, false }, { 200433, true }, - { 200455, true }, - { 200471, true }, - { 200491, true }, - { 200500, true }, - { 200508, true }, - { 200516, false }, - { 200528, true }, - { 200541, true }, - { 200553, true }, - { 200565, true }, - { 200580, true }, - { 200590, true }, - { 200601, true }, - { 200617, true }, - { 200626, true }, - { 200635, true }, - { 200644, true }, + { 200449, true }, + { 200464, true }, + { 200479, true }, + { 200492, true }, + { 200505, true }, + { 200513, true }, + { 200523, true }, + { 200533, true }, + { 200546, true }, + { 200559, true }, + { 200576, true }, + { 200584, true }, + { 200593, true }, + { 200606, true }, + { 200618, true }, + { 200648, true }, { 200659, true }, - { 200672, true }, - { 200681, true }, - { 200692, true }, - { 200706, true }, - { 200718, true }, + { 200677, true }, + { 200685, true }, + { 200709, true }, + { 200719, true }, { 200731, true }, - { 200739, true }, - { 200751, true }, - { 200758, true }, - { 200766, true }, - { 200774, true }, - { 200784, true }, - { 200793, true }, - { 200806, true }, - { 200811, true }, - { 200821, true }, - { 200828, true }, - { 200835, true }, - { 200847, false }, + { 200742, true }, + { 200754, true }, + { 200772, true }, + { 200781, true }, + { 200792, true }, + { 200804, true }, + { 200812, true }, + { 200819, true }, + { 200827, true }, + { 200838, true }, + { 200848, true }, + { 200857, true }, { 200866, true }, - { 200882, true }, - { 200897, true }, - { 200912, true }, - { 200925, true }, - { 200938, true }, - { 200946, true }, + { 200891, true }, + { 200903, true }, + { 200923, true }, + { 200945, true }, { 200956, true }, - { 200966, true }, - { 200979, true }, - { 200992, true }, - { 201009, true }, - { 201017, true }, + { 200967, true }, + { 200980, true }, + { 200995, true }, + { 201013, true }, { 201026, true }, - { 201039, true }, - { 201051, true }, - { 201081, true }, - { 201092, true }, - { 201110, true }, - { 201118, true }, - { 201142, true }, - { 201152, true }, - { 201164, true }, - { 201175, true }, - { 201187, true }, - { 201205, true }, + { 201042, true }, + { 201060, true }, + { 201074, true }, + { 201084, true }, + { 201096, true }, + { 201108, true }, + { 201120, true }, + { 201131, true }, + { 201143, true }, + { 201156, true }, + { 201169, true }, + { 201181, true }, + { 201193, true }, + { 201204, false }, { 201214, true }, { 201225, true }, - { 201237, true }, - { 201245, true }, - { 201252, true }, - { 201260, true }, - { 201271, true }, - { 201281, true }, - { 201290, true }, - { 201299, true }, - { 201324, true }, - { 201336, true }, + { 201240, true }, + { 201253, true }, + { 201264, true }, + { 201274, true }, + { 201288, true }, + { 201300, true }, + { 201316, true }, + { 201331, true }, + { 201344, true }, { 201356, true }, - { 201378, true }, - { 201389, true }, - { 201400, true }, - { 201413, true }, - { 201428, true }, - { 201446, true }, - { 201459, true }, - { 201475, true }, - { 201493, true }, - { 201507, true }, - { 201517, true }, - { 201529, true }, - { 201541, true }, - { 201553, true }, + { 201369, true }, + { 201384, true }, + { 201391, true }, + { 201406, true }, + { 201418, true }, + { 201427, true }, + { 201439, true }, + { 201447, true }, + { 201462, true }, + { 201471, false }, + { 201479, true }, + { 201490, true }, + { 201498, true }, + { 201509, true }, + { 201520, true }, + { 201535, true }, + { 201552, false }, { 201564, true }, - { 201576, true }, - { 201589, true }, - { 201602, true }, - { 201614, true }, - { 201626, true }, - { 201637, false }, - { 201647, true }, - { 201658, true }, - { 201673, true }, - { 201686, true }, - { 201697, true }, - { 201707, true }, - { 201721, true }, - { 201733, true }, - { 201749, true }, - { 201764, true }, - { 201777, true }, - { 201789, true }, - { 201802, true }, - { 201817, true }, - { 201824, true }, - { 201839, true }, - { 201851, true }, - { 201860, true }, - { 201872, true }, - { 201880, true }, - { 201895, false }, - { 201903, true }, - { 201914, true }, - { 201922, true }, - { 201933, true }, - { 201944, true }, - { 201959, false }, - { 201971, true }, - { 201990, true }, + { 201583, true }, + { 201601, true }, + { 201621, true }, + { 201633, true }, + { 201643, true }, + { 201650, true }, + { 201661, true }, + { 201671, true }, + { 201677, true }, + { 201687, true }, + { 201702, true }, + { 201714, true }, + { 201726, true }, + { 201737, true }, + { 201750, true }, + { 201774, true }, + { 201781, true }, + { 201792, true }, + { 201803, true }, + { 201821, true }, + { 201834, true }, + { 201849, true }, + { 201865, true }, + { 201876, true }, + { 201892, true }, + { 201916, true }, + { 201931, true }, + { 201941, true }, + { 201949, true }, + { 201968, true }, + { 201979, true }, + { 201989, true }, + { 202000, true }, { 202008, true }, - { 202028, true }, - { 202040, true }, - { 202054, true }, - { 202064, true }, - { 202071, true }, - { 202082, true }, - { 202092, true }, + { 202022, true }, + { 202034, true }, + { 202048, true }, + { 202057, true }, + { 202066, true }, + { 202080, true }, + { 202088, true }, { 202098, true }, - { 202113, true }, - { 202123, true }, - { 202138, true }, - { 202150, true }, - { 202162, true }, - { 202173, true }, - { 202186, true }, - { 202210, true }, - { 202217, true }, - { 202228, true }, - { 202239, true }, - { 202257, true }, + { 202111, true }, + { 202125, true }, + { 202146, true }, + { 202156, true }, + { 202163, true }, + { 202174, true }, + { 202184, true }, + { 202197, true }, + { 202205, true }, + { 202214, true }, + { 202227, true }, + { 202240, true }, + { 202251, true }, + { 202261, true }, { 202270, true }, - { 202285, true }, - { 202301, true }, - { 202312, true }, - { 202328, true }, - { 202352, true }, - { 202367, true }, - { 202377, true }, - { 202385, true }, - { 202404, true }, - { 202415, true }, - { 202425, true }, - { 202436, true }, - { 202444, true }, - { 202458, true }, - { 202470, true }, - { 202484, true }, - { 202493, true }, - { 202502, true }, - { 202516, true }, - { 202524, true }, - { 202534, true }, - { 202547, true }, - { 202561, true }, - { 202582, true }, - { 202592, true }, - { 202599, true }, - { 202610, true }, - { 202620, true }, - { 202633, true }, - { 202641, true }, - { 202650, true }, - { 202663, true }, - { 202676, true }, - { 202687, true }, - { 202697, true }, - { 202706, true }, - { 202716, true }, + { 202280, true }, }; From 8144fcc62054e278fe5db9666815cc13188c96fa Mon Sep 17 00:00:00 2001 From: ffxbld Date: Sun, 8 Jan 2017 06:54:07 -0800 Subject: [PATCH 20/22] No bug, Automated HPKP preload list update from host bld-linux64-spot-076 - a=hpkp-update --- security/manager/ssl/StaticHPKPins.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/security/manager/ssl/StaticHPKPins.h b/security/manager/ssl/StaticHPKPins.h index ef1b35c7a9bf..415faf396e1c 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -1149,4 +1149,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1492266816832000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1492354316032000); From a52a0f5571cce3ad392741cbfdd9123e8ec0049d Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Sun, 8 Jan 2017 21:11:25 -0800 Subject: [PATCH 21/22] Backed out 8 changesets (bug 1311244) for OOM failures in Win7 debug R1 Backed out changeset d5411799a28f (bug 1311244) Backed out changeset ff9c71e1dbc8 (bug 1311244) Backed out changeset 96988ec5b81c (bug 1311244) Backed out changeset 9d257713833a (bug 1311244) Backed out changeset 2c33905ccb04 (bug 1311244) Backed out changeset 20148e33d523 (bug 1311244) Backed out changeset f36cd1532fdb (bug 1311244) Backed out changeset 2ee4ea83a6b4 (bug 1311244) --- layout/base/ShapeUtils.cpp | 80 ---- layout/base/ShapeUtils.h | 55 --- layout/base/moz.build | 2 - layout/base/nsLayoutUtils.cpp | 1 - layout/generic/BlockReflowInput.cpp | 5 +- layout/generic/WritingModes.h | 10 - layout/generic/nsFloatManager.cpp | 361 ++++++------------ layout/generic/nsFloatManager.h | 143 ++----- .../w3c-css/submitted/shapes1/reftest.list | 28 +- .../shapes1/shape-outside-circle-001-ref.html | 51 --- .../shapes1/shape-outside-circle-001.html | 54 --- .../shapes1/shape-outside-circle-002-ref.html | 52 --- .../shapes1/shape-outside-circle-002.html | 55 --- .../shapes1/shape-outside-circle-003-ref.html | 52 --- .../shapes1/shape-outside-circle-003.html | 55 --- .../shapes1/shape-outside-circle-004-ref.html | 53 --- .../shapes1/shape-outside-circle-004.html | 56 --- .../shapes1/shape-outside-circle-005-ref.html | 45 --- .../shapes1/shape-outside-circle-005.html | 48 --- .../shapes1/shape-outside-circle-006.html | 49 --- .../shapes1/shape-outside-circle-007.html | 48 --- .../shapes1/shape-outside-circle-008-ref.html | 46 --- .../shapes1/shape-outside-circle-008.html | 49 --- .../shapes1/shape-outside-circle-009.html | 49 --- .../shapes1/shape-outside-circle-010-ref.html | 45 --- .../shapes1/shape-outside-circle-010.html | 48 --- .../shapes1/shape-outside-circle-011-ref.html | 46 --- .../shapes1/shape-outside-circle-011.html | 49 --- .../shapes1/shape-outside-circle-012.html | 50 --- .../shapes1/shape-outside-circle-013.html | 49 --- .../shapes1/shape-outside-circle-014-ref.html | 47 --- .../shapes1/shape-outside-circle-014.html | 50 --- .../shapes1/shape-outside-circle-015.html | 50 --- .../shapes1/shape-outside-circle-016-ref.html | 46 --- .../shapes1/shape-outside-circle-016.html | 49 --- .../shapes1/shape-outside-circle-017-ref.html | 54 --- .../shapes1/shape-outside-circle-017.html | 56 --- .../shapes1/shape-outside-circle-018-ref.html | 55 --- .../shapes1/shape-outside-circle-018.html | 57 --- .../shapes1/shape-outside-circle-019-ref.html | 54 --- .../shapes1/shape-outside-circle-019.html | 56 --- .../shapes1/shape-outside-circle-020-ref.html | 54 --- .../shapes1/shape-outside-circle-020.html | 57 --- .../shapes1/shape-outside-circle-021-ref.html | 54 --- .../shapes1/shape-outside-circle-021.html | 56 --- .../shapes1/shape-outside-circle-022-ref.html | 55 --- .../shapes1/shape-outside-circle-022.html | 57 --- .../shapes1/shape-outside-circle-023-ref.html | 54 --- .../shapes1/shape-outside-circle-023.html | 56 --- .../shapes1/shape-outside-circle-024-ref.html | 55 --- .../shapes1/shape-outside-circle-024.html | 57 --- layout/svg/nsCSSClipPathInstance.cpp | 77 +++- 52 files changed, 221 insertions(+), 2719 deletions(-) delete mode 100644 layout/base/ShapeUtils.cpp delete mode 100644 layout/base/ShapeUtils.h delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html delete mode 100644 layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html diff --git a/layout/base/ShapeUtils.cpp b/layout/base/ShapeUtils.cpp deleted file mode 100644 index 617b71424ad2..000000000000 --- a/layout/base/ShapeUtils.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "mozilla/ShapeUtils.h" - -#include - -#include "nsCSSRendering.h" -#include "nsRuleNode.h" -#include "nsStyleCoord.h" -#include "nsStyleStruct.h" -#include "SVGContentUtils.h" - -namespace mozilla { - -nscoord -ShapeUtils::ComputeShapeRadius(const StyleShapeRadius aType, - const nscoord aCenter, - const nscoord aPosMin, - const nscoord aPosMax) -{ - nscoord dist1 = std::abs(aPosMin - aCenter); - nscoord dist2 = std::abs(aPosMax - aCenter); - nscoord length = 0; - switch (aType) { - case StyleShapeRadius::FarthestSide: - length = dist1 > dist2 ? dist1 : dist2; - break; - case StyleShapeRadius::ClosestSide: - length = dist1 > dist2 ? dist2 : dist1; - break; - } - return length; -} - -nsPoint -ShapeUtils::ComputeCircleOrEllipseCenter(StyleBasicShape* const aBasicShape, - const nsRect& aRefBox) -{ - nsPoint topLeft, anchor; - nsSize size(aRefBox.Size()); - nsImageRenderer::ComputeObjectAnchorPoint(aBasicShape->GetPosition(), - size, size, - &topLeft, &anchor); - return nsPoint(anchor.x + aRefBox.x, anchor.y + aRefBox.y); -} - -nscoord -ShapeUtils::ComputeCircleRadius(StyleBasicShape* const aBasicShape, - const nsPoint& aCenter, - const nsRect& aRefBox) -{ - const nsTArray& coords = aBasicShape->Coordinates(); - MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); - nscoord r = 0; - if (coords[0].GetUnit() == eStyleUnit_Enumerated) { - const auto styleShapeRadius = coords[0].GetEnumValue(); - nscoord horizontal = - ComputeShapeRadius(styleShapeRadius, aCenter.x, aRefBox.x, aRefBox.XMost()); - nscoord vertical = - ComputeShapeRadius(styleShapeRadius, aCenter.y, aRefBox.y, aRefBox.YMost()); - r = styleShapeRadius == StyleShapeRadius::FarthestSide - ? std::max(horizontal, vertical) - : std::min(horizontal, vertical); - } else { - // We resolve percent value for circle() as defined here: - // https://drafts.csswg.org/css-shapes/#funcdef-circle - double referenceLength = - SVGContentUtils::ComputeNormalizedHypotenuse(aRefBox.width, - aRefBox.height); - r = nsRuleNode::ComputeCoordPercentCalc(coords[0], - NSToCoordRound(referenceLength)); - } - return r; -} - -} // namespace mozilla diff --git a/layout/base/ShapeUtils.h b/layout/base/ShapeUtils.h deleted file mode 100644 index 7541617d7e82..000000000000 --- a/layout/base/ShapeUtils.h +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* vim: set ts=8 sts=2 et sw=2 tw=80: */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef mozilla_ShapeUtils_h -#define mozilla_ShapeUtils_h - -#include "nsCoord.h" -#include "nsStyleConsts.h" - -struct nsPoint; -struct nsRect; - -namespace mozilla { -class StyleBasicShape; - -// ShapeUtils is a namespace class containing utility functions related to -// processing basic shapes in the CSS Shapes Module. -// https://drafts.csswg.org/css-shapes/#basic-shape-functions -// -struct ShapeUtils final -{ - // Compute the length of a keyword , i.e. closest-side or - // farthest-side, for a circle or an ellipse on a single dimension. The - // caller needs to call for both dimensions and combine the result. - // https://drafts.csswg.org/css-shapes/#typedef-shape-radius. - // - // @return The length of the radius in app units. - static nscoord ComputeShapeRadius(const StyleShapeRadius aType, - const nscoord aCenter, - const nscoord aPosMin, - const nscoord aPosMax); - - // Compute the center of a circle or an ellipse. - // - // @param aRefBox The reference box of the basic shape. - // @return The point of the center. - static nsPoint ComputeCircleOrEllipseCenter( - StyleBasicShape* const aBasicShape, - const nsRect& aRefBox); - - // Compute the radius for a circle. - // @param aCenter the center of the circle. - // @param aRefBox the reference box of the circle. - // @return The length of the radius in app unit. - static nscoord ComputeCircleRadius( - mozilla::StyleBasicShape* const aBasicShape, - const nsPoint& aCenter, const nsRect& aRefBox); -}; - -} // namespace mozilla - -#endif // mozilla_ShapeUtils_h diff --git a/layout/base/moz.build b/layout/base/moz.build index 92f8388c2dfa..331a63cbab90 100644 --- a/layout/base/moz.build +++ b/layout/base/moz.build @@ -80,7 +80,6 @@ EXPORTS.mozilla += [ 'RestyleManagerHandleInlines.h', 'ServoRestyleManager.h', 'ServoRestyleManagerInlines.h', - 'ShapeUtils.h', 'StaticPresData.h', ] @@ -115,7 +114,6 @@ UNIFIED_SOURCES += [ 'RestyleTracker.cpp', 'ScrollbarStyles.cpp', 'ServoRestyleManager.cpp', - 'ShapeUtils.cpp', 'StackArena.cpp', 'StaticPresData.cpp', 'TouchManager.cpp', diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp index 44e80ebe4a2b..f99365bf6c39 100644 --- a/layout/base/nsLayoutUtils.cpp +++ b/layout/base/nsLayoutUtils.cpp @@ -22,7 +22,6 @@ #include "mozilla/dom/ContentChild.h" #include "mozilla/Unused.h" #include "nsCharTraits.h" -#include "nsDocument.h" #include "nsFontMetrics.h" #include "nsPresContext.h" #include "nsIContent.h" diff --git a/layout/generic/BlockReflowInput.cpp b/layout/generic/BlockReflowInput.cpp index 8c081dc44563..15b1b4c631ec 100644 --- a/layout/generic/BlockReflowInput.cpp +++ b/layout/generic/BlockReflowInput.cpp @@ -988,8 +988,9 @@ BlockReflowInput::FlowAndPlaceFloat(nsIFrame* aFloat) region.BSize(wm) = std::max(region.BSize(wm), ContentBSize() - floatPos.B(wm)); } - mFloatManager->AddFloat(aFloat, region, wm, ContainerSize()); - + DebugOnly rv = mFloatManager->AddFloat(aFloat, region, wm, + ContainerSize()); + MOZ_ASSERT(NS_SUCCEEDED(rv), "bad float placement"); // store region nsFloatManager::StoreRegionFor(wm, aFloat, region, ContainerSize()); diff --git a/layout/generic/WritingModes.h b/layout/generic/WritingModes.h index 92ae39acb111..c98961b7a3eb 100644 --- a/layout/generic/WritingModes.h +++ b/layout/generic/WritingModes.h @@ -784,16 +784,6 @@ public: CHECK_WRITING_MODE(aWritingMode); return mPoint.y; } - nscoord LineRelative(WritingMode aWritingMode, - const nsSize& aContainerSize) const // line-axis - { - CHECK_WRITING_MODE(aWritingMode); - if (aWritingMode.IsBidiLTR()) { - return I(); - } - return (aWritingMode.IsVertical() ? aContainerSize.height - : aContainerSize.width) - I(); - } /** * These non-const accessors return a reference (lvalue) that can be diff --git a/layout/generic/nsFloatManager.cpp b/layout/generic/nsFloatManager.cpp index 22d0d9e4a208..e0c3366cfde2 100644 --- a/layout/generic/nsFloatManager.cpp +++ b/layout/generic/nsFloatManager.cpp @@ -10,7 +10,6 @@ #include #include "mozilla/ReflowInput.h" -#include "mozilla/ShapeUtils.h" #include "nsBlockFrame.h" #include "nsError.h" #include "nsIPresShell.h" @@ -188,7 +187,7 @@ nsFloatManager::GetFlowArea(WritingMode aWM, nscoord aBCoord, nscoord aBSize, // There aren't any more floats that could intersect this band. break; } - if (fi.IsEmpty(aShapeType)) { + if (fi.IsEmpty()) { // For compatibility, ignore floats with empty rects, even though it // disagrees with the spec. (We might want to fix this in the // future, though.) @@ -262,7 +261,7 @@ nsFloatManager::GetFlowArea(WritingMode aWM, nscoord aBCoord, nscoord aBSize, lineRight - lineLeft, blockSize, haveFloats); } -void +nsresult nsFloatManager::AddFloat(nsIFrame* aFloatFrame, const LogicalRect& aMarginRect, WritingMode aWM, const nsSize& aContainerSize) { @@ -291,7 +290,10 @@ nsFloatManager::AddFloat(nsIFrame* aFloatFrame, const LogicalRect& aMarginRect, if (thisBEnd > sideBEnd) sideBEnd = thisBEnd; - mFloats.AppendElement(Move(info)); + if (!mFloats.AppendElement(info)) + return NS_ERROR_OUT_OF_MEMORY; + + return NS_OK; } // static @@ -528,145 +530,6 @@ nsFloatManager::ClearContinues(StyleClear aBreakType) const aBreakType == StyleClear::Right)); } -///////////////////////////////////////////////////////////////////////////// -// BoxShapeInfo - -nscoord -nsFloatManager::BoxShapeInfo::LineLeft(WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const -{ - nscoord radii[8]; - bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); - - if (!hasRadii) { - return mShapeBoxRect.x; - } - - // Get the physical side for line-left since border-radii are in - // the physical axis. - mozilla::Side lineLeftSide = - aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirLeft)); - nscoord blockStartCornerRadiusL = - radii[SideToHalfCorner(lineLeftSide, true, false)]; - nscoord blockStartCornerRadiusB = - radii[SideToHalfCorner(lineLeftSide, true, true)]; - nscoord blockEndCornerRadiusL = - radii[SideToHalfCorner(lineLeftSide, false, false)]; - nscoord blockEndCornerRadiusB = - radii[SideToHalfCorner(lineLeftSide, false, true)]; - - if (aWM.IsLineInverted()) { - // This happens only when aWM is vertical-lr. Need to swap blockStart - // and blockEnd corners. - std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); - std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); - } - - nscoord lineLeftDiff = - ComputeEllipseLineInterceptDiff( - mShapeBoxRect.y, mShapeBoxRect.YMost(), - blockStartCornerRadiusL, blockStartCornerRadiusB, - blockEndCornerRadiusL, blockEndCornerRadiusB, - aBStart, aBEnd); - return mShapeBoxRect.x + lineLeftDiff; -} - -nscoord -nsFloatManager::BoxShapeInfo::LineRight(WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const -{ - nscoord radii[8]; - bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); - - if (!hasRadii) { - return mShapeBoxRect.XMost(); - } - - // Get the physical side for line-right since border-radii are in - // the physical axis. - mozilla::Side lineRightSide = - aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirRight)); - nscoord blockStartCornerRadiusL = - radii[SideToHalfCorner(lineRightSide, false, false)]; - nscoord blockStartCornerRadiusB = - radii[SideToHalfCorner(lineRightSide, false, true)]; - nscoord blockEndCornerRadiusL = - radii[SideToHalfCorner(lineRightSide, true, false)]; - nscoord blockEndCornerRadiusB = - radii[SideToHalfCorner(lineRightSide, true, true)]; - - if (aWM.IsLineInverted()) { - // This happens only when aWM is vertical-lr. Need to swap blockStart - // and blockEnd corners. - std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); - std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); - } - - nscoord lineRightDiff = - ComputeEllipseLineInterceptDiff( - mShapeBoxRect.y, mShapeBoxRect.YMost(), - blockStartCornerRadiusL, blockStartCornerRadiusB, - blockEndCornerRadiusL, blockEndCornerRadiusB, - aBStart, aBEnd); - return mShapeBoxRect.XMost() - lineRightDiff; -} - -///////////////////////////////////////////////////////////////////////////// -// CircleShapeInfo - -nsFloatManager::CircleShapeInfo::CircleShapeInfo( - StyleBasicShape* const aBasicShape, - nscoord aLineLeft, - nscoord aBlockStart, - const LogicalRect& aShapeBoxRect, - WritingMode aWM, - const nsSize& aContainerSize) -{ - // Use physical coordinates to compute the center of the circle() since - // the keywords such as 'left', 'top', etc. are physical. - // https://drafts.csswg.org/css-shapes-1/#funcdef-circle - nsRect physicalShapeBoxRect = - aShapeBoxRect.GetPhysicalRect(aWM, aContainerSize); - nsPoint physicalCenter = - ShapeUtils::ComputeCircleOrEllipseCenter(aBasicShape, physicalShapeBoxRect); - mRadius = - ShapeUtils::ComputeCircleRadius(aBasicShape, physicalCenter, - physicalShapeBoxRect); - - // Convert the coordinate space back to the same as FloatInfo::mRect. - // mCenter.x is in the line-axis of the frame manager and mCenter.y are in - // the frame manager's real block-axis. - LogicalPoint logicalCenter(aWM, physicalCenter, aContainerSize); - mCenter = nsPoint(logicalCenter.LineRelative(aWM, aContainerSize) + aLineLeft, - logicalCenter.B(aWM) + aBlockStart); -} - -nscoord -nsFloatManager::CircleShapeInfo::LineLeft(WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const -{ - nscoord lineLeftDiff = - ComputeEllipseLineInterceptDiff(mCenter.y - mRadius, mCenter.y + mRadius, - mRadius, mRadius, mRadius, mRadius, - aBStart, aBEnd); - return mCenter.x - mRadius + lineLeftDiff; -} - -nscoord -nsFloatManager::CircleShapeInfo::LineRight(WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const -{ - nscoord lineRightDiff = - ComputeEllipseLineInterceptDiff(mCenter.y - mRadius, mCenter.y + mRadius, - mRadius, mRadius, mRadius, mRadius, - aBStart, aBEnd); - return mCenter.x + mRadius - lineRightDiff; -} - ///////////////////////////////////////////////////////////////////////////// // FloatInfo @@ -685,58 +548,41 @@ nsFloatManager::FloatInfo::FloatInfo(nsIFrame* aFrame, const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; - if (shapeOutside.GetType() == StyleShapeSourceType::None) { - return; - } - - // Initialize 's reference rect. - LogicalRect rect = aMarginRect; - - switch (shapeOutside.GetReferenceBox()) { - case StyleShapeOutsideShapeBox::Content: - rect.Deflate(aWM, mFrame->GetLogicalUsedPadding(aWM)); - MOZ_FALLTHROUGH; - case StyleShapeOutsideShapeBox::Padding: - rect.Deflate(aWM, mFrame->GetLogicalUsedBorder(aWM)); - MOZ_FALLTHROUGH; - case StyleShapeOutsideShapeBox::Border: - rect.Deflate(aWM, mFrame->GetLogicalUsedMargin(aWM)); - break; - case StyleShapeOutsideShapeBox::Margin: - // Do nothing. rect is already a margin rect. - break; - case StyleShapeOutsideShapeBox::NoBox: - MOZ_ASSERT(shapeOutside.GetType() != StyleShapeSourceType::Box, - "Box source type must have specified!"); - break; - } - if (shapeOutside.GetType() == StyleShapeSourceType::Box) { - nsRect shapeBoxRect(rect.LineLeft(aWM, aContainerSize) + aLineLeft, - rect.BStart(aWM) + aBlockStart, - rect.ISize(aWM), rect.BSize(aWM)); - mShapeInfo = MakeUnique(shapeBoxRect, mFrame); - } else if (shapeOutside.GetType() == StyleShapeSourceType::Shape) { - StyleBasicShape* const basicShape = shapeOutside.GetBasicShape(); + // Initialize shape-box reference rect. + LogicalRect rect = aMarginRect; - if (basicShape->GetShapeType() == StyleBasicShapeType::Circle) { - mShapeInfo = MakeUnique(basicShape, aLineLeft, aBlockStart, - rect, aWM, aContainerSize); + switch (shapeOutside.GetReferenceBox()) { + case StyleShapeOutsideShapeBox::Content: + rect.Deflate(aWM, mFrame->GetLogicalUsedPadding(aWM)); + MOZ_FALLTHROUGH; + case StyleShapeOutsideShapeBox::Padding: + rect.Deflate(aWM, mFrame->GetLogicalUsedBorder(aWM)); + MOZ_FALLTHROUGH; + case StyleShapeOutsideShapeBox::Border: + rect.Deflate(aWM, mFrame->GetLogicalUsedMargin(aWM)); + break; + case StyleShapeOutsideShapeBox::Margin: + // Do nothing. rect is already a margin rect. + break; + case StyleShapeOutsideShapeBox::NoBox: + MOZ_ASSERT_UNREACHABLE("Why don't we have a shape-box?"); + break; } - } else if (shapeOutside.GetType() == StyleShapeSourceType::URL) { - // Bug 1265343: Implement 'shape-image-threshold'. - } else { - MOZ_ASSERT_UNREACHABLE("Unknown StyleShapeSourceType!"); + + mShapeBoxRect.emplace(rect.LineLeft(aWM, aContainerSize) + aLineLeft, + rect.BStart(aWM) + aBlockStart, + rect.ISize(aWM), rect.BSize(aWM)); } } #ifdef NS_BUILD_REFCNT_LOGGING -nsFloatManager::FloatInfo::FloatInfo(FloatInfo&& aOther) - : mFrame(Move(aOther.mFrame)) - , mLeftBEnd(Move(aOther.mLeftBEnd)) - , mRightBEnd(Move(aOther.mRightBEnd)) - , mRect(Move(aOther.mRect)) - , mShapeInfo(Move(aOther.mShapeInfo)) +nsFloatManager::FloatInfo::FloatInfo(const FloatInfo& aOther) + : mFrame(aOther.mFrame) + , mLeftBEnd(aOther.mLeftBEnd) + , mRightBEnd(aOther.mRightBEnd) + , mRect(aOther.mRect) + , mShapeBoxRect(aOther.mShapeBoxRect) { MOZ_COUNT_CTOR(nsFloatManager::FloatInfo); } @@ -758,14 +604,51 @@ nsFloatManager::FloatInfo::LineLeft(WritingMode aWM, } MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - if (!mShapeInfo) { + const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; + if (shapeOutside.GetType() == StyleShapeSourceType::None) { return LineLeft(); } - // Clip the flow area to the margin-box because - // https://drafts.csswg.org/css-shapes-1/#relation-to-box-model-and-float-behavior - // says "When a shape is used to define a float area, the shape is clipped - // to the float’s margin box." - return std::max(LineLeft(), mShapeInfo->LineLeft(aWM, aBStart, aBEnd)); + + if (shapeOutside.GetType() == StyleShapeSourceType::Box) { + nscoord radii[8]; + bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); + + if (!hasRadii) { + return ShapeBoxRect().x; + } + + // Get the physical side for line-left since border-radii are in + // the physical axis. + mozilla::Side lineLeftSide = + aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirLeft)); + nscoord blockStartCornerRadiusL = + radii[SideToHalfCorner(lineLeftSide, true, false)]; + nscoord blockStartCornerRadiusB = + radii[SideToHalfCorner(lineLeftSide, true, true)]; + nscoord blockEndCornerRadiusL = + radii[SideToHalfCorner(lineLeftSide, false, false)]; + nscoord blockEndCornerRadiusB = + radii[SideToHalfCorner(lineLeftSide, false, true)]; + + if (aWM.IsLineInverted()) { + // This happens only when aWM is vertical-lr. Need to swap blockStart + // and blockEnd corners. + std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); + std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); + } + + nscoord lineLeftDiff = + ComputeEllipseLineInterceptDiff( + ShapeBoxRect().y, ShapeBoxRect().YMost(), + blockStartCornerRadiusL, blockStartCornerRadiusB, + blockEndCornerRadiusL, blockEndCornerRadiusB, + aBStart, aBEnd); + return ShapeBoxRect().x + lineLeftDiff; + } + + // XXX: Other shape source types are not implemented yet. + + return LineLeft(); } nscoord @@ -779,59 +662,55 @@ nsFloatManager::FloatInfo::LineRight(WritingMode aWM, } MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - if (!mShapeInfo) { + const StyleShapeOutside& shapeOutside = mFrame->StyleDisplay()->mShapeOutside; + if (shapeOutside.GetType() == StyleShapeSourceType::None) { return LineRight(); } - // Clip the flow area to the margin-box. See LineLeft(). - return std::min(LineRight(), mShapeInfo->LineRight(aWM, aBStart, aBEnd)); -} -nscoord -nsFloatManager::FloatInfo::BStart(ShapeType aShapeType) const -{ - if (aShapeType == ShapeType::Margin) { - return BStart(); + if (shapeOutside.GetType() == StyleShapeSourceType::Box) { + nscoord radii[8]; + bool hasRadii = mFrame->GetShapeBoxBorderRadii(radii); + + if (!hasRadii) { + return ShapeBoxRect().XMost(); + } + + // Get the physical side for line-right since border-radii are in + // the physical axis. + mozilla::Side lineRightSide = + aWM.PhysicalSide(aWM.LogicalSideForLineRelativeDir(eLineRelativeDirRight)); + nscoord blockStartCornerRadiusL = + radii[SideToHalfCorner(lineRightSide, false, false)]; + nscoord blockStartCornerRadiusB = + radii[SideToHalfCorner(lineRightSide, false, true)]; + nscoord blockEndCornerRadiusL = + radii[SideToHalfCorner(lineRightSide, true, false)]; + nscoord blockEndCornerRadiusB = + radii[SideToHalfCorner(lineRightSide, true, true)]; + + if (aWM.IsLineInverted()) { + // This happens only when aWM is vertical-lr. Need to swap blockStart + // and blockEnd corners. + std::swap(blockStartCornerRadiusL, blockEndCornerRadiusL); + std::swap(blockStartCornerRadiusB, blockEndCornerRadiusB); + } + + nscoord lineRightDiff = + ComputeEllipseLineInterceptDiff( + ShapeBoxRect().y, ShapeBoxRect().YMost(), + blockStartCornerRadiusL, blockStartCornerRadiusB, + blockEndCornerRadiusL, blockEndCornerRadiusB, + aBStart, aBEnd); + return ShapeBoxRect().XMost() - lineRightDiff; } - MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - if (!mShapeInfo) { - return BStart(); - } - // Clip the flow area to the margin-box. See LineLeft(). - return std::max(BStart(), mShapeInfo->BStart()); -} + // XXX: Other shape source types are not implemented yet. -nscoord -nsFloatManager::FloatInfo::BEnd(ShapeType aShapeType) const -{ - if (aShapeType == ShapeType::Margin) { - return BEnd(); - } - - MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - if (!mShapeInfo) { - return BEnd(); - } - // Clip the flow area to the margin-box. See LineLeft(). - return std::min(BEnd(), mShapeInfo->BEnd()); -} - -bool -nsFloatManager::FloatInfo::IsEmpty(ShapeType aShapeType) const -{ - if (aShapeType == ShapeType::Margin) { - return IsEmpty(); - } - - MOZ_ASSERT(aShapeType == ShapeType::ShapeOutside); - if (!mShapeInfo) { - return IsEmpty(); - } - return mShapeInfo->IsEmpty(); + return LineRight(); } /* static */ nscoord -nsFloatManager::ComputeEllipseLineInterceptDiff( +nsFloatManager::FloatInfo::ComputeEllipseLineInterceptDiff( const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, @@ -901,9 +780,9 @@ nsFloatManager::ComputeEllipseLineInterceptDiff( } /* static */ nscoord -nsFloatManager::XInterceptAtY(const nscoord aY, - const nscoord aRadiusX, - const nscoord aRadiusY) +nsFloatManager::FloatInfo::XInterceptAtY(const nscoord aY, + const nscoord aRadiusX, + const nscoord aRadiusY) { // Solve for x in the ellipse equation (x/radiusX)^2 + (y/radiusY)^2 = 1. MOZ_ASSERT(aRadiusY > 0); diff --git a/layout/generic/nsFloatManager.h b/layout/generic/nsFloatManager.h index be7c9e57f301..3f65bda04c35 100644 --- a/layout/generic/nsFloatManager.h +++ b/layout/generic/nsFloatManager.h @@ -10,12 +10,11 @@ #define nsFloatManager_h_ #include "mozilla/Attributes.h" -#include "mozilla/UniquePtr.h" +#include "mozilla/Maybe.h" #include "mozilla/WritingModes.h" #include "nsCoord.h" #include "nsFrameList.h" // for DEBUG_FRAME_DUMP #include "nsIntervalSet.h" -#include "nsPoint.h" #include "nsTArray.h" class nsIPresShell; @@ -23,7 +22,6 @@ class nsIFrame; class nsPresContext; namespace mozilla { struct ReflowInput; -class StyleBasicShape; } // namespace mozilla /** @@ -203,9 +201,9 @@ public: * aMarginRect is relative to the current translation. The caller * must ensure aMarginRect.height >= 0 and aMarginRect.width >= 0. */ - void AddFloat(nsIFrame* aFloatFrame, - const mozilla::LogicalRect& aMarginRect, - mozilla::WritingMode aWM, const nsSize& aContainerSize); + nsresult AddFloat(nsIFrame* aFloatFrame, + const mozilla::LogicalRect& aMarginRect, + mozilla::WritingMode aWM, const nsSize& aContainerSize); /** * Notify that we tried to place a float that could not fit at all and @@ -333,99 +331,6 @@ public: #endif private: - // Compute the minimum line-axis difference between the bounding shape - // box and its rounded corner within the given band (block-axis region). - // This is used as a helper function to compute the LineRight() and - // LineLeft(). See the picture in the implementation for an example. - // RadiusL and RadiusB stand for radius on the line-axis and block-axis. - // - // Returns radius-x diff on the line-axis, or 0 if there's no rounded - // corner within the given band. - static nscoord ComputeEllipseLineInterceptDiff( - const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, - const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, - const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, - const nscoord aBandBStart, const nscoord aBandBEnd); - - static nscoord XInterceptAtY(const nscoord aY, const nscoord aRadiusX, - const nscoord aRadiusY); - - // ShapeInfo is an abstract class for implementing all the shapes in CSS - // Shapes Module. A subclass needs to override all the methods to adjust - // the flow area with respect to its shape. - class ShapeInfo - { - public: - virtual ~ShapeInfo() {} - - virtual nscoord LineLeft(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const = 0; - virtual nscoord LineRight(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const = 0; - virtual nscoord BStart() const = 0; - virtual nscoord BEnd() const = 0; - virtual bool IsEmpty() const = 0; - }; - - // Implements shape-outside: . - class BoxShapeInfo final : public ShapeInfo - { - public: - BoxShapeInfo(const nsRect& aShapeBoxRect, nsIFrame* const aFrame) - : mShapeBoxRect(aShapeBoxRect) - , mFrame(aFrame) - { - } - - nscoord LineLeft(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const override; - nscoord LineRight(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const override; - nscoord BStart() const override { return mShapeBoxRect.y; } - nscoord BEnd() const override { return mShapeBoxRect.YMost(); } - bool IsEmpty() const override { return mShapeBoxRect.IsEmpty(); }; - - private: - // This is the reference box of css shape-outside if specified, which - // implements the value in the CSS Shapes Module Level 1. - // The coordinate space is the same as FloatInfo::mRect. - const nsRect mShapeBoxRect; - // The frame of the float. - nsIFrame* const mFrame; - }; - - // Implements shape-outside: circle(). - class CircleShapeInfo final : public ShapeInfo - { - public: - CircleShapeInfo(mozilla::StyleBasicShape* const aBasicShape, - nscoord aLineLeft, - nscoord aBlockStart, - const mozilla::LogicalRect& aShapeBoxRect, - mozilla::WritingMode aWM, - const nsSize& aContainerSize); - - nscoord LineLeft(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const override; - nscoord LineRight(mozilla::WritingMode aWM, - const nscoord aBStart, - const nscoord aBEnd) const override; - nscoord BStart() const override { return mCenter.y - mRadius; } - nscoord BEnd() const override { return mCenter.y + mRadius; } - bool IsEmpty() const override { return mRadius == 0; }; - - private: - // The position of the center of the circle. The coordinate space is the - // same as FloatInfo::mRect. - nsPoint mCenter; - // The radius of the circle in app units. - nscoord mRadius; - }; struct FloatInfo { nsIFrame *const mFrame; @@ -445,6 +350,8 @@ private: nscoord BSize() const { return mRect.height; } bool IsEmpty() const { return mRect.IsEmpty(); } + nsRect ShapeBoxRect() const { return mShapeBoxRect.valueOr(mRect); } + // aBStart and aBEnd are the starting and ending coordinate of a band. // LineLeft() and LineRight() return the innermost line-left extent and // line-right extent within the given band, respectively. @@ -452,12 +359,35 @@ private: const nscoord aBStart, const nscoord aBEnd) const; nscoord LineRight(mozilla::WritingMode aWM, ShapeType aShapeType, const nscoord aBStart, const nscoord aBEnd) const; - nscoord BStart(ShapeType aShapeType) const; - nscoord BEnd(ShapeType aShapeType) const; - bool IsEmpty(ShapeType aShapeType) const; + + nscoord BStart(ShapeType aShapeType) const + { + return aShapeType == ShapeType::Margin ? BStart() : ShapeBoxRect().y; + } + nscoord BEnd(ShapeType aShapeType) const + { + return aShapeType == ShapeType::Margin ? BEnd() : ShapeBoxRect().YMost(); + } + + // Compute the minimum line-axis difference between the bounding shape + // box and its rounded corner within the given band (block-axis region). + // This is used as a helper function to compute the LineRight() and + // LineLeft(). See the picture in the implementation for an example. + // RadiusL and RadiusB stand for radius on the line-axis and block-axis. + // + // Returns radius-x diff on the line-axis, or 0 if there's no rounded + // corner within the given band. + static nscoord ComputeEllipseLineInterceptDiff( + const nscoord aShapeBoxBStart, const nscoord aShapeBoxBEnd, + const nscoord aBStartCornerRadiusL, const nscoord aBStartCornerRadiusB, + const nscoord aBEndCornerRadiusL, const nscoord aBEndCornerRadiusB, + const nscoord aBandBStart, const nscoord aBandBEnd); + + static nscoord XInterceptAtY(const nscoord aY, const nscoord aRadiusX, + const nscoord aRadiusY); #ifdef NS_BUILD_REFCNT_LOGGING - FloatInfo(FloatInfo&& aOther); + FloatInfo(const FloatInfo& aOther); ~FloatInfo(); #endif @@ -468,9 +398,10 @@ private: // the line-relative axis of the frame manager and its block // coordinates are in the frame manager's real block direction. nsRect mRect; - // Pointer to a concrete subclass of ShapeInfo or null, which means that - // there is no shape-outside. - mozilla::UniquePtr mShapeInfo; + // This is the reference box of css shape-outside if specified, which + // implements the value in the CSS Shapes Module Level 1. + // The coordinate setup is the same as mRect. + mozilla::Maybe mShapeBoxRect; }; #ifdef DEBUG diff --git a/layout/reftests/w3c-css/submitted/shapes1/reftest.list b/layout/reftests/w3c-css/submitted/shapes1/reftest.list index 54979fb4b39f..c070d073aa72 100644 --- a/layout/reftests/w3c-css/submitted/shapes1/reftest.list +++ b/layout/reftests/w3c-css/submitted/shapes1/reftest.list @@ -1,4 +1,4 @@ -default-preferences pref(layout.css.shape-outside.enabled,true) pref(layout.css.clip-path-shapes.enabled,true) +default-preferences pref(layout.css.shape-outside.enabled,true) # only == shape-outside-margin-box-001.html shape-outside-margin-box-001-ref.html @@ -35,29 +35,3 @@ fails == shape-outside-border-box-border-radius-004.html shape-outside-border-bo == shape-outside-padding-box-border-radius-002.html shape-outside-padding-box-border-radius-002-ref.html == shape-outside-content-box-border-radius-001.html shape-outside-content-box-border-radius-001-ref.html == shape-outside-content-box-border-radius-002.html shape-outside-content-box-border-radius-002-ref.html - -# Basic shape: circle() -== shape-outside-circle-001.html shape-outside-circle-001-ref.html -== shape-outside-circle-002.html shape-outside-circle-002-ref.html -== shape-outside-circle-003.html shape-outside-circle-003-ref.html -== shape-outside-circle-004.html shape-outside-circle-004-ref.html -== shape-outside-circle-005.html shape-outside-circle-005-ref.html -== shape-outside-circle-006.html shape-outside-circle-005-ref.html -== shape-outside-circle-007.html shape-outside-circle-005-ref.html -== shape-outside-circle-008.html shape-outside-circle-008-ref.html -== shape-outside-circle-009.html shape-outside-circle-008-ref.html -== shape-outside-circle-010.html shape-outside-circle-010-ref.html -== shape-outside-circle-011.html shape-outside-circle-011-ref.html -== shape-outside-circle-012.html shape-outside-circle-011-ref.html -== shape-outside-circle-013.html shape-outside-circle-011-ref.html -== shape-outside-circle-014.html shape-outside-circle-014-ref.html -== shape-outside-circle-015.html shape-outside-circle-014-ref.html -== shape-outside-circle-016.html shape-outside-circle-016-ref.html -== shape-outside-circle-017.html shape-outside-circle-017-ref.html -== shape-outside-circle-018.html shape-outside-circle-018-ref.html -== shape-outside-circle-019.html shape-outside-circle-019-ref.html -== shape-outside-circle-020.html shape-outside-circle-020-ref.html -== shape-outside-circle-021.html shape-outside-circle-021-ref.html -== shape-outside-circle-022.html shape-outside-circle-022-ref.html -== shape-outside-circle-023.html shape-outside-circle-023-ref.html -== shape-outside-circle-024.html shape-outside-circle-024-ref.html diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html deleted file mode 100644 index fd38ecdb403f..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001-ref.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(50% at left top) reference - - - - - -
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html deleted file mode 100644 index 0e4bd0b5506f..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-001.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(50% at left top) - - - - - - - - - -
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html deleted file mode 100644 index 5950768909d0..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002-ref.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(50% at right bottom) reference - - - - - -
-
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html deleted file mode 100644 index 98a46d9fd925..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-002.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(50% at right bottom) - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html deleted file mode 100644 index fce4c56c52e7..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003-ref.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(50% at right top) reference - - - - - -
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html deleted file mode 100644 index 5c3756b80496..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-003.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(50% at right top) - - - - - - - - - -
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html deleted file mode 100644 index 1e3fd7d0c722..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004-ref.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(50% at left bottom) reference - - - - - -
-
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html deleted file mode 100644 index ea18329d3b0c..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-004.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(50% at left bottom) - - - - - - - - - -
-
-
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html deleted file mode 100644 index 13f0210e9d1e..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005-ref.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - CSS Shape Test: float left, circle() reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html deleted file mode 100644 index 11f7b9ead7dd..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-005.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - CSS Shape Test: float left, circle() - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html deleted file mode 100644 index 877f9e005274..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-006.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(closest-side at center) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html deleted file mode 100644 index ebe9ef9dc00d..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-007.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(farthest-side at center) - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html deleted file mode 100644 index eee9701e0020..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008-ref.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(0%) border-box reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html deleted file mode 100644 index 4c8d8c4d289e..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-008.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(0%) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html deleted file mode 100644 index d6b1bd6bbf07..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-009.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(closest-side at left center) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html deleted file mode 100644 index 1701347059f2..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010-ref.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(100%) reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html deleted file mode 100644 index 65cffd7d042a..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-010.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - CSS Shape Test: float left, circle(100%) - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html deleted file mode 100644 index a8603d7414de..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011-ref.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - CSS Shape Test: float right, circle() reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html deleted file mode 100644 index 79fc86d8c5fc..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-011.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float right, circle() - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html deleted file mode 100644 index b13745bac6fb..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-012.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(closest-side at center) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html deleted file mode 100644 index 7b6bd517371c..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-013.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(farthest-side at center) - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html deleted file mode 100644 index 843c8bad940b..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014-ref.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(0%) border-box reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html deleted file mode 100644 index 93933d75fee7..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-014.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(0%) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html deleted file mode 100644 index 8779538c816a..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-015.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(closest-side at right center) border-box - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html deleted file mode 100644 index 77b1190c0ea2..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016-ref.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(100%) reference - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html deleted file mode 100644 index ec8668a5db71..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-016.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - CSS Shape Test: float right, circle(100%) - - - - - - - - - -
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html deleted file mode 100644 index 5ffdb55b9a63..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017-ref.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: vertical-rl, float left, circle(50% at left 40px top 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html deleted file mode 100644 index 57a156193747..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-017.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - CSS Shape Test: vertical-rl, float left, circle(50% at left 40px top 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html deleted file mode 100644 index 2024166b29ef..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018-ref.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CSS Shape Test: vertical-rl, float right, circle(50% at left 40px bottom 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html deleted file mode 100644 index a735a50e5a03..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-018.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - CSS Shape Test: vertical-rl, float right, circle(50% at left 40px bottom 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html deleted file mode 100644 index 58d33349475f..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019-ref.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: vertical-lr, float left, circle(50% at right 40px top 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html deleted file mode 100644 index c8c0b265b630..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-019.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - CSS Shape Test: vertical-lr, float left, circle(50% at right 40px top 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html deleted file mode 100644 index 21ac48b5e12a..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020-ref.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: vertical-lr, float right, circle(50% at right 40px bottom 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html deleted file mode 100644 index 21ecdff8f240..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-020.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - CSS Shape Test: vertical-lr, float right, circle(50% at right 40px bottom 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html deleted file mode 100644 index 3e80b9422ec7..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021-ref.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: sideways-lr, float left, circle(50% at right 40px bottom 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html deleted file mode 100644 index d92fbfd83cdc..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-021.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - CSS Shape Test: sideways-lr, float left, circle(50% at right 40px bottom 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html deleted file mode 100644 index 843b9ff5e92d..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022-ref.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CSS Shape Test: sideways-lr, float right, circle(50% at right 40px top 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html deleted file mode 100644 index 9e6685b40e1a..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-022.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - CSS Shape Test: sideways-lr, float right, circle(50% at right 40px top 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html deleted file mode 100644 index 16a36fc7b071..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023-ref.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - CSS Shape Test: horizontal-tb, float left, circle(50% at left 40px bottom 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html deleted file mode 100644 index e8a86c5d094c..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-023.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - CSS Shape Test: horizontal-tb, float left, circle(50% at left 40px bottom 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html deleted file mode 100644 index c2cea3d8acfa..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024-ref.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - CSS Shape Test: horizontal-tb, float right, circle(50% at right 40px bottom 40px) reference - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html b/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html deleted file mode 100644 index 62a77fd31f94..000000000000 --- a/layout/reftests/w3c-css/submitted/shapes1/shape-outside-circle-024.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - CSS Shape Test: horizontal-tb, float right, circle(50% at right 40px bottom 40px) - - - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/layout/svg/nsCSSClipPathInstance.cpp b/layout/svg/nsCSSClipPathInstance.cpp index c87b0673b3fc..c566de42299a 100644 --- a/layout/svg/nsCSSClipPathInstance.cpp +++ b/layout/svg/nsCSSClipPathInstance.cpp @@ -11,7 +11,6 @@ #include "mozilla/dom/SVGSVGElement.h" #include "mozilla/gfx/2D.h" #include "mozilla/gfx/PathHelpers.h" -#include "mozilla/ShapeUtils.h" #include "nsCSSRendering.h" #include "nsIFrame.h" #include "nsRenderingContext.h" @@ -105,6 +104,22 @@ nsCSSClipPathInstance::CreateClipPath(DrawTarget* aDrawTarget) return builder->Finish(); } +static void +EnumerationToLength(nscoord& aCoord, StyleShapeRadius aType, + nscoord aCenter, nscoord aPosMin, nscoord aPosMax) +{ + nscoord dist1 = abs(aPosMin - aCenter); + nscoord dist2 = abs(aPosMax - aCenter); + switch (aType) { + case StyleShapeRadius::FarthestSide: + aCoord = dist1 > dist2 ? dist1 : dist2; + break; + case StyleShapeRadius::ClosestSide: + aCoord = dist1 > dist2 ? dist2 : dist1; + break; + } +} + already_AddRefed nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, const nsRect& aRefBox) @@ -113,13 +128,41 @@ nsCSSClipPathInstance::CreateClipPathCircle(DrawTarget* aDrawTarget, RefPtr builder = aDrawTarget->CreatePathBuilder(); - nsPoint center = - ShapeUtils::ComputeCircleOrEllipseCenter(basicShape, aRefBox); - nscoord r = ShapeUtils::ComputeCircleRadius(basicShape, center, aRefBox); + nsPoint topLeft, anchor; + nsSize size = nsSize(aRefBox.width, aRefBox.height); + nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), + size, size, + &topLeft, &anchor); + Point center = Point(anchor.x + aRefBox.x, anchor.y + aRefBox.y); + + const nsTArray& coords = basicShape->Coordinates(); + MOZ_ASSERT(coords.Length() == 1, "wrong number of arguments"); + nscoord r = 0; + if (coords[0].GetUnit() == eStyleUnit_Enumerated) { + const auto styleShapeRadius = coords[0].GetEnumValue(); + nscoord horizontal, vertical; + EnumerationToLength(horizontal, styleShapeRadius, + center.x, aRefBox.x, aRefBox.x + aRefBox.width); + EnumerationToLength(vertical, styleShapeRadius, + center.y, aRefBox.y, aRefBox.y + aRefBox.height); + if (styleShapeRadius == StyleShapeRadius::FarthestSide) { + r = horizontal > vertical ? horizontal : vertical; + } else { + r = horizontal < vertical ? horizontal : vertical; + } + } else { + // We resolve percent value for circle() as defined here: + // https://drafts.csswg.org/css-shapes/#funcdef-circle + double referenceLength = + SVGContentUtils::ComputeNormalizedHypotenuse(aRefBox.width, + aRefBox.height); + r = nsRuleNode::ComputeCoordPercentCalc(coords[0], + NSToCoordRound(referenceLength)); + } + nscoord appUnitsPerDevPixel = mTargetFrame->PresContext()->AppUnitsPerDevPixel(); - builder->Arc(Point(center.x, center.y) / appUnitsPerDevPixel, - r / appUnitsPerDevPixel, + builder->Arc(center / appUnitsPerDevPixel, r / appUnitsPerDevPixel, 0, Float(2 * M_PI)); builder->Close(); return builder->Finish(); @@ -133,25 +176,25 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, RefPtr builder = aDrawTarget->CreatePathBuilder(); - nsPoint center = - ShapeUtils::ComputeCircleOrEllipseCenter(basicShape, aRefBox); + nsPoint topLeft, anchor; + nsSize size = nsSize(aRefBox.width, aRefBox.height); + nsImageRenderer::ComputeObjectAnchorPoint(basicShape->GetPosition(), + size, size, + &topLeft, &anchor); + Point center = Point(anchor.x + aRefBox.x, anchor.y + aRefBox.y); const nsTArray& coords = basicShape->Coordinates(); MOZ_ASSERT(coords.Length() == 2, "wrong number of arguments"); nscoord rx = 0, ry = 0; if (coords[0].GetUnit() == eStyleUnit_Enumerated) { - rx = ShapeUtils::ComputeShapeRadius(coords[0].GetEnumValue(), - center.x, - aRefBox.x, - aRefBox.x + aRefBox.width); + EnumerationToLength(rx, coords[0].GetEnumValue(), + center.x, aRefBox.x, aRefBox.x + aRefBox.width); } else { rx = nsRuleNode::ComputeCoordPercentCalc(coords[0], aRefBox.width); } if (coords[1].GetUnit() == eStyleUnit_Enumerated) { - ry = ShapeUtils::ComputeShapeRadius(coords[1].GetEnumValue(), - center.y, - aRefBox.y, - aRefBox.y + aRefBox.height); + EnumerationToLength(ry, coords[1].GetEnumValue(), + center.y, aRefBox.y, aRefBox.y + aRefBox.height); } else { ry = nsRuleNode::ComputeCoordPercentCalc(coords[1], aRefBox.height); } @@ -159,7 +202,7 @@ nsCSSClipPathInstance::CreateClipPathEllipse(DrawTarget* aDrawTarget, nscoord appUnitsPerDevPixel = mTargetFrame->PresContext()->AppUnitsPerDevPixel(); EllipseToBezier(builder.get(), - Point(center.x, center.y) / appUnitsPerDevPixel, + center / appUnitsPerDevPixel, Size(rx, ry) / appUnitsPerDevPixel); builder->Close(); return builder->Finish(); From dd6884450a91ed5057c3761527fa2aab30bbd870 Mon Sep 17 00:00:00 2001 From: Phil Ringnalda Date: Sun, 8 Jan 2017 21:17:41 -0800 Subject: [PATCH 22/22] Backed out changeset c273666082fa (bug 1325332) for Android test_interfaces.html failures --- mobile/android/app/mobile.js | 6 ------ .../base/java/org/mozilla/gecko/media/MediaDrmProxy.java | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/mobile/android/app/mobile.js b/mobile/android/app/mobile.js index d408c8f90fa9..3e94fa2209d8 100644 --- a/mobile/android/app/mobile.js +++ b/mobile/android/app/mobile.js @@ -637,12 +637,6 @@ pref("media.mediasource.enabled", true); pref("media.mediadrm-widevinecdm.visible", true); -#ifdef NIGHTLY_BUILD -// Enable EME(Encrypted media extensions) -pref("media.eme.enabled", true); -pref("media.eme.apiVisible", true); -#endif - // optimize images memory usage pref("image.downscale-during-decode.enabled", true); diff --git a/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java b/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java index 438c652c0e67..7aeec396dcb9 100644 --- a/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java +++ b/mobile/android/base/java/org/mozilla/gecko/media/MediaDrmProxy.java @@ -47,8 +47,8 @@ public final class MediaDrmProxy { private String mDrmStubId; private static boolean isSystemSupported() { - // Support versions >= Marshmallow - if (AppConstants.Versions.preMarshmallow) { + // Support versions >= LOLLIPOP + if (AppConstants.Versions.preLollipop) { if (DEBUG) Log.d(LOGTAG, "System Not supported !!, current SDK version is " + Build.VERSION.SDK_INT); return false; }