From 29148d1da2176f6ce3dea87bbda33282cc31e461 Mon Sep 17 00:00:00 2001 From: Arthur Edelstein Date: Thu, 2 Feb 2017 23:47:00 -0500 Subject: [PATCH 001/112] Bug 1305144 - Option to hide referrer when leaving a .onion domain. r=mcmanus The boolean pref is named "network.http.referer.hideOnionSource" --HG-- extra : rebase_source : b6e9af7de29e0f8a2457b777ba4703401ad45181 --- modules/libpref/init/all.js | 2 ++ netwerk/protocol/http/HttpBaseChannel.cpp | 12 ++++++++++++ netwerk/protocol/http/nsHttpHandler.cpp | 7 +++++++ netwerk/protocol/http/nsHttpHandler.h | 2 ++ 4 files changed, 23 insertions(+) diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 135a6ddb7f61..9890d0abf12e 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -1466,6 +1466,8 @@ pref("network.http.sendRefererHeader", 2); pref("network.http.referer.userControlPolicy", 3); // false=real referer, true=spoof referer (use target URI as referer) pref("network.http.referer.spoofSource", false); +// false=allow onion referer, true=hide onion referer (use target URI as referer) +pref("network.http.referer.hideOnionSource", false); // 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port pref("network.http.referer.trimmingPolicy", 0); // 0=full URI, 1=scheme+host+port+path, 2=scheme+host+port diff --git a/netwerk/protocol/http/HttpBaseChannel.cpp b/netwerk/protocol/http/HttpBaseChannel.cpp index 8ecbf43db396..3f870f177c72 100644 --- a/netwerk/protocol/http/HttpBaseChannel.cpp +++ b/netwerk/protocol/http/HttpBaseChannel.cpp @@ -14,6 +14,7 @@ #include "nsMimeTypes.h" #include "nsNetCID.h" #include "nsNetUtil.h" +#include "nsReadableUtils.h" #include "nsICachingChannel.h" #include "nsIDOMDocument.h" @@ -1464,6 +1465,10 @@ HttpBaseChannel::SetReferrerWithPolicy(nsIURI *referrer, // true: spoof with URI of the current request bool userSpoofReferrerSource = gHttpHandler->SpoofReferrerSource(); + // false: use real referrer when leaving .onion + // true: use an empty referrer + bool userHideOnionReferrerSource = gHttpHandler->HideOnionReferrerSource(); + // 0: full URI // 1: scheme+host+port+path // 2: scheme+host+port @@ -1616,6 +1621,13 @@ HttpBaseChannel::SetReferrerWithPolicy(nsIURI *referrer, rv = clone->GetAsciiHost(referrerHost); if (NS_FAILED(rv)) return rv; + // Send an empty referrer if leaving a .onion domain. + if(userHideOnionReferrerSource && + !currentHost.Equals(referrerHost) && + StringEndsWith(referrerHost, NS_LITERAL_CSTRING(".onion"))) { + return NS_OK; + } + // check policy for sending ref only when hosts match if (userReferrerXOriginPolicy == 2 && !currentHost.Equals(referrerHost)) return NS_OK; diff --git a/netwerk/protocol/http/nsHttpHandler.cpp b/netwerk/protocol/http/nsHttpHandler.cpp index 23276e68e5b2..beb685f90c49 100644 --- a/netwerk/protocol/http/nsHttpHandler.cpp +++ b/netwerk/protocol/http/nsHttpHandler.cpp @@ -168,6 +168,7 @@ nsHttpHandler::nsHttpHandler() , mCapabilities(NS_HTTP_ALLOW_KEEPALIVE) , mReferrerLevel(0xff) // by default we always send a referrer , mSpoofReferrerSource(false) + , mHideOnionReferrerSource(false) , mReferrerTrimmingPolicy(0) , mReferrerXOriginTrimmingPolicy(0) , mReferrerXOriginPolicy(0) @@ -1076,6 +1077,12 @@ nsHttpHandler::PrefsChanged(nsIPrefBranch *prefs, const char *pref) mSpoofReferrerSource = cVar; } + if (PREF_CHANGED(HTTP_PREF("referer.spoofOnionSource"))) { + rv = prefs->GetBoolPref(HTTP_PREF("referer.spoofOnionSource"), &cVar); + if (NS_SUCCEEDED(rv)) + mHideOnionReferrerSource = cVar; + } + if (PREF_CHANGED(HTTP_PREF("referer.trimmingPolicy"))) { rv = prefs->GetIntPref(HTTP_PREF("referer.trimmingPolicy"), &val); if (NS_SUCCEEDED(rv)) diff --git a/netwerk/protocol/http/nsHttpHandler.h b/netwerk/protocol/http/nsHttpHandler.h index 822ec871c00e..a504722afabb 100644 --- a/netwerk/protocol/http/nsHttpHandler.h +++ b/netwerk/protocol/http/nsHttpHandler.h @@ -81,6 +81,7 @@ public: nsHttpVersion ProxyHttpVersion() { return mProxyHttpVersion; } uint8_t ReferrerLevel() { return mReferrerLevel; } bool SpoofReferrerSource() { return mSpoofReferrerSource; } + bool HideOnionReferrerSource() { return mHideOnionReferrerSource; } uint8_t ReferrerTrimmingPolicy() { return mReferrerTrimmingPolicy; } uint8_t ReferrerXOriginTrimmingPolicy() { return mReferrerXOriginTrimmingPolicy; @@ -422,6 +423,7 @@ private: uint32_t mCapabilities; uint8_t mReferrerLevel; uint8_t mSpoofReferrerSource; + uint8_t mHideOnionReferrerSource; uint8_t mReferrerTrimmingPolicy; uint8_t mReferrerXOriginTrimmingPolicy; uint8_t mReferrerXOriginPolicy; From 928fbd7db293c54d640aa3af28f3d3ff88e098ab Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Wed, 8 Feb 2017 21:12:14 +0000 Subject: [PATCH 002/112] Bug 1337129 - Fix up #include paths used in unit tests for new intl services. r=gandalf --- intl/locale/moz.build | 5 ++++- intl/locale/tests/gtest/TestLocaleService.cpp | 2 +- intl/locale/tests/gtest/TestOSPreferences.cpp | 2 +- intl/locale/tests/gtest/moz.build | 4 ---- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/intl/locale/moz.build b/intl/locale/moz.build index 9a03810c1f4b..25fa15fcc203 100644 --- a/intl/locale/moz.build +++ b/intl/locale/moz.build @@ -8,6 +8,9 @@ XPCSHELL_TESTS_MANIFESTS += ['tests/unit/xpcshell.ini'] if CONFIG['ENABLE_INTL_API']: SOURCES += ['OSPreferences.cpp'] + EXPORTS.mozilla.intl += [ + 'OSPreferences.h', + ] toolkit = CONFIG['MOZ_WIDGET_TOOLKIT'] @@ -40,7 +43,7 @@ EXPORTS += [ ] EXPORTS.mozilla.intl += [ - 'LocaleService.h' + 'LocaleService.h', ] UNIFIED_SOURCES += [ diff --git a/intl/locale/tests/gtest/TestLocaleService.cpp b/intl/locale/tests/gtest/TestLocaleService.cpp index 33c2f3187581..7d6af36bc5ae 100644 --- a/intl/locale/tests/gtest/TestLocaleService.cpp +++ b/intl/locale/tests/gtest/TestLocaleService.cpp @@ -4,7 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "gtest/gtest.h" -#include "LocaleService.h" +#include "mozilla/intl/LocaleService.h" #include "mozilla/Services.h" #include "nsIToolkitChromeRegistry.h" diff --git a/intl/locale/tests/gtest/TestOSPreferences.cpp b/intl/locale/tests/gtest/TestOSPreferences.cpp index cd03cb6f8d6f..71d8f95069bd 100644 --- a/intl/locale/tests/gtest/TestOSPreferences.cpp +++ b/intl/locale/tests/gtest/TestOSPreferences.cpp @@ -4,7 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "gtest/gtest.h" -#include "OSPreferences.h" +#include "mozilla/intl/OSPreferences.h" using namespace mozilla::intl; diff --git a/intl/locale/tests/gtest/moz.build b/intl/locale/tests/gtest/moz.build index 8254c59ddaa4..69bde4c1d12a 100644 --- a/intl/locale/tests/gtest/moz.build +++ b/intl/locale/tests/gtest/moz.build @@ -14,8 +14,4 @@ if CONFIG['ENABLE_INTL_API']: 'TestOSPreferences.cpp', ] -LOCAL_INCLUDES += [ - '/intl/locale', -] - FINAL_LIBRARY = 'xul-gtest' From 2f76f2869c44c95ef111d5194824e5404bf85945 Mon Sep 17 00:00:00 2001 From: Jonathan Kew Date: Wed, 8 Feb 2017 21:12:16 +0000 Subject: [PATCH 003/112] Bug 1336281 followup - Unify the JS-callable and C++-only versions of LocaleService::GetAppLocale, and declare it as a read-only attribute in IDL. r=gandalf --- intl/locale/LocaleService.cpp | 16 +++++----------- intl/locale/LocaleService.h | 25 ++++--------------------- intl/locale/mozILocaleService.idl | 28 +++++++++++++++++++++++++++- 3 files changed, 36 insertions(+), 33 deletions(-) diff --git a/intl/locale/LocaleService.cpp b/intl/locale/LocaleService.cpp index 36f3c261e6a0..62ed7b2c96a0 100644 --- a/intl/locale/LocaleService.cpp +++ b/intl/locale/LocaleService.cpp @@ -60,15 +60,6 @@ LocaleService::GetAppLocales(nsTArray& aRetVal) aRetVal = mAppLocales; } -void -LocaleService::GetAppLocale(nsACString& aRetVal) -{ - if (mAppLocales.IsEmpty()) { - ReadAppLocales(mAppLocales); - } - aRetVal = mAppLocales[0]; -} - void LocaleService::Refresh() { @@ -111,8 +102,11 @@ LocaleService::GetAppLocales(JSContext* aCtx, JS::MutableHandleValue aRetVal) } NS_IMETHODIMP -LocaleService::GetAppLocale(JSContext* aCtx, nsACString& aRetVal) +LocaleService::GetAppLocale(nsACString& aRetVal) { - GetAppLocale(aRetVal); + if (mAppLocales.IsEmpty()) { + ReadAppLocales(mAppLocales); + } + aRetVal = mAppLocales[0]; return NS_OK; } diff --git a/intl/locale/LocaleService.h b/intl/locale/LocaleService.h index 2de7673ed4e5..068ae84c09db 100644 --- a/intl/locale/LocaleService.h +++ b/intl/locale/LocaleService.h @@ -57,30 +57,13 @@ public: * Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"] * * Usage: - * nsTArray appLocales; - * LocaleService::GetInstance()->GetAppLocales(appLocales); + * nsTArray appLocales; + * LocaleService::GetInstance()->GetAppLocales(appLocales); + * + * (See mozILocaleService.idl for a JS-callable version of this.) */ void GetAppLocales(nsTArray& aRetVal); - /** - * Returns the best locale that the application should be localized to. - * - * The result is a valid locale IDs and it should be - * used for all APIs that do not handle language negotiation. - * - * Where possible, GetAppLocales should be preferred over this API and - * all callsites should handle some form of "best effort" language - * negotiation to respect user preferences in case the use case does - * not have data for the first locale in the list. - * - * Example: "zh-Hans-HK" - * - * Usage: - * nsAutoCString appLocale; - * LocaleService::GetInstance()->GetAppLocale(appLocale); - */ - void GetAppLocale(nsACString& aRetVal); - /** * Triggers a refresh of the language negotiation process. * diff --git a/intl/locale/mozILocaleService.idl b/intl/locale/mozILocaleService.idl index 9e517bcb7053..68705578f687 100644 --- a/intl/locale/mozILocaleService.idl +++ b/intl/locale/mozILocaleService.idl @@ -16,6 +16,32 @@ [scriptable, uuid(C27F8983-B48B-4D1A-92D7-FEB8106F212D)] interface mozILocaleService : nsISupports { + /** + * Returns a list of locales that the application should be localized to. + * + * The result is a sorted list of valid locale IDs and it should be + * used for all APIs that accept list of locales, like ECMA402 and L10n APIs. + * + * This API always returns at least one locale. + * + * Example: ["en-US", "de", "pl", "sr-Cyrl", "zh-Hans-HK"] + * + * (See LocaleService.h for a more C++-friendly version of this.) + */ [implicit_jscontext] jsval getAppLocales(); - [implicit_jscontext] ACString getAppLocale(); + + /** + * Returns the best locale that the application should be localized to. + * + * The result is a valid locale ID and it should be + * used for all APIs that do not handle language negotiation. + * + * Where possible, getAppLocales() should be preferred over this API and + * all callsites should handle some form of "best effort" language + * negotiation to respect user preferences in case the use case does + * not have data for the first locale in the list. + * + * Example: "zh-Hans-HK" + */ + ACString getAppLocale(); }; From 1590bde22798d57e2af3df5fd75be040950756b9 Mon Sep 17 00:00:00 2001 From: Shu-yu Guo Date: Wed, 8 Feb 2017 13:17:12 -0800 Subject: [PATCH 004/112] Bug 1304553 - Fix computing optimized out module frame environments in RematerializedFrame. (r=jandem) --- js/src/jit-test/tests/debug/bug1304553.js | 21 +++++++++++++++++++++ js/src/jit/JitFrameIterator.h | 1 + js/src/jit/JitFrames.cpp | 9 +++++++++ 3 files changed, 31 insertions(+) create mode 100644 js/src/jit-test/tests/debug/bug1304553.js diff --git a/js/src/jit-test/tests/debug/bug1304553.js b/js/src/jit-test/tests/debug/bug1304553.js new file mode 100644 index 000000000000..08a97d909705 --- /dev/null +++ b/js/src/jit-test/tests/debug/bug1304553.js @@ -0,0 +1,21 @@ +var dbgGlobal = newGlobal(); +var dbg = new dbgGlobal.Debugger(); +dbg.addDebuggee(this); +function evalInFrame() { + var frame = dbg.getNewestFrame().older.older; + frame.eval("1"); +}; +var actual = ''; +try { + function f() { + evalInFrame(); + } +} catch (e) {} +let m = parseModule(` + actual = ''; + for (var i = 0; i < 1; ++i) + f(i); + actual; + `); +m.declarationInstantiation(); +m.evaluation(); diff --git a/js/src/jit/JitFrameIterator.h b/js/src/jit/JitFrameIterator.h index f68c6d880d6f..1c907f97339f 100644 --- a/js/src/jit/JitFrameIterator.h +++ b/js/src/jit/JitFrameIterator.h @@ -805,6 +805,7 @@ class InlineFrameIterator return si_; } bool isFunctionFrame() const; + bool isModuleFrame() const; bool isConstructing() const; JSObject* environmentChain(MaybeReadFallback& fallback) const { diff --git a/js/src/jit/JitFrames.cpp b/js/src/jit/JitFrames.cpp index d2b47531df44..395b9f9a7211 100644 --- a/js/src/jit/JitFrames.cpp +++ b/js/src/jit/JitFrames.cpp @@ -2476,6 +2476,9 @@ InlineFrameIterator::computeEnvironmentChain(const Value& envChainValue, if (isFunctionFrame()) return callee(fallback)->environment(); + if (isModuleFrame()) + return script()->module()->environment(); + // Ion does not handle non-function scripts that have anything other than // the global on their env chain. MOZ_ASSERT(!script()->isForEval()); @@ -2489,6 +2492,12 @@ InlineFrameIterator::isFunctionFrame() const return !!calleeTemplate_; } +bool +InlineFrameIterator::isModuleFrame() const +{ + return script()->module(); +} + MachineState MachineState::FromBailout(RegisterDump::GPRArray& regs, RegisterDump::FPUArray& fpregs) { From b59f5ef84566f2e3e869ae7734cd92605ed40245 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 3 Feb 2017 10:34:35 +1100 Subject: [PATCH 005/112] Bug 1126576 (part 1) - Remove refcounting from PseudoStack. r=mstange. PseudoStack lifetimes are predictable because they match thread lifetimes. There is no need for refcounting. This patch: - Removes the refcounting, along with StackOwningThreadInfo. - Makes PseudoStack's ctor and dtor public, and removes the Create() method. - Changes popAndMaybeDelete() to pop(). - Removes PseudoStack::isEmpty(), which is dead. - Adds various comments to make clear how things now work. --HG-- extra : rebase_source : 3a135fcf137997a6fbc09b408ff28ee846217e63 --- tools/profiler/core/Sampler.cpp | 6 +- tools/profiler/core/ThreadInfo.h | 9 -- tools/profiler/core/platform.cpp | 50 +++------- tools/profiler/public/GeckoProfiler.h | 19 +++- tools/profiler/public/PseudoStack.h | 95 +++++-------------- .../tests/gtest/ThreadProfileTest.cpp | 8 +- 6 files changed, 62 insertions(+), 125 deletions(-) diff --git a/tools/profiler/core/Sampler.cpp b/tools/profiler/core/Sampler.cpp index fe7f2ed6fd4d..90da054ece98 100644 --- a/tools/profiler/core/Sampler.cpp +++ b/tools/profiler/core/Sampler.cpp @@ -286,6 +286,8 @@ Sampler::~Sampler() // We've stopped profiling. We no longer need to retain // information for an old thread. if (info->IsPendingDelete()) { + // The stack was nulled when SetPendingDelete() was called. + MOZ_ASSERT(!info->Stack()); delete info; sRegisteredThreads->erase(sRegisteredThreads->begin() + i); i--; @@ -366,8 +368,8 @@ Sampler::RegisterCurrentThread(const char* aName, } } - ThreadInfo* info = new StackOwningThreadInfo(aName, id, - aIsMainThread, aPseudoStack, stackTop); + ThreadInfo* info = + new ThreadInfo(aName, id, aIsMainThread, aPseudoStack, stackTop); // XXX: this is an off-main-thread use of gSampler if (gSampler) { diff --git a/tools/profiler/core/ThreadInfo.h b/tools/profiler/core/ThreadInfo.h index 9c96d59c8dfd..a978a3b87f33 100644 --- a/tools/profiler/core/ThreadInfo.h +++ b/tools/profiler/core/ThreadInfo.h @@ -117,13 +117,4 @@ public: #endif }; -// Just like ThreadInfo, but owns a reference to the PseudoStack. -class StackOwningThreadInfo : public ThreadInfo { - public: - StackOwningThreadInfo(const char* aName, int aThreadId, bool aIsMainThread, PseudoStack* aPseudoStack, void* aStackTop); - virtual ~StackOwningThreadInfo(); - - virtual void SetPendingDelete(); -}; - #endif diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp index 1cddb7ace8fb..a861acba71e5 100644 --- a/tools/profiler/core/platform.cpp +++ b/tools/profiler/core/platform.cpp @@ -107,33 +107,6 @@ static mozilla::StaticAutoPtr // profiler_register_thread. static const char * gGeckoThreadName = "GeckoMain"; -StackOwningThreadInfo::StackOwningThreadInfo(const char* aName, int aThreadId, - bool aIsMainThread, - PseudoStack* aPseudoStack, - void* aStackTop) - : ThreadInfo(aName, aThreadId, aIsMainThread, aPseudoStack, aStackTop) -{ - aPseudoStack->ref(); -} - -StackOwningThreadInfo::~StackOwningThreadInfo() -{ - PseudoStack* stack = Stack(); - if (stack) { - stack->deref(); - } -} - -void -StackOwningThreadInfo::SetPendingDelete() -{ - PseudoStack* stack = Stack(); - if (stack) { - stack->deref(); - } - ThreadInfo::SetPendingDelete(); -} - ProfilerMarker::ProfilerMarker(const char* aMarkerName, ProfilerMarkerPayload* aPayload, double aTime) @@ -455,7 +428,7 @@ profiler_init(void* stackTop) Sampler::Startup(); - PseudoStack *stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); tlsPseudoStack.set(stack); bool isMainThread = true; @@ -536,8 +509,9 @@ profiler_shutdown() Sampler::Shutdown(); - PseudoStack *stack = tlsPseudoStack.get(); - stack->deref(); + // We just called Sampler::Shutdown() which kills all the ThreadInfos in + // sRegisteredThreads, so it is safe the delete the PseudoStack. + delete tlsPseudoStack.get(); tlsPseudoStack.set(nullptr); #ifdef MOZ_TASK_TRACER @@ -1013,7 +987,7 @@ profiler_register_thread(const char* aName, void* aGuessStackTop) #endif MOZ_ASSERT(tlsPseudoStack.get() == nullptr); - PseudoStack* stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); tlsPseudoStack.set(stack); bool isMainThread = is_main_thread_name(aName); void* stackTop = GetStackTop(aGuessStackTop); @@ -1029,14 +1003,14 @@ profiler_unregister_thread() return; } - PseudoStack *stack = tlsPseudoStack.get(); - if (!stack) { - return; - } - stack->deref(); - tlsPseudoStack.set(nullptr); - Sampler::UnregisterCurrentThread(); + + // We just called Sampler::UnregisterCurrentThread() which cuts the + // ThreadInfo's PseudoStack pointer (either nulling it via SetPendingDelete() + // or by deleting the ThreadInfo altogether), so it is safe to delete the + // PseudoStack. + delete tlsPseudoStack.get(); + tlsPseudoStack.set(nullptr); } void diff --git a/tools/profiler/public/GeckoProfiler.h b/tools/profiler/public/GeckoProfiler.h index 8d4a2c0c17cc..da83409ecc7c 100644 --- a/tools/profiler/public/GeckoProfiler.h +++ b/tools/profiler/public/GeckoProfiler.h @@ -312,7 +312,22 @@ class Sampler; class nsISupports; class ProfilerMarkerPayload; -extern MOZ_THREAD_LOCAL(PseudoStack *) tlsPseudoStack; +// Each thread gets its own PseudoStack on thread creation, which is then +// destroyed on thread destruction. (GeckoProfilerInitRAII handles this for the +// main thread and AutoProfileRegister handles it for others threads.) +// tlsPseudoStack is the owning reference. Other non-owning references to it +// are handed out as follows. +// +// - ThreadInfo has a long-lived one, which we must ensure is nulled or +// destroyed before the PseudoStack is destroyed. +// +// - profiler_call_{enter,exit}() call pairs temporarily get one. RAII classes +// ensure these calls are balanced, and they occur on the thread itself, +// which means they are necessarily bounded by the lifetime of the thread, +// which ensures they can't be used after the PseudoStack is destroyed. +// +extern MOZ_THREAD_LOCAL(PseudoStack*) tlsPseudoStack; + extern Sampler* gSampler; extern bool stack_key_initialized; @@ -363,7 +378,7 @@ profiler_call_exit(void* aHandle) return; PseudoStack *stack = (PseudoStack*)aHandle; - stack->popAndMaybeDelete(); + stack->pop(); } void profiler_add_marker(const char *aMarker, diff --git a/tools/profiler/public/PseudoStack.h b/tools/profiler/public/PseudoStack.h index 30e5bc9ef22f..57eb3a673add 100644 --- a/tools/profiler/public/PseudoStack.h +++ b/tools/profiler/public/PseudoStack.h @@ -222,10 +222,25 @@ void ProfilerJSEventMarker(const char *event); struct PseudoStack { public: - // Create a new PseudoStack and acquire a reference to it. - static PseudoStack *create() + PseudoStack() + : mStackPointer(0) + , mSleepId(0) + , mSleepIdObserved(0) + , mSleeping(false) + , mContext(nullptr) + , mStartJSSampling(false) + , mPrivacyMode(false) { - return new PseudoStack(); + MOZ_COUNT_CTOR(PseudoStack); + } + + ~PseudoStack() { + MOZ_COUNT_DTOR(PseudoStack); + + // The label macros keep a reference to the PseudoStack to avoid a TLS + // access. If these are somehow not all cleared we will get a + // use-after-free so better to crash now. + MOZ_RELEASE_ASSERT(mStackPointer == 0); } // This is called on every profiler restart. Put things that should happen at that time here. @@ -263,13 +278,6 @@ public: return; } - // In order to ensure this object is kept alive while it is - // active, we acquire a reference at the outermost push. This is - // released by the corresponding pop. - if (mStackPointer == 0) { - ref(); - } - volatile StackEntry &entry = mStack[mStackPointer]; // Make sure we increment the pointer after the name has @@ -290,24 +298,9 @@ public: mStackPointer++; } - // Pop the stack. If the stack is empty and all other references to - // this PseudoStack have been dropped, then the PseudoStack is - // deleted and "false" is returned. Otherwise "true" is returned. - bool popAndMaybeDelete() - { - mStackPointer--; - if (mStackPointer == 0) { - // Release our self-owned reference count. See 'push'. - deref(); - return false; - } else { - return true; - } - } - bool isEmpty() - { - return mStackPointer == 0; - } + // Pop the stack. + void pop() { mStackPointer--; } + uint32_t stackSize() const { return sMin(mStackPointer, mozilla::sig_safe_t(mozilla::ArrayLength(mStack))); @@ -335,6 +328,7 @@ public: if (mStartJSSampling) enableJSSampling(); } + void enableJSSampling() { if (mContext) { js::EnableContextProfilingStack(mContext, true); @@ -344,10 +338,12 @@ public: mStartJSSampling = true; } } + void jsOperationCallback() { if (mStartJSSampling) enableJSSampling(); } + void disableJSSampling() { mStartJSSampling = false; if (mContext) @@ -372,34 +368,8 @@ public: // Keep a list of active checkpoints StackEntry volatile mStack[1024]; - private: - - // A PseudoStack can only be created via the "create" method. - PseudoStack() - : mStackPointer(0) - , mSleepId(0) - , mSleepIdObserved(0) - , mSleeping(false) - , mRefCnt(1) - , mContext(nullptr) - , mStartJSSampling(false) - , mPrivacyMode(false) - { - MOZ_COUNT_CTOR(PseudoStack); - } - - // A PseudoStack can only be deleted via deref. - ~PseudoStack() { - MOZ_COUNT_DTOR(PseudoStack); - if (mStackPointer != 0) { - // We're releasing the pseudostack while it's still in use. - // The label macros keep a non ref counted reference to the - // stack to avoid a TLS. If these are not all cleared we will - // get a use-after-free so better to crash now. - abort(); - } - } +private: // No copying. PseudoStack(const PseudoStack&) = delete; void operator=(const PseudoStack&) = delete; @@ -418,10 +388,6 @@ public: mozilla::Atomic mSleepIdObserved; // Keeps tack of whether the thread is sleeping or not (1 when sleeping 0 when awake) mozilla::Atomic mSleeping; - // This class is reference counted because it must be kept alive by - // the ThreadInfo, by the reference from tlsPseudoStack, and by the - // current thread when callbacks are in progress. - mozilla::Atomic mRefCnt; public: // The context which is being sampled @@ -459,17 +425,6 @@ public: bool isSleeping() { return !!mSleeping; } - - void ref() { - ++mRefCnt; - } - - void deref() { - int newValue = --mRefCnt; - if (newValue == 0) { - delete this; - } - } }; #endif diff --git a/tools/profiler/tests/gtest/ThreadProfileTest.cpp b/tools/profiler/tests/gtest/ThreadProfileTest.cpp index e9e27eaf0bb6..a7f04bca329e 100644 --- a/tools/profiler/tests/gtest/ThreadProfileTest.cpp +++ b/tools/profiler/tests/gtest/ThreadProfileTest.cpp @@ -10,7 +10,7 @@ // Make sure we can initialize our thread profile TEST(ThreadProfile, Initialization) { - PseudoStack* stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); Thread::tid_t tid = 1000; ThreadInfo info("testThread", tid, true, stack, nullptr); RefPtr pb = new ProfileBuffer(10); @@ -19,7 +19,7 @@ TEST(ThreadProfile, Initialization) { // Make sure we can record one tag and read it TEST(ThreadProfile, InsertOneTag) { - PseudoStack* stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); Thread::tid_t tid = 1000; ThreadInfo info("testThread", tid, true, stack, nullptr); RefPtr pb = new ProfileBuffer(10); @@ -31,7 +31,7 @@ TEST(ThreadProfile, InsertOneTag) { // See if we can insert some tags TEST(ThreadProfile, InsertTagsNoWrap) { - PseudoStack* stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); Thread::tid_t tid = 1000; ThreadInfo info("testThread", tid, true, stack, nullptr); RefPtr pb = new ProfileBuffer(100); @@ -50,7 +50,7 @@ TEST(ThreadProfile, InsertTagsNoWrap) { // See if wrapping works as it should in the basic case TEST(ThreadProfile, InsertTagsWrap) { - PseudoStack* stack = PseudoStack::create(); + PseudoStack* stack = new PseudoStack(); Thread::tid_t tid = 1000; // we can fit only 24 tags in this buffer because of the empty slot int tags = 24; From b22d13f6893528a20a66c08f17b3a2224348c25b Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Fri, 3 Feb 2017 10:34:36 +1100 Subject: [PATCH 006/112] Bug 1126576 (part 2) - Remove redundant check from profiler_init(). r=mstange. --HG-- extra : rebase_source : 24b458b51352cdd578812c8db8c3fb245e72bf42 --- tools/profiler/core/platform.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/profiler/core/platform.cpp b/tools/profiler/core/platform.cpp index a861acba71e5..8c22f0e3012d 100644 --- a/tools/profiler/core/platform.cpp +++ b/tools/profiler/core/platform.cpp @@ -432,9 +432,8 @@ profiler_init(void* stackTop) tlsPseudoStack.set(stack); bool isMainThread = true; - Sampler::RegisterCurrentThread(isMainThread ? - gGeckoThreadName : "Application Thread", - stack, isMainThread, stackTop); + Sampler::RegisterCurrentThread(gGeckoThreadName, stack, isMainThread, + stackTop); // Read interval settings from MOZ_PROFILER_INTERVAL and stack-scan // threshhold from MOZ_PROFILER_STACK_SCAN. From 95d6392cf9f0d2795e21fa4fd733884744d0d0bb Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 13:18:40 +0100 Subject: [PATCH 007/112] Bug 1337702 - Implement URL's toJSON(), r=smaug --- dom/url/URL.h | 6 ++++++ dom/url/tests/test_url.html | 6 ++++++ dom/webidl/URL.webidl | 5 ++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/dom/url/URL.h b/dom/url/URL.h index 9d40ca9cf03c..9080bca79471 100644 --- a/dom/url/URL.h +++ b/dom/url/URL.h @@ -151,6 +151,12 @@ public: GetHref(aRetval, aRv); } + void + ToJSON(nsAString& aResult, ErrorResult& aRv) const + { + GetHref(aResult, aRv); + } + // URLSearchParamsObserver void URLSearchParamsUpdated(URLSearchParams* aSearchParams) override; diff --git a/dom/url/tests/test_url.html b/dom/url/tests/test_url.html index 533a79f402ec..73e75667d8db 100644 --- a/dom/url/tests/test_url.html +++ b/dom/url/tests/test_url.html @@ -450,5 +450,11 @@ url = new URL("data:text/html,Link"); is(url.href, "data:text/html,Link"); + + diff --git a/dom/webidl/URL.webidl b/dom/webidl/URL.webidl index 53a6fa7aa3f9..bab0864dff79 100644 --- a/dom/webidl/URL.webidl +++ b/dom/webidl/URL.webidl @@ -44,9 +44,12 @@ interface URL { attribute USVString pathname; [Throws] attribute USVString search; - readonly attribute URLSearchParams searchParams; + [SameObject] readonly attribute URLSearchParams searchParams; [Throws] attribute USVString hash; + + [Throws] + USVString toJSON(); }; partial interface URL { From c72349ed5a22945e5dcf38bc54dda0e61fe79c49 Mon Sep 17 00:00:00 2001 From: Ted Mielczarek Date: Tue, 7 Feb 2017 10:57:23 -0500 Subject: [PATCH 008/112] bug 1337393 - add a toolchain task for building libdmg-hfsplus tools, build them from a newer branch r=callek There's not a single well-maintained fork of libdmg-hfsplus, but there are scattered forks with various fixes. The fork + branch I've chosen here seems to have collected the most fixes, including a specific fix we need for repacking DMG files on Linux: https://github.com/andreas56/libdmg-hfsplus/commit/5c92af354b279809bc64f8013805ca0b51b29960 MozReview-Commit-ID: 3RB6gfgQmCA --HG-- extra : rebase_source : 40d145852a3876a983f1de7cacbc5ce5e68062a8 --- taskcluster/ci/toolchain/linux.yml | 20 +++++++++++ .../scripts/misc/build-libdmg-hfsplus.sh | 35 +++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100755 taskcluster/scripts/misc/build-libdmg-hfsplus.sh diff --git a/taskcluster/ci/toolchain/linux.yml b/taskcluster/ci/toolchain/linux.yml index a07ed2942d14..b4ddf12141d7 100644 --- a/taskcluster/ci/toolchain/linux.yml +++ b/taskcluster/ci/toolchain/linux.yml @@ -132,3 +132,23 @@ linux64-hfsplus/opt: - 'build/unix/build-hfsplus/**' - 'taskcluster/scripts/misc/build-hfsplus-linux.sh' - 'taskcluster/taskgraph/transforms/job/toolchain.py' + +linux64-libdmg/opt: + description: "libdmg-hfsplus toolchain build" + treeherder: + kind: build + platform: linux64/opt + symbol: Cc(libdmg) + tier: 1 + run: + using: toolchain-script + script: build-libdmg-hfsplus.sh + worker-type: aws-provisioner-v1/gecko-{level}-b-linux + worker: + implementation: docker-worker + docker-image: {in-tree: desktop-build} + max-run-time: 36000 + when: + files-changed: + - 'taskcluster/scripts/misc/build-libdmg-hfsplus.sh' + - 'taskcluster/taskgraph/transforms/job/toolchain.py' diff --git a/taskcluster/scripts/misc/build-libdmg-hfsplus.sh b/taskcluster/scripts/misc/build-libdmg-hfsplus.sh new file mode 100755 index 000000000000..37357fc720c5 --- /dev/null +++ b/taskcluster/scripts/misc/build-libdmg-hfsplus.sh @@ -0,0 +1,35 @@ +#!/bin/bash +set -x -e -v + +# This script is for building libdmg-hfsplus to get the `dmg` and `hfsplus` +# tools for producing DMG archives on Linux. + +WORKSPACE=$HOME/workspace +STAGE=$WORKSPACE/dmg +UPLOAD_DIR=$WORKSPACE/artifacts + +# There's no single well-maintained fork of libdmg-hfsplus, but this +# branch currently has some fixes we need. +: LIBDMG_REPOSITORY ${LIBDMG_REPOSITORY:=https://github.com/andreas56/libdmg-hfsplus} +# This is the current head of the `from_zarvox` branch. +: LIBDMG_REV ${LIBDMG_REV:=81dd75fd1549b24bf8af9736ac25518b367e6b63} + +mkdir -p $UPLOAD_DIR $STAGE + +cd $WORKSPACE +tc-vcs checkout --force-clone libdmg-hfsplus $LIBDMG_REPOSITORY $LIBDMG_REPOSITORY $LIBDMG_REV +cd libdmg-hfsplus +# Make a source archive +git archive ${LIBDMG_REV} | xz > $UPLOAD_DIR/libdmg-hfsplus.tar.xz +cmake . +make -j$(getconf _NPROCESSORS_ONLN) + +# We only need the dmg and hfsplus tools. +strip dmg/dmg hfs/hfsplus +cp dmg/dmg hfs/hfsplus $STAGE + +cat >$STAGE/README< $UPLOAD_DIR/dmg.tar.xz From 2b1a1f6be4fa9584c45ab648b197290f057d679b Mon Sep 17 00:00:00 2001 From: Ted Mielczarek Date: Wed, 8 Feb 2017 06:30:50 -0500 Subject: [PATCH 009/112] bug 1337393 - update libdmg-hfsplus tools in tooltool. r=mshal MozReview-Commit-ID: 7KnX3Mjlq13 --HG-- extra : rebase_source : fd3d8e22e8fdfbef892d92b5447981ffa73ae86d --- .../config/tooltool-manifests/macosx64/cross-releng.manifest | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/browser/config/tooltool-manifests/macosx64/cross-releng.manifest b/browser/config/tooltool-manifests/macosx64/cross-releng.manifest index 08d6d5412c10..727586ef34ad 100644 --- a/browser/config/tooltool-manifests/macosx64/cross-releng.manifest +++ b/browser/config/tooltool-manifests/macosx64/cross-releng.manifest @@ -33,9 +33,10 @@ "size": 1020700 }, { -"size": 57060, +"version": "https://github.com/andreas56/libdmg-hfsplus rev 81dd75fd1549b24bf8af9736ac25518b367e6b63", +"size": 62032, "visibility": "public", -"digest": "9649ca595f4cf088d118da26201f92cc94cda7af49c7c48112ee31cd13c83b2935b3e145de9dd78060cff2480b4c2e7ff5fb24235876956fed13c87852071998", +"digest": "9073c41034784eb8823ec817aed42bbc65c8da63ad3fac572726fa48b36320ee302ca8f51b23576e7fdbeec6ab300610d0c58bbd9c52024577dfdb13d95aa2ec", "algorithm": "sha512", "unpack": true, "filename": "dmg.tar.xz" From 3ca7c3950fdd724441c2b952f11b44499d74e708 Mon Sep 17 00:00:00 2001 From: "Thinker K.F. Li" Date: Wed, 8 Feb 2017 23:17:00 +0100 Subject: [PATCH 010/112] Bug 1313753 - Update overflow at the establisher of the 3D rendering context. r=dbaron --- layout/base/OverflowChangedTracker.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/layout/base/OverflowChangedTracker.h b/layout/base/OverflowChangedTracker.h index e53a0804b516..67244aaad2c7 100644 --- a/layout/base/OverflowChangedTracker.h +++ b/layout/base/OverflowChangedTracker.h @@ -140,6 +140,14 @@ public: // children. if (overflowChanged) { nsIFrame *parent = frame->GetParent(); + while (parent && + parent != mSubtreeRoot && + parent->Combines3DTransformWithAncestors()) { + // Passing frames in between the frame and the establisher of + // 3D rendering context. + parent = parent->GetParent(); + MOZ_ASSERT(parent, "Root frame should never return true for Combines3DTransformWithAncestors"); + } if (parent && parent != mSubtreeRoot) { Entry* parentEntry = mEntryList.find(Entry(parent, entry->mDepth - 1)); if (parentEntry) { From 6136ea7911224fb7e87e33348a08aa2caa0eb1d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Wed, 8 Feb 2017 13:13:05 +0200 Subject: [PATCH 011/112] Bug 1323825 - Part 1: Synchronize step number comments with latest ES2017 draft. r=evilpie --- js/src/jsarray.cpp | 117 ++++++++++++++++++++++++++++----------------- 1 file changed, 73 insertions(+), 44 deletions(-) diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp index 8c50368ffaad..d564b0efd5ce 100644 --- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -1060,8 +1060,10 @@ ArrayJoinDenseKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_ if (!CheckForInterrupt(cx)) return DenseElementResult::Failure; + // Step 7.b. const Value& elem = GetBoxedOrUnboxedDenseElement(obj, *numProcessed); + // Steps 7.c-d. if (elem.isString()) { if (!sb.append(elem.toString())) return DenseElementResult::Failure; @@ -1085,6 +1087,7 @@ ArrayJoinDenseKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_ MOZ_ASSERT(elem.isMagic(JS_ELEMENTS_HOLE) || elem.isNullOrUndefined()); } + // Steps 7.a, 7.e. if (++(*numProcessed) != length && !sepOp(cx, sb)) return DenseElementResult::Failure; } @@ -1117,6 +1120,7 @@ static bool ArrayJoinKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_t length, StringBuffer& sb) { + // Step 6. uint32_t i = 0; if (!ObjectMayHaveExtraIndexedProperties(obj)) { @@ -1126,20 +1130,25 @@ ArrayJoinKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_t len return false; } + // Step 7. if (i != length) { RootedValue v(cx); while (i < length) { if (!CheckForInterrupt(cx)) return false; + // Step 7.b. bool hole; if (!GetElement(cx, obj, i, &hole, &v)) return false; + + // Steps 7.c-d. if (!hole && !v.isNullOrUndefined()) { if (!ValueToStringBuffer(cx, v, sb)) return false; } + // Steps 7.a, 7.e. if (++i != length && !sepOp(cx, sb)) return false; } @@ -1148,7 +1157,8 @@ ArrayJoinKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_t len return true; } -/* ES5 15.4.4.5 */ +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.13 Array.prototype.join ( separator ) bool js::array_join(JSContext* cx, unsigned argc, Value* vp) { @@ -1157,7 +1167,7 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.join"); CallArgs args = CallArgsFromVp(argc, vp); - // Step 1 + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; @@ -1171,12 +1181,12 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) return true; } - // Steps 2 and 3 + // Step 2. uint32_t length; if (!GetLengthProperty(cx, obj, &length)) return false; - // Steps 4 and 5 + // Steps 3-4. RootedLinearString sepstr(cx); if (args.hasDefined(0)) { JSString *s = ToString(cx, args[0]); @@ -1189,9 +1199,7 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) sepstr = cx->names().comma; } - // Step 6 is implicit in the loops below. - - // An optimized version of a special case of steps 7-11: when length==1 and + // An optimized version of a special case of steps 5-8: when length==1 and // the 0th element is a string, ToString() of that element is a no-op and // so it can be immediately returned as the result. if (length == 1 && GetAnyBoxedOrUnboxedInitializedLength(obj) == 1) { @@ -1202,6 +1210,7 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) } } + // Step 5. StringBuffer sb(cx); if (sepstr->hasTwoByteChars() && !sb.ensureTwoByteChars()) return false; @@ -1218,7 +1227,7 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) if (length > 0 && !sb.reserve(res.value())) return false; - // Various optimized versions of steps 7-10. + // Various optimized versions of steps 6-7. if (seplen == 0) { EmptySeparatorOp op; if (!ArrayJoinKernel(cx, op, obj, length, sb)) @@ -1240,7 +1249,7 @@ js::array_join(JSContext* cx, unsigned argc, Value* vp) return false; } - // Step 11 + // Step 8. JSString *str = sb.finishString(); if (!str) return false; @@ -1407,15 +1416,20 @@ ArrayReverseDenseKernel(JSContext* cx, HandleObject obj, uint32_t length) DefineBoxedOrUnboxedFunctor3(ArrayReverseDenseKernel, JSContext*, HandleObject, uint32_t); +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.21 Array.prototype.reverse ( ) bool js::array_reverse(JSContext* cx, unsigned argc, Value* vp) { AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.reverse"); CallArgs args = CallArgsFromVp(argc, vp); + + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; + // Step 2. uint32_t len; if (!GetLengthProperty(cx, obj, &len)) return false; @@ -1434,6 +1448,7 @@ js::array_reverse(JSContext* cx, unsigned argc, Value* vp) } } + // Steps 3-5. RootedValue lowval(cx), hival(cx); for (uint32_t i = 0, half = len / 2; i < half; i++) { bool hole, hole2; @@ -1463,6 +1478,8 @@ js::array_reverse(JSContext* cx, unsigned argc, Value* vp) // No action required. } } + + // Step 6. args.rval().setObject(*obj); return true; } @@ -2072,19 +2089,20 @@ js::NewbornArrayPush(JSContext* cx, HandleObject obj, const Value& v) return true; } -/* ES5 15.4.4.7 */ +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.18 Array.prototype.push ( ...items ) bool js::array_push(JSContext* cx, unsigned argc, Value* vp) { AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.push"); CallArgs args = CallArgsFromVp(argc, vp); - /* Step 1. */ + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; - /* Steps 2-3. */ + // Step 2. uint32_t length; if (!GetLengthProperty(cx, obj, &length)) return false; @@ -2112,52 +2130,53 @@ js::array_push(JSContext* cx, unsigned argc, Value* vp) } } - /* Steps 4-5. */ + // Steps 3-6. if (!SetArrayElements(cx, obj, length, args.length(), args.array())) return false; - /* Steps 6-7. */ + // Steps 7-8. double newlength = length + double(args.length()); args.rval().setNumber(newlength); return SetLengthProperty(cx, obj, newlength); } -/* ES6 20130308 draft 15.4.4.6. */ +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.17 Array.prototype.pop ( ) bool js::array_pop(JSContext* cx, unsigned argc, Value* vp) { AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.pop"); CallArgs args = CallArgsFromVp(argc, vp); - /* Step 1. */ + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; - /* Steps 2-3. */ + // Step 2. uint32_t index; if (!GetLengthProperty(cx, obj, &index)) return false; - /* Steps 4-5. */ + // Steps 3-4. if (index == 0) { - /* Step 4b. */ + // Step 3.b. args.rval().setUndefined(); } else { - /* Step 5a. */ + // Steps 4.a-b. index--; - /* Step 5b, 5e. */ + // Steps 4.c, 4.f. bool hole; if (!GetElement(cx, obj, index, &hole, args.rval())) return false; - /* Step 5c. */ + // Steps 4.d. if (!hole && !DeletePropertyOrThrow(cx, obj, index)) return false; } - /* Steps 4a, 5d. */ + // Steps 3.a, 4.e. return SetLengthProperty(cx, obj, index); } @@ -2256,30 +2275,31 @@ ArrayShiftDenseKernel(JSContext* cx, HandleObject obj, MutableHandleValue rval) DefineBoxedOrUnboxedFunctor3(ArrayShiftDenseKernel, JSContext*, HandleObject, MutableHandleValue); -/* ES5 15.4.4.9 */ +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.22 Array.prototype.shift ( ) bool js::array_shift(JSContext* cx, unsigned argc, Value* vp) { AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.shift"); CallArgs args = CallArgsFromVp(argc, vp); - /* Step 1. */ + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; - /* Steps 2-3. */ + // Step 2. uint32_t len; if (!GetLengthProperty(cx, obj, &len)) return false; - /* Step 4. */ + // Step 3. if (len == 0) { - /* Step 4a. */ + // Step 3.a. if (!SetLengthProperty(cx, obj, 0)) return false; - /* Step 4b. */ + // Step 3.b. args.rval().setUndefined(); return true; } @@ -2296,12 +2316,12 @@ js::array_shift(JSContext* cx, unsigned argc, Value* vp) return SetLengthProperty(cx, obj, newlen); } - /* Steps 5, 10. */ + // Steps 4, 9. bool hole; if (!GetElement(cx, obj, 0, &hole, args.rval())) return false; - /* Steps 6-7. */ + // Steps 5-6. RootedValue value(cx); for (uint32_t i = 0; i < newlen; i++) { if (!CheckForInterrupt(cx)) @@ -2317,28 +2337,33 @@ js::array_shift(JSContext* cx, unsigned argc, Value* vp) } } - /* Step 8. */ + // Step 7. if (!DeletePropertyOrThrow(cx, obj, newlen)) return false; - /* Step 9. */ + // Step 8. return SetLengthProperty(cx, obj, newlen); } +// ES2017 draft rev 1b0184bc17fc09a8ddcf4aeec9b6d9fcac4eafce +// 22.1.3.29 Array.prototype.unshift ( ...items ) bool js::array_unshift(JSContext* cx, unsigned argc, Value* vp) { AutoGeckoProfilerEntry pseudoFrame(cx->runtime(), "Array.prototype.unshift"); CallArgs args = CallArgsFromVp(argc, vp); + + // Step 1. RootedObject obj(cx, ToObject(cx, args.thisv())); if (!obj) return false; + // Step 2. uint32_t length; if (!GetLengthProperty(cx, obj, &length)) return false; - double newlen = length; + // Steps 3-4. if (args.length() > 0) { /* Slide up the array to make room for all args at the bottom. */ if (length > 0) { @@ -2374,6 +2399,7 @@ js::array_unshift(JSContext* cx, unsigned argc, Value* vp) optimized = true; } while (false); + // Steps 4.b-c. if (!optimized) { uint32_t last = length; double upperIndex = double(last) + args.length(); @@ -2396,17 +2422,20 @@ js::array_unshift(JSContext* cx, unsigned argc, Value* vp) } } + // Steps 4.d-f. /* Copy from args to the bottom of the array. */ if (!SetArrayElements(cx, obj, 0, args.length(), args.array())) return false; - - newlen += args.length(); } - if (!SetLengthProperty(cx, obj, newlen)) + + // Step 5. + double newlength = length + double(args.length()); + if (!SetLengthProperty(cx, obj, newlength)) return false; + // Step 6. /* Follow Perl by returning the new array length. */ - args.rval().setNumber(newlen); + args.rval().setNumber(newlength); return true; } @@ -2458,28 +2487,28 @@ static inline bool ArraySpliceCopy(JSContext* cx, HandleObject arr, HandleObject obj, uint32_t actualStart, uint32_t actualDeleteCount) { - /* Steps 14, 15, 15.e. */ + // Steps 10, 11, 11.d. RootedValue fromValue(cx); for (uint32_t k = 0; k < actualDeleteCount; k++) { - /* Step 15.a (implicit). */ + // Step 11.a (implicit). if (!CheckForInterrupt(cx)) return false; - /* Steps 15.b-c, 15.d.i-ii. */ + // Steps 11.b, 11.c.i. bool hole; if (!GetElement(cx, obj, actualStart + k, &hole, &fromValue)) return false; - /* Step 15.d. */ + // Step 11.c. if (!hole) { - /* Step 15.d.iii-iv. */ + // Step 11.c.ii. if (!DefineElement(cx, arr, k, fromValue)) return false; } } - /* Steps 16-17. */ + // Step 12. return SetLengthProperty(cx, arr, actualDeleteCount); } From d3a48ea5fe4c62aabd465fb396925f57f15966dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Thu, 9 Feb 2017 04:27:42 -0800 Subject: [PATCH 012/112] Bug 1323825 - Part 2: Remove spec incompliant [[HasProperty]] calls in Array.prototype.{join,pop,shift}. r=evilpie --- js/src/jsarray.cpp | 86 +++++++++---------- js/src/tests/ecma_6/Array/join-no-has-trap.js | 36 ++++++++ js/src/tests/ecma_6/Array/pop-no-has-trap.js | 58 +++++++++++++ .../tests/ecma_6/Array/shift-no-has-trap.js | 64 ++++++++++++++ 4 files changed, 200 insertions(+), 44 deletions(-) create mode 100644 js/src/tests/ecma_6/Array/join-no-has-trap.js create mode 100644 js/src/tests/ecma_6/Array/pop-no-has-trap.js create mode 100644 js/src/tests/ecma_6/Array/shift-no-has-trap.js diff --git a/js/src/jsarray.cpp b/js/src/jsarray.cpp index d564b0efd5ce..c3dba404cd4f 100644 --- a/js/src/jsarray.cpp +++ b/js/src/jsarray.cpp @@ -206,24 +206,30 @@ ToId(JSContext* cx, double index, MutableHandleId id) return ValueToId(cx, HandleValue::fromMarkedLocation(&tmp), id); } -static bool -ToId(JSContext* cx, uint32_t index, MutableHandleId id) -{ - return IndexToId(cx, index, id); -} - /* - * If the property at the given index exists, get its value into location - * pointed by vp and set *hole to false. Otherwise set *hole to true and *vp - * to JSVAL_VOID. This function assumes that the location pointed by vp is - * properly rooted and can be used as GC-protected storage for temporaries. + * If the property at the given index exists, get its value into |vp| and set + * |*hole| to false. Otherwise set |*hole| to true and |vp| to Undefined. */ -static inline bool -DoGetElement(JSContext* cx, HandleObject obj, HandleObject receiver, - uint32_t index, bool* hole, MutableHandleValue vp) +static bool +GetElement(JSContext* cx, HandleObject obj, HandleObject receiver, uint32_t index, bool* hole, + MutableHandleValue vp) { + if (index < GetAnyBoxedOrUnboxedInitializedLength(obj)) { + vp.set(GetAnyBoxedOrUnboxedDenseElement(obj, index)); + if (!vp.isMagic(JS_ELEMENTS_HOLE)) { + *hole = false; + return true; + } + } + if (obj->is()) { + if (obj->as().maybeGetElement(index, vp)) { + *hole = false; + return true; + } + } + RootedId id(cx); - if (!ToId(cx, index, &id)) + if (!IndexToId(cx, index, &id)) return false; bool found; @@ -240,33 +246,27 @@ DoGetElement(JSContext* cx, HandleObject obj, HandleObject receiver, return true; } -static bool -GetElement(JSContext* cx, HandleObject obj, HandleObject receiver, - uint32_t index, bool* hole, MutableHandleValue vp) -{ - if (index < GetAnyBoxedOrUnboxedInitializedLength(obj)) { - vp.set(GetAnyBoxedOrUnboxedDenseElement(obj, uint32_t(index))); - if (!vp.isMagic(JS_ELEMENTS_HOLE)) { - *hole = false; - return true; - } - } - if (obj->is()) { - if (obj->as().maybeGetElement(uint32_t(index), vp)) { - *hole = false; - return true; - } - } - - return DoGetElement(cx, obj, receiver, index, hole, vp); -} - static inline bool GetElement(JSContext* cx, HandleObject obj, uint32_t index, bool* hole, MutableHandleValue vp) { return GetElement(cx, obj, obj, index, hole, vp); } +static bool +GetElement(JSContext* cx, HandleObject obj, uint32_t index, MutableHandleValue vp) +{ + if (index < GetAnyBoxedOrUnboxedInitializedLength(obj)) { + vp.set(GetAnyBoxedOrUnboxedDenseElement(obj, index)); + if (!vp.isMagic(JS_ELEMENTS_HOLE)) + return true; + } + if (obj->is()) { + if (obj->as().maybeGetElement(index, vp)) + return true; + } + return GetElement(cx, obj, obj, index, vp); +} + bool ElementAdder::append(JSContext* cx, HandleValue v) { @@ -1138,12 +1138,11 @@ ArrayJoinKernel(JSContext* cx, SeparatorOp sepOp, HandleObject obj, uint32_t len return false; // Step 7.b. - bool hole; - if (!GetElement(cx, obj, i, &hole, &v)) + if (!GetElement(cx, obj, i, &v)) return false; // Steps 7.c-d. - if (!hole && !v.isNullOrUndefined()) { + if (!v.isNullOrUndefined()) { if (!ValueToStringBuffer(cx, v, sb)) return false; } @@ -2167,12 +2166,11 @@ js::array_pop(JSContext* cx, unsigned argc, Value* vp) index--; // Steps 4.c, 4.f. - bool hole; - if (!GetElement(cx, obj, index, &hole, args.rval())) + if (!GetElement(cx, obj, index, args.rval())) return false; // Steps 4.d. - if (!hole && !DeletePropertyOrThrow(cx, obj, index)) + if (!DeletePropertyOrThrow(cx, obj, index)) return false; } @@ -2317,8 +2315,7 @@ js::array_shift(JSContext* cx, unsigned argc, Value* vp) } // Steps 4, 9. - bool hole; - if (!GetElement(cx, obj, 0, &hole, args.rval())) + if (!GetElement(cx, obj, 0, args.rval())) return false; // Steps 5-6. @@ -2326,6 +2323,7 @@ js::array_shift(JSContext* cx, unsigned argc, Value* vp) for (uint32_t i = 0; i < newlen; i++) { if (!CheckForInterrupt(cx)) return false; + bool hole; if (!GetElement(cx, obj, i + 1, &hole, &value)) return false; if (hole) { @@ -2406,9 +2404,9 @@ js::array_unshift(JSContext* cx, unsigned argc, Value* vp) RootedValue value(cx); do { --last, --upperIndex; - bool hole; if (!CheckForInterrupt(cx)) return false; + bool hole; if (!GetElement(cx, obj, last, &hole, &value)) return false; if (hole) { diff --git a/js/src/tests/ecma_6/Array/join-no-has-trap.js b/js/src/tests/ecma_6/Array/join-no-has-trap.js new file mode 100644 index 000000000000..16b8cbedb1ce --- /dev/null +++ b/js/src/tests/ecma_6/Array/join-no-has-trap.js @@ -0,0 +1,36 @@ +// Test that Array.prototype.join doesn't call the [[HasProperty]] internal +// method of objects. + +var log = []; +var array = []; +var proxy = new Proxy(array, new Proxy({}, { + get(t, trap, r) { + return (t, pk, ...more) => { + log.push(`${trap}:${String(pk)}`); + return Reflect[trap](t, pk, ...more); + }; + } +})); + +var result; + +result = Array.prototype.join.call(proxy); +assertEqArray(log, [ "get:length" ]); +assertEq(result, ""); + +log.length = 0; +array.push(1); + +result = Array.prototype.join.call(proxy); +assertEqArray(log, [ "get:length", "get:0" ]); +assertEq(result, "1"); + +log.length = 0; +array.push(2); + +result = Array.prototype.join.call(proxy); +assertEqArray(log, [ "get:length", "get:0", "get:1" ]); +assertEq(result, "1,2"); + +if (typeof reportCompare === "function") + reportCompare(true, true); diff --git a/js/src/tests/ecma_6/Array/pop-no-has-trap.js b/js/src/tests/ecma_6/Array/pop-no-has-trap.js new file mode 100644 index 000000000000..11bb93ddd0eb --- /dev/null +++ b/js/src/tests/ecma_6/Array/pop-no-has-trap.js @@ -0,0 +1,58 @@ +// Test that Array.prototype.pop doesn't call the [[HasProperty]] internal +// method of objects when retrieving the element at the last index. + +var log = []; +var array = []; +var proxy = new Proxy(array, new Proxy({}, { + get(t, trap, r) { + return (t, pk, ...more) => { + log.push(`${trap}:${String(pk)}`); + return Reflect[trap](t, pk, ...more); + }; + } +})); + +var result; + +result = Array.prototype.pop.call(proxy); +assertEqArray(log, [ + "get:length", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, undefined); + +log.length = 0; +array.push(1); + +result = Array.prototype.pop.call(proxy); +assertEqArray(log, [ + "get:length", + "get:0", "deleteProperty:0", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 1); + +log.length = 0; +array.push(2, 3); + +result = Array.prototype.pop.call(proxy); +assertEqArray(log, [ + "get:length", + "get:1", "deleteProperty:1", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 3); + +log.length = 0; +array.push(4, 5); + +result = Array.prototype.pop.call(proxy); +assertEqArray(log, [ + "get:length", + "get:2", "deleteProperty:2", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 5); + +if (typeof reportCompare === "function") + reportCompare(true, true); diff --git a/js/src/tests/ecma_6/Array/shift-no-has-trap.js b/js/src/tests/ecma_6/Array/shift-no-has-trap.js new file mode 100644 index 000000000000..e941ba72058d --- /dev/null +++ b/js/src/tests/ecma_6/Array/shift-no-has-trap.js @@ -0,0 +1,64 @@ +// Test that Array.prototype.shift doesn't call the [[HasProperty]] internal +// method of objects when retrieving the element at index 0. + +var log = []; +var array = []; +var proxy = new Proxy(array, new Proxy({}, { + get(t, trap, r) { + return (t, pk, ...more) => { + log.push(`${trap}:${String(pk)}`); + return Reflect[trap](t, pk, ...more); + }; + } +})); + +var result; + +result = Array.prototype.shift.call(proxy); +assertEqArray(log, [ + "get:length", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, undefined); + +log.length = 0; +array.push(1); + +result = Array.prototype.shift.call(proxy); +assertEqArray(log, [ + "get:length", + "get:0", + "deleteProperty:0", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 1); + +log.length = 0; +array.push(2, 3); + +result = Array.prototype.shift.call(proxy); +assertEqArray(log, [ + "get:length", + "get:0", + "has:1", "get:1", "set:0", "getOwnPropertyDescriptor:0", "defineProperty:0", + "deleteProperty:1", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 2); + +log.length = 0; +array.push(4, 5); + +result = Array.prototype.shift.call(proxy); +assertEqArray(log, [ + "get:length", + "get:0", + "has:1", "get:1", "set:0", "getOwnPropertyDescriptor:0", "defineProperty:0", + "has:2", "get:2", "set:1", "getOwnPropertyDescriptor:1", "defineProperty:1", + "deleteProperty:2", + "set:length", "getOwnPropertyDescriptor:length", "defineProperty:length" +]); +assertEq(result, 3); + +if (typeof reportCompare === "function") + reportCompare(true, true); From 0ecd31e904aebe2f9f30c77b380328e6502b622f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bargull?= Date: Thu, 9 Feb 2017 04:23:13 -0800 Subject: [PATCH 013/112] Bug 1336950 - Add fallback code when Intl is not present to jit-test/tests/auto-regress/bug1334573.js. r=jandem --- js/src/jit-test/tests/auto-regress/bug1334573.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/src/jit-test/tests/auto-regress/bug1334573.js b/js/src/jit-test/tests/auto-regress/bug1334573.js index caa89b118296..8ff780eb9acc 100644 --- a/js/src/jit-test/tests/auto-regress/bug1334573.js +++ b/js/src/jit-test/tests/auto-regress/bug1334573.js @@ -3,4 +3,6 @@ if (this.Intl) { addIntlExtras(Intl); addIntlExtras(Intl); +} else { + throw new Error(); } From 90e83367aeb7b2fb4ca9abc0a52b9551b92aa6bb Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Thu, 9 Feb 2017 21:11:09 +0800 Subject: [PATCH 014/112] Bug 1334768 - stylo: Test expectation adjustments for for 2017-02-09 merge. r=me MozReview-Commit-ID: AhvCAu3NYrb --- editor/reftests/reftest-stylo.list | 2 +- gfx/tests/crashtests/crashtests.list | 6 +- layout/base/crashtests/crashtests.list | 4 +- layout/generic/crashtests/crashtests.list | 6 +- layout/printing/crashtests/crashtests.list | 2 +- layout/reftests/abs-pos/reftest-stylo.list | 4 +- layout/reftests/bugs/reftest-stylo.list | 118 +++++++++--------- .../reftests/css-display/reftest-stylo.list | 4 +- .../css-transitions/reftest-stylo.list | 4 +- layout/reftests/flexbox/reftest-stylo.list | 4 +- layout/reftests/image/reftest-stylo.list | 4 +- .../margin-collapsing/reftest-stylo.list | 16 +-- layout/reftests/mathml/reftest-stylo.list | 4 +- .../pixel-rounding/reftest-stylo.list | 24 ++-- .../reftests/scoped-style/reftest-stylo.list | 2 +- .../table-background/reftest-stylo.list | 94 +++++++------- .../table-bordercollapse/reftest-stylo.list | 94 +++++++------- layout/reftests/table-dom/reftest-stylo.list | 8 +- .../reftests/table-width/reftest-stylo.list | 36 +++--- .../text-decoration/reftest-stylo.list | 6 +- layout/reftests/text/reftest-stylo.list | 4 +- .../w3c-css/received/reftest-stylo.list | 10 +- .../submitted/images3/reftest-stylo.list | 22 ++-- .../writing-mode/tables/reftest-stylo.list | 16 +-- layout/style/crashtests/crashtests.list | 2 +- layout/svg/crashtests/crashtests.list | 2 +- layout/tables/crashtests/crashtests.list | 16 +-- layout/tables/reftests/reftest-stylo.list | 16 +-- widget/cocoa/crashtests/crashtests.list | 2 +- 29 files changed, 266 insertions(+), 266 deletions(-) diff --git a/editor/reftests/reftest-stylo.list b/editor/reftests/reftest-stylo.list index 85763fb702c5..335b1c17cf9e 100644 --- a/editor/reftests/reftest-stylo.list +++ b/editor/reftests/reftest-stylo.list @@ -88,7 +88,7 @@ fails == 642800.html 642800.html fails == selection_visibility_after_reframe.html selection_visibility_after_reframe.html fails == selection_visibility_after_reframe-2.html selection_visibility_after_reframe-2.html fails == selection_visibility_after_reframe-3.html selection_visibility_after_reframe-3.html -fails == 672709.html 672709.html +== 672709.html 672709.html fails == 338427-1.html 338427-1.html fails == 674212-spellcheck.html 674212-spellcheck.html fails == 338427-2.html 338427-2.html diff --git a/gfx/tests/crashtests/crashtests.list b/gfx/tests/crashtests/crashtests.list index c57b7935651c..5467428aded8 100644 --- a/gfx/tests/crashtests/crashtests.list +++ b/gfx/tests/crashtests/crashtests.list @@ -107,9 +107,9 @@ asserts-if(stylo,1) load 766452-1.html # bug 1324700 load 766452-2.html load 768079-1.html asserts-if(stylo,2) load 783041-1.html # bug 1324661 -load 783041-2.html -asserts-if(stylo,1) load 783041-3.html # bug 1324671 -load 783041-4.html +asserts-if(stylo,2) load 783041-2.html # bug 1324661 +asserts-if(stylo,3) load 783041-3.html # bug 1324671 +asserts-if(stylo,2) load 783041-4.html # bug 1324661 load 798853.html # bug 868792 load 805760-1.html skip-if(Android) load 815489.html # bug 1216304 diff --git a/layout/base/crashtests/crashtests.list b/layout/base/crashtests/crashtests.list index b96400002bde..bdc53d5de9bf 100644 --- a/layout/base/crashtests/crashtests.list +++ b/layout/base/crashtests/crashtests.list @@ -289,7 +289,7 @@ load 468578-1.xhtml # browser does when setting up print preview, but adding them anyway. load 468645-1.xhtml load 468645-2.xhtml -load 468645-3.xhtml +asserts-if(stylo,1) load 468645-3.xhtml # bug 1337696 load 469861-1.xhtml load 469861-2.xhtml load 470851-1.xhtml @@ -413,7 +413,7 @@ skip-if(stylo) load 725535.html # bug 1323652 skip-if(stylo) load 727601.html # bug 1323652 skip-if(Android) asserts(0-2) pref(dom.disable_open_during_load,false) load 735943.html # the assertion is bug 735966, for android bug 760271 asserts(0-2) load 736389-1.xhtml # sometimes the above assertions are delayed and is reported on this test instead -load 736924-1.html +skip-if(stylo) load 736924-1.html # bug 1337695 load 749816-1.html load 763223-1.html test-pref(font.size.inflation.emPerLine,15) test-pref(font.size.inflation.lineThreshold,100) load 763702.xhtml diff --git a/layout/generic/crashtests/crashtests.list b/layout/generic/crashtests/crashtests.list index a0870de51f9c..c319f4d3af9e 100644 --- a/layout/generic/crashtests/crashtests.list +++ b/layout/generic/crashtests/crashtests.list @@ -15,9 +15,9 @@ load 289864-1.html asserts(0-1) load 295292-1.html # Bug 1315855 load 295292-2.html load 302260-1.html -load 307979-1.html -load 309322-1.html -load 309322-2.html +skip-if(stylo) load 307979-1.html # bug 1338007 +skip-if(stylo) load 309322-1.html # bug 1338007 +skip-if(stylo) load 309322-2.html # bug 1338007 load 309322-3.html load 309322-4.html load 310556-1.xhtml diff --git a/layout/printing/crashtests/crashtests.list b/layout/printing/crashtests/crashtests.list index 0ec048d68602..644f9755b8d2 100644 --- a/layout/printing/crashtests/crashtests.list +++ b/layout/printing/crashtests/crashtests.list @@ -1,4 +1,4 @@ load 509839-1.html load 509839-2.html -load 576878.xhtml +asserts-if(stylo,2) load 576878.xhtml # bug 1324645 load 793844.html diff --git a/layout/reftests/abs-pos/reftest-stylo.list b/layout/reftests/abs-pos/reftest-stylo.list index 5a43fc9fe148..c385fa0204a3 100644 --- a/layout/reftests/abs-pos/reftest-stylo.list +++ b/layout/reftests/abs-pos/reftest-stylo.list @@ -3,8 +3,8 @@ == abs-pos-auto-margin-1.html abs-pos-auto-margin-1.html fails == auto-offset-inline-block-1.html auto-offset-inline-block-1.html == fieldset-1.html fieldset-1.html -== table-1.html table-1.html -== table-2.html table-2.html +fails asserts-if(stylo,4) == table-1.html table-1.html # bug 1324661 +fails asserts-if(stylo,4) == table-2.html table-2.html # bug 1324661 == table-3.html table-3.html == table-caption-1.html table-caption-1.html == table-caption-2.html table-caption-2.html diff --git a/layout/reftests/bugs/reftest-stylo.list b/layout/reftests/bugs/reftest-stylo.list index e48ff464c695..31c4778a1b06 100644 --- a/layout/reftests/bugs/reftest-stylo.list +++ b/layout/reftests/bugs/reftest-stylo.list @@ -95,24 +95,24 @@ fails == 84400-2.html 84400-2.html fails == 97777-2.html 97777-2.html == 98223-1.html 98223-1.html == 98223-2.html 98223-2.html -fails == 99850-1a.html 99850-1a.html -random == 99850-1b.html 99850-1b.html +# == 99850-1a.html 99850-1a.html # bug 1337695 +# == 99850-1b.html 99850-1b.html # bug 1337695 fails == 99850-1c.html 99850-1c.html -fails == 99850-1d.html 99850-1d.html -== 105030-1.html 105030-1.html +# == 99850-1d.html 99850-1d.html # bug 1337695 +asserts-if(stylo,8) == 105030-1.html 105030-1.html # bug 1324661 == 109735-1.html 109735-1.html == 116882-1.html 116882-1.html == 120834-1a.html 120834-1a.html == 120834-2a.html 120834-2a.html # == 120834-2b.html 120834-2b.html -fails == 120834-2c.html 120834-2c.html -fails == 120834-2d.html 120834-2d.html -fails == 120834-2e.html 120834-2e.html -fails == 120834-2f.html 120834-2f.html -fails == 120834-2g.html 120834-2g.html -fails == 120834-2h.html 120834-2h.html -fails == 120834-2i.html 120834-2i.html -fails == 120834-2j.html 120834-2j.html +== 120834-2c.html 120834-2c.html +== 120834-2d.html 120834-2d.html +== 120834-2e.html 120834-2e.html +== 120834-2f.html 120834-2f.html +== 120834-2g.html 120834-2g.html +== 120834-2h.html 120834-2h.html +== 120834-2i.html 120834-2i.html +== 120834-2j.html 120834-2j.html fails == 124903-1.html 124903-1.html == 128896.html 128896.html == 130767-1.html 130767-1.html @@ -144,7 +144,7 @@ fails == 163504-1a.html 163504-1a.html fails == 163504-1b.html 163504-1b.html fails == 163504-2a.html 163504-2a.html fails == 163504-2b.html 163504-2b.html -== 167496-1.html 167496-1.html +asserts-if(stylo,4) == 167496-1.html 167496-1.html # bug 1324661 == 169749-1.html 169749-1.html == 172073-1.html 172073-1.html fails == 175190-1.html 175190-1.html @@ -211,7 +211,7 @@ fuzzy-if(skiaContent,1,4) == 220165-1.svg 220165-1.svg fails == 223809-1.html 223809-1.html == 228856-1.html 228856-1.html == 228856-2.html 228856-2.html -== 229591-1.html 229591-1.html +asserts-if(stylo,4) == 229591-1.html 229591-1.html # bug 1324661 # == 231823-1.html 231823-1.html == 232990-1a.xhtml 232990-1a.xhtml == 232990-1b.xhtml 232990-1b.xhtml @@ -253,14 +253,14 @@ fails == 243519-1.html 243519-1.html == 243519-3.html 243519-3.html == 243519-4a.html 243519-4a.html == 243519-4b.html 243519-4b.html -== 243519-4c.html 243519-4c.html -== 243519-4d.html 243519-4d.html +asserts-if(stylo,2) == 243519-4c.html 243519-4c.html # bug 1324661 +asserts-if(stylo,1) == 243519-4d.html 243519-4d.html # bug 1324661 == 243519-4e.html 243519-4e.html == 243519-4f.html 243519-4f.html == 243519-5a.html 243519-5a.html -== 243519-5b.html 243519-5b.html +asserts-if(stylo,2) == 243519-5b.html 243519-5b.html # bug 1324661 == 243519-5c.html 243519-5c.html -== 243519-5d.html 243519-5d.html +asserts-if(stylo,1) == 243519-5d.html 243519-5d.html # bug 1324661 == 243519-6.html 243519-6.html fails == 243519-7.html 243519-7.html == 243519-8.svg 243519-8.svg @@ -313,7 +313,7 @@ fails == 291078-2.html 291078-2.html == 291262-1.html 291262-1.html # == 294306-1.html 294306-1.html # == 294306-1.html 294306-1.html -fails == 296361-1.html 296361-1.html +asserts-if(stylo,4) fails == 296361-1.html 296361-1.html # bug 1324661 == 296904-1.html 296904-1.html fails == 299136-1.html 299136-1.html == 299837-1.html 299837-1.html @@ -394,13 +394,13 @@ fails == 315920-18f.html 315920-18f.html fails == 315920-18g.html 315920-18g.html == 315920-18h.html 315920-18h.html == 315920-18i.html 315920-18i.html -fails == 315920-19.html 315920-19.html +== 315920-19.html 315920-19.html == 315920-20.svg 315920-20.svg == 315920-21.svg 315920-21.svg fails == 315920-22.html 315920-22.html fails == 315920-23.html 315920-23.html -fails == 315920-24.html 315920-24.html -fails == 315920-25.html 315920-25.html +== 315920-24.html 315920-24.html +== 315920-25.html 315920-25.html fails == 315920-26.html 315920-26.html fails == 315920-27.html 315920-27.html fails == 315920-28a.html 315920-28a.html @@ -425,8 +425,8 @@ fails == 315920-30.html 315920-30.html fails == 323656-3.html 323656-3.html == 323656-4.html 323656-4.html == 323656-5.svg 323656-5.svg -== 323656-6.html 323656-6.html -fails == 325292-1.html 325292-1.html +fails asserts-if(stylo,12) == 323656-6.html 323656-6.html # bug 1324661 +fails asserts-if(stylo,4) == 325292-1.html 325292-1.html fails == 325486-1.html 325486-1.html == 328111-1.html 328111-1.html random == 328829-1.xhtml 328829-1.xhtml @@ -473,11 +473,11 @@ fails == 348516-1.html 348516-1.html # == 348516-2.html 348516-2.html # == 348516-2.html 348516-2.html fails == 348516-3.html 348516-3.html -== 348597-1.html 348597-1.html +asserts-if(stylo,6) == 348597-1.html 348597-1.html # bug 1324661 == 348809-1a.html 348809-1a.html == 348809-1b.html 348809-1b.html -fails == 348809-1c.html 348809-1c.html -fails == 348809-1d.html 348809-1d.html +== 348809-1c.html 348809-1c.html +== 348809-1d.html 348809-1d.html == 348809-1e.html 348809-1e.html == 348809-1f.html 348809-1f.html fails == 348809-2a.html 348809-2a.html @@ -525,7 +525,7 @@ fails == 352980-3f.html 352980-3f.html == 355548-3.xml 355548-3.xml == 355548-4.xml 355548-4.xml == 355548-5.xml 355548-5.xml -== 356774-1.html 356774-1.html +asserts-if(stylo,4) == 356774-1.html 356774-1.html # bug 1324661 == 356775-1.html 356775-1.html fails == 359869-1.html 359869-1.html fails == 359903-1.html 359903-1.html @@ -595,10 +595,10 @@ fails == 367504-margin-1.html 367504-margin-1.html fails == 367504-float-1.html 367504-float-1.html == 367612-1a.html 367612-1a.html == 367612-1b.html 367612-1b.html -fails == 367612-1c.html 367612-1c.html +== 367612-1c.html 367612-1c.html == 367612-1d.html 367612-1d.html == 367612-1e.html 367612-1e.html -fails == 367612-1f.html 367612-1f.html +== 367612-1f.html 367612-1f.html == 367612-1g.html 367612-1g.html fails == 368020-1.html 368020-1.html fails == 368020-2.html 368020-2.html @@ -673,13 +673,13 @@ random-if(d2d) == 374719-1.xul 374719-1.xul == 374927-1.html 374927-1.html fails == 375508-1.html 375508-1.html == 375716-1.html 375716-1.html -== 375827-1.html 375827-1.html +asserts-if(stylo,6) == 375827-1.html 375827-1.html # bug 1324661 fails == 376375-1.html 376375-1.html == 376484-1.html 376484-1.html == 376532-1.html 376532-1.html == 376532-2.html 376532-2.html == 376532-3.html 376532-3.html -fails asserts-if(stylo,2) == 377603-1.html 377603-1.html # bug 1324661 +fails asserts-if(stylo,4) == 377603-1.html 377603-1.html # bug 1324661 == 377918.html 377918.html == 378535-1.html 378535-1.html fails == 378933-1.html 378933-1.html @@ -709,7 +709,7 @@ fails == 379361-3.html 379361-3.html fails == 380004-1.html 380004-1.html fails == 380227-1.html 380227-1.html fails == 380825-1.html 380825-1.html -== 380842-1.html 380842-1.html +fails == 380842-1.html 380842-1.html == 381130-1.html 381130-1.html fails == 381507-1.html 381507-1.html == 381746-1.html 381746-1.html @@ -717,7 +717,7 @@ fails == 382600-1.html 382600-1.html fails == 382916-1.html 382916-1.html fails == 383035-1.html 383035-1.html fails == 383035-2.html 383035-2.html -fails == 383488-1.html 383488-1.html +== 383488-1.html 383488-1.html == 383551-1.html 383551-1.html fails == 383883-1.html 383883-1.html fails == 383883-2.html 383883-2.html @@ -739,9 +739,9 @@ fails == 385823-2b.html 385823-2b.html fails == 385823-2c.html 385823-2c.html fails == 385870-1.html 385870-1.html fails == 385870-2.html 385870-2.html -== 386014-1a.html 386014-1a.html -== 386014-1b.html 386014-1b.html -== 386014-1c.html 386014-1c.html +fails asserts-if(stylo,3) == 386014-1a.html 386014-1a.html # bug 1324661 +fails asserts-if(stylo,6) == 386014-1b.html 386014-1b.html # bug 1324661 +fails == 386014-1c.html 386014-1c.html fails == 386065-1.html 386065-1.html == 386065-2.html 386065-2.html fails test-pref(layout.float-fragments-inside-column.enabled,false) fails == 386147-1.html 386147-1.html @@ -771,11 +771,11 @@ fails == 386470-1b.html 386470-1b.html fails == 389074-1.html 389074-1.html # == 389224-1.html 389224-1.html # == 389224-2.html 389224-2.html -fails asserts-if(stylo,5) == 389468-1.html 389468-1.html # bug 1324661 +fails asserts-if(stylo,9) == 389468-1.html 389468-1.html # bug 1324661 == 389623-1.html 389623-1.html == 389636-1.html 389636-1.html # == 389924-1a.html 389924-1a.html -== 389924-1b.html 389924-1b.html +fails asserts-if(stylo,10) == 389924-1b.html 389924-1b.html # bug 1324661 # == 389924-1a.html 389924-1a.html == 390318-1a.html 390318-1a.html == 390318-1b.html 390318-1b.html @@ -807,7 +807,7 @@ fails == 393490-1.html 393490-1.html == 393760-1.xml 393760-1.xml fuzzy-if(skiaContent,1,500) == 393760-2.xml 393760-2.xml == 394111-1.html 394111-1.html -fails == 394534-1.html 394534-1.html +== 394534-1.html 394534-1.html # == 394676-1.xhtml 394676-1.xhtml fails == 395107-1.html 395107-1.html fails == 395107-2.html 395107-2.html @@ -832,7 +832,7 @@ fails == 398682-1.html 398682-1.html == 399209-1.html 399209-1.html == 399209-2.html 399209-2.html fails == 399258-1.html 399258-1.html -== 399384-1.html 399384-1.html +fails == 399384-1.html 399384-1.html random-if(gtkWidget) == 399636-standards-css.html 399636-standards-css.html random-if(gtkWidget) == 399636-standards-html.html 399636-standards-html.html random-if(gtkWidget) == 399636-quirks-css.html 399636-quirks-css.html @@ -879,7 +879,7 @@ fails == 403249-2b.html 403249-2b.html fails == 403455-1.html 403455-1.html == 403505-1.xml 403505-1.xml #== 403519-1.html 403519-1.html -== 403519-2.html 403519-2.html +asserts-if(stylo,4) == 403519-2.html 403519-2.html # bug 1324661 fails == 403656-1.html 403656-1.html fails == 403656-2.html 403656-2.html fails == 403656-3.html 403656-3.html @@ -914,8 +914,8 @@ fails == 405577-1.html 405577-1.html # == 405952-1.html 405952-1.html == 406484-1.html 406484-1.html == 406568-1.html 406568-1.html -fails == 407016-1-a.html 407016-1-a.html -fails == 407016-1-b.html 407016-1-b.html +fails asserts-if(stylo,8) == 407016-1-a.html 407016-1-a.html # bug 1324661 +fails asserts-if(stylo,8) == 407016-1-b.html 407016-1-b.html # bug 1324661 fails == 407078-1.html 407078-1.html fails == 407095-1.html 407095-1.html fails == 407111-1.html 407111-1.html @@ -1018,7 +1018,7 @@ fails asserts-if(stylo,0-4) == 421632-1.html 421632-1.html # bug 1335314 fails == 421710-1.html 421710-1.html fails-if(Android) fails-if(usesRepeatResampling) == 421885-1.xml 421885-1.xml == 421955-1.html 421955-1.html -fails == 422249-1.html 422249-1.html +fails asserts-if(stylo,2) == 422249-1.html 422249-1.html # bug 1324661 fails == 422394-1.html 422394-1.html fails == 422678-1.html 422678-1.html == 423130-1.html 423130-1.html @@ -1040,8 +1040,8 @@ fails == 424236-8.html 424236-8.html fails == 424236-9.html 424236-9.html == 424236-10.html 424236-10.html fails == 424236-11.html 424236-11.html -== 424434-1.html 424434-1.html -fails == 424465-1.html 424465-1.html +asserts-if(stylo,4) == 424434-1.html 424434-1.html # bug 1324661 +fails asserts-if(stylo,4) == 424465-1.html 424465-1.html # bug 1324661 == 424631-1.html 424631-1.html == 424710-1.html 424710-1.html fails == 424766-1.html 424766-1.html @@ -1056,7 +1056,7 @@ asserts(3-6) == 427017-1.xhtml 427017-1.xhtml == 427129-table-caption.html 427129-table-caption.html == 427370-1.html 427370-1.html fails == 427730-1.html 427730-1.html -== 428278.html 428278.html +asserts-if(stylo,6) == 428278.html 428278.html # bug 1324661 == 428423-1a.html 428423-1a.html == 428423-1b.html 428423-1b.html fails == 428521-1a.html 428521-1a.html @@ -1164,8 +1164,8 @@ fails random asserts-if(stylo,2) == 445004-1.html 445004-1.html # bug 1324683 == 445142-1a.html 445142-1a.html == 445142-1b.html 445142-1b.html == 445142-1c.html 445142-1c.html -== 445142-2a.html 445142-2a.html -== 445142-2b.html 445142-2b.html +asserts-if(stylo,72) == 445142-2a.html 445142-2a.html # bug 1324661 +asserts-if(stylo,72) == 445142-2b.html 445142-2b.html # bug 1324661 fails-if(usesRepeatResampling) == 446100-1a.html 446100-1a.html fails-if(Android) fails-if(usesRepeatResampling) == 446100-1b.html 446100-1b.html fails-if(Android) fails-if(usesRepeatResampling) == 446100-1c.html 446100-1c.html @@ -1187,8 +1187,8 @@ fails == 449362-1.html 449362-1.html == 449519-1.html 449519-1.html == 450670-1.html 450670-1.html fails == 451168-1.html 451168-1.html -== 451876-1.html 451876-1.html -== 451876-2.html 451876-2.html +asserts-if(stylo,2) == 451876-1.html 451876-1.html # bug 1324661 +asserts-if(stylo,2) == 451876-2.html 451876-2.html # bug 1324661 == 452915-1.html 452915-1.html == 452964-1.html 452964-1.html # == 454361.html 454361.html @@ -1330,8 +1330,8 @@ fails == 482592-1b.xhtml 482592-1b.xhtml asserts-if(stylo,1) == 482659-1c.html 482659-1c.html # bug 1324683 asserts-if(stylo,1) == 482659-1d.html 482659-1d.html # bug 1324683 == 483565.xul 483565.xul -== 484256-1.html 484256-1.html -== 484256-2.html 484256-2.html +asserts-if(stylo,4) == 484256-1.html 484256-1.html # bug 1324661 +asserts-if(stylo,4) == 484256-2.html 484256-2.html # bug 1324661 == 485012-1.html 485012-1.html fails == 485275-1.html 485275-1.html fails == 485275-1.svg 485275-1.svg @@ -1553,7 +1553,7 @@ fails needs-focus == 568441.html 568441.html == 571281-1a.html 571281-1a.html == 571281-1b.html 571281-1b.html == 571281-1c.html 571281-1c.html -fails == 571347-1a.html 571347-1a.html +== 571347-1a.html 571347-1a.html # == 571347-1b.html 571347-1b.html # == 571347-2a.html 571347-2a.html # == 571347-2b.html 571347-2b.html @@ -1618,7 +1618,7 @@ fails == 602200-4.html 602200-4.html == 603423-1.html 603423-1.html fails == 604737.html 604737.html fails == 605138-1.html 605138-1.html -fails == 605157-1.xhtml 605157-1.xhtml +== 605157-1.xhtml 605157-1.xhtml == 607267-1.html 607267-1.html fails == 608636-1.html 608636-1.html == 608756-1a.html 608756-1a.html @@ -1680,7 +1680,7 @@ fails == 652775-1.html 652775-1.html fails == 653930-1.html 653930-1.html fails HTTP(..) == 654057-1.html 654057-1.html fails == 654950-1.html 654950-1.html -fails == 655549-1.html 655549-1.html +== 655549-1.html 655549-1.html == 655836-1.html 655836-1.html fails == 656875.html 656875.html fails == 658952.html 658952.html @@ -1758,7 +1758,7 @@ fails == 816458-1.html 816458-1.html fails == 816948-1.html 816948-1.html == 817019-1.html 817019-1.html fails == 818276-1.html 818276-1.html -fails == 825999.html 825999.html +fails asserts-if(stylo,0-4) == 825999.html 825999.html # bug 1324661 == 827577-1a.html 827577-1a.html == 827577-1b.html 827577-1b.html fails == 827799-1.html 827799-1.html @@ -1947,7 +1947,7 @@ fails == 1202512-2.html 1202512-2.html fails == 1209994-2.html 1209994-2.html == 1209994-3.html 1209994-3.html fails == 1209994-4.html 1209994-4.html -fails == 1222226-1.html 1222226-1.html +== 1222226-1.html 1222226-1.html fails pref(layout.css.overflow-clip-box.enabled,true) == 1226278.html 1226278.html == 1230466.html 1230466.html == 1238243-1.html 1238243-1.html diff --git a/layout/reftests/css-display/reftest-stylo.list b/layout/reftests/css-display/reftest-stylo.list index 3d5c7fe0661b..e601c86cb926 100644 --- a/layout/reftests/css-display/reftest-stylo.list +++ b/layout/reftests/css-display/reftest-stylo.list @@ -4,8 +4,8 @@ fails == display-contents-acid.html display-contents-acid.html # fuzzy-if(Android,8,604) == display-contents-acid-dyn-1.html display-contents-acid-dyn-1.html -fails == display-contents-acid-dyn-2.html display-contents-acid-dyn-2.html -fails == display-contents-acid-dyn-3.html display-contents-acid-dyn-3.html +fails asserts-if(stylo,5) == display-contents-acid-dyn-2.html display-contents-acid-dyn-2.html # bug 1337700 +fails asserts-if(stylo,2) == display-contents-acid-dyn-3.html display-contents-acid-dyn-3.html # bug 1324661 # == display-contents-generated-content.html display-contents-generated-content.html # == display-contents-generated-content-2.html display-contents-generated-content-2.html fails == display-contents-style-inheritance-1.html display-contents-style-inheritance-1.html diff --git a/layout/reftests/css-transitions/reftest-stylo.list b/layout/reftests/css-transitions/reftest-stylo.list index 75f9cf1a1e00..3beb4168812c 100644 --- a/layout/reftests/css-transitions/reftest-stylo.list +++ b/layout/reftests/css-transitions/reftest-stylo.list @@ -1,7 +1,7 @@ # DO NOT EDIT! This is a auto-generated temporary list for Stylo testing -== transitions-inline-already-wrapped-1.html transitions-inline-already-wrapped-1.html +fails == transitions-inline-already-wrapped-1.html transitions-inline-already-wrapped-1.html == transitions-inline-already-wrapped-2.html transitions-inline-already-wrapped-2.html -== transitions-inline-rewrap-1.html transitions-inline-rewrap-1.html +fails == transitions-inline-rewrap-1.html transitions-inline-rewrap-1.html == transitions-inline-rewrap-2.html transitions-inline-rewrap-2.html fails == stacking-context-opacity-lose-to-animation.html stacking-context-opacity-lose-to-animation.html fails == stacking-context-transform-lose-to-animation.html stacking-context-transform-lose-to-animation.html diff --git a/layout/reftests/flexbox/reftest-stylo.list b/layout/reftests/flexbox/reftest-stylo.list index f558bda43e01..433fed77d1a9 100644 --- a/layout/reftests/flexbox/reftest-stylo.list +++ b/layout/reftests/flexbox/reftest-stylo.list @@ -94,8 +94,8 @@ fails == flexbox-inlinecontent-horiz-4.xhtml flexbox-inlinecontent-horiz-4.xhtml fails == flexbox-inlinecontent-horiz-5.xhtml flexbox-inlinecontent-horiz-5.xhtml # Tests for intrinsic sizing of flexboxes -fails == flexbox-intrinsic-sizing-horiz-1a.xhtml flexbox-intrinsic-sizing-horiz-1a.xhtml -fails == flexbox-intrinsic-sizing-horiz-1b.xhtml flexbox-intrinsic-sizing-horiz-1b.xhtml +fails asserts-if(stylo,36) == flexbox-intrinsic-sizing-horiz-1a.xhtml flexbox-intrinsic-sizing-horiz-1a.xhtml # bug 1324661 +fails asserts-if(stylo,36) == flexbox-intrinsic-sizing-horiz-1b.xhtml flexbox-intrinsic-sizing-horiz-1b.xhtml # bug 1324661 fails == flexbox-intrinsic-sizing-horiz-2a.xhtml flexbox-intrinsic-sizing-horiz-2a.xhtml fails == flexbox-intrinsic-sizing-horiz-2b.xhtml flexbox-intrinsic-sizing-horiz-2b.xhtml diff --git a/layout/reftests/image/reftest-stylo.list b/layout/reftests/image/reftest-stylo.list index 25f0de4a1a87..6fff09d58554 100644 --- a/layout/reftests/image/reftest-stylo.list +++ b/layout/reftests/image/reftest-stylo.list @@ -14,10 +14,10 @@ random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == sync-image-switch-1d.htm # Tests for "object-fit" & "object-position" test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-dyn-1.html image-object-fit-dyn-1.html -fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-with-background-1.html image-object-fit-with-background-1.html +# test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-with-background-1.html image-object-fit-with-background-1.html fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-fit-with-background-2.html image-object-fit-with-background-2.html # test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-position-dyn-1.html image-object-position-dyn-1.html -fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-position-with-background-1.html image-object-position-with-background-1.html +# fails test-pref(layout.css.object-fit-and-position.enabled,true) == image-object-position-with-background-1.html image-object-position-with-background-1.html fails == image-object-position-with-background-2.html image-object-position-with-background-2.html # Tests for image-orientation used with 'from-image' (note that all diff --git a/layout/reftests/margin-collapsing/reftest-stylo.list b/layout/reftests/margin-collapsing/reftest-stylo.list index 59d9d7c1de52..ad4069dc9dc6 100644 --- a/layout/reftests/margin-collapsing/reftest-stylo.list +++ b/layout/reftests/margin-collapsing/reftest-stylo.list @@ -690,14 +690,14 @@ fails == block-overflow-5c-dyn.html block-overflow-5c-dyn.html == caption-sibling-1b.html caption-sibling-1b.html == caption-sibling-1c.html caption-sibling-1c.html == caption-sibling-1c.html caption-sibling-1c.html -== caption-sibling-1a-dyn.html caption-sibling-1a-dyn.html -== caption-sibling-1a-dyn.html caption-sibling-1a-dyn.html -== caption-sibling-1b-dyn.html caption-sibling-1b-dyn.html -== caption-sibling-1b-dyn.html caption-sibling-1b-dyn.html -== caption-sibling-1c-dyn.html caption-sibling-1c-dyn.html -== caption-sibling-1c-dyn.html caption-sibling-1c-dyn.html -== caption-sibling-2-dyn.html caption-sibling-2-dyn.html -== caption-sibling-2-dyn.html caption-sibling-2-dyn.html +asserts-if(stylo,2) == caption-sibling-1a-dyn.html caption-sibling-1a-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-1a-dyn.html caption-sibling-1a-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-1b-dyn.html caption-sibling-1b-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-1b-dyn.html caption-sibling-1b-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-1c-dyn.html caption-sibling-1c-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-1c-dyn.html caption-sibling-1c-dyn.html # bug 1337703 +asserts-if(stylo,2) == caption-sibling-2-dyn.html caption-sibling-2-dyn.html # bug 1337700 +asserts-if(stylo,2) == caption-sibling-2-dyn.html caption-sibling-2-dyn.html # bug 1337700 == caption-child-1.html caption-child-1.html == caption-child-1-dyn.html caption-child-1-dyn.html # * Multi-column elements, per CSS Multi-column Layout Module diff --git a/layout/reftests/mathml/reftest-stylo.list b/layout/reftests/mathml/reftest-stylo.list index fdc5bc832f92..a8eb6ea6d9e7 100644 --- a/layout/reftests/mathml/reftest-stylo.list +++ b/layout/reftests/mathml/reftest-stylo.list @@ -2,7 +2,7 @@ fails == dir-1.html dir-1.html fails == dir-2.html dir-2.html random-if(gtkWidget) == dir-3.html dir-3.html -== dir-4.html dir-4.html +fails == dir-4.html dir-4.html == dir-5.html dir-5.html fails == dir-6.html dir-6.html fails == dir-6a.html dir-6a.html @@ -324,7 +324,7 @@ fails == tablespacing-1.html tablespacing-1.html fails == tablespacing-2.html tablespacing-2.html fails == tablespacing-3.html tablespacing-3.html fails == tablespacing-4.html tablespacing-4.html -fails == tablespacing-5.html tablespacing-5.html +fails asserts-if(stylo,0-2) == tablespacing-5.html tablespacing-5.html # bug 1324661 fails == tablespacing-5a.html tablespacing-5a.html fails == tablespacing-6.html tablespacing-6.html fails == tablespacing-7.html tablespacing-7.html diff --git a/layout/reftests/pixel-rounding/reftest-stylo.list b/layout/reftests/pixel-rounding/reftest-stylo.list index 4375a041a44a..817c46788437 100644 --- a/layout/reftests/pixel-rounding/reftest-stylo.list +++ b/layout/reftests/pixel-rounding/reftest-stylo.list @@ -81,18 +81,18 @@ # These all fail due bug 371180, plus a bunch of other bugs that ought to be filed. -== collapsed-border-height-4.html collapsed-border-height-4.html -== collapsed-border-height-5.html collapsed-border-height-5.html -== collapsed-border-height-6.html collapsed-border-height-6.html -== collapsed-border-width-4.html collapsed-border-width-4.html -== collapsed-border-width-5.html collapsed-border-width-5.html -== collapsed-border-width-6.html collapsed-border-width-6.html -== collapsed-border-left-4.html collapsed-border-left-4.html -== collapsed-border-left-5.html collapsed-border-left-5.html -== collapsed-border-left-6.html collapsed-border-left-6.html -== collapsed-border-top-4.html collapsed-border-top-4.html -== collapsed-border-top-5.html collapsed-border-top-5.html -== collapsed-border-top-6.html collapsed-border-top-6.html +asserts-if(stylo,40) == collapsed-border-height-4.html collapsed-border-height-4.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-height-5.html collapsed-border-height-5.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-height-6.html collapsed-border-height-6.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-width-4.html collapsed-border-width-4.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-width-5.html collapsed-border-width-5.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-width-6.html collapsed-border-width-6.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-left-4.html collapsed-border-left-4.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-left-5.html collapsed-border-left-5.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-left-6.html collapsed-border-left-6.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-top-4.html collapsed-border-top-4.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-top-5.html collapsed-border-top-5.html # bug 1324661 +asserts-if(stylo,40) == collapsed-border-top-6.html collapsed-border-top-6.html # bug 1324661 == image-base-ref.html image-base-ref.html diff --git a/layout/reftests/scoped-style/reftest-stylo.list b/layout/reftests/scoped-style/reftest-stylo.list index 3cbcc9e90fa0..30d2cd813571 100644 --- a/layout/reftests/scoped-style/reftest-stylo.list +++ b/layout/reftests/scoped-style/reftest-stylo.list @@ -22,7 +22,7 @@ fails == scoped-style-018.html scoped-style-018.html == scoped-style-021.html scoped-style-021.html == scoped-style-022.html scoped-style-022.html fails == scoped-style-023.html scoped-style-023.html -fails == scoped-style-024.html scoped-style-024.html +== scoped-style-024.html scoped-style-024.html == scoped-style-important-001.html scoped-style-important-001.html fails == scoped-style-important-002.html scoped-style-important-002.html == scoped-style-important-003.html scoped-style-important-003.html diff --git a/layout/reftests/table-background/reftest-stylo.list b/layout/reftests/table-background/reftest-stylo.list index acfafbf3bb8d..2404eb034b7e 100644 --- a/layout/reftests/table-background/reftest-stylo.list +++ b/layout/reftests/table-background/reftest-stylo.list @@ -1,58 +1,58 @@ # DO NOT EDIT! This is a auto-generated temporary list for Stylo testing # these could be moved to crashtests -fails == backgr_border-table-cell.html backgr_border-table-cell.html -fails == backgr_border-table-column-group.html backgr_border-table-column-group.html +fails asserts-if(stylo,4) == backgr_border-table-cell.html backgr_border-table-cell.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_border-table-column-group.html backgr_border-table-column-group.html # bug 1324661 # This seems to be caused by bug 527825 -fails == backgr_border-table-column.html backgr_border-table-column.html -fails == backgr_border-table-quirks.html backgr_border-table-quirks.html -fails == backgr_border-table-row-group.html backgr_border-table-row-group.html -fails == backgr_border-table-row.html backgr_border-table-row.html -fails == backgr_border-table.html backgr_border-table.html -fails == backgr_fixed-bg.html backgr_fixed-bg.html +fails asserts-if(stylo,4) == backgr_border-table-column.html backgr_border-table-column.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_border-table-quirks.html backgr_border-table-quirks.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_border-table-row-group.html backgr_border-table-row-group.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_border-table-row.html backgr_border-table-row.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_border-table.html backgr_border-table.html # bug 1324661 +fails asserts-if(stylo,8) == backgr_fixed-bg.html backgr_fixed-bg.html # bug 1324661 fails == backgr_index.html backgr_index.html -fails == backgr_layers-hide.html backgr_layers-hide.html -fails == backgr_layers-opacity.html backgr_layers-opacity.html -fails == backgr_layers-show.html backgr_layers-show.html -fails == backgr_position-table-cell.html backgr_position-table-cell.html -fails == backgr_position-table-column-group.html backgr_position-table-column-group.html -fails == backgr_position-table-column.html backgr_position-table-column.html -fails == backgr_position-table-row-group.html backgr_position-table-row-group.html -fails == backgr_position-table-row.html backgr_position-table-row.html -fails == backgr_position-table.html backgr_position-table.html -fails == backgr_simple-table-cell.html backgr_simple-table-cell.html -fails == backgr_simple-table-column-group.html backgr_simple-table-column-group.html -fails == backgr_simple-table-column.html backgr_simple-table-column.html -fails == backgr_simple-table-row-group.html backgr_simple-table-row-group.html -fails == backgr_simple-table-row.html backgr_simple-table-row.html -fails == backgr_simple-table.html backgr_simple-table.html +fails asserts-if(stylo,4) == backgr_layers-hide.html backgr_layers-hide.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_layers-opacity.html backgr_layers-opacity.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_layers-show.html backgr_layers-show.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table-cell.html backgr_position-table-cell.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table-column-group.html backgr_position-table-column-group.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table-column.html backgr_position-table-column.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table-row-group.html backgr_position-table-row-group.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table-row.html backgr_position-table-row.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_position-table.html backgr_position-table.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table-cell.html backgr_simple-table-cell.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table-column-group.html backgr_simple-table-column-group.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table-column.html backgr_simple-table-column.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table-row-group.html backgr_simple-table-row-group.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table-row.html backgr_simple-table-row.html # bug 1324661 +fails asserts-if(stylo,4) == backgr_simple-table.html backgr_simple-table.html # bug 1324661 # would also be good to test table-header-group and table-footer-group # (and rows and row groups in the presence of their reordering) # Also need to test different values of background-origin and background-clip. -== border-separate-table-cell.html border-separate-table-cell.html -== border-separate-table-column-group.html border-separate-table-column-group.html -== border-separate-table-column.html border-separate-table-column.html -== border-separate-table-row-group.html border-separate-table-row-group.html -== border-separate-table-row.html border-separate-table-row.html -== border-separate-table.html border-separate-table.html -== border-collapse-table-cell.html border-collapse-table-cell.html -== border-collapse-table-column-group.html border-collapse-table-column-group.html -== border-collapse-table-column.html border-collapse-table-column.html -== border-collapse-table-row-group.html border-collapse-table-row-group.html -== border-collapse-table-row.html border-collapse-table-row.html -== border-collapse-table.html border-collapse-table.html -== border-collapse-opacity-table-cell.html border-collapse-opacity-table-cell.html -== border-collapse-opacity-table-column-group.html border-collapse-opacity-table-column-group.html -== border-collapse-opacity-table-column.html border-collapse-opacity-table-column.html -fuzzy-if(d2d,1,16359) fuzzy-if(skiaContent,1,17000) == border-collapse-opacity-table-row-group.html border-collapse-opacity-table-row-group.html -fuzzy-if(d2d,1,5453) fuzzy-if(skiaContent,1,11000) == border-collapse-opacity-table-row.html border-collapse-opacity-table-row.html -fuzzy-if(d2d||skiaContent,1,60000) == border-collapse-opacity-table.html border-collapse-opacity-table.html -== border-separate-opacity-table-cell.html border-separate-opacity-table-cell.html -== border-separate-opacity-table-column-group.html border-separate-opacity-table-column-group.html -== border-separate-opacity-table-column.html border-separate-opacity-table-column.html -fuzzy-if(d2d,1,37170) fuzzy-if(skiaContent,1,38000) == border-separate-opacity-table-row-group.html border-separate-opacity-table-row-group.html -fuzzy-if(d2d,1,12390) fuzzy-if(skiaContent,1,13000) == border-separate-opacity-table-row.html border-separate-opacity-table-row.html -fuzzy-if(d2d||skiaContent,1,95000) == border-separate-opacity-table.html border-separate-opacity-table.html +asserts-if(stylo,12) == border-separate-table-cell.html border-separate-table-cell.html # bug 1324661 +asserts-if(stylo,12) == border-separate-table-column-group.html border-separate-table-column-group.html # bug 1324661 +asserts-if(stylo,12) == border-separate-table-column.html border-separate-table-column.html # bug 1324661 +asserts-if(stylo,12) == border-separate-table-row-group.html border-separate-table-row-group.html # bug 1324661 +asserts-if(stylo,12) == border-separate-table-row.html border-separate-table-row.html # bug 1324661 +asserts-if(stylo,12) == border-separate-table.html border-separate-table.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table-cell.html border-collapse-table-cell.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table-column-group.html border-collapse-table-column-group.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table-column.html border-collapse-table-column.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table-row-group.html border-collapse-table-row-group.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table-row.html border-collapse-table-row.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-table.html border-collapse-table.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-opacity-table-cell.html border-collapse-opacity-table-cell.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-opacity-table-column-group.html border-collapse-opacity-table-column-group.html # bug 1324661 +asserts-if(stylo,12) == border-collapse-opacity-table-column.html border-collapse-opacity-table-column.html # bug 1324661 +# asserts-if(stylo,12) fuzzy-if(d2d,1,16359) fuzzy-if(skiaContent,1,17000) == border-collapse-opacity-table-row-group.html border-collapse-opacity-table-row-group.html # bug 1324661 +asserts-if(stylo,12) fuzzy-if(d2d,1,5453) fuzzy-if(skiaContent,1,11000) == border-collapse-opacity-table-row.html border-collapse-opacity-table-row.html # bug 1324661 +# asserts-if(stylo,12) fuzzy-if(stylo||d2d||skiaContent,1,60000) == border-collapse-opacity-table.html border-collapse-opacity-table.html # bug 1324661 +asserts-if(stylo,12) == border-separate-opacity-table-cell.html border-separate-opacity-table-cell.html # bug 1324661 +asserts-if(stylo,12) == border-separate-opacity-table-column-group.html border-separate-opacity-table-column-group.html # bug 1324661 +asserts-if(stylo,12) == border-separate-opacity-table-column.html border-separate-opacity-table-column.html # bug 1324661 +asserts-if(stylo,12) fuzzy-if(d2d,1,37170) fuzzy-if(skiaContent,1,38000) == border-separate-opacity-table-row-group.html border-separate-opacity-table-row-group.html # bug 1324661 +asserts-if(stylo,12) fuzzy-if(d2d,1,12390) fuzzy-if(skiaContent,1,13000) == border-separate-opacity-table-row.html border-separate-opacity-table-row.html # bug 1324661 +# asserts-if(stylo,12) fuzzy-if(stylo||d2d||skiaContent,1,95000) == border-separate-opacity-table.html border-separate-opacity-table.html # bug 1324661 # == scrollable-rowgroup-collapse-background.html scrollable-rowgroup-collapse-background.html == scrollable-rowgroup-collapse-border.html scrollable-rowgroup-collapse-border.html # == scrollable-rowgroup-separate-background.html scrollable-rowgroup-separate-background.html diff --git a/layout/reftests/table-bordercollapse/reftest-stylo.list b/layout/reftests/table-bordercollapse/reftest-stylo.list index dcac51148088..f9c8ec25ae29 100644 --- a/layout/reftests/table-bordercollapse/reftest-stylo.list +++ b/layout/reftests/table-bordercollapse/reftest-stylo.list @@ -16,57 +16,57 @@ == bc_dyn_cg1.html bc_dyn_cg1.html == bc_dyn_cg2.html bc_dyn_cg2.html == bc_dyn_cg3.html bc_dyn_cg3.html -fails asserts-if(stylo,2) == bc_dyn_table1.html bc_dyn_table1.html # bug 1324661 -fails asserts-if(stylo,2) == bc_dyn_table2.html bc_dyn_table2.html # bug 1324661 +fails asserts-if(stylo,4) == bc_dyn_table1.html bc_dyn_table1.html # bug 1324661 +fails asserts-if(stylo,6) == bc_dyn_table2.html bc_dyn_table2.html # bug 1324661 fails asserts-if(stylo,2) == bc_dyn_table3.html bc_dyn_table3.html # bug 1324661 == bc_borderoffset1.html bc_borderoffset1.html == bc_borderoffset2.html bc_borderoffset2.html -== frame_above_rules_all.html frame_above_rules_all.html -== frame_above_rules_cols.html frame_above_rules_cols.html -== frame_above_rules_groups.html frame_above_rules_groups.html -== frame_above_rules_none.html frame_above_rules_none.html -== frame_above_rules_rows.html frame_above_rules_rows.html -== frame_below_rules_all.html frame_below_rules_all.html -== frame_below_rules_cols.html frame_below_rules_cols.html -== frame_below_rules_groups.html frame_below_rules_groups.html -== frame_below_rules_none.html frame_below_rules_none.html -== frame_below_rules_rows.html frame_below_rules_rows.html -== frame_border_rules_all.html frame_border_rules_all.html -== frame_border_rules_cols.html frame_border_rules_cols.html -== frame_border_rules_groups.html frame_border_rules_groups.html -== frame_border_rules_none.html frame_border_rules_none.html -== frame_border_rules_rows.html frame_border_rules_rows.html -== frame_box_rules_all.html frame_box_rules_all.html -== frame_box_rules_cols.html frame_box_rules_cols.html -== frame_box_rules_groups.html frame_box_rules_groups.html -== frame_box_rules_none.html frame_box_rules_none.html -== frame_box_rules_none-collapse.html frame_box_rules_none-collapse.html -== frame_box_rules_rows.html frame_box_rules_rows.html -== frame_hsides_rules_all.html frame_hsides_rules_all.html -== frame_hsides_rules_cols.html frame_hsides_rules_cols.html -== frame_hsides_rules_groups.html frame_hsides_rules_groups.html -== frame_hsides_rules_none.html frame_hsides_rules_none.html -== frame_hsides_rules_rows.html frame_hsides_rules_rows.html -== frame_lhs_rules_all.html frame_lhs_rules_all.html -== frame_lhs_rules_cols.html frame_lhs_rules_cols.html -== frame_lhs_rules_groups.html frame_lhs_rules_groups.html -== frame_lhs_rules_none.html frame_lhs_rules_none.html -== frame_lhs_rules_rows.html frame_lhs_rules_rows.html -== frame_rhs_rules_all.html frame_rhs_rules_all.html -== frame_rhs_rules_cols.html frame_rhs_rules_cols.html -== frame_rhs_rules_groups.html frame_rhs_rules_groups.html -== frame_rhs_rules_none.html frame_rhs_rules_none.html -== frame_rhs_rules_rows.html frame_rhs_rules_rows.html +asserts-if(stylo,4) == frame_above_rules_all.html frame_above_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_above_rules_cols.html frame_above_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_above_rules_groups.html frame_above_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_above_rules_none.html frame_above_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_above_rules_rows.html frame_above_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_below_rules_all.html frame_below_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_below_rules_cols.html frame_below_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_below_rules_groups.html frame_below_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_below_rules_none.html frame_below_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_below_rules_rows.html frame_below_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_border_rules_all.html frame_border_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_border_rules_cols.html frame_border_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_border_rules_groups.html frame_border_rules_groups.html # bug 1324661 +asserts-if(stylo,7) == frame_border_rules_none.html frame_border_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_border_rules_rows.html frame_border_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_box_rules_all.html frame_box_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_box_rules_cols.html frame_box_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_box_rules_groups.html frame_box_rules_groups.html # bug 1324661 +asserts-if(stylo,7) == frame_box_rules_none.html frame_box_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_box_rules_none-collapse.html frame_box_rules_none-collapse.html # bug 1324661 +asserts-if(stylo,4) == frame_box_rules_rows.html frame_box_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_hsides_rules_all.html frame_hsides_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_hsides_rules_cols.html frame_hsides_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_hsides_rules_groups.html frame_hsides_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_hsides_rules_none.html frame_hsides_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_hsides_rules_rows.html frame_hsides_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_lhs_rules_all.html frame_lhs_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_lhs_rules_cols.html frame_lhs_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_lhs_rules_groups.html frame_lhs_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_lhs_rules_none.html frame_lhs_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_lhs_rules_rows.html frame_lhs_rules_rows.html # bug 1324661 +asserts-if(stylo,4) == frame_rhs_rules_all.html frame_rhs_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_rhs_rules_cols.html frame_rhs_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_rhs_rules_groups.html frame_rhs_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_rhs_rules_none.html frame_rhs_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_rhs_rules_rows.html frame_rhs_rules_rows.html # bug 1324661 == frame_void_rules_all.html frame_void_rules_all.html == frame_void_rules_cols.html frame_void_rules_cols.html == frame_void_rules_groups.html frame_void_rules_groups.html == frame_void_rules_none.html frame_void_rules_none.html == frame_void_rules_rows.html frame_void_rules_rows.html -== frame_vsides_rules_all.html frame_vsides_rules_all.html -== frame_vsides_rules_cols.html frame_vsides_rules_cols.html -== frame_vsides_rules_groups.html frame_vsides_rules_groups.html -== frame_vsides_rules_none.html frame_vsides_rules_none.html -== frame_vsides_rules_rows.html frame_vsides_rules_rows.html +asserts-if(stylo,4) == frame_vsides_rules_all.html frame_vsides_rules_all.html # bug 1324661 +asserts-if(stylo,4) == frame_vsides_rules_cols.html frame_vsides_rules_cols.html # bug 1324661 +asserts-if(stylo,4) == frame_vsides_rules_groups.html frame_vsides_rules_groups.html # bug 1324661 +asserts-if(stylo,4) == frame_vsides_rules_none.html frame_vsides_rules_none.html # bug 1324661 +asserts-if(stylo,4) == frame_vsides_rules_rows.html frame_vsides_rules_rows.html # bug 1324661 fails == borderhandling-1.html borderhandling-1.html fails == borderhandling-2.html borderhandling-2.html fails == borderhandling-3.html borderhandling-3.html @@ -74,7 +74,7 @@ fails == borderhandling-4.html borderhandling-4.html fails == borderhandling-5.xhtml borderhandling-5.xhtml fails == borderhandling-6.xhtml borderhandling-6.xhtml fails == borderhandling-7.xhtml borderhandling-7.xhtml -== borderhandling-8.html borderhandling-8.html +asserts-if(stylo,4) == borderhandling-8.html borderhandling-8.html # bug 1324661 fails == borderhandling-frame-border.html borderhandling-frame-border.html fails == borderhandling-rules-border-empty-quirks.html borderhandling-rules-border-empty-quirks.html fails == borderhandling-rules-border-rules-quirks.html borderhandling-rules-border-rules-quirks.html @@ -92,10 +92,10 @@ fails == borderhandling-rules-border-cols-strict.html borderhandling-rules-borde fails == borderhandling-rules-border-all-strict.html borderhandling-rules-border-all-strict.html fails == bordercolor-1.html bordercolor-1.html fails == bordercolor-2.html bordercolor-2.html -fails == bordercolor-3.html bordercolor-3.html +fails asserts-if(stylo,4) == bordercolor-3.html bordercolor-3.html # bug 1324661 fails == bordercolor-4.html bordercolor-4.html -== empty-toprow.html empty-toprow.html -== double_borders.html double_borders.html +asserts-if(stylo,4) == empty-toprow.html empty-toprow.html # bug 1324661 +asserts-if(stylo,4) == double_borders.html double_borders.html # bug 1324661 # == border-collapse-rtl.html border-collapse-rtl.html # Fuzzy because for some reason the corner beveling is antialiased differently. # So get 40 pixels of fuzz, 20 at each beveled corner (because the border width diff --git a/layout/reftests/table-dom/reftest-stylo.list b/layout/reftests/table-dom/reftest-stylo.list index a5afa82ed20c..6d9104b811c7 100644 --- a/layout/reftests/table-dom/reftest-stylo.list +++ b/layout/reftests/table-dom/reftest-stylo.list @@ -21,10 +21,10 @@ fails == deleteRowsRebuild1a.html deleteRowsRebuild1a.html fails == deleteRowsShrink1.html deleteRowsShrink1.html fails == deleteTbodyExpand1.html deleteTbodyExpand1.html fails == deleteTbodyRebuild1.html deleteTbodyRebuild1.html -== insertCaptionsAndRows1.html insertCaptionsAndRows1.html -== insertCaptionsAndRows2.html insertCaptionsAndRows2.html -== insertCaptionsAndRows3.html insertCaptionsAndRows3.html -== insertCaptionsAndRows4.html insertCaptionsAndRows4.html +# == insertCaptionsAndRows1.html insertCaptionsAndRows1.html +# == insertCaptionsAndRows2.html insertCaptionsAndRows2.html +# == insertCaptionsAndRows3.html insertCaptionsAndRows3.html +# == insertCaptionsAndRows4.html insertCaptionsAndRows4.html fails == insertCellsExpand1.html insertCellsExpand1.html fails == insertCellsExpand2.html insertCellsExpand2.html fails == insertCellsExpandZeroRowspan.html insertCellsExpandZeroRowspan.html diff --git a/layout/reftests/table-width/reftest-stylo.list b/layout/reftests/table-width/reftest-stylo.list index 075ea4f15a89..c20b801dc530 100644 --- a/layout/reftests/table-width/reftest-stylo.list +++ b/layout/reftests/table-width/reftest-stylo.list @@ -6,41 +6,41 @@ fails == spacing-invariance-standards-pref.html spacing-invariance-standards-pre # == min-width.html min-width.html == pref-width.html pref-width.html == min-width-ref.html min-width-ref.html -fails == percent-large.html percent-large.html +fails asserts-if(stylo,4) == percent-large.html percent-large.html # bug 1324661 == percent-large-min.html percent-large-min.html -fails == percent-large-nested.html percent-large-nested.html -fails == percent-small.html percent-small.html +fails == percent-large-nested.html percent-large-nested.html # bug 1324661 +fails asserts-if(stylo,4) == percent-small.html percent-small.html == percent-small-min.html percent-small-min.html fails == percent-small-nested.html percent-small-nested.html -fails == percent-small-2.html percent-small-2.html -fails == percent-zero.html percent-zero.html +fails asserts-if(stylo,8) == percent-small-2.html percent-small-2.html # bug 1324661 +fails asserts-if(stylo,8) == percent-zero.html percent-zero.html # bug 1324661 == shrink-wrap-pref.html shrink-wrap-pref.html == shrink-wrap-avail.html shrink-wrap-avail.html == shrink-wrap-min.html shrink-wrap-min.html == shrink-wrap-min-ref.html shrink-wrap-min-ref.html == shrink-wrap-pref-ref.html shrink-wrap-pref-ref.html == shrink-wrap-avail-ref.html shrink-wrap-avail-ref.html -fails == conflicting-widths-1.html conflicting-widths-1.html -fails == conflicting-widths-2.html conflicting-widths-2.html -fails == conflicting-widths-3.html conflicting-widths-3.html -fails == conflicting-widths-4.html conflicting-widths-4.html -fails == conflicting-widths-5.html conflicting-widths-5.html -== conflicting-widths-6.html conflicting-widths-6.html -fails == conflicting-widths-7.html conflicting-widths-7.html -fails == conflicting-widths-8.html conflicting-widths-8.html -== conflicting-widths-9.html conflicting-widths-9.html -== conflicting-widths-10.html conflicting-widths-10.html +fails asserts-if(stylo,4) == conflicting-widths-1.html conflicting-widths-1.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-2.html conflicting-widths-2.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-3.html conflicting-widths-3.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-4.html conflicting-widths-4.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-5.html conflicting-widths-5.html # bug 1324661 +asserts-if(stylo,4) == conflicting-widths-6.html conflicting-widths-6.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-7.html conflicting-widths-7.html # bug 1324661 +fails asserts-if(stylo,4) == conflicting-widths-8.html conflicting-widths-8.html # bug 1324661 +asserts-if(stylo,4) == conflicting-widths-9.html conflicting-widths-9.html # bug 1324661 +asserts-if(stylo,4) == conflicting-widths-10.html conflicting-widths-10.html # bug 1324661 fails == conflicting-percent-widths-1.html conflicting-percent-widths-1.html == conflicting-percent-widths-2.html conflicting-percent-widths-2.html == conflicting-percent-widths-3.html conflicting-percent-widths-3.html -fails == percent-truncation-1.html percent-truncation-1.html +fails asserts-if(stylo,4) == percent-truncation-1.html percent-truncation-1.html # bug 1324661 fails == percent-truncation-2.html percent-truncation-2.html fails == percent-truncation-3.html percent-truncation-3.html fails == balancing-1.html balancing-1.html fails == balancing-2.html balancing-2.html # == cellpadding.html cellpadding.html -fails == cellspacing.html cellspacing.html -fails == percent-basis.html percent-basis.html +fails asserts-if(stylo,4) == cellspacing.html cellspacing.html # bug 1324661 +fails asserts-if(stylo,16) == percent-basis.html percent-basis.html # bug 1324661 fails == default-box-sizing-separate-standards.html default-box-sizing-separate-standards.html fails == default-box-sizing-separate-quirks.html default-box-sizing-separate-quirks.html fails == default-box-sizing-collapse-standards.html default-box-sizing-collapse-standards.html diff --git a/layout/reftests/text-decoration/reftest-stylo.list b/layout/reftests/text-decoration/reftest-stylo.list index 0e9b82f0c62b..6a290b1ea6e4 100644 --- a/layout/reftests/text-decoration/reftest-stylo.list +++ b/layout/reftests/text-decoration/reftest-stylo.list @@ -6,9 +6,9 @@ fails == decoration-color-quirks.html decoration-color-quirks.html fails == decoration-style-quirks.html decoration-style-quirks.html == decoration-style-standards.html decoration-style-standards.html fails == dynamic-underline-vertical-align-quirks-1.html dynamic-underline-vertical-align-quirks-1.html -fails == dynamic-underline-vertical-align-standards-1.html dynamic-underline-vertical-align-standards-1.html +== dynamic-underline-vertical-align-standards-1.html dynamic-underline-vertical-align-standards-1.html fails == dynamic-underline-vertical-align-quirks-2.html dynamic-underline-vertical-align-quirks-2.html -fails == dynamic-underline-vertical-align-standards-2.html dynamic-underline-vertical-align-standards-2.html +== dynamic-underline-vertical-align-standards-2.html dynamic-underline-vertical-align-standards-2.html fails == line-through-style-block-solid-quirks.html line-through-style-block-solid-quirks.html fails == line-through-style-block-dotted-quirks.html line-through-style-block-dotted-quirks.html fails == line-through-style-block-dashed-quirks.html line-through-style-block-dashed-quirks.html @@ -98,7 +98,7 @@ fails == text-decoration-propagation-1-quirks.html text-decoration-propagation-1 fails == 641444-1.html 641444-1.html fails == decoration-css21.html decoration-css21.html fails == decoration-color-override-quirks.html decoration-color-override-quirks.html -fails == decoration-color-override-standards.html decoration-color-override-standards.html +== decoration-color-override-standards.html decoration-color-override-standards.html == decoration-color-override-standards-ref.html decoration-color-override-standards-ref.html == decoration-css21-block.html decoration-css21-block.html == inline-baseline-almost-standards.html inline-baseline-almost-standards.html diff --git a/layout/reftests/text/reftest-stylo.list b/layout/reftests/text/reftest-stylo.list index 8857893e7712..a04c97d9cc28 100644 --- a/layout/reftests/text/reftest-stylo.list +++ b/layout/reftests/text/reftest-stylo.list @@ -45,7 +45,7 @@ fails == pre-wrap-1.html pre-wrap-1.html # Tests for soft hyphens in table cells, bug 418975 # == soft-hyphen-in-table-1.html soft-hyphen-in-table-1.html # == soft-hyphen-in-table-1.html soft-hyphen-in-table-1.html -== soft-hyphen-in-table-2.html soft-hyphen-in-table-2.html +asserts-if(stylo,4) == soft-hyphen-in-table-2.html soft-hyphen-in-table-2.html # bug 1324661 # Cairo's FreeType and GDI backends snap glyphs to pixels, while Mac (usually), # D2D, and Skia have subpixel positioning. The tests for pixel-snapping assume that # 1 CSS pixel == 1 device device @@ -339,5 +339,5 @@ pref(layout.css.control-characters.visible,true) == control-chars-04d.html contr fails HTTP(..) == space-font-1.html space-font-1.html # handling of highly negative letter-spacing and intrinsic width -fails == negative-letter-spacing-1.html negative-letter-spacing-1.html +== negative-letter-spacing-1.html negative-letter-spacing-1.html == segment-break-transformation-1.html segment-break-transformation-1.html diff --git a/layout/reftests/w3c-css/received/reftest-stylo.list b/layout/reftests/w3c-css/received/reftest-stylo.list index c44ff9748e9b..c44603d096b4 100644 --- a/layout/reftests/w3c-css/received/reftest-stylo.list +++ b/layout/reftests/w3c-css/received/reftest-stylo.list @@ -115,7 +115,7 @@ fails == css-multicol-1/multicol-nested-margin-002.xht css-multicol-1/multicol-n fails == css-multicol-1/multicol-nested-margin-003.xht css-multicol-1/multicol-nested-margin-003.xht fails == css-multicol-1/multicol-nested-margin-004.xht css-multicol-1/multicol-nested-margin-004.xht fails == css-multicol-1/multicol-nested-margin-005.xht css-multicol-1/multicol-nested-margin-005.xht -fails == css-multicol-1/multicol-overflow-000.xht css-multicol-1/multicol-overflow-000.xht +fails asserts-if(stylo,4) == css-multicol-1/multicol-overflow-000.xht css-multicol-1/multicol-overflow-000.xht # bug 1324661 fails == css-multicol-1/multicol-overflowing-001.xht css-multicol-1/multicol-overflowing-001.xht fails == css-multicol-1/multicol-reduce-000.xht css-multicol-1/multicol-reduce-000.xht fails == css-multicol-1/multicol-rule-000.xht css-multicol-1/multicol-rule-000.xht @@ -145,10 +145,10 @@ fails == css-multicol-1/multicol-rule-ridge-000.xht css-multicol-1/multicol-rule == css-multicol-1/multicol-rule-shorthand-001.xht css-multicol-1/multicol-rule-shorthand-001.xht fails == css-multicol-1/multicol-rule-solid-000.xht css-multicol-1/multicol-rule-solid-000.xht fails == css-multicol-1/multicol-rule-stacking-001.xht css-multicol-1/multicol-rule-stacking-001.xht -== css-multicol-1/multicol-rule-style-groove-001.xht css-multicol-1/multicol-rule-style-groove-001.xht -== css-multicol-1/multicol-rule-style-inset-001.xht css-multicol-1/multicol-rule-style-inset-001.xht -== css-multicol-1/multicol-rule-style-outset-001.xht css-multicol-1/multicol-rule-style-outset-001.xht -== css-multicol-1/multicol-rule-style-ridge-001.xht css-multicol-1/multicol-rule-style-ridge-001.xht +asserts-if(stylo,4) == css-multicol-1/multicol-rule-style-groove-001.xht css-multicol-1/multicol-rule-style-groove-001.xht # bug 1324661 +asserts-if(stylo,4) == css-multicol-1/multicol-rule-style-inset-001.xht css-multicol-1/multicol-rule-style-inset-001.xht # bug 1324661 +asserts-if(stylo,4) == css-multicol-1/multicol-rule-style-outset-001.xht css-multicol-1/multicol-rule-style-outset-001.xht # bug 1324661 +asserts-if(stylo,4) == css-multicol-1/multicol-rule-style-ridge-001.xht css-multicol-1/multicol-rule-style-ridge-001.xht # bug 1324661 fails == css-multicol-1/multicol-shorthand-001.xht css-multicol-1/multicol-shorthand-001.xht fails == css-multicol-1/multicol-span-000.xht css-multicol-1/multicol-span-000.xht fails == css-multicol-1/multicol-span-all-001.xht css-multicol-1/multicol-span-all-001.xht diff --git a/layout/reftests/w3c-css/submitted/images3/reftest-stylo.list b/layout/reftests/w3c-css/submitted/images3/reftest-stylo.list index 19cba34cb4c8..4c0aeb12f0ee 100644 --- a/layout/reftests/w3c-css/submitted/images3/reftest-stylo.list +++ b/layout/reftests/w3c-css/submitted/images3/reftest-stylo.list @@ -2,14 +2,14 @@ default-preferences test-pref(layout.css.object-fit-and-position.enabled,true) # Tests for 'object-fit' / 'object-position' with a PNG image fails == object-fit-fill-png-001c.html object-fit-fill-png-001c.html -fails == object-fit-fill-png-001e.html object-fit-fill-png-001e.html +# fails == object-fit-fill-png-001e.html object-fit-fill-png-001e.html fails == object-fit-fill-png-001i.html object-fit-fill-png-001i.html -fails == object-fit-fill-png-001o.html object-fit-fill-png-001o.html +# fails == object-fit-fill-png-001o.html object-fit-fill-png-001o.html fails == object-fit-fill-png-001p.html object-fit-fill-png-001p.html fails == object-fit-fill-png-002c.html object-fit-fill-png-002c.html -fails == object-fit-fill-png-002e.html object-fit-fill-png-002e.html +# fails == object-fit-fill-png-002e.html object-fit-fill-png-002e.html fails == object-fit-fill-png-002i.html object-fit-fill-png-002i.html -fails == object-fit-fill-png-002o.html object-fit-fill-png-002o.html +# fails == object-fit-fill-png-002o.html object-fit-fill-png-002o.html fails == object-fit-fill-png-002p.html object-fit-fill-png-002p.html fails == object-fit-contain-png-001c.html object-fit-contain-png-001c.html fails == object-fit-contain-png-001e.html object-fit-contain-png-001e.html @@ -17,9 +17,9 @@ fails == object-fit-contain-png-001i.html object-fit-contain-png-001i.html fails == object-fit-contain-png-001o.html object-fit-contain-png-001o.html fails == object-fit-contain-png-001p.html object-fit-contain-png-001p.html fails == object-fit-contain-png-002c.html object-fit-contain-png-002c.html -fails == object-fit-contain-png-002e.html object-fit-contain-png-002e.html +# fails == object-fit-contain-png-002e.html object-fit-contain-png-002e.html fails == object-fit-contain-png-002i.html object-fit-contain-png-002i.html -fails == object-fit-contain-png-002o.html object-fit-contain-png-002o.html +# fails == object-fit-contain-png-002o.html object-fit-contain-png-002o.html fails == object-fit-contain-png-002p.html object-fit-contain-png-002p.html fails == object-fit-cover-png-001c.html object-fit-cover-png-001c.html fails == object-fit-cover-png-001e.html object-fit-cover-png-001e.html @@ -174,20 +174,20 @@ fails == object-fit-scale-down-svg-006i.html object-fit-scale-down-svg-006i.html fails == object-fit-scale-down-svg-006o.html object-fit-scale-down-svg-006o.html fails == object-fit-scale-down-svg-006p.html object-fit-scale-down-svg-006p.html fails == object-position-png-001c.html object-position-png-001c.html -fails == object-position-png-001e.html object-position-png-001e.html +# fails == object-position-png-001e.html object-position-png-001e.html fails == object-position-png-001i.html object-position-png-001i.html -fails == object-position-png-001o.html object-position-png-001o.html +# fails == object-position-png-001o.html object-position-png-001o.html fails == object-position-png-001p.html object-position-png-001p.html fails == object-position-png-002c.html object-position-png-002c.html -fails == object-position-png-002e.html object-position-png-002e.html +# fails == object-position-png-002e.html object-position-png-002e.html fails == object-position-png-002i.html object-position-png-002i.html -fails == object-position-png-002o.html object-position-png-002o.html +# fails == object-position-png-002o.html object-position-png-002o.html fails == object-position-png-002p.html object-position-png-002p.html fails == object-position-svg-001e.html object-position-svg-001e.html fails == object-position-svg-001i.html object-position-svg-001i.html fails == object-position-svg-001o.html object-position-svg-001o.html fails == object-position-svg-001p.html object-position-svg-001p.html -fails == object-position-svg-002e.html object-position-svg-002e.html +# fails == object-position-svg-002e.html object-position-svg-002e.html fails == object-position-svg-002i.html object-position-svg-002i.html fails == object-position-svg-002o.html object-position-svg-002o.html fails == object-position-svg-002p.html object-position-svg-002p.html diff --git a/layout/reftests/writing-mode/tables/reftest-stylo.list b/layout/reftests/writing-mode/tables/reftest-stylo.list index 9cf06977ec32..3a9b94467f7e 100644 --- a/layout/reftests/writing-mode/tables/reftest-stylo.list +++ b/layout/reftests/writing-mode/tables/reftest-stylo.list @@ -9,8 +9,8 @@ == vertical-table-colspan-2.html vertical-table-colspan-2.html == vertical-table-specified-width-1.html vertical-table-specified-width-1.html asserts(1-2) == vertical-table-specified-width-2.html vertical-table-specified-width-2.html -== vertical-border-collapse-1.html vertical-border-collapse-1.html -== vertical-border-collapse-2.html vertical-border-collapse-2.html +asserts-if(stylo,4) == vertical-border-collapse-1.html vertical-border-collapse-1.html # bug 1324661 +asserts-if(stylo,4) == vertical-border-collapse-2.html vertical-border-collapse-2.html # bug 1324661 # == fixed-table-layout-002-vlr.html fixed-table-layout-002-vlr.html # == fixed-table-layout-003-vlr.html fixed-table-layout-003-vlr.html @@ -68,12 +68,12 @@ asserts(1-2) == vertical-table-specified-width-2.html vertical-table-specified-w # HTTP(../..) == s72-border-spacing-003.xht s72-border-spacing-003.xht # HTTP(../..) == s72-border-spacing-004.xht s72-border-spacing-004.xht # HTTP(../..) == s72-border-spacing-005.xht s72-border-spacing-005.xht -fails == wm-row-progression-002.xht wm-row-progression-002.xht -fails == wm-row-progression-003.xht wm-row-progression-003.xht -fails == wm-row-progression-004.xht wm-row-progression-004.xht -fails == wm-row-progression-005.xht wm-row-progression-005.xht -fails == wm-row-progression-006.xht wm-row-progression-006.xht -fails == wm-row-progression-007.xht wm-row-progression-007.xht +fails asserts-if(stylo,4) == wm-row-progression-002.xht wm-row-progression-002.xht # bug 1324661 +fails asserts-if(stylo,4) == wm-row-progression-003.xht wm-row-progression-003.xht # bug 1324661 +fails asserts-if(stylo,4) == wm-row-progression-004.xht wm-row-progression-004.xht # bug 1324661 +fails asserts-if(stylo,4) == wm-row-progression-005.xht wm-row-progression-005.xht # bug 1324661 +fails asserts-if(stylo,4) == wm-row-progression-006.xht wm-row-progression-006.xht # bug 1324661 +fails asserts-if(stylo,4) == wm-row-progression-007.xht wm-row-progression-007.xht # bug 1324661 # == table-caption-top-1.html table-caption-top-1.html # == table-caption-bottom-1.html table-caption-bottom-1.html diff --git a/layout/style/crashtests/crashtests.list b/layout/style/crashtests/crashtests.list index e325cf3a6a46..d28ff8edc343 100644 --- a/layout/style/crashtests/crashtests.list +++ b/layout/style/crashtests/crashtests.list @@ -73,7 +73,7 @@ load 601439-1.html load 605689-1.html load 611922-1.html load 621596-1.html -load 622314-1.xhtml +skip-if(stylo) load 622314-1.xhtml # bug 1337695 load 637242.xhtml load 645142.html fails-if(stylo) == 645951-1.html 645951-1-ref.html diff --git a/layout/svg/crashtests/crashtests.list b/layout/svg/crashtests/crashtests.list index 1758ba1d66dd..0e7d9d9b7054 100644 --- a/layout/svg/crashtests/crashtests.list +++ b/layout/svg/crashtests/crashtests.list @@ -105,7 +105,7 @@ load 587336-1.html load 590291-1.svg load 601999-1.html load 605626-1.svg -asserts(2) asserts-if(stylo,0) load 606914.xhtml # bug 606914 +asserts(2) load 606914.xhtml # bug 606914 load 610594-1.html load 610954-1.html load 612662-1.svg diff --git a/layout/tables/crashtests/crashtests.list b/layout/tables/crashtests/crashtests.list index 1da087db87ed..17da4f774dc3 100644 --- a/layout/tables/crashtests/crashtests.list +++ b/layout/tables/crashtests/crashtests.list @@ -10,21 +10,21 @@ load 187779-1.html load 189751-1.html load 197015-1.html load 220536-1.html -load 223458-1.html +asserts-if(stylo,4) load 223458-1.html # bug 1324661 load 237421-1.html load 237421-2.html load 238909-1.html load 239294-1.html load 240854-1.html load 266015-1.html -load 267418.html +asserts-if(stylo,10) load 267418.html # bug 1324661 load 275625.html load 277062-1.html load 278385-1.html load 282175-1.html load 284844-1.html load 284844-1.html -load 284852.html +asserts-if(stylo,12) load 284852.html # bug 1324661 load 300912.html load 308752-1.html load 308752-2.html @@ -68,7 +68,7 @@ load 370360-1.html load 370710.xhtml load 370713-1.html load 370876-1.html -asserts-if(stylo,6-7) load 370897-1.html # bug 1324643 +load 370897-1.html load 371290.html load 373400-1.html load 373400-2.html @@ -102,8 +102,8 @@ load 411582.xhtml load 413091.xhtml load 413180-1.html load 416845-1.xhtml -load 416845-2.xhtml -load 416845-3.html +asserts-if(stylo,4) load 416845-2.xhtml # bug 1324661 +asserts-if(stylo,2) load 416845-3.html # bug 1324661 load 420242-1.xhtml asserts(8) asserts-if(stylo,4) load 420654-1.xhtml # bug 458238, bug 436123, bug 457397 # bug 1324682 load 423514-1.xhtml @@ -140,7 +140,7 @@ asserts(1) asserts-if(stylo,0) load 595758-1.xhtml # Bug 714667 load 595758-2.xhtml load 678447-1.html load 691824-1.xhtml -load 695430-1.html +asserts-if(stylo,4) load 695430-1.html # bug 1324661 load 696640-1.html load 696640-2.html load 705996-1.html @@ -148,7 +148,7 @@ load 705996-2.html load 707622-1.html load 710098-1.html load 711864-1.html -asserts-if(gtkWidget&&browserIsRemote,5) asserts-if(stylo,1-6) load 759249-1.html # Bug 1195474 # bug 1324704 +asserts-if(gtkWidget&&browserIsRemote,5) asserts-if(stylo,1-7) load 759249-1.html # Bug 1195474 # bug 1324704 load 759249-2.html load 814713.html load 1027611-1.html diff --git a/layout/tables/reftests/reftest-stylo.list b/layout/tables/reftests/reftest-stylo.list index 9b9a859d150d..ea53a8c896d1 100644 --- a/layout/tables/reftests/reftest-stylo.list +++ b/layout/tables/reftests/reftest-stylo.list @@ -1,10 +1,10 @@ # DO NOT EDIT! This is a auto-generated temporary list for Stylo testing fails == 1031934.html 1031934.html -== 1220621-1a.html 1220621-1a.html -== 1220621-1b.html 1220621-1b.html -== 1220621-1c.html 1220621-1c.html -== 1220621-1d.html 1220621-1d.html -== 1220621-1e.html 1220621-1e.html -== 1220621-1f.html 1220621-1f.html -== 1220621-2a.html 1220621-2a.html -== 1220621-2b.html 1220621-2b.html +asserts-if(stylo,6) == 1220621-1a.html 1220621-1a.html # bug 1324661 +asserts-if(stylo,6) == 1220621-1b.html 1220621-1b.html # bug 1324661 +asserts-if(stylo,6) == 1220621-1c.html 1220621-1c.html # bug 1324661 +asserts-if(stylo,6) == 1220621-1d.html 1220621-1d.html # bug 1324661 +asserts-if(stylo,6) == 1220621-1e.html 1220621-1e.html # bug 1324661 +asserts-if(stylo,6) == 1220621-1f.html 1220621-1f.html # bug 1324661 +asserts-if(stylo,6) == 1220621-2a.html 1220621-2a.html # bug 1324661 +asserts-if(stylo,6) == 1220621-2b.html 1220621-2b.html # bug 1324661 diff --git a/widget/cocoa/crashtests/crashtests.list b/widget/cocoa/crashtests/crashtests.list index 4a3da5184585..bfaaa7b966f7 100644 --- a/widget/cocoa/crashtests/crashtests.list +++ b/widget/cocoa/crashtests/crashtests.list @@ -7,5 +7,5 @@ load 444260-1.xul load 444864-1.html load 449111-1.html load 460349-1.xhtml -load 460387-1.html +asserts-if(stylo,4) load 460387-1.html # bug 1324661 load 464589-1.html From 3995eb5f1af30742ca7a8d79e4951a2e4fadea00 Mon Sep 17 00:00:00 2001 From: Emanuel Hoogeveen Date: Thu, 9 Feb 2017 14:27:29 +0100 Subject: [PATCH 015/112] Bug 1332937 - Allow libcubeb and other media libs to set the moz crash reason. r=glandium MozReview-Commit-ID: 8cRXEvvhOY2 --- layout/media/moz.build | 2 ++ toolkit/library/moz.build | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/layout/media/moz.build b/layout/media/moz.build index 3602d767ec0d..e027a2395b6d 100644 --- a/layout/media/moz.build +++ b/layout/media/moz.build @@ -13,6 +13,8 @@ with Files('**'): # on Windows for them to propagate there. Library('gkmedias') +FINAL_LIBRARY = 'xul' + if CONFIG['MOZ_WEBRTC']: DIRS += ['webrtc'] diff --git a/toolkit/library/moz.build b/toolkit/library/moz.build index 6e0d3049c443..608fba817d02 100644 --- a/toolkit/library/moz.build +++ b/toolkit/library/moz.build @@ -116,7 +116,6 @@ USE_LIBS += [ ] USE_LIBS += [ - 'gkmedias', 'lgpllibs', 'nspr', 'nss', From c24fdf40e43b10f5b79622e6cc589519118ec25a Mon Sep 17 00:00:00 2001 From: Joel Maher Date: Thu, 9 Feb 2017 08:27:19 -0500 Subject: [PATCH 016/112] Bug 1331049 - DeadlockDetector death test fails on osx tc build, extend timeout to 30 minutes. r=ted MozReview-Commit-ID: 9jnrRzjGmnf --- testing/gtest/rungtests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/gtest/rungtests.py b/testing/gtest/rungtests.py index e9e33cca2c5e..10a9c0c5d181 100644 --- a/testing/gtest/rungtests.py +++ b/testing/gtest/rungtests.py @@ -20,7 +20,7 @@ log = mozlog.unstructured.getLogger('gtest') class GTests(object): # Time (seconds) to wait for test process to complete - TEST_PROC_TIMEOUT = 1200 + TEST_PROC_TIMEOUT = 1800 # Time (seconds) in which process will be killed if it produces no output. TEST_PROC_NO_OUTPUT_TIMEOUT = 300 From ad818bc99a5be44ee1e95ae129e9d1b4259ba5c7 Mon Sep 17 00:00:00 2001 From: Eugen Sawin Date: Wed, 18 Jan 2017 22:55:53 +0100 Subject: [PATCH 017/112] Bug 1322592 - [1.3] Add GeckoView navigation. r=snorp,jchen --- .../java/org/mozilla/gecko/GeckoView.java | 80 ++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java index bbf17973cf3a..30dc28dc5ce2 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoView.java @@ -47,7 +47,7 @@ public class GeckoView extends LayerView private ChromeDelegate mChromeDelegate; /* package */ ContentListener mContentListener; - + /* package */ NavigationListener mNavigationListener; private InputConnectionListener mInputConnectionListener; protected boolean onAttachedToWindowCalled; @@ -116,6 +116,7 @@ public class GeckoView extends LayerView /* package */ void registerListeners() { getEventDispatcher().registerUiThreadListener(this, "GeckoView:DOMTitleChanged", + "GeckoView:LocationChange", null); } @@ -130,6 +131,15 @@ public class GeckoView extends LayerView if (mContentListener != null) { mContentListener.onTitleChanged(GeckoView.this, message.getString("title")); } + } else if ("GeckoView:LocationChange".equals(event)) { + if (mNavigationListener == null) { + // We shouldn't be getting this event. + eventDispatcher.dispatch("GeckoViewNavigation:Inactive", null); + } else { + mNavigationListener.onLocationChange(GeckoView.this, message.getString("uri")); + mNavigationListener.onCanGoBack(GeckoView.this, message.getBoolean("canGoBack")); + mNavigationListener.onCanGoForward(GeckoView.this, message.getBoolean("canGoForward")); + } } } } @@ -266,6 +276,11 @@ public class GeckoView extends LayerView @WrapForJNI public static final int LOAD_NEW_TAB = 1; @WrapForJNI public static final int LOAD_SWITCH_TAB = 2; + /** + * Load the given URI. + * @param uri The URI of the resource to load. + * @param flags The load flags (TODO). + */ public void loadUri(String uri, int flags) { if (window == null) { throw new IllegalStateException("Not attached to window"); @@ -282,6 +297,20 @@ public class GeckoView extends LayerView mInputConnectionListener = icl; } + /** + * Go back in history. + */ + public void goBack() { + eventDispatcher.dispatch("GeckoView:GoBack", null); + } + + /** + * Go forward in history. + */ + public void goForward() { + eventDispatcher.dispatch("GeckoView:GoForward", null); + } + @Override public Handler getHandler() { if (mInputConnectionListener != null) { @@ -383,6 +412,32 @@ public class GeckoView extends LayerView return mContentListener; } + /** + * Set the navigation callback handler. + * This will replace the current handler. + * @param navigation An implementation of NavigationListener. + */ + public void setNavigationDelegate(NavigationListener listener) { + if (mNavigationListener == listener) { + return; + } + if (listener == null) { + eventDispatcher.dispatch("GeckoViewNavigation:Inactive", null); + } else if (mNavigationListener == null) { + eventDispatcher.dispatch("GeckoViewNavigation:Active", null); + } + + mNavigationListener = listener; + } + + /** + * Get the navigation callback handler. + * @return The current navigation callback handler. + */ + public NavigationListener getNavigationListener() { + return mNavigationListener; + } + public static void setGeckoInterface(final BaseGeckoInterface geckoInterface) { GeckoAppShell.setGeckoInterface(geckoInterface); } @@ -479,4 +534,27 @@ public class GeckoView extends LayerView */ public void onTitleChanged(GeckoView view, String title); } + + public interface NavigationListener { + /** + * A view has started loading content from the network. + * @param view The GeckoView that initiated the callback. + * @param url The resource being loaded. + */ + public void onLocationChange(GeckoView view, String url); + + /** + * The view's ability to go back has changed. + * @param view The GeckoView that initiated the callback. + * @param canGoBack The new value for the ability. + */ + public void onCanGoBack(GeckoView view, boolean canGoBack); + + /** + * The view's ability to go forward has changed. + * @param view The GeckoView that initiated the callback. + * @param canGoForward The new value for the ability. + */ + public void onCanGoForward(GeckoView view, boolean canGoForward); + } } From 5ecdbd81b84c8ba54a4a6d0c4bbae351e0115f2f Mon Sep 17 00:00:00 2001 From: Eugen Sawin Date: Thu, 19 Jan 2017 18:26:41 +0100 Subject: [PATCH 018/112] Bug 1322592 - [2.2] Add GeckoViewNavigation.jsm. r=snorp,jchen --- .../android/modules/GeckoViewNavigation.jsm | 138 ++++++++++++++++++ mobile/android/modules/moz.build | 3 +- 2 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 mobile/android/modules/GeckoViewNavigation.jsm diff --git a/mobile/android/modules/GeckoViewNavigation.jsm b/mobile/android/modules/GeckoViewNavigation.jsm new file mode 100644 index 000000000000..561e0bd7e110 --- /dev/null +++ b/mobile/android/modules/GeckoViewNavigation.jsm @@ -0,0 +1,138 @@ +/* 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"; + +this.EXPORTED_SYMBOLS = ["GeckoViewNavigation"]; + +const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; + +Cu.import("resource://gre/modules/XPCOMUtils.jsm"); + +XPCOMUtils.defineLazyModuleGetter(this, "EventDispatcher", + "resource://gre/modules/Messaging.jsm"); + +var dump = Cu.import("resource://gre/modules/AndroidLog.jsm", {}) + .AndroidLog.d.bind(null, "ViewNavigation"); + +function debug(msg) { + // dump(msg); +} + +// Handles navigation requests between Gecko and a GeckoView. +// Implements GeckoView.loadUri via openURI. +// Handles GeckoView:GoBack and :GoForward requests dispatched by +// GeckoView.goBack and .goForward. +// Dispatches GeckoView:LocationChange to the GeckoView on location change when +// active. +// Can be activated and deactivated by GeckoViewNavigation:Active and :Inactive +// events. +class GeckoViewNavigation { + constructor(window) { + this.window = window; + this.window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = this; + + // We need to listen initially because the "GeckoViewNavigation:Active" + // event may be dispatched before this object is constructed. + this.registerProgressListener(); + + this.eventDispatcher.registerListener(this, [ + "GeckoViewNavigation:Active", + "GeckoViewNavigation:Inactive", + "GeckoView:GoBack", + "GeckoView:GoForward", + ]); + } + + get browser() { + return this.window.browser; + } + + get messageManager() { + return this.browser.messageManager; + } + + get eventDispatcher() { + return EventDispatcher.for(this.window); + } + + // Bundle event handler. + onEvent(event, data, callback) { + debug("onEvent: event=" + event + ", data=" + JSON.stringify(data)); + + switch (event) { + case "GeckoViewNavigation:Active": + this.registerProgressListener(); + break; + case "GeckoViewNavigation:Inactive": + this.unregisterProgressListener(); + break; + case "GeckoView:GoBack": + this.browser.goBack(); + break; + case "GeckoView:GoForward": + this.browser.goForward(); + break; + } + } + + // Message manager event handler. + receiveMessage(msg) { + debug("receiveMessage " + msg.name); + } + + // nsIBrowserDOMWindow::openURI implementation. + openURI(uri, opener, where, flags) { + debug("openURI: uri.spec=" + uri.spec); + // nsIWebNavigation::loadURI(URI, loadFlags, referrer, postData, headers). + this.browser.loadURI(uri.spec, null, null, null); + } + + // nsIBrowserDOMWindow::canClose implementation. + canClose() { + debug("canClose"); + return false; + } + + registerProgressListener() { + debug("registerProgressListener"); + let flags = Ci.nsIWebProgress.NOTIFY_LOCATION; + this.progressFilter = + Cc["@mozilla.org/appshell/component/browser-status-filter;1"] + .createInstance(Ci.nsIWebProgress); + this.progressFilter.addProgressListener(this, flags); + this.browser.addProgressListener(this.progressFilter, flags); + } + + unregisterProgressListener() { + debug("unregisterProgressListener"); + if (!this.progressFilter) { + return; + } + this.progressFilter.removeProgressListener(this); + this.browser.removeProgressListener(this.progressFilter); + } + + // WebProgress event handler. + onLocationChange(webProgress, request, locationURI, flags) { + debug("onLocationChange"); + + let fixedURI = locationURI; + + try { + fixedURI = URIFixup.createExposableURI(locationURI); + } catch (ex) { } + + let message = { + type: "GeckoView:LocationChange", + uri: fixedURI.spec, + canGoBack: this.browser.canGoBack, + canGoForward: this.browser.canGoForward, + }; + + debug("dispatch " + JSON.stringify(message)); + + this.eventDispatcher.sendRequest(message); + } +} diff --git a/mobile/android/modules/moz.build b/mobile/android/modules/moz.build index 8dc31b444bfd..56bb178633f0 100644 --- a/mobile/android/modules/moz.build +++ b/mobile/android/modules/moz.build @@ -33,5 +33,6 @@ EXTRA_JS_MODULES += [ # GeckoView-sepcific modules added separately. EXTRA_JS_MODULES += [ - 'GeckoViewContent.jsm' + 'GeckoViewContent.jsm', + 'GeckoViewNavigation.jsm' ] From 7fedfdca7a86dc62560ecf26769ce35b006d30fe Mon Sep 17 00:00:00 2001 From: Eugen Sawin Date: Fri, 27 Jan 2017 16:36:24 +0100 Subject: [PATCH 019/112] Bug 1322592 - [3.3] Add GeckoViewModule base class and integrate GeckoViewNavigation. r=snorp,jchen --- mobile/android/chrome/content/geckoview.js | 44 ++++++++++++++----- mobile/android/modules/GeckoViewModule.jsm | 25 +++++++++++ .../android/modules/GeckoViewNavigation.jsm | 18 ++------ mobile/android/modules/moz.build | 1 + 4 files changed, 62 insertions(+), 26 deletions(-) create mode 100644 mobile/android/modules/GeckoViewModule.jsm diff --git a/mobile/android/chrome/content/geckoview.js b/mobile/android/chrome/content/geckoview.js index ffa2bb232b99..3a5511d72cbf 100644 --- a/mobile/android/chrome/content/geckoview.js +++ b/mobile/android/chrome/content/geckoview.js @@ -1,6 +1,7 @@ /* 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 { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; @@ -8,27 +9,48 @@ const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; Cu.import("resource://gre/modules/AppConstants.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "Services", - "resource://gre/modules/Services.jsm", "Services"); - XPCOMUtils.defineLazyModuleGetter(this, "EventDispatcher", "resource://gre/modules/Messaging.jsm"); -XPCOMUtils.defineLazyGetter(this, "GlobalEventDispatcher", - () => EventDispatcher.instance); XPCOMUtils.defineLazyGetter(this, "WindowEventDispatcher", () => EventDispatcher.for(window)); var dump = Cu.import("resource://gre/modules/AndroidLog.jsm", {}) .AndroidLog.d.bind(null, "View"); -// GeckoView module imports. -XPCOMUtils.defineLazyModuleGetter(this, "GeckoViewContent", - "resource://gre/modules/GeckoViewContent.jsm"); +// Creates and manages GeckoView modules. +// A module must extend GeckoViewModule. +// Instantiate a module by calling +// add(, ) +// and remove by calling +// remove() +var ModuleManager = { + init: function() { + this.browser = document.getElementById("content"); + this.modules = {}; + }, -var content; + add: function(resource, type, ...args) { + this.remove(type); + let scope = {}; + Cu.import(resource, scope); + this.modules[type] = new scope[type]( + window, this.browser, WindowEventDispatcher, ...args); + }, + + remove: function(type) { + if (!(type in this.modules)) { + return; + } + delete this.modules[type]; + } +}; function startup() { - dump("zerdatime " + Date.now() + " - geckoview chrome startup finished."); + ModuleManager.init(); + ModuleManager.add("resource://gre/modules/GeckoViewContent.jsm", + "GeckoViewContent"); + ModuleManager.add("resource://gre/modules/GeckoViewNavigation.jsm", + "GeckoViewNavigation"); - content = new GeckoViewContent(window, document.getElementById("content"), WindowEventDispatcher); + dump("zerdatime " + Date.now() + " - geckoview chrome startup finished."); } diff --git a/mobile/android/modules/GeckoViewModule.jsm b/mobile/android/modules/GeckoViewModule.jsm new file mode 100644 index 000000000000..0e6312afff83 --- /dev/null +++ b/mobile/android/modules/GeckoViewModule.jsm @@ -0,0 +1,25 @@ +/* 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"; + +this.EXPORTED_SYMBOLS = ["GeckoViewModule"]; + +const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; + +class GeckoViewModule { + constructor(window, browser, eventDispatcher) { + this.window = window; + this.browser = browser; + this.eventDispatcher = eventDispatcher; + + this.init(); + } + + init() {} + + get messageManager() { + return this.browser.messageManager; + } +} diff --git a/mobile/android/modules/GeckoViewNavigation.jsm b/mobile/android/modules/GeckoViewNavigation.jsm index 561e0bd7e110..f7699cc43433 100644 --- a/mobile/android/modules/GeckoViewNavigation.jsm +++ b/mobile/android/modules/GeckoViewNavigation.jsm @@ -8,6 +8,7 @@ this.EXPORTED_SYMBOLS = ["GeckoViewNavigation"]; const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; +Cu.import("resource://gre/modules/GeckoViewModule.jsm"); Cu.import("resource://gre/modules/XPCOMUtils.jsm"); XPCOMUtils.defineLazyModuleGetter(this, "EventDispatcher", @@ -28,9 +29,8 @@ function debug(msg) { // active. // Can be activated and deactivated by GeckoViewNavigation:Active and :Inactive // events. -class GeckoViewNavigation { - constructor(window) { - this.window = window; +class GeckoViewNavigation extends GeckoViewModule { + init() { this.window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = this; // We need to listen initially because the "GeckoViewNavigation:Active" @@ -45,18 +45,6 @@ class GeckoViewNavigation { ]); } - get browser() { - return this.window.browser; - } - - get messageManager() { - return this.browser.messageManager; - } - - get eventDispatcher() { - return EventDispatcher.for(this.window); - } - // Bundle event handler. onEvent(event, data, callback) { debug("onEvent: event=" + event + ", data=" + JSON.stringify(data)); diff --git a/mobile/android/modules/moz.build b/mobile/android/modules/moz.build index 56bb178633f0..18a8ef508751 100644 --- a/mobile/android/modules/moz.build +++ b/mobile/android/modules/moz.build @@ -34,5 +34,6 @@ EXTRA_JS_MODULES += [ # GeckoView-sepcific modules added separately. EXTRA_JS_MODULES += [ 'GeckoViewContent.jsm', + 'GeckoViewModule.jsm', 'GeckoViewNavigation.jsm' ] From 1b0bde87e715f786aaaeade118d1f5244308f28a Mon Sep 17 00:00:00 2001 From: Eugen Sawin Date: Wed, 8 Feb 2017 21:16:30 +0100 Subject: [PATCH 020/112] Bug 1322592 - [4.0] Refactor GeckoViewContent to extend GeckoViewModule. r=jchen --- mobile/android/modules/GeckoViewContent.jsm | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/mobile/android/modules/GeckoViewContent.jsm b/mobile/android/modules/GeckoViewContent.jsm index 938d85eda70b..7a01232d70f5 100644 --- a/mobile/android/modules/GeckoViewContent.jsm +++ b/mobile/android/modules/GeckoViewContent.jsm @@ -8,27 +8,21 @@ this.EXPORTED_SYMBOLS = ["GeckoViewContent"]; const { classes: Cc, interfaces: Ci, utils: Cu, results: Cr } = Components; +Cu.import("resource://gre/modules/GeckoViewModule.jsm"); + var dump = Cu.import("resource://gre/modules/AndroidLog.jsm", {}) .AndroidLog.d.bind(null, "ViewContent"); var DEBUG = false; -class GeckoViewContent { - constructor(_window, _browser, _windowEventDispatcher) { - this.window = _window; - this.browser = _browser; - this.windowEventDispatcher = _windowEventDispatcher; - +class GeckoViewContent extends GeckoViewModule { + init() { this.window.QueryInterface(Ci.nsIDOMChromeWindow).browserDOMWindow = this; this.messageManager.loadFrameScript("chrome://browser/content/GeckoViewContent.js", true); this.messageManager.addMessageListener("GeckoView:DOMTitleChanged", this); } - get messageManager() { - return this.browser.messageManager; - } - handleEvent(event) { if (DEBUG) { dump("handleEvent: event.type=" + event.type); @@ -43,7 +37,7 @@ class GeckoViewContent { switch (msg.name) { case "GeckoView:DOMTitleChanged": - this.windowEventDispatcher.sendRequest({ type: "GeckoView:DOMTitleChanged", title: msg.data.title }); + this.eventDispatcher.sendRequest({ type: "GeckoView:DOMTitleChanged", title: msg.data.title }); break; } } From 471a55162b025bfdeadd4ad2a5ef08adcb2b6129 Mon Sep 17 00:00:00 2001 From: Ehsan Akhgari Date: Wed, 8 Feb 2017 09:37:03 -0500 Subject: [PATCH 021/112] Bug 1337874 - Include files that participate in unified builds in the compilation database; r=glandium Without this, clang-tidy cannot check any diffs including such files. In the future, when checking the entire tree using clang-tidy, we will ignore these entries in the compilation database. --- python/mozbuild/mozbuild/compilation/database.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/python/mozbuild/mozbuild/compilation/database.py b/python/mozbuild/mozbuild/compilation/database.py index 4193e1bcf4e5..b57389ed1555 100644 --- a/python/mozbuild/mozbuild/compilation/database.py +++ b/python/mozbuild/mozbuild/compilation/database.py @@ -118,10 +118,13 @@ class CompileDBBackend(CommonBackend): db = [] - for (directory, filename), cmd in self._db.iteritems(): + for (directory, filename, unified), cmd in self._db.iteritems(): env = self._envs[directory] cmd = list(cmd) - cmd.append(filename) + if unified is None: + cmd.append(filename) + else: + cmd.append(unified) local_extra = list(self._extra_includes[directory]) if directory not in self._gyp_dirs: for var in ( @@ -173,6 +176,9 @@ class CompileDBBackend(CommonBackend): for f in obj.unified_source_mapping: self._build_db_line(obj.objdir, obj.relativedir, obj.config, f[0], obj.canonical_suffix) + for entry in f[1]: + self._build_db_line(obj.objdir, obj.relativedir, obj.config, + entry, obj.canonical_suffix, unified=f[0]) def _handle_idl_manager(self, idl_manager): pass @@ -204,10 +210,11 @@ class CompileDBBackend(CommonBackend): '.mm': 'CXXFLAGS', } - def _build_db_line(self, objdir, reldir, cenv, filename, canonical_suffix): + def _build_db_line(self, objdir, reldir, cenv, filename, + canonical_suffix, unified=None): if canonical_suffix not in self.COMPILERS: return - db = self._db.setdefault((objdir, filename), + db = self._db.setdefault((objdir, filename, unified), cenv.substs[self.COMPILERS[canonical_suffix]].split() + ['-o', '/dev/null', '-c']) reldir = reldir or mozpath.relpath(objdir, cenv.topobjdir) From e1f088d232f002c49485167874f62cb0851e6c84 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 8 Feb 2017 18:19:00 -0500 Subject: [PATCH 022/112] Bug 1332956 part 1. Move our existing mochitest for embed-inside-object over to web-platform-tests. r=qdot --HG-- rename : dom/base/test/test_bug1263696.html => testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html --- dom/base/test/file_bug1263696_frame_fail.html | 12 ---- dom/base/test/file_bug1263696_frame_pass.html | 13 ----- dom/base/test/mochitest.ini | 3 - dom/base/test/test_bug1263696.html | 53 ------------------ testing/web-platform/meta/MANIFEST.json | 28 ++++++++++ .../resources/should-load.html | 3 + .../resources/should-not-load.html | 5 ++ .../embed-in-object-fallback-2.html | 56 +++++++++++++++++++ 8 files changed, 92 insertions(+), 81 deletions(-) delete mode 100644 dom/base/test/file_bug1263696_frame_fail.html delete mode 100644 dom/base/test/file_bug1263696_frame_pass.html delete mode 100644 dom/base/test/test_bug1263696.html create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html diff --git a/dom/base/test/file_bug1263696_frame_fail.html b/dom/base/test/file_bug1263696_frame_fail.html deleted file mode 100644 index b45561aa6f72..000000000000 --- a/dom/base/test/file_bug1263696_frame_fail.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - Bug 1263696 - iframe that should not be loaded - - - - - diff --git a/dom/base/test/file_bug1263696_frame_pass.html b/dom/base/test/file_bug1263696_frame_pass.html deleted file mode 100644 index 7f49d6541c44..000000000000 --- a/dom/base/test/file_bug1263696_frame_pass.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - Bug 1263696 - iframe that should be loaded - - - - - diff --git a/dom/base/test/mochitest.ini b/dom/base/test/mochitest.ini index f6f548a8a6c3..368b0ae0b295 100644 --- a/dom/base/test/mochitest.ini +++ b/dom/base/test/mochitest.ini @@ -125,8 +125,6 @@ support-files = file_bug902350_frame.html file_bug907892.html file_bug945152.jar - file_bug1263696_frame_pass.html - file_bug1263696_frame_fail.html file_bug1274806.html file_general_document.html file_htmlserializer_1.html @@ -587,7 +585,6 @@ skip-if = toolkit == 'android' [test_bug1238440.html] [test_bug1250148.html] [test_bug1259588.html] -[test_bug1263696.html] [test_bug1268962.html] [test_bug1274806.html] [test_bug1281963.html] diff --git a/dom/base/test/test_bug1263696.html b/dom/base/test/test_bug1263696.html deleted file mode 100644 index 289a26ba4ff1..000000000000 --- a/dom/base/test/test_bug1263696.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - Test Embed/Object Node Conflicts - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - - - - - - - -
- - -
-
- - -
- - diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index e5269f7fc84b..d67063c5c539 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -51741,6 +51741,16 @@ {} ] ], + "html/semantics/embedded-content/resources/should-load.html": [ + [ + {} + ] + ], + "html/semantics/embedded-content/resources/should-not-load.html": [ + [ + {} + ] + ], "html/semantics/embedded-content/svg/.gitkeep": [ [ {} @@ -92191,6 +92201,12 @@ {} ] ], + "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ + [ + "/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html", + {} + ] + ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html": [ [ "/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html", @@ -173844,6 +173860,14 @@ "8840fa9072d9367f358721ed757bd3d23dd64967", "testharness" ], + "html/semantics/embedded-content/resources/should-load.html": [ + "7cc95b9b2eb8c3f2d89278d22db271b9ae42e107", + "support" + ], + "html/semantics/embedded-content/resources/should-not-load.html": [ + "a1657fc9e655ad0a30ced47a1412b6c34ba964b9", + "support" + ], "html/semantics/embedded-content/svg/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -174528,6 +174552,10 @@ "94a08a7a5b5ec5c26f1974d5e5d8b4381a60baf5", "testharness" ], + "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ + "a7da1fefb2403084205bf1ead77b422e69dc33b6", + "testharness" + ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-subdocument.html": [ "1b60c4e5c8868fe87553b78047e711d63702a673", "support" diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html new file mode 100644 index 000000000000..a9a178ce51ed --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html @@ -0,0 +1,3 @@ + diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html new file mode 100644 index 000000000000..6281b2da5539 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html @@ -0,0 +1,5 @@ + diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html new file mode 100644 index 000000000000..d904a7e1a1ca --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+
+ + +
+ + From c753fbd0a71b7013fb9e7c7266eb30d23bda88d8 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 8 Feb 2017 18:19:00 -0500 Subject: [PATCH 023/112] Bug 1332956 part 2. Refactor embed-ignored-in-media-element to make it simple to test the same thing with . r=qdot --- .../embed-ignored-in-media-element.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html index d29d520f0e52..941b0c0b7785 100644 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html @@ -5,18 +5,18 @@ From 44299d03439de350967cc98a1c86a1b02152dfdd Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Wed, 8 Feb 2017 18:19:01 -0500 Subject: [PATCH 024/112] Bug 1332956 part 3. Implement the same behavior for -inside- and -inside-mediaelement as we do for already. r=qdot --HG-- rename : testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html => testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html rename : testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html => testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html --- dom/base/nsObjectLoadingContent.cpp | 57 ++++++++++++++----- dom/base/nsObjectLoadingContent.h | 15 +++++ dom/html/HTMLObjectElement.cpp | 15 +++-- dom/html/HTMLObjectElement.h | 6 +- dom/html/HTMLSharedObjectElement.cpp | 30 +--------- dom/html/HTMLSharedObjectElement.h | 15 ----- .../general/resource_timing_cross_origin.html | 20 +++---- testing/web-platform/meta/MANIFEST.json | 22 ++++++- .../object-ignored-in-media-element.html | 22 +++++++ .../object-in-object-fallback-2.html | 56 ++++++++++++++++++ 10 files changed, 181 insertions(+), 77 deletions(-) create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html create mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp index 59752ffbf2e0..51697b9b0e21 100644 --- a/dom/base/nsObjectLoadingContent.cpp +++ b/dom/base/nsObjectLoadingContent.cpp @@ -88,6 +88,7 @@ #include "mozilla/Telemetry.h" #include "mozilla/dom/HTMLObjectElementBinding.h" #include "mozilla/dom/HTMLSharedObjectElement.h" +#include "mozilla/dom/HTMLObjectElement.h" #include "nsChannelClassifier.h" #ifdef XP_WIN @@ -97,13 +98,6 @@ #endif #endif // XP_WIN -#ifdef XP_MACOSX -// HandlePluginCrashed() and HandlePluginInstantiated() needed from here to -// fix bug 1147521. Should later be replaced by proper interface methods, -// maybe on nsIObjectLoadingContext. -#include "mozilla/dom/HTMLObjectElement.h" -#endif - static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); static const char *kPrefJavaMIME = "plugin.java.mime"; @@ -3018,7 +3012,7 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { // Fixup mFallbackType // nsCOMPtr thisContent = - do_QueryInterface(static_cast(this)); + do_QueryInterface(static_cast(this)); NS_ASSERTION(thisContent, "must be a content"); if (!thisContent->IsHTMLElement() || mContentType.IsEmpty()) { @@ -3031,8 +3025,10 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { // child embeds as we find them in the upcoming loop. mType = eType_Null; - // Do a breadth-first traverse of node tree with the current element as root, - // looking for the first embed we can find. + bool thisIsObject = thisContent->IsHTMLElement(nsGkAtoms::object); + + // Do a depth-first traverse of node tree with the current element as root, + // looking for or elements that might now need to load. nsTArray childNodes; if ((thisContent->IsHTMLElement(nsGkAtoms::object) || thisContent->IsHTMLElement(nsGkAtoms::applet)) && @@ -3048,10 +3044,11 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { nsStyleUtil::IsSignificantChild(child, true, false)) { aType = eFallbackAlternate; } - if (child->IsHTMLElement(nsGkAtoms::embed) && - thisContent->IsHTMLElement(nsGkAtoms::object)) { - HTMLSharedObjectElement* object = static_cast(child); - if (object) { + if (thisIsObject) { + if (child->IsHTMLElement(nsGkAtoms::embed)) { + HTMLSharedObjectElement* embed = static_cast(child); + embed->StartObjectLoad(true, true); + } else if (auto object = HTMLObjectElement::FromContent(child)) { object->StartObjectLoad(true, true); } } @@ -3817,6 +3814,38 @@ nsObjectLoadingContent::MaybeFireErrorEvent() } } +bool +nsObjectLoadingContent::BlockEmbedOrObjectContentLoading() +{ + nsCOMPtr thisContent = + do_QueryInterface(static_cast(this)); + if (!thisContent->IsHTMLElement(nsGkAtoms::embed) && + !thisContent->IsHTMLElement(nsGkAtoms::object)) { + // Doesn't apply to other elements (i.e. ) + return false; + } + + // Traverse up the node tree to see if we have any ancestors that may block us + // from loading + for (nsIContent* parent = thisContent->GetParent(); + parent; + parent = parent->GetParent()) { + if (parent->IsAnyOfHTMLElements(nsGkAtoms::video, nsGkAtoms::audio)) { + return true; + } + // If we have an ancestor that is an object with a source, it'll have an + // associated displayed type. If that type is not null, don't load content + // for the embed. + if (HTMLObjectElement* object = HTMLObjectElement::FromContent(parent)) { + uint32_t type = object->DisplayedType(); + if (type != eType_Null) { + return true; + } + } + } + return false; +} + // SetupProtoChainRunner implementation nsObjectLoadingContent::SetupProtoChainRunner::SetupProtoChainRunner( nsObjectLoadingContent* aContent) diff --git a/dom/base/nsObjectLoadingContent.h b/dom/base/nsObjectLoadingContent.h index 13b7cc3f893f..92d880d99b75 100644 --- a/dom/base/nsObjectLoadingContent.h +++ b/dom/base/nsObjectLoadingContent.h @@ -334,6 +334,21 @@ class nsObjectLoadingContent : public nsImageLoadingContent */ virtual nsContentPolicyType GetContentPolicyType() const = 0; + /** + * Decides whether we should load / node content. + * + * If this is an or node there are cases in which we should + * not try to load the content: + * + * - If the node is the child of a media element + * - If the node is the child of an node that already has + * content being loaded. + * + * In these cases, this function will return false, which will cause + * us to skip calling LoadObject. + */ + bool BlockEmbedOrObjectContentLoading(); + private: // Object parameter changes returned by UpdateObjectParameters diff --git a/dom/html/HTMLObjectElement.cpp b/dom/html/HTMLObjectElement.cpp index c509ac1af3ed..b80c684d5d6d 100644 --- a/dom/html/HTMLObjectElement.cpp +++ b/dom/html/HTMLObjectElement.cpp @@ -79,7 +79,7 @@ HTMLObjectElement::DoneAddingChildren(bool aHaveNotified) // If we're already in a document, we need to trigger the load // Otherwise, BindToTree takes care of that. if (IsInComposedDoc()) { - StartObjectLoad(aHaveNotified); + StartObjectLoad(aHaveNotified, false); } } @@ -310,7 +310,8 @@ HTMLObjectElement::SetAttr(int32_t aNameSpaceID, nsIAtom *aName, // a document, just in case that the caller wants to set additional // attributes before inserting the node into the document. if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && - aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::data) { + aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::data && + !BlockEmbedOrObjectContentLoading()) { return LoadObject(aNotify, true); } @@ -327,7 +328,8 @@ HTMLObjectElement::UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute, // See comment in SetAttr if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && - aNameSpaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::data) { + aNameSpaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::data && + !BlockEmbedOrObjectContentLoading()) { return LoadObject(aNotify, true); } @@ -535,15 +537,16 @@ HTMLObjectElement::GetAttributeMappingFunction() const } void -HTMLObjectElement::StartObjectLoad(bool aNotify) +HTMLObjectElement::StartObjectLoad(bool aNotify, bool aForce) { // BindToTree can call us asynchronously, and we may be removed from the tree // in the interim - if (!IsInComposedDoc() || !OwnerDoc()->IsActive()) { + if (!IsInComposedDoc() || !OwnerDoc()->IsActive() || + BlockEmbedOrObjectContentLoading()) { return; } - LoadObject(aNotify); + LoadObject(aNotify, aForce); SetIsNetworkCreated(false); } diff --git a/dom/html/HTMLObjectElement.h b/dom/html/HTMLObjectElement.h index 7cb98249beb9..f439108fee14 100644 --- a/dom/html/HTMLObjectElement.h +++ b/dom/html/HTMLObjectElement.h @@ -98,7 +98,7 @@ public: nsresult CopyInnerTo(Element* aDest); - void StartObjectLoad() { StartObjectLoad(true); } + void StartObjectLoad() { StartObjectLoad(true, false); } NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLObjectElement, nsGenericHTMLFormElement) @@ -247,12 +247,12 @@ public: return GetContentDocument(aSubjectPrincipal); } -private: /** * Calls LoadObject with the correct arguments to start the plugin load. */ - void StartObjectLoad(bool aNotify); + void StartObjectLoad(bool aNotify, bool aForceLoad); +private: /** * Returns if the element is currently focusable regardless of it's tabindex * value. This is used to know the default tabindex value. diff --git a/dom/html/HTMLSharedObjectElement.cpp b/dom/html/HTMLSharedObjectElement.cpp index 1f7b9cc6ae46..9c78b03a360c 100644 --- a/dom/html/HTMLSharedObjectElement.cpp +++ b/dom/html/HTMLSharedObjectElement.cpp @@ -180,7 +180,7 @@ HTMLSharedObjectElement::SetAttr(int32_t aNameSpaceID, nsIAtom *aName, // attributes before inserting the node into the document. if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && aNameSpaceID == kNameSpaceID_None && aName == URIAttrName() - && !BlockEmbedContentLoading()) { + && !BlockEmbedOrObjectContentLoading()) { return LoadObject(aNotify, true); } @@ -313,7 +313,7 @@ HTMLSharedObjectElement::StartObjectLoad(bool aNotify, bool aForceLoad) // BindToTree can call us asynchronously, and we may be removed from the tree // in the interim if (!IsInComposedDoc() || !OwnerDoc()->IsActive() || - BlockEmbedContentLoading()) { + BlockEmbedOrObjectContentLoading()) { return; } @@ -389,31 +389,5 @@ HTMLSharedObjectElement::GetContentPolicyType() const } } -bool -HTMLSharedObjectElement::BlockEmbedContentLoading() -{ - // Only check on embed elements - if (!IsHTMLElement(nsGkAtoms::embed)) { - return false; - } - // Traverse up the node tree to see if we have any ancestors that may block us - // from loading - for (nsIContent* parent = GetParent(); parent; parent = parent->GetParent()) { - if (parent->IsAnyOfHTMLElements(nsGkAtoms::video, nsGkAtoms::audio)) { - return true; - } - // If we have an ancestor that is an object with a source, it'll have an - // associated displayed type. If that type is not null, don't load content - // for the embed. - if (HTMLObjectElement* object = HTMLObjectElement::FromContent(parent)) { - uint32_t type = object->DisplayedType(); - if (type != eType_Null) { - return true; - } - } - } - return false; -} - } // namespace dom } // namespace mozilla diff --git a/dom/html/HTMLSharedObjectElement.h b/dom/html/HTMLSharedObjectElement.h index 3d51d0a996b6..a6e7fe65d250 100644 --- a/dom/html/HTMLSharedObjectElement.h +++ b/dom/html/HTMLSharedObjectElement.h @@ -220,21 +220,6 @@ private: static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, GenericSpecifiedValues* aGenericData); - - /** - * Decides whether we should load embed node content. - * - * If this is an embed node there are cases in which we should not try to load - * the content: - * - * - If the embed node is the child of a media element - * - If the embed node is the child of an object node that already has - * content being loaded. - * - * In these cases, this function will return false, which will cause - * us to skip calling LoadObject. - */ - bool BlockEmbedContentLoading(); }; } // namespace dom diff --git a/dom/tests/mochitest/general/resource_timing_cross_origin.html b/dom/tests/mochitest/general/resource_timing_cross_origin.html index c5b906280744..6a82885a74c4 100644 --- a/dom/tests/mochitest/general/resource_timing_cross_origin.html +++ b/dom/tests/mochitest/general/resource_timing_cross_origin.html @@ -170,16 +170,16 @@ function finishTests() {

- - - - - - - - - - + + + + + + + + + + diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index d67063c5c539..b80f9eb12348 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -92467,6 +92467,18 @@ {} ] ], + "html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html": [ + [ + "/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html", + {} + ] + ], + "html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html": [ + [ + "/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html", + {} + ] + ], "html/semantics/embedded-content/the-object-element/usemap-casing.html": [ [ "/html/semantics/embedded-content/the-object-element/usemap-casing.html", @@ -174549,7 +174561,7 @@ "support" ], "html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html": [ - "94a08a7a5b5ec5c26f1974d5e5d8b4381a60baf5", + "cb57cbe52e4f586006461b8eae6bc233b5ed5ad5", "testharness" ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ @@ -174872,6 +174884,14 @@ "bf051d12a045698b2f9c3870ad4236f65bb85f51", "testharness" ], + "html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html": [ + "62a6c079bc00ae6ebeca363fd42d8701c4791222", + "testharness" + ], + "html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html": [ + "a5bb885111ac7ea02241957ee7233491c2277516", + "testharness" + ], "html/semantics/embedded-content/the-object-element/test0.html": [ "04319dea2f1e0b00e8db1703f2072ec22f1a82ad", "support" diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html new file mode 100644 index 000000000000..2bf84c2946f1 --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html @@ -0,0 +1,22 @@ + + +HTML Test: The embed element represents a document + + + + + + + + diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html new file mode 100644 index 000000000000..47cf8016935d --- /dev/null +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+
+ + +
+ + From 435d7b0fa1a798cfed07686044fc5c733caa8592 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 9 Feb 2017 10:50:30 -0500 Subject: [PATCH 025/112] Bug 1338044. Remove no-longer-relevant failure messages for worker interfaces from a test that doesn't run in a worker. r=jgraham --- .../meta/html/dom/interfaces.html.ini | 186 ------------------ 1 file changed, 186 deletions(-) diff --git a/testing/web-platform/meta/html/dom/interfaces.html.ini b/testing/web-platform/meta/html/dom/interfaces.html.ini index e1d7a9677463..c531553ab83e 100644 --- a/testing/web-platform/meta/html/dom/interfaces.html.ini +++ b/testing/web-platform/meta/html/dom/interfaces.html.ini @@ -1798,150 +1798,6 @@ [PortCollection interface: operation iterate(PortCollectionCallback)] expected: FAIL - [WorkerGlobalScope interface object length] - expected: FAIL - - [WorkerGlobalScope interface: existence and properties of interface prototype object] - expected: FAIL - - [WorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [WorkerGlobalScope interface: attribute self] - expected: FAIL - - [WorkerGlobalScope interface: attribute location] - expected: FAIL - - [WorkerGlobalScope interface: operation close()] - expected: FAIL - - [WorkerGlobalScope interface: attribute onerror] - expected: FAIL - - [WorkerGlobalScope interface: attribute onlanguagechange] - expected: FAIL - - [WorkerGlobalScope interface: attribute onoffline] - expected: FAIL - - [WorkerGlobalScope interface: attribute ononline] - expected: FAIL - - [WorkerGlobalScope interface: operation importScripts(DOMString)] - expected: FAIL - - [WorkerGlobalScope interface: attribute navigator] - expected: FAIL - - [WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource,long,long,long,long)] - expected: FAIL - - [WorkerGlobalScope interface: operation setTimeout(Function,long,any)] - expected: FAIL - - [WorkerGlobalScope interface: operation setTimeout(DOMString,long,any)] - expected: FAIL - - [WorkerGlobalScope interface: operation clearTimeout(long)] - expected: FAIL - - [WorkerGlobalScope interface: operation setInterval(Function,long,any)] - expected: FAIL - - [WorkerGlobalScope interface: operation setInterval(DOMString,long,any)] - expected: FAIL - - [WorkerGlobalScope interface: operation clearInterval(long)] - expected: FAIL - - [WorkerGlobalScope interface: operation btoa(DOMString)] - expected: FAIL - - [WorkerGlobalScope interface: operation atob(DOMString)] - expected: FAIL - - [DedicatedWorkerGlobalScope interface object length] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: operation postMessage(any,[object Object\])] - expected: FAIL - - [DedicatedWorkerGlobalScope interface: attribute onmessage] - expected: FAIL - - [SharedWorkerGlobalScope interface object length] - expected: FAIL - - [SharedWorkerGlobalScope interface: existence and properties of interface prototype object] - expected: FAIL - - [SharedWorkerGlobalScope interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [SharedWorkerGlobalScope interface: attribute name] - expected: FAIL - - [SharedWorkerGlobalScope interface: attribute applicationCache] - expected: FAIL - - [SharedWorkerGlobalScope interface: attribute onconnect] - expected: FAIL - - [WorkerNavigator interface object length] - expected: FAIL - - [WorkerNavigator interface: existence and properties of interface prototype object] - expected: FAIL - - [WorkerNavigator interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [WorkerNavigator interface: attribute appCodeName] - expected: FAIL - - [WorkerNavigator interface: attribute appName] - expected: FAIL - - [WorkerNavigator interface: attribute appVersion] - expected: FAIL - - [WorkerNavigator interface: attribute platform] - expected: FAIL - - [WorkerNavigator interface: attribute product] - expected: FAIL - - [WorkerNavigator interface: operation taintEnabled()] - expected: FAIL - - [WorkerNavigator interface: attribute userAgent] - expected: FAIL - - [WorkerNavigator interface: attribute language] - expected: FAIL - - [WorkerNavigator interface: attribute languages] - expected: FAIL - - [WorkerNavigator interface: attribute onLine] - expected: FAIL - - [WorkerLocation interface object length] - expected: FAIL - - [WorkerLocation interface: existence and properties of interface prototype object] - expected: FAIL - - [WorkerLocation interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - [HTMLMarqueeElement interface: existence and properties of interface object] expected: FAIL @@ -2230,33 +2086,6 @@ [Location interface: window.location must have own property "ancestorOrigins"] expected: FAIL - [WorkerLocation interface: attribute href] - expected: FAIL - - [WorkerLocation interface: attribute origin] - expected: FAIL - - [WorkerLocation interface: attribute protocol] - expected: FAIL - - [WorkerLocation interface: attribute host] - expected: FAIL - - [WorkerLocation interface: attribute hostname] - expected: FAIL - - [WorkerLocation interface: attribute port] - expected: FAIL - - [WorkerLocation interface: attribute pathname] - expected: FAIL - - [WorkerLocation interface: attribute search] - expected: FAIL - - [WorkerLocation interface: attribute hash] - expected: FAIL - [DOMElementMap interface object name] expected: FAIL @@ -2302,21 +2131,6 @@ [PortCollection interface object name] expected: FAIL - [WorkerGlobalScope interface object name] - expected: FAIL - - [DedicatedWorkerGlobalScope interface object name] - expected: FAIL - - [SharedWorkerGlobalScope interface object name] - expected: FAIL - - [WorkerNavigator interface object name] - expected: FAIL - - [WorkerLocation interface object name] - expected: FAIL - [HTMLMarqueeElement interface object name] expected: FAIL From 4fd4a887e0f830276a0d7d715b1281293f769363 Mon Sep 17 00:00:00 2001 From: Neil Deakin Date: Thu, 9 Feb 2017 11:28:22 -0500 Subject: [PATCH 026/112] Bug 1334155, close popup when select element is blurred, r=jaws --- .../test/general/browser_selectpopup.js | 37 +++++++++++++++++-- toolkit/modules/SelectContentHelper.jsm | 11 ++++-- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/browser/base/content/test/general/browser_selectpopup.js b/browser/base/content/test/general/browser_selectpopup.js index 07acd36b2ee5..547c5871f938 100644 --- a/browser/base/content/test/general/browser_selectpopup.js +++ b/browser/base/content/test/general/browser_selectpopup.js @@ -1,9 +1,8 @@ /* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ -// This test checks that a in a child process. This is different than +// single-process as a is used to implement the dropdown list. requestLongerTimeout(2); @@ -851,3 +850,35 @@ add_task(function* test_colors_applied_to_popup() { yield hideSelectPopup(selectPopup, "escape"); yield BrowserTestUtils.removeTab(tab); }); + +// This test checks that the popup is closed when the select element is blurred. +add_task(function* test_blur_hides_popup() { + const pageUrl = "data:text/html," + escape(PAGECONTENT_SMALL); + let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, pageUrl); + + yield ContentTask.spawn(tab.linkedBrowser, null, function*() { + content.addEventListener("blur", function(event) { + event.preventDefault(); + event.stopPropagation(); + }, true); + + content.document.getElementById("one").focus(); + }); + + let menulist = document.getElementById("ContentSelectDropdown"); + let selectPopup = menulist.menupopup; + + yield openSelectPopup(selectPopup); + + let popupHiddenPromise = BrowserTestUtils.waitForEvent(selectPopup, "popuphidden"); + + yield ContentTask.spawn(tab.linkedBrowser, null, function*() { + content.document.getElementById("one").blur(); + }); + + yield popupHiddenPromise; + + ok(true, "Blur closed popup"); + + yield BrowserTestUtils.removeTab(tab); +}); diff --git a/toolkit/modules/SelectContentHelper.jsm b/toolkit/modules/SelectContentHelper.jsm index 190338021870..87541d6febc5 100644 --- a/toolkit/modules/SelectContentHelper.jsm +++ b/toolkit/modules/SelectContentHelper.jsm @@ -60,8 +60,9 @@ this.SelectContentHelper.prototype = { this.global.addMessageListener("Forms:MouseOver", this); this.global.addMessageListener("Forms:MouseOut", this); this.global.addMessageListener("Forms:MouseUp", this); - this.global.addEventListener("pagehide", this); - this.global.addEventListener("mozhidedropdown", this); + this.global.addEventListener("pagehide", this, { mozSystemGroup: true }); + this.global.addEventListener("mozhidedropdown", this, { mozSystemGroup: true }); + this.element.addEventListener("blur", this, { mozSystemGroup: true }); let MutationObserver = this.element.ownerGlobal.MutationObserver; this.mut = new MutationObserver(mutations => { // Something changed the . r=smaug --HG-- extra : rebase_source : 5805842bb84b54a08015e52395b05eea47bd47cf --- dom/html/HTMLInputElement.cpp | 9 +- dom/html/HTMLInputElement.h | 6 +- dom/html/test/forms/test_step_attribute.html | 102 +++++++++- dom/html/test/forms/test_stepup_stepdown.html | 174 +++++++++++++++--- .../form-validation-checkValidity.html.ini | 7 - .../form-validation-reportValidity.html.ini | 6 - ...-validation-validity-stepMismatch.html.ini | 4 - .../form-validation-validity-valid.html.ini | 4 - 8 files changed, 251 insertions(+), 61 deletions(-) diff --git a/dom/html/HTMLInputElement.cpp b/dom/html/HTMLInputElement.cpp index 45d4652fcd8e..82f11acb00b6 100644 --- a/dom/html/HTMLInputElement.cpp +++ b/dom/html/HTMLInputElement.cpp @@ -2433,11 +2433,8 @@ HTMLInputElement::GetMaximum() const Decimal HTMLInputElement::GetStepBase() const { - MOZ_ASSERT(mType == NS_FORM_INPUT_NUMBER || - mType == NS_FORM_INPUT_DATE || - mType == NS_FORM_INPUT_TIME || - mType == NS_FORM_INPUT_MONTH || - mType == NS_FORM_INPUT_WEEK || + MOZ_ASSERT(IsDateTimeInputType(mType) || + mType == NS_FORM_INPUT_NUMBER || mType == NS_FORM_INPUT_RANGE, "Check that kDefaultStepBase is correct for this new type"); @@ -8671,6 +8668,7 @@ HTMLInputElement::GetStepScaleFactor() const case NS_FORM_INPUT_RANGE: return kStepScaleFactorNumberRange; case NS_FORM_INPUT_TIME: + case NS_FORM_INPUT_DATETIME_LOCAL: return kStepScaleFactorTime; case NS_FORM_INPUT_MONTH: return kStepScaleFactorMonth; @@ -8695,6 +8693,7 @@ HTMLInputElement::GetDefaultStep() const case NS_FORM_INPUT_RANGE: return kDefaultStep; case NS_FORM_INPUT_TIME: + case NS_FORM_INPUT_DATETIME_LOCAL: return kDefaultStepTime; default: MOZ_ASSERT(false, "Unrecognized input type"); diff --git a/dom/html/HTMLInputElement.h b/dom/html/HTMLInputElement.h index b8c12b8533ac..3266badc6307 100644 --- a/dom/html/HTMLInputElement.h +++ b/dom/html/HTMLInputElement.h @@ -1070,11 +1070,7 @@ protected: /** * Returns if the step attribute apply for the current type. */ - bool DoesStepApply() const - { - // TODO: this is temporary until bug 888331 is fixed. - return DoesMinMaxApply() && mType != NS_FORM_INPUT_DATETIME_LOCAL; - } + bool DoesStepApply() const { return DoesMinMaxApply(); } /** * Returns if stepDown and stepUp methods apply for the current type. diff --git a/dom/html/test/forms/test_step_attribute.html b/dom/html/test/forms/test_step_attribute.html index 31277860c9d9..a14afa46125d 100644 --- a/dom/html/test/forms/test_step_attribute.html +++ b/dom/html/test/forms/test_step_attribute.html @@ -31,8 +31,7 @@ var data = [ { type: 'month', apply: true }, { type: 'week', apply: true }, { type: 'time', apply: true }, - // TODO: temporary set to false until bug 888331 is fixed. - { type: 'datetime-local', apply: false }, + { type: 'datetime-local', apply: true }, { type: 'number', apply: true }, { type: 'range', apply: true }, { type: 'color', apply: false }, @@ -950,7 +949,104 @@ for (var test of data) { break; case 'datetime-local': - // TODO: this is temporary until bug 888331 is fixed. + // When step is invalid, every datetime is valid + input.step = 0; + input.value = '2017-02-06T12:00'; + checkValidity(input, true, apply); + + input.step = 'foo'; + input.value = '1970-01-01T00:00'; + checkValidity(input, true, apply); + + input.step = '-1'; + input.value = '1969-12-12 00:10'; + checkValidity(input, true, apply); + + input.removeAttribute('step'); + input.value = '1500-01-01T12:00'; + checkValidity(input, true, apply); + + input.step = 'any'; + input.value = '1966-12-12T12:00'; + checkValidity(input, true, apply); + + input.step = 'ANY'; + input.value = '2017-01-01 12:00'; + checkValidity(input, true, apply); + + // When min is set to a valid datetime, there is a step base. + input.min = '2017-01-01T00:00:00'; + input.step = '2'; + input.value = '2017-01-01T00:00:02'; + checkValidity(input, true, apply); + + input.value = '2017-01-01T00:00:03'; + checkValidity(input, false, apply, + { low: "2017-01-01T00:00:02", high: "2017-01-01T00:00:04" }); + + input.min = '2017-01-01T00:00:05'; + input.value = '2017-01-01T00:00:08'; + checkValidity(input, false, apply, + { low: "2017-01-01T00:00:07", high: "2017-01-01T00:00:09" }); + + input.min = '2000-01-01T00:00'; + input.step = '120'; + input.value = '2000-01-01T00:02'; + checkValidity(input, true, apply); + + // Without any step attribute the datetime is valid + input.removeAttribute('step'); + checkValidity(input, true, apply); + + input.min = '1950-01-01T00:00'; + input.step = '129600'; // 1.5 day + input.value = '1950-01-02T00:00'; + checkValidity(input, false, apply, + { low: "1950-01-01T00:00", high: "1950-01-02T12:00" }); + + input.step = '259200'; // 3 days + input.value = '1950-01-04T12:00'; + checkValidity(input, false, apply, + { low: "1950-01-04T00:00", high: "1950-01-07T00:00" }); + + input.value = '1950-01-10T00:00'; + checkValidity(input, true, apply); + + input.step = '0.5'; // half a second + input.value = '1950-01-01T00:00:00.123'; + checkValidity(input, false, apply, + { low: "1950-01-01T00:00", high: "1950-01-01T00:00:00.500" }); + + input.value = '2000-01-01T12:30:30.600'; + checkValidity(input, false, apply, + { low: "2000-01-01T12:30:30.500", high: "2000-01-01T12:30:31" }); + + input.value = '1950-01-05T00:00:00.500'; + checkValidity(input, true, apply); + + input.step = '2.1'; + input.min = '1991-01-01T12:00'; + input.value = '1991-01-01T12:00'; + checkValidity(input, true, apply); + + input.value = '1991-01-01T12:00:03'; + checkValidity(input, false, apply, + { low: "1991-01-01T12:00:02.100", high: "1991-01-01T12:00:04.200" }); + + input.value = '1991-01-01T12:00:06.3'; + checkValidity(input, true, apply); + + input.step = '2.1'; + input.min = '1969-12-20T10:00:05'; + input.value = '1969-12-20T10:00:05'; + checkValidity(input, true, apply); + + input.value = '1969-12-20T10:00:08'; + checkValidity(input, false, apply, + { low: "1969-12-20T10:00:07.100", high: "1969-12-20T10:00:09.200" }); + + input.value = '1969-12-20T10:00:09.200'; + checkValidity(input, true, apply); break; default: diff --git a/dom/html/test/forms/test_stepup_stepdown.html b/dom/html/test/forms/test_stepup_stepdown.html index d968951801e0..21cde58aa567 100644 --- a/dom/html/test/forms/test_stepup_stepdown.html +++ b/dom/html/test/forms/test_stepup_stepdown.html @@ -52,13 +52,8 @@ function checkAvailability() ["time", true], ["month", true], ["week", true], - ["color", false], - ]; - - var todoList = - [ - ["datetime", true], ["datetime-local", true], + ["color", false], ]; var element = document.createElement("input"); @@ -82,27 +77,6 @@ function checkAvailability() } is(exceptionCaught, !data[1], "stepUp() availability is not correct"); } - - for (data of todoList) { - var exceptionCaught = false; - element.type = data[0]; - try { - element.stepDown(); - } catch (e) { - exceptionCaught = true; - } - todo_is(exceptionCaught, !data[1], - "stepDown() availability is not correct"); - - exceptionCaught = false; - try { - element.stepUp(); - } catch (e) { - exceptionCaught = true; - } - todo_is(exceptionCaught, !data[1], - "stepUp() availability is not correct"); - } } function checkStepDown() @@ -509,6 +483,80 @@ function checkStepDown() [ '2016-W01', 'AnY', null, null, 1, null, true ], [ '2016-W01', 'aNy', null, null, 1, null, true ], ]}, + { type: 'datetime-local', data: [ + // Regular case. + [ '2017-02-07T09:30', null, null, null, null, '2017-02-07T09:29', false ], + // Argument testing. + [ '2017-02-07T09:30', null, null, null, 1, '2017-02-07T09:29', false ], + [ '2017-02-07T09:30', null, null, null, 5, '2017-02-07T09:25', false ], + [ '2017-02-07T09:30', null, null, null, -1, '2017-02-07T09:31', false ], + [ '2017-02-07T09:30', null, null, null, 0, '2017-02-07T09:30', false ], + // hour/minutes/seconds wrapping. + [ '2000-01-01T05:00', null, null, null, null, '2000-01-01T04:59', false ], + [ '2000-01-01T05:00:00', 1, null, null, null, '2000-01-01T04:59:59', false ], + [ '2000-01-01T05:00:00', 0.1, null, null, null, '2000-01-01T04:59:59.900', false ], + [ '2000-01-01T05:00:00', 0.01, null, null, null, '2000-01-01T04:59:59.990', false ], + [ '2000-01-01T05:00:00', 0.001, null, null, null, '2000-01-01T04:59:59.999', false ], + // month/year wrapping. + [ '2012-08-01T12:00', null, null, null, 1440, '2012-07-31T12:00', false ], + [ '1969-01-02T12:00', null, null, null, 5760, '1968-12-29T12:00', false ], + [ '1969-12-31T00:00', null, null, null, -1440, '1970-01-01T00:00', false ], + [ '2012-02-29T00:00', null, null, null, -1440, '2012-03-01T00:00', false ], + // stepDown() on '00:00' gives '23:59'. + [ '2017-02-07T00:00', null, null, null, 1, '2017-02-06T23:59', false ], + [ '2017-02-07T00:00', null, null, null, 3, '2017-02-06T23:57', false ], + // Some random step values.. + [ '2017-02-07T16:07', '0.5', null, null, null, '2017-02-07T16:06:59.500', false ], + [ '2017-02-07T16:07', '2', null, null, null, '2017-02-07T16:06:58', false ], + [ '2017-02-07T16:07', '0.25', null, null, 4, '2017-02-07T16:06:59', false ], + [ '2017-02-07T16:07', '1.1', '2017-02-07T16:00', null, 1, '2017-02-07T16:06:59.100', false ], + [ '2017-02-07T16:07', '1.1', '2017-02-07T16:00', null, 2, '2017-02-07T16:06:58', false ], + [ '2017-02-07T16:07', '1.1', '2017-02-07T16:00', null, 10, '2017-02-07T16:06:49.200', false ], + [ '2017-02-07T16:07', '129600', '2017-02-01T00:00', null, 2, '2017-02-05T12:00', false ], + // step = 0 isn't allowed (-> step = 1). + [ '2017-02-07T10:15', '0', null, null, null, '2017-02-07T10:14', false ], + // step < 0 isn't allowed (-> step = 1). + [ '2017-02-07T10:15', '-1', null, null, null, '2017-02-07T10:14', false ], + // step = NaN isn't allowed (-> step = 1). + [ '2017-02-07T10:15', 'foo', null, null, null, '2017-02-07T10:14', false ], + // Min values testing. + [ '2012-02-02T17:02', '60', 'foo', null, 2, '2012-02-02T17:00', false ], + [ '2012-02-02T17:10', '60', '2012-02-02T17:09', null, null, '2012-02-02T17:09', false ], + [ '2012-02-02T17:10', '60', '2012-02-02T17:10', null, null, '2012-02-02T17:10', false ], + [ '2012-02-02T17:10', '60', '2012-02-02T17:30', null, 1, '2012-02-02T17:10', false ], + [ '2012-02-02T17:10', '180', '2012-02-02T17:05', null, null, '2012-02-02T17:08', false ], + [ '2012-02-03T20:05', '86400', '2012-02-02T17:05', null, null, '2012-02-03T17:05', false ], + [ '2012-02-03T18:00', '129600', '2012-02-01T00:00', null, null, '2012-02-02T12:00', false ], + // Max values testing. + [ '2012-02-02T17:15', '60', null, 'foo', null, '2012-02-02T17:14', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:20', null, '2012-02-02T17:14', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:15', null, '2012-02-02T17:14', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:13', 4, '2012-02-02T17:11', false ], + [ '2012-02-02T17:15', '120', null, '2012-02-02T17:13', 3, '2012-02-02T17:09', false ], + [ '2012-02-03T20:05', '86400', null, '2012-02-03T20:05', null, '2012-02-02T20:05', false ], + [ '2012-02-03T18:00', '129600', null, '2012-02-03T20:00', null, '2012-02-02T06:00', false ], + // Step mismatch. + [ '2017-02-07T17:19', '120', '2017-02-07T17:10', null, null, '2017-02-07T17:18', false ], + [ '2017-02-07T17:19', '120', '2017-02-07T17:10', null, 2, '2017-02-07T17:16', false ], + [ '2017-02-07T17:19', '120', '2017-02-07T17:18', '2017-02-07T17:25', null, '2017-02-07T17:18', false ], + [ '2017-02-07T17:19', '120', null, null, null, '2017-02-07T17:17', false ], + [ '2017-02-07T17:19', '180', null, null, null, '2017-02-07T17:16', false ], + [ '2017-02-07T17:19', '172800', '2017-02-02T17:19', '2017-02-10T17:19', null, '2017-02-06T17:19', false ], + // Clamping. + [ '2017-02-07T17:22', null, null, '2017-02-07T17:11', null, '2017-02-07T17:11', false ], + [ '2017-02-07T17:22', '120', '2017-02-07T17:20', '2017-02-07T17:22', null, '2017-02-07T17:20', false ], + [ '2017-02-07T17:22', '300', '2017-02-07T17:12', '2017-02-07T17:20', 10, '2017-02-07T17:12', false ], + [ '2017-02-07T17:22', '300', '2017-02-07T17:18', '2017-02-07T17:20', 2, '2017-02-07T17:18', false ], + [ '2017-02-07T17:22', '600', '2017-02-02T17:00', '2017-02-07T17:00', 15, '2017-02-07T15:00', false ], + [ '2017-02-07T17:22', '600', '2017-02-02T17:00', '2017-02-07T17:00', 2, '2017-02-07T17:00', false ], + // value = "" (NaN). + [ '', null, null, null, null, '1969-12-31T23:59', false ], + // With step = 'any'. + [ '2017-02-07T15:20', 'any', null, null, 1, null, true ], + [ '2017-02-07T15:20', 'ANY', null, null, 1, null, true ], + [ '2017-02-07T15:20', 'AnY', null, null, 1, null, true ], + [ '2017-02-07T15:20', 'aNy', null, null, 1, null, true ], + ]}, ]; for (var test of testData) { @@ -958,6 +1006,78 @@ function checkStepUp() [ '2016-W01', 'AnY', null, null, 1, null, true ], [ '2016-W01', 'aNy', null, null, 1, null, true ], ]}, + { type: 'datetime-local', data: [ + // Regular case. + [ '2017-02-07T17:09', null, null, null, null, '2017-02-07T17:10', false ], + // Argument testing. + [ '2017-02-07T17:10', null, null, null, 1, '2017-02-07T17:11', false ], + [ '2017-02-07T17:10', null, null, null, 5, '2017-02-07T17:15', false ], + [ '2017-02-07T17:10', null, null, null, -1, '2017-02-07T17:09', false ], + [ '2017-02-07T17:10', null, null, null, 0, '2017-02-07T17:10', false ], + // hour/minutes/seconds wrapping. + [ '2000-01-01T04:59', null, null, null, null, '2000-01-01T05:00', false ], + [ '2000-01-01T04:59:59', 1, null, null, null, '2000-01-01T05:00', false ], + [ '2000-01-01T04:59:59.900', 0.1, null, null, null, '2000-01-01T05:00', false ], + [ '2000-01-01T04:59:59.990', 0.01, null, null, null, '2000-01-01T05:00', false ], + [ '2000-01-01T04:59:59.999', 0.001, null, null, null, '2000-01-01T05:00', false ], + // month/year wrapping. + [ '2012-07-31T12:00', null, null, null, 1440, '2012-08-01T12:00', false ], + [ '1968-12-29T12:00', null, null, null, 5760, '1969-01-02T12:00', false ], + [ '1970-01-01T00:00', null, null, null, -1440, '1969-12-31T00:00', false ], + [ '2012-03-01T00:00', null, null, null, -1440, '2012-02-29T00:00', false ], + // stepUp() on '23:59' gives '00:00'. + [ '2017-02-07T23:59', null, null, null, 1, '2017-02-08T00:00', false ], + [ '2017-02-07T23:59', null, null, null, 3, '2017-02-08T00:02', false ], + // Some random step values.. + [ '2017-02-07T17:40', '0.5', null, null, null, '2017-02-07T17:40:00.500', false ], + [ '2017-02-07T17:40', '2', null, null, null, '2017-02-07T17:40:02', false ], + [ '2017-02-07T17:40', '0.25', null, null, 4, '2017-02-07T17:40:01', false ], + [ '2017-02-07T17:40', '1.1', '2017-02-07T17:00', null, 1, '2017-02-07T17:40:00.200', false ], + [ '2017-02-07T17:40', '1.1', '2017-02-07T17:00', null, 2, '2017-02-07T17:40:01.300', false ], + [ '2017-02-07T17:40', '1.1', '2017-02-07T17:00', null, 10, '2017-02-07T17:40:10.100', false ], + [ '2017-02-07T17:40', '129600', '2017-02-01T00:00', null, 2, '2017-02-10T00:00', false ], + // step = 0 isn't allowed (-> step = 1). + [ '2017-02-07T17:39', '0', null, null, null, '2017-02-07T17:40', false ], + // step < 0 isn't allowed (-> step = 1). + [ '2017-02-07T17:39', '-1', null, null, null, '2017-02-07T17:40', false ], + // step = NaN isn't allowed (-> step = 1). + [ '2017-02-07T17:39', 'foo', null, null, null, '2017-02-07T17:40', false ], + // Min values testing. + [ '2012-02-02T17:00', '60', 'foo', null, 2, '2012-02-02T17:02', false ], + [ '2012-02-02T17:10', '60', '2012-02-02T17:10', null, null, '2012-02-02T17:11', false ], + [ '2012-02-02T17:10', '60', '2012-02-02T17:30', null, 1, '2012-02-02T17:30', false ], + [ '2012-02-02T17:10', '180', '2012-02-02T17:05', null, null, '2012-02-02T17:11', false ], + [ '2012-02-02T17:10', '86400', '2012-02-02T17:05', null, null, '2012-02-03T17:05', false ], + [ '2012-02-02T17:10', '129600', '2012-02-01T00:00', null, null, '2012-02-04T00:00', false ], + // Max values testing. + [ '2012-02-02T17:15', '60', null, 'foo', null, '2012-02-02T17:16', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:20', null, '2012-02-02T17:16', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:15', null, '2012-02-02T17:15', false ], + [ '2012-02-02T17:15', null, null, '2012-02-02T17:13', 4, '2012-02-02T17:15', false ], + [ '2012-02-02T20:05', '86400', null, '2012-02-03T20:05', null, '2012-02-03T20:05', false ], + [ '2012-02-02T18:00', '129600', null, '2012-02-04T20:00', null, '2012-02-04T06:00', false ], + // Step mismatch. + [ '2017-02-07T17:19', '120', '2017-02-07T17:10', null, null, '2017-02-07T17:20', false ], + [ '2017-02-07T17:19', '120', '2017-02-07T17:10', null, 2, '2017-02-07T17:22', false ], + [ '2017-02-07T17:19', '120', '2017-02-07T17:18', '2017-02-07T17:25', null, '2017-02-07T17:20', false ], + [ '2017-02-07T17:19', '120', null, null, null, '2017-02-07T17:21', false ], + [ '2017-02-07T17:19', '180', null, null, null, '2017-02-07T17:22', false ], + [ '2017-02-03T17:19', '172800', '2017-02-02T17:19', '2017-02-10T17:19', null, '2017-02-04T17:19', false ], + // Clamping. + [ '2017-02-07T17:22', null, null, '2017-02-07T17:11', null, '2017-02-07T17:22', false ], + [ '2017-02-07T17:22', '120', '2017-02-07T17:20', '2017-02-07T17:22', null, '2017-02-07T17:22', false ], + [ '2017-02-07T17:22', '300', '2017-02-07T17:12', '2017-02-07T17:20', 10, '2017-02-07T17:22', false ], + [ '2017-02-07T17:22', '300', '2017-02-07T17:18', '2017-02-07T17:20', 2, '2017-02-07T17:22', false ], + [ '2017-02-06T17:22', '600', '2017-02-02T17:00', '2017-02-07T17:20', 15, '2017-02-06T19:50', false ], + [ '2017-02-06T17:22', '600', '2017-02-02T17:10', '2017-02-07T17:20', 2, '2017-02-06T17:40', false ], + // value = "" (NaN). + [ '', null, null, null, null, '1970-01-01T00:01', false ], + // With step = 'any'. + [ '2017-02-07T17:30', 'any', null, null, 1, null, true ], + [ '2017-02-07T17:30', 'ANY', null, null, 1, null, true ], + [ '2017-02-07T17:30', 'AnY', null, null, 1, null, true ], + [ '2017-02-07T17:30', 'aNy', null, null, 1, null, true ], + ]}, ]; for (var test of testData) { diff --git a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-checkValidity.html.ini b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-checkValidity.html.ini index c717645ac090..23bd8642ca20 100644 --- a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-checkValidity.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-checkValidity.html.ini @@ -32,10 +32,3 @@ [[INPUT in DATETIME status\] The datetime type must be supported.] expected: FAIL - - [[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch] - expected: FAIL - - [[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch (in a form)] - expected: FAIL - diff --git a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-reportValidity.html.ini b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-reportValidity.html.ini index 5251405214b6..5b373cfeee76 100644 --- a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-reportValidity.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-reportValidity.html.ini @@ -39,9 +39,3 @@ [[INPUT in DATETIME status\] The datetime type must be supported.] expected: FAIL - [[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch] - expected: FAIL - - [[INPUT in DATETIME-LOCAL status\] suffering from a step mismatch (in a form)] - expected: FAIL - diff --git a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html.ini b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html.ini index 0c33bdcbea12..527760e60066 100644 --- a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-stepMismatch.html.ini @@ -2,7 +2,3 @@ type: testharness [[INPUT in DATETIME status\] The datetime type must be supported.] expected: FAIL - - [[INPUT in DATETIME-LOCAL status\] The value must mismatch the step] - expected: FAIL - diff --git a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-valid.html.ini b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-valid.html.ini index 8e9096ab0312..8eb7940d9520 100644 --- a/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-valid.html.ini +++ b/testing/web-platform/meta/html/semantics/forms/constraints/form-validation-validity-valid.html.ini @@ -23,7 +23,3 @@ [[INPUT in MONTH status\] validity.valid must be false if validity.stepMismatch is true] expected: FAIL - - [[INPUT in DATETIME-LOCAL status\] validity.valid must be false if validity.stepMismatch is true] - expected: FAIL - From 61b17010a763da9db378d6dc9fd657bd02e52588 Mon Sep 17 00:00:00 2001 From: Christoph Kerschbaumer Date: Wed, 8 Feb 2017 10:30:47 +0800 Subject: [PATCH 083/112] Bug 1337622 - Temporarily fall back to SystemPrincipal if History entry does not have a valid triggeringPrincipal. r=tanvi,bz --HG-- extra : rebase_source : d6c43b91f10886f6c461bf9c5709c858ad109282 --- docshell/base/nsDocShell.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 6f71605271e3..990b7a4d48cf 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -12605,7 +12605,7 @@ nsDocShell::LoadHistoryEntry(nsISHEntry* aEntry, uint32_t aLoadType) MOZ_ASSERT(triggeringPrincipal, "need a valid triggeringPrincipal to load from history"); if (!triggeringPrincipal) { - return NS_ERROR_FAILURE; + triggeringPrincipal = nsContentUtils::GetSystemPrincipal(); } // Passing nullptr as aSourceDocShell gives the same behaviour as before From ce8648a50f3dcaff4be62675e7bd13a32eb2622d Mon Sep 17 00:00:00 2001 From: Cameron McCormack Date: Tue, 7 Feb 2017 22:53:00 +0800 Subject: [PATCH 084/112] Bug 1337658 - Do less copying when dispatching FontFaceLoadingEvents. r=bz MozReview-Commit-ID: 8z1Tof8lL4g --HG-- extra : rebase_source : 9c7abd85f94b481c15d1f30c1773a2eebbe9ec9f --- layout/style/FontFaceSet.cpp | 27 ++++++++++++--------------- layout/style/FontFaceSet.h | 2 +- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/layout/style/FontFaceSet.cpp b/layout/style/FontFaceSet.cpp index 566c30b68bd7..c4ac479a3698 100644 --- a/layout/style/FontFaceSet.cpp +++ b/layout/style/FontFaceSet.cpp @@ -1604,8 +1604,8 @@ FontFaceSet::CheckLoadingFinished() } // Now dispatch the loadingdone/loadingerror events. - nsTArray loaded; - nsTArray failed; + nsTArray> loaded; + nsTArray> failed; for (size_t i = 0; i < mRuleFaces.Length(); i++) { if (!mRuleFaces[i].mLoadEventShouldFire) { @@ -1613,10 +1613,10 @@ FontFaceSet::CheckLoadingFinished() } FontFace* f = mRuleFaces[i].mFontFace; if (f->Status() == FontFaceLoadStatus::Loaded) { - loaded.AppendElement(f); + loaded.AppendElement(*f); mRuleFaces[i].mLoadEventShouldFire = false; } else if (f->Status() == FontFaceLoadStatus::Error) { - failed.AppendElement(f); + failed.AppendElement(*f); mRuleFaces[i].mLoadEventShouldFire = false; } } @@ -1627,35 +1627,32 @@ FontFaceSet::CheckLoadingFinished() } FontFace* f = mNonRuleFaces[i].mFontFace; if (f->Status() == FontFaceLoadStatus::Loaded) { - loaded.AppendElement(f); + loaded.AppendElement(*f); mNonRuleFaces[i].mLoadEventShouldFire = false; } else if (f->Status() == FontFaceLoadStatus::Error) { - failed.AppendElement(f); + failed.AppendElement(*f); mNonRuleFaces[i].mLoadEventShouldFire = false; } } - DispatchLoadingFinishedEvent(NS_LITERAL_STRING("loadingdone"), loaded); + DispatchLoadingFinishedEvent(NS_LITERAL_STRING("loadingdone"), + Move(loaded)); if (!failed.IsEmpty()) { - DispatchLoadingFinishedEvent(NS_LITERAL_STRING("loadingerror"), failed); + DispatchLoadingFinishedEvent(NS_LITERAL_STRING("loadingerror"), + Move(failed)); } } void FontFaceSet::DispatchLoadingFinishedEvent( const nsAString& aType, - const nsTArray& aFontFaces) + nsTArray>&& aFontFaces) { FontFaceSetLoadEventInit init; init.mBubbles = false; init.mCancelable = false; - OwningNonNull* elements = - init.mFontfaces.AppendElements(aFontFaces.Length(), fallible); - MOZ_ASSERT(elements); - for (size_t i = 0; i < aFontFaces.Length(); i++) { - elements[i] = aFontFaces[i]; - } + init.mFontfaces.SwapElements(aFontFaces); RefPtr event = FontFaceSetLoadEvent::Constructor(this, aType, init); (new AsyncEventDispatcher(this, event))->PostDOMEvent(); diff --git a/layout/style/FontFaceSet.h b/layout/style/FontFaceSet.h index 78fe512d5590..d08fbaf8c8cf 100644 --- a/layout/style/FontFaceSet.h +++ b/layout/style/FontFaceSet.h @@ -232,7 +232,7 @@ private: */ void DispatchLoadingFinishedEvent( const nsAString& aType, - const nsTArray& aFontFaces); + nsTArray>&& aFontFaces); // Note: if you add new cycle collected objects to FontFaceRecord, // make sure to update FontFaceSet's cycle collection macros From b8d5c8b15633ce1247a3a7e90d3134f61fb3fee0 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Thu, 9 Feb 2017 14:26:10 +0900 Subject: [PATCH 085/112] Bug 1337698 - Part 1. PlaceholderTransaction should use UniquePtr. r=masayuki MozReview-Commit-ID: 8xqAKRcKCLb --HG-- extra : rebase_source : d0a8d202e973d06c823cd5351d9561b9b5919f43 extra : histedit_source : 696ac1246fbb3691b2f042a0d16e438f37dcf64d%2C446038a833523fed82771c3c177811971679c269 --- editor/libeditor/EditorBase.cpp | 8 ++---- editor/libeditor/EditorBase.h | 3 ++- editor/libeditor/PlaceholderTransaction.cpp | 29 ++++++++------------- editor/libeditor/PlaceholderTransaction.h | 12 ++++----- editor/libeditor/nsIAbsorbingTransaction.h | 3 --- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/editor/libeditor/EditorBase.cpp b/editor/libeditor/EditorBase.cpp index 7e23c7dfed9a..0553a6f11a8a 100644 --- a/editor/libeditor/EditorBase.cpp +++ b/editor/libeditor/EditorBase.cpp @@ -674,13 +674,10 @@ EditorBase::DoTransaction(nsITransaction* aTxn) { if (mPlaceHolderBatch && !mPlaceHolderTxn) { nsCOMPtr placeholderTransaction = - new PlaceholderTransaction(); + new PlaceholderTransaction(*this, mPlaceHolderName, Move(mSelState)); // Save off weak reference to placeholder transaction mPlaceHolderTxn = do_GetWeakReference(placeholderTransaction); - placeholderTransaction->Init(mPlaceHolderName, mSelState, this); - // placeholder txn took ownership of this pointer - mSelState = nullptr; // QI to an nsITransaction since that's what DoTransaction() expects nsCOMPtr transaction = @@ -925,7 +922,7 @@ EditorBase::BeginPlaceHolderTransaction(nsIAtom* aName) mPlaceHolderName = aName; RefPtr selection = GetSelection(); if (selection) { - mSelState = new SelectionState(); + mSelState = MakeUnique(); mSelState->SaveSelection(selection); // Composition transaction can modify multiple nodes and it merges text // node for ime into single text node. @@ -989,7 +986,6 @@ EditorBase::EndPlaceHolderTransaction() if (mPlaceHolderName == nsGkAtoms::IMETxnName) { mRangeUpdater.DropSelectionState(*mSelState); } - delete mSelState; mSelState = nullptr; } // We might have never made a placeholder if no action took place. diff --git a/editor/libeditor/EditorBase.h b/editor/libeditor/EditorBase.h index 7c52e5e4e09a..e90e640ffea2 100644 --- a/editor/libeditor/EditorBase.h +++ b/editor/libeditor/EditorBase.h @@ -11,6 +11,7 @@ #include "mozilla/OwningNonNull.h" // for OwningNonNull #include "mozilla/SelectionState.h" // for RangeUpdater, etc. #include "mozilla/StyleSheet.h" // for StyleSheet +#include "mozilla/UniquePtr.h" #include "mozilla/dom/Text.h" #include "nsCOMPtr.h" // for already_AddRefed, nsCOMPtr #include "nsCycleCollectionParticipant.h" @@ -995,7 +996,7 @@ protected: // Name of placeholder transaction. nsIAtom* mPlaceHolderName; // Saved selection state for placeholder transaction batching. - SelectionState* mSelState; + mozilla::UniquePtr mSelState; nsString* mPhonetic; // IME composition this is not null between compositionstart and // compositionend. diff --git a/editor/libeditor/PlaceholderTransaction.cpp b/editor/libeditor/PlaceholderTransaction.cpp index 1031b45ab31f..b045e097a6e6 100644 --- a/editor/libeditor/PlaceholderTransaction.cpp +++ b/editor/libeditor/PlaceholderTransaction.cpp @@ -8,6 +8,7 @@ #include "CompositionTransaction.h" #include "mozilla/EditorBase.h" #include "mozilla/dom/Selection.h" +#include "mozilla/Move.h" #include "nsGkAtoms.h" #include "nsQueryObject.h" @@ -15,13 +16,18 @@ namespace mozilla { using namespace dom; -PlaceholderTransaction::PlaceholderTransaction() +PlaceholderTransaction::PlaceholderTransaction( + EditorBase& aEditorBase, + nsIAtom* aName, + UniquePtr aSelState) : mAbsorb(true) , mForwarding(nullptr) , mCompositionTransaction(nullptr) , mCommitted(false) - , mEditorBase(nullptr) + , mStartSel(Move(aSelState)) + , mEditorBase(aEditorBase) { + mName = aName; } PlaceholderTransaction::~PlaceholderTransaction() @@ -54,19 +60,6 @@ NS_INTERFACE_MAP_END_INHERITING(EditAggregateTransaction) NS_IMPL_ADDREF_INHERITED(PlaceholderTransaction, EditAggregateTransaction) NS_IMPL_RELEASE_INHERITED(PlaceholderTransaction, EditAggregateTransaction) -NS_IMETHODIMP -PlaceholderTransaction::Init(nsIAtom* aName, - SelectionState* aSelState, - EditorBase* aEditorBase) -{ - NS_ENSURE_TRUE(aEditorBase && aSelState, NS_ERROR_NULL_POINTER); - - mName = aName; - mStartSel = aSelState; - mEditorBase = aEditorBase; - return NS_OK; -} - NS_IMETHODIMP PlaceholderTransaction::DoTransaction() { @@ -83,7 +76,7 @@ PlaceholderTransaction::UndoTransaction() NS_ENSURE_TRUE(mStartSel, NS_ERROR_NULL_POINTER); // now restore selection - RefPtr selection = mEditorBase->GetSelection(); + RefPtr selection = mEditorBase.GetSelection(); NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER); return mStartSel->RestoreSelection(selection); } @@ -96,7 +89,7 @@ PlaceholderTransaction::RedoTransaction() NS_ENSURE_SUCCESS(rv, rv); // now restore selection - RefPtr selection = mEditorBase->GetSelection(); + RefPtr selection = mEditorBase.GetSelection(); NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER); return mEndSel.RestoreSelection(selection); } @@ -261,7 +254,7 @@ PlaceholderTransaction::Commit() nsresult PlaceholderTransaction::RememberEndingSelection() { - RefPtr selection = mEditorBase->GetSelection(); + RefPtr selection = mEditorBase.GetSelection(); NS_ENSURE_TRUE(selection, NS_ERROR_NULL_POINTER); mEndSel.SaveSelection(selection); return NS_OK; diff --git a/editor/libeditor/PlaceholderTransaction.h b/editor/libeditor/PlaceholderTransaction.h index 867a82ce31a8..0bb049a2c7af 100644 --- a/editor/libeditor/PlaceholderTransaction.h +++ b/editor/libeditor/PlaceholderTransaction.h @@ -8,12 +8,12 @@ #include "EditAggregateTransaction.h" #include "mozilla/EditorUtils.h" +#include "mozilla/UniquePtr.h" #include "nsIAbsorbingTransaction.h" #include "nsIDOMNode.h" #include "nsCOMPtr.h" #include "nsWeakPtr.h" #include "nsWeakReference.h" -#include "nsAutoPtr.h" namespace mozilla { @@ -33,7 +33,8 @@ class PlaceholderTransaction final : public EditAggregateTransaction, public: NS_DECL_ISUPPORTS_INHERITED - PlaceholderTransaction(); + PlaceholderTransaction(EditorBase& aEditorBase, nsIAtom* aName, + UniquePtr aSelState); NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(PlaceholderTransaction, EditAggregateTransaction) @@ -46,9 +47,6 @@ public: // ------------ nsIAbsorbingTransaction ----------------------- - NS_IMETHOD Init(nsIAtom* aName, SelectionState* aSelState, - EditorBase* aEditorBase) override; - NS_IMETHOD GetTxnName(nsIAtom** aName) override; NS_IMETHOD StartSelectionEquals(SelectionState* aSelState, @@ -80,11 +78,11 @@ protected: // restore the selection properly. // Use a pointer because this is constructed before we exist. - nsAutoPtr mStartSel; + UniquePtr mStartSel; SelectionState mEndSel; // The editor for this transaction. - EditorBase* mEditorBase; + EditorBase& mEditorBase; }; } // namespace mozilla diff --git a/editor/libeditor/nsIAbsorbingTransaction.h b/editor/libeditor/nsIAbsorbingTransaction.h index e22caed4ae28..b2d7b2c79944 100644 --- a/editor/libeditor/nsIAbsorbingTransaction.h +++ b/editor/libeditor/nsIAbsorbingTransaction.h @@ -35,9 +35,6 @@ public: NS_DECLARE_STATIC_IID_ACCESSOR(NS_IABSORBINGTRANSACTION_IID) - NS_IMETHOD Init(nsIAtom* aName, mozilla::SelectionState* aSelState, - mozilla::EditorBase* aEditorBase) = 0; - NS_IMETHOD EndPlaceHolderBatch()=0; NS_IMETHOD GetTxnName(nsIAtom **aName)=0; From d84f1fef724c0877d6b9acc0c56917b683564b9a Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Wed, 8 Feb 2017 18:14:24 +0900 Subject: [PATCH 086/112] Bug 1337698 - Part 2. HTMLEditor should use UniquePtr. r=masayuki MozReview-Commit-ID: 2O9f0K1RSU4 --HG-- extra : rebase_source : 966ffcf877756a876d72a0e09659dbeee406cddd extra : histedit_source : 6eac1458a8f3826e73238cfbdbd03c1426a390be --- editor/libeditor/HTMLEditor.cpp | 2 +- editor/libeditor/HTMLEditor.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp index 3b2e37691b7c..b72db5e49fb5 100644 --- a/editor/libeditor/HTMLEditor.cpp +++ b/editor/libeditor/HTMLEditor.cpp @@ -280,7 +280,7 @@ HTMLEditor::Init(nsIDOMDocument* aDoc, } // Init the HTML-CSS utils - mCSSEditUtils = new CSSEditUtils(this); + mCSSEditUtils = MakeUnique(this); // disable links nsCOMPtr presShell = GetPresShell(); diff --git a/editor/libeditor/HTMLEditor.h b/editor/libeditor/HTMLEditor.h index 002b5a21f6c0..1619631437b7 100644 --- a/editor/libeditor/HTMLEditor.h +++ b/editor/libeditor/HTMLEditor.h @@ -10,11 +10,11 @@ #include "mozilla/CSSEditUtils.h" #include "mozilla/StyleSheet.h" #include "mozilla/TextEditor.h" +#include "mozilla/UniquePtr.h" #include "mozilla/dom/Element.h" #include "mozilla/dom/File.h" #include "nsAttrName.h" -#include "nsAutoPtr.h" #include "nsCOMPtr.h" #include "nsIContentFilter.h" #include "nsICSSLoaderObserver.h" @@ -822,7 +822,7 @@ protected: bool mCRInParagraphCreatesParagraph; bool mCSSAware; - nsAutoPtr mCSSEditUtils; + UniquePtr mCSSEditUtils; // Used by GetFirstSelectedCell and GetNextSelectedCell int32_t mSelectedCellIndex; From 894130bddc9c414f00a2558c848493fd61ed2c19 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Wed, 8 Feb 2017 18:14:53 +0900 Subject: [PATCH 087/112] Bug 1337698 - Part 3. TypeInState should use UniquePtr. r=masayuki MozReview-Commit-ID: K9UY83Nx1v3 --HG-- extra : rebase_source : e9177c1c31805288e04270b589300c8e49d59940 extra : amend_source : 91bea4e023031b1c1594799b8dbe70dc3fb5b6ed extra : histedit_source : 2ee5b839c0f8019d18586a1b07e06e122e7780ee --- editor/libeditor/HTMLEditRules.cpp | 10 ++++++---- editor/libeditor/TypeInState.cpp | 8 ++++---- editor/libeditor/TypeInState.h | 5 +++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/editor/libeditor/HTMLEditRules.cpp b/editor/libeditor/HTMLEditRules.cpp index 6d092b06b4f0..14a5c73cef7c 100644 --- a/editor/libeditor/HTMLEditRules.cpp +++ b/editor/libeditor/HTMLEditRules.cpp @@ -16,13 +16,14 @@ #include "mozilla/EditorUtils.h" #include "mozilla/HTMLEditor.h" #include "mozilla/MathAlgorithms.h" +#include "mozilla/Move.h" #include "mozilla/Preferences.h" +#include "mozilla/UniquePtr.h" #include "mozilla/Unused.h" #include "mozilla/dom/Selection.h" #include "mozilla/dom/Element.h" #include "mozilla/OwningNonNull.h" #include "mozilla/mozalloc.h" -#include "nsAutoPtr.h" #include "nsAString.h" #include "nsAlgorithm.h" #include "nsCRT.h" @@ -4499,20 +4500,21 @@ HTMLEditRules::CreateStyleForInsertText(Selection& aSelection, NS_ENSURE_STATE(rootElement); // process clearing any styles first - nsAutoPtr item(mHTMLEditor->mTypeInState->TakeClearProperty()); + UniquePtr item = + Move(mHTMLEditor->mTypeInState->TakeClearProperty()); while (item && node != rootElement) { NS_ENSURE_STATE(mHTMLEditor); nsresult rv = mHTMLEditor->ClearStyle(address_of(node), &offset, item->tag, &item->attr); NS_ENSURE_SUCCESS(rv, rv); - item = mHTMLEditor->mTypeInState->TakeClearProperty(); + item = Move(mHTMLEditor->mTypeInState->TakeClearProperty()); weDidSomething = true; } // then process setting any styles int32_t relFontSize = mHTMLEditor->mTypeInState->TakeRelativeFontSize(); - item = mHTMLEditor->mTypeInState->TakeSetProperty(); + item = Move(mHTMLEditor->mTypeInState->TakeSetProperty()); if (item || relFontSize) { // we have at least one style to add; make a new text node to insert style diff --git a/editor/libeditor/TypeInState.cpp b/editor/libeditor/TypeInState.cpp index ce43e5e4dc6d..840139feeddb 100644 --- a/editor/libeditor/TypeInState.cpp +++ b/editor/libeditor/TypeInState.cpp @@ -193,7 +193,7 @@ TypeInState::ClearProp(nsIAtom* aProp, * TakeClearProperty() hands back next property item on the clear list. * Caller assumes ownership of PropItem and must delete it. */ -PropItem* +UniquePtr TypeInState::TakeClearProperty() { size_t count = mClearedArray.Length(); @@ -204,14 +204,14 @@ TypeInState::TakeClearProperty() --count; // indices are zero based PropItem* propItem = mClearedArray[count]; mClearedArray.RemoveElementAt(count); - return propItem; + return UniquePtr(propItem); } /** * TakeSetProperty() hands back next poroperty item on the set list. * Caller assumes ownership of PropItem and must delete it. */ -PropItem* +UniquePtr TypeInState::TakeSetProperty() { size_t count = mSetArray.Length(); @@ -221,7 +221,7 @@ TypeInState::TakeSetProperty() count--; // indices are zero based PropItem* propItem = mSetArray[count]; mSetArray.RemoveElementAt(count); - return propItem; + return UniquePtr(propItem); } /** diff --git a/editor/libeditor/TypeInState.h b/editor/libeditor/TypeInState.h index 540b2d9c1194..e1b949508c22 100644 --- a/editor/libeditor/TypeInState.h +++ b/editor/libeditor/TypeInState.h @@ -6,6 +6,7 @@ #ifndef TypeInState_h #define TypeInState_h +#include "mozilla/UniquePtr.h" #include "nsCOMPtr.h" #include "nsCycleCollectionParticipant.h" #include "nsISelectionListener.h" @@ -63,13 +64,13 @@ public: * TakeClearProperty() hands back next property item on the clear list. * Caller assumes ownership of PropItem and must delete it. */ - PropItem* TakeClearProperty(); + UniquePtr TakeClearProperty(); /** * TakeSetProperty() hands back next property item on the set list. * Caller assumes ownership of PropItem and must delete it. */ - PropItem* TakeSetProperty(); + UniquePtr TakeSetProperty(); /** * TakeRelativeFontSize() hands back relative font value, which is then From 4068213baf10b37f55bef7b2acf5a9a666c91982 Mon Sep 17 00:00:00 2001 From: Stanford Lockhart Date: Thu, 9 Feb 2017 01:35:52 -0500 Subject: [PATCH 088/112] Bug 1332091 - Part 1: Add colour value editors for Hex, RGBA, HSLA, and a selection box to go between them. r=gl --- devtools/client/shared/widgets/ColorWidget.js | 198 ++++++++++++++++++ .../client/shared/widgets/color-widget.css | 56 +++++ .../tooltip/SwatchColorPickerTooltip.js | 4 +- devtools/shared/css/color.js | 17 ++ 4 files changed, 273 insertions(+), 2 deletions(-) diff --git a/devtools/client/shared/widgets/ColorWidget.js b/devtools/client/shared/widgets/ColorWidget.js index ba705e6e1680..7031c73f5eba 100644 --- a/devtools/client/shared/widgets/ColorWidget.js +++ b/devtools/client/shared/widgets/ColorWidget.js @@ -10,6 +10,8 @@ "use strict"; const EventEmitter = require("devtools/shared/event-emitter"); +const {colorUtils} = require("devtools/shared/css/color"); + const XHTML_NS = "http://www.w3.org/1999/xhtml"; /** @@ -63,8 +65,35 @@ function ColorWidget(parentEl, rgb) {
+
+ +
+ +
+
+ + + + +
+
+ + + + +
+
`; + this.onSelectValueChange = this.onSelectValueChange.bind(this); + this.onHexInputChange = this.onHexInputChange.bind(this); + this.onRgbaInputChange = this.onRgbaInputChange.bind(this); + this.onHslaInputChange = this.onHslaInputChange.bind(this); + this.onElementClick = this.onElementClick.bind(this); this.element.addEventListener("click", this.onElementClick); @@ -83,6 +112,31 @@ function ColorWidget(parentEl, rgb) { this.alphaSliderHelper = this.element.querySelector(".colorwidget-alpha-handle"); ColorWidget.draggable(this.alphaSliderInner, this.onAlphaSliderMove.bind(this)); + this.colorSelect = this.element.querySelector(".colorwidget-select"); + this.colorSelect.addEventListener("change", this.onSelectValueChange); + + this.hexValue = this.element.querySelector(".colorwidget-hex"); + this.hexValueInput = this.element.querySelector(".colorwidget-hex-input"); + this.hexValueInput.addEventListener("input", this.onHexInputChange); + + this.rgbaValue = this.element.querySelector(".colorwidget-rgba"); + this.rgbaValueInputs = { + r: this.element.querySelector(".colorwidget-rgba-r"), + g: this.element.querySelector(".colorwidget-rgba-g"), + b: this.element.querySelector(".colorwidget-rgba-b"), + a: this.element.querySelector(".colorwidget-rgba-a"), + }; + this.rgbaValue.addEventListener("input", this.onRgbaInputChange); + + this.hslaValue = this.element.querySelector(".colorwidget-hsla"); + this.hslaValueInputs = { + h: this.element.querySelector(".colorwidget-hsla-h"), + s: this.element.querySelector(".colorwidget-hsla-s"), + l: this.element.querySelector(".colorwidget-hsla-l"), + a: this.element.querySelector(".colorwidget-hsla-a"), + }; + this.hslaValue.addEventListener("input", this.onHslaInputChange); + if (rgb) { this.rgb = rgb; this.updateUI(); @@ -137,6 +191,10 @@ ColorWidget.rgbToHsv = function (r, g, b, a) { return [h, s, v, a]; }; +ColorWidget.hslToCssString = function (h, s, l, a) { + return `hsla(${h}, ${s}%, ${l}%, ${a})`; +}; + ColorWidget.draggable = function (element, onmove, onstart, onstop) { onmove = onmove || function () {}; onstart = onstart || function () {}; @@ -210,6 +268,9 @@ ColorWidget.draggable = function (element, onmove, onstart, onstop) { ColorWidget.prototype = { set rgb(color) { this.hsv = ColorWidget.rgbToHsv(color[0], color[1], color[2], color[3]); + + let { h, s, l } = new colorUtils.CssColor(this.rgbCssString)._getHSLATuple(); + this.hsl = [h, s, l, color[3]]; }, get rgb() { @@ -250,6 +311,7 @@ ColorWidget.prototype = { onSliderMove: function (dragX, dragY) { this.hsv[0] = (dragY / this.slideHeight); + this.hsl[0] = (dragY / this.slideHeight) * 360; this.updateUI(); this.onChange(); }, @@ -257,12 +319,130 @@ ColorWidget.prototype = { onDraggerMove: function (dragX, dragY) { this.hsv[1] = dragX / this.dragWidth; this.hsv[2] = (this.dragHeight - dragY) / this.dragHeight; + + this.hsl[2] = ((2 - this.hsv[1]) * this.hsv[2] / 2); + if (this.hsl[2] && this.hsl[2] < 1) { + this.hsl[1] = this.hsv[1] * this.hsv[2] / + (this.hsl[2] < 0.5 ? this.hsl[2] * 2 : 2 - this.hsl[2] * 2); + this.hsl[1] = this.hsl[1] * 100; + } + this.hsl[2] = this.hsl[2] * 100; + this.updateUI(); this.onChange(); }, onAlphaSliderMove: function (dragX, dragY) { this.hsv[3] = dragX / this.alphaSliderWidth; + this.hsl[3] = dragX / this.alphaSliderWidth; + this.updateUI(); + this.onChange(); + }, + + onSelectValueChange: function (event) { + const selection = event.target.value; + this.colorSelect.classList.remove("colorwidget-select-spacing"); + this.hexValue.classList.add("colorwidget-hidden"); + this.rgbaValue.classList.add("colorwidget-hidden"); + this.hslaValue.classList.add("colorwidget-hidden"); + + switch (selection) { + case "hex": + this.hexValue.classList.remove("colorwidget-hidden"); + break; + case "rgba": + this.colorSelect.classList.add("colorwidget-select-spacing"); + this.rgbaValue.classList.remove("colorwidget-hidden"); + break; + case "hsla": + this.colorSelect.classList.add("colorwidget-select-spacing"); + this.hslaValue.classList.remove("colorwidget-hidden"); + break; + } + }, + + onHexInputChange: function (event) { + const hex = event.target.value; + const color = new colorUtils.CssColor(hex, true); + if (!color.rgba) { + return; + } + + const { r, g, b, a } = color._getRGBATuple(); + this.rgb = [r, g, b, a]; + this.updateUI(); + this.onChange(); + }, + + onRgbaInputChange: function (event) { + const field = event.target.dataset.id; + const value = event.target.value.toString(); + if (!value || isNaN(value) || value.endsWith(".")) { + return; + } + + let rgb = this.rgb; + + switch (field) { + case "r": + rgb[0] = value; + break; + case "g": + rgb[1] = value; + break; + case "b": + rgb[2] = value; + break; + case "a": + rgb[3] = Math.min(value, 1); + break; + } + + this.rgb = rgb; + + this.updateUI(); + this.onChange(); + }, + + onHslaInputChange: function (event) { + const field = event.target.dataset.id; + let value = event.target.value.toString(); + if ((field === "s" || field === "l") && !value.endsWith("%")) { + return; + } + + if (value.endsWith("%")) { + value = value.substring(0, value.length - 1); + } + + if (!value || isNaN(value) || value.endsWith(".")) { + return; + } + + const hsl = this.hsl; + + switch (field) { + case "h": + hsl[0] = value; + break; + case "s": + hsl[1] = value; + break; + case "l": + hsl[2] = value; + break; + case "a": + hsl[3] = Math.min(value, 1); + break; + } + + const cssString = ColorWidget.hslToCssString(hsl[0], hsl[1], hsl[2], hsl[3]); + const { r, g, b, a } = new colorUtils.CssColor(cssString)._getRGBATuple(); + + this.rgb = [r, g, b, a]; + + this.hsl = hsl; + this.updateUI(); this.onChange(); }, @@ -307,6 +487,24 @@ ColorWidget.prototype = { let alphaSliderX = (this.hsv[3] * this.alphaSliderWidth) - (this.alphaSliderHelperWidth / 2); this.alphaSliderHelper.style.left = alphaSliderX + "px"; + + const color = new colorUtils.CssColor(this.rgbCssString); + + // Updating the hex field + this.hexValueInput.value = color.hex; + + // Updating the RGBA fields + const rgb = this.rgb; + this.rgbaValueInputs.r.value = rgb[0]; + this.rgbaValueInputs.g.value = rgb[1]; + this.rgbaValueInputs.b.value = rgb[2]; + this.rgbaValueInputs.a.value = parseFloat(rgb[3].toFixed(1)); + + // Updating the HSLA fields + this.hslaValueInputs.h.value = this.hsl[0]; + this.hslaValueInputs.s.value = this.hsl[1] + "%"; + this.hslaValueInputs.l.value = this.hsl[2] + "%"; + this.hslaValueInputs.a.value = parseFloat(this.hsl[3].toFixed(1)); }, updateUI: function () { diff --git a/devtools/client/shared/widgets/color-widget.css b/devtools/client/shared/widgets/color-widget.css index 2306c875db37..1e2fbcc45c5e 100644 --- a/devtools/client/shared/widgets/color-widget.css +++ b/devtools/client/shared/widgets/color-widget.css @@ -153,3 +153,59 @@ http://www.briangrinstead.com/blog/keep-aspect-ratio-with-html-and-css */ left: -3px; right: -3px; } + +/** + * Color Widget Editor + */ + +.colorwidget-value { + position: relative; + margin-top: 8px; +} + +/** + * Color Widget Select + */ + +.colorwidget-select { + width: 100%; +} + +.colorwidget-select-spacing { + letter-spacing: 40px; +} + +.colorwidget-select-spacing option { + letter-spacing: initial; +} + +/** + * Color Widget Inputs + */ + +.colorwidget-hidden { + display: none; +} + +.colorwidget-hex, +.colorwidget-rgba, +.colorwidget-hsla { + width: 200px; + font-size: 0; +} + +.colorwidget-hex-input { + width: 192px; +} + +.colorwidget-rgba-r, +.colorwidget-rgba-g, +.colorwidget-rgba-b, +.colorwidget-rgba-a, +.colorwidget-hsla-h, +.colorwidget-hsla-s, +.colorwidget-hsla-l, +.colorwidget-hsla-a { + width: 42px; + margin: 0; +} \ No newline at end of file diff --git a/devtools/client/shared/widgets/tooltip/SwatchColorPickerTooltip.js b/devtools/client/shared/widgets/tooltip/SwatchColorPickerTooltip.js index 8c61235074d1..9207784d59ea 100644 --- a/devtools/client/shared/widgets/tooltip/SwatchColorPickerTooltip.js +++ b/devtools/client/shared/widgets/tooltip/SwatchColorPickerTooltip.js @@ -74,13 +74,13 @@ SwatchColorPickerTooltip.prototype = Heritage.extend(SwatchBasedEditorTooltip.pr eyedropper.style.pointerEvents = "auto"; container.appendChild(eyedropper); - this.tooltip.setContent(container, { width: 218, height: 224 }); - let spectrum; if (NEW_COLOR_WIDGET) { + this.tooltip.setContent(container, { width: 218, height: 271 }); const {ColorWidget} = require("devtools/client/shared/widgets/ColorWidget"); spectrum = new ColorWidget(spectrumNode, color); } else { + this.tooltip.setContent(container, { width: 218, height: 224 }); spectrum = new Spectrum(spectrumNode, color); } diff --git a/devtools/shared/css/color.js b/devtools/shared/css/color.js index 98ddeff1953f..5c9518b2b708 100644 --- a/devtools/shared/css/color.js +++ b/devtools/shared/css/color.js @@ -408,6 +408,23 @@ CssColor.prototype = { return tuple; }, + /** + * Returns a HSLA 4-Tuple representation of a color or transparent as + * appropriate. + */ + _getHSLATuple: function () { + let {r, g, b, a} = colorToRGBA(this.authored, this.cssColor4); + + let [h, s, l] = rgbToHsl([r, g, b]); + + return { + h, + s, + l, + a: parseFloat(a.toFixed(1)) + }; + }, + _hsl: function (maybeAlpha) { if (this.lowerCased.startsWith("hsl(") && maybeAlpha === undefined) { // We can use it as-is. From 8596d20f5f6089801c74dd554f873777495b9029 Mon Sep 17 00:00:00 2001 From: Aman Dwivedi Date: Wed, 8 Feb 2017 22:50:00 +0100 Subject: [PATCH 089/112] Bug 876002 - Remove nsIFormHistory2 so no synchronous form history code remains, r=markh. MozReview-Commit-ID: 4hNAqttRddP --HG-- extra : rebase_source : a206e30f11e8a625c29898f04498e2da628c2b91 --- b2g/installer/package-manifest.in | 1 - browser/installer/package-manifest.in | 1 - .../mozilla/gecko/db/FormHistoryProvider.java | 1 - mobile/android/installer/package-manifest.in | 1 - .../tests/unit/test_async_querySpinningly.js | 29 +- toolkit/components/satchel/moz.build | 2 - toolkit/components/satchel/nsFormHistory.js | 894 ------------------ toolkit/components/satchel/nsIFormHistory.idl | 74 -- toolkit/components/satchel/satchel.manifest | 2 - 9 files changed, 23 insertions(+), 982 deletions(-) delete mode 100644 toolkit/components/satchel/nsFormHistory.js delete mode 100644 toolkit/components/satchel/nsIFormHistory.idl diff --git a/b2g/installer/package-manifest.in b/b2g/installer/package-manifest.in index 55e1b2caa577..a5b8d5ba9a47 100644 --- a/b2g/installer/package-manifest.in +++ b/b2g/installer/package-manifest.in @@ -492,7 +492,6 @@ @RESPATH@/components/nsWebHandlerApp.js @RESPATH@/components/satchel.manifest @RESPATH@/components/nsFormAutoComplete.js -@RESPATH@/components/nsFormHistory.js @RESPATH@/components/FormHistoryStartup.js @RESPATH@/components/nsInputListAutoComplete.js @RESPATH@/components/formautofill.manifest diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index 8550f7222966..f481d9a0266c 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -465,7 +465,6 @@ @RESPATH@/components/nsWebHandlerApp.js @RESPATH@/components/satchel.manifest @RESPATH@/components/nsFormAutoComplete.js -@RESPATH@/components/nsFormHistory.js @RESPATH@/components/FormHistoryStartup.js @RESPATH@/components/nsInputListAutoComplete.js @RESPATH@/components/formautofill.manifest diff --git a/mobile/android/base/java/org/mozilla/gecko/db/FormHistoryProvider.java b/mobile/android/base/java/org/mozilla/gecko/db/FormHistoryProvider.java index ff2f5238e6dc..699689b00a9e 100644 --- a/mobile/android/base/java/org/mozilla/gecko/db/FormHistoryProvider.java +++ b/mobile/android/base/java/org/mozilla/gecko/db/FormHistoryProvider.java @@ -30,7 +30,6 @@ public class FormHistoryProvider extends SQLiteBridgeContentProvider { private static final UriMatcher URI_MATCHER; - // This should be kept in sync with the db version in toolkit/components/satchel/nsFormHistory.js private static final int DB_VERSION = 4; private static final String DB_FILENAME = "formhistory.sqlite"; private static final String TELEMETRY_TAG = "SQLITEBRIDGE_PROVIDER_FORMS"; diff --git a/mobile/android/installer/package-manifest.in b/mobile/android/installer/package-manifest.in index 73fc7d4020a8..539f0e3a070f 100644 --- a/mobile/android/installer/package-manifest.in +++ b/mobile/android/installer/package-manifest.in @@ -336,7 +336,6 @@ @BINPATH@/components/nsWebHandlerApp.js @BINPATH@/components/satchel.manifest @BINPATH@/components/nsFormAutoComplete.js -@BINPATH@/components/nsFormHistory.js @BINPATH@/components/FormHistoryStartup.js @BINPATH@/components/nsInputListAutoComplete.js @BINPATH@/components/formautofill.manifest diff --git a/services/common/tests/unit/test_async_querySpinningly.js b/services/common/tests/unit/test_async_querySpinningly.js index 50808e86ce3f..35a60caece81 100644 --- a/services/common/tests/unit/test_async_querySpinningly.js +++ b/services/common/tests/unit/test_async_querySpinningly.js @@ -2,6 +2,8 @@ * http://creativecommons.org/publicdomain/zero/1.0/ */ Cu.import("resource://gre/modules/XPCOMUtils.jsm"); +Cu.import("resource://gre/modules/Services.jsm"); +Cu.import("resource://gre/modules/FormHistory.jsm"); Cu.import("resource://services-common/async.js"); Cu.import("resource://services-common/utils.js"); @@ -9,13 +11,28 @@ _("Make sure querySpinningly will synchronously fetch rows for a query asyncly") const SQLITE_CONSTRAINT_VIOLATION = 19; // http://www.sqlite.org/c3ref/c_abort.html -var Svc = {}; -XPCOMUtils.defineLazyServiceGetter(Svc, "Form", - "@mozilla.org/satchel/form-history;1", - "nsIFormHistory2"); +// This test is a bit hacky - it was originally written to use the +// formhistory.sqlite database using the nsIFormHistory2 sync APIs. However, +// that's now been deprecated in favour of the async FormHistory.jsm. +// Rather than re-write the test completely, we cheat - we use FormHistory.jsm +// to initialize the database, then we just re-open it for these tests. + +// Init the forms database. +FormHistory.schemaVersion; + +// and open the database it just created. +let dbFile = Services.dirsvc.get("ProfD", Ci.nsIFile).clone(); +dbFile.append("formhistory.sqlite"); +let dbConnection = Services.storage.openUnsharedDatabase(dbFile); + +do_register_cleanup(() => { + let cb = Async.makeSpinningCallback(); + dbConnection.asyncClose(cb); + cb.wait(); +}); function querySpinningly(query, names) { - let q = Svc.Form.DBConnection.createStatement(query); + let q = dbConnection.createStatement(query); let r = Async.querySpinningly(q, names); q.finalize(); return r; @@ -84,7 +101,7 @@ function run_test() { _("Generate an execution error"); let query = "INSERT INTO moz_formhistory (fieldname, value) VALUES ('one', NULL)"; - let stmt = Svc.Form.DBConnection.createStatement(query); + let stmt = dbConnection.createStatement(query); let except; try { Async.querySpinningly(stmt); diff --git a/toolkit/components/satchel/moz.build b/toolkit/components/satchel/moz.build index 239f412bcf88..059b6c82f2ac 100644 --- a/toolkit/components/satchel/moz.build +++ b/toolkit/components/satchel/moz.build @@ -11,7 +11,6 @@ BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini'] XPIDL_SOURCES += [ 'nsIFormAutoComplete.idl', 'nsIFormFillController.idl', - 'nsIFormHistory.idl', 'nsIInputListAutoComplete.idl', ] @@ -28,7 +27,6 @@ LOCAL_INCLUDES += [ EXTRA_COMPONENTS += [ 'FormHistoryStartup.js', 'nsFormAutoComplete.js', - 'nsFormHistory.js', 'nsInputListAutoComplete.js', 'satchel.manifest', ] diff --git a/toolkit/components/satchel/nsFormHistory.js b/toolkit/components/satchel/nsFormHistory.js deleted file mode 100644 index c5f03961819e..000000000000 --- a/toolkit/components/satchel/nsFormHistory.js +++ /dev/null @@ -1,894 +0,0 @@ -/* 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/. */ - - -const Cc = Components.classes; -const Ci = Components.interfaces; -const Cr = Components.results; - -Components.utils.import("resource://gre/modules/XPCOMUtils.jsm"); -Components.utils.import("resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "Deprecated", - "resource://gre/modules/Deprecated.jsm"); -XPCOMUtils.defineLazyModuleGetter(this, "AppConstants", - "resource://gre/modules/AppConstants.jsm"); - -const DB_VERSION = 4; -const DAY_IN_MS = 86400000; // 1 day in milliseconds - -function FormHistory() { - Deprecated.warning( - "nsIFormHistory2 is deprecated and will be removed in a future version", - "https://bugzilla.mozilla.org/show_bug.cgi?id=879118"); - this.init(); -} - -FormHistory.prototype = { - classID : Components.ID("{0c1bb408-71a2-403f-854a-3a0659829ded}"), - QueryInterface : XPCOMUtils.generateQI([Ci.nsIFormHistory2, - Ci.nsIObserver, - Ci.nsIMessageListener, - Ci.nsISupportsWeakReference, - ]), - - debug : true, - enabled : true, - - // The current database schema. - dbSchema : { - tables : { - moz_formhistory: { - "id" : "INTEGER PRIMARY KEY", - "fieldname" : "TEXT NOT NULL", - "value" : "TEXT NOT NULL", - "timesUsed" : "INTEGER", - "firstUsed" : "INTEGER", - "lastUsed" : "INTEGER", - "guid" : "TEXT" - }, - moz_deleted_formhistory: { - "id" : "INTEGER PRIMARY KEY", - "timeDeleted" : "INTEGER", - "guid" : "TEXT" - } - }, - indices : { - moz_formhistory_index : { - table : "moz_formhistory", - columns : ["fieldname"] - }, - moz_formhistory_lastused_index : { - table : "moz_formhistory", - columns : ["lastUsed"] - }, - moz_formhistory_guid_index : { - table : "moz_formhistory", - columns : ["guid"] - }, - } - }, - dbStmts : null, // Database statements for memoization - dbFile : null, - - _uuidService: null, - get uuidService() { - if (!this._uuidService) - this._uuidService = Cc["@mozilla.org/uuid-generator;1"]. - getService(Ci.nsIUUIDGenerator); - return this._uuidService; - }, - - log : function log(message) { - if (!this.debug) - return; - dump("FormHistory: " + message + "\n"); - Services.console.logStringMessage("FormHistory: " + message); - }, - - - init : function init() { - this.updatePrefs(); - - this.dbStmts = {}; - - // Add observer - Services.obs.addObserver(this, "profile-before-change", true); - }, - - /* ---- nsIFormHistory2 interfaces ---- */ - - - get hasEntries() { - return (this.countAllEntries() > 0); - }, - - - addEntry : function addEntry(name, value) { - if (!this.enabled) - return; - - this.log("addEntry for " + name + "=" + value); - - let now = Date.now() * 1000; // microseconds - - let [id, guid] = this.getExistingEntryID(name, value); - let stmt; - - if (id != -1) { - // Update existing entry. - let query = "UPDATE moz_formhistory SET timesUsed = timesUsed + 1, lastUsed = :lastUsed WHERE id = :id"; - let params = { - lastUsed : now, - id - }; - - try { - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - this.sendStringNotification("modifyEntry", name, value, guid); - } catch (e) { - this.log("addEntry (modify) failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - - } else { - // Add new entry. - guid = this.generateGUID(); - - let query = "INSERT INTO moz_formhistory (fieldname, value, timesUsed, firstUsed, lastUsed, guid) " + - "VALUES (:fieldname, :value, :timesUsed, :firstUsed, :lastUsed, :guid)"; - let params = { - fieldname : name, - value, - timesUsed : 1, - firstUsed : now, - lastUsed : now, - guid - }; - - try { - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - this.sendStringNotification("addEntry", name, value, guid); - } catch (e) { - this.log("addEntry (create) failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - } - }, - - - removeEntry : function removeEntry(name, value) { - this.log("removeEntry for " + name + "=" + value); - - let [id, guid] = this.getExistingEntryID(name, value); - this.sendStringNotification("before-removeEntry", name, value, guid); - - let stmt; - let query = "DELETE FROM moz_formhistory WHERE id = :id"; - let params = { id }; - let existingTransactionInProgress; - - try { - // Don't start a transaction if one is already in progress since we can't nest them. - existingTransactionInProgress = this.dbConnection.transactionInProgress; - if (!existingTransactionInProgress) - this.dbConnection.beginTransaction(); - this.moveToDeletedTable("VALUES (:guid, :timeDeleted)", { - guid, - timeDeleted: Date.now() - }); - - // remove from the formhistory database - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - this.sendStringNotification("removeEntry", name, value, guid); - } catch (e) { - if (!existingTransactionInProgress) - this.dbConnection.rollbackTransaction(); - this.log("removeEntry failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - if (!existingTransactionInProgress) - this.dbConnection.commitTransaction(); - }, - - - removeEntriesForName : function removeEntriesForName(name) { - this.log("removeEntriesForName with name=" + name); - - this.sendStringNotification("before-removeEntriesForName", name); - - let stmt; - let query = "DELETE FROM moz_formhistory WHERE fieldname = :fieldname"; - let params = { fieldname : name }; - let existingTransactionInProgress; - - try { - // Don't start a transaction if one is already in progress since we can't nest them. - existingTransactionInProgress = this.dbConnection.transactionInProgress; - if (!existingTransactionInProgress) - this.dbConnection.beginTransaction(); - this.moveToDeletedTable( - "SELECT guid, :timeDeleted FROM moz_formhistory " + - "WHERE fieldname = :fieldname", { - fieldname: name, - timeDeleted: Date.now() - }); - - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - this.sendStringNotification("removeEntriesForName", name); - } catch (e) { - if (!existingTransactionInProgress) - this.dbConnection.rollbackTransaction(); - this.log("removeEntriesForName failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - if (!existingTransactionInProgress) - this.dbConnection.commitTransaction(); - }, - - - removeAllEntries : function removeAllEntries() { - this.log("removeAllEntries"); - - this.sendNotification("before-removeAllEntries", null); - - let stmt; - let query = "DELETE FROM moz_formhistory"; - let existingTransactionInProgress; - - try { - // Don't start a transaction if one is already in progress since we can't nest them. - existingTransactionInProgress = this.dbConnection.transactionInProgress; - if (!existingTransactionInProgress) - this.dbConnection.beginTransaction(); - // TODO: Add these items to the deleted items table once we've sorted - // out the issues from bug 756701 - stmt = this.dbCreateStatement(query); - stmt.execute(); - this.sendNotification("removeAllEntries", null); - } catch (e) { - if (!existingTransactionInProgress) - this.dbConnection.rollbackTransaction(); - this.log("removeAllEntries failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - if (!existingTransactionInProgress) - this.dbConnection.commitTransaction(); - }, - - - nameExists : function nameExists(name) { - this.log("nameExists for name=" + name); - let stmt; - let query = "SELECT COUNT(1) AS numEntries FROM moz_formhistory WHERE fieldname = :fieldname"; - let params = { fieldname : name }; - try { - stmt = this.dbCreateStatement(query, params); - stmt.executeStep(); - return (stmt.row.numEntries > 0); - } catch (e) { - this.log("nameExists failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - }, - - entryExists : function entryExists(name, value) { - this.log("entryExists for " + name + "=" + value); - let [id] = this.getExistingEntryID(name, value); - this.log("entryExists: id=" + id); - return (id != -1); - }, - - removeEntriesByTimeframe : function removeEntriesByTimeframe(beginTime, endTime) { - this.log("removeEntriesByTimeframe for " + beginTime + " to " + endTime); - - this.sendIntNotification("before-removeEntriesByTimeframe", beginTime, endTime); - - let stmt; - let query = "DELETE FROM moz_formhistory WHERE firstUsed >= :beginTime AND firstUsed <= :endTime"; - let params = { - beginTime, - endTime - }; - let existingTransactionInProgress; - - try { - // Don't start a transaction if one is already in progress since we can't nest them. - existingTransactionInProgress = this.dbConnection.transactionInProgress; - if (!existingTransactionInProgress) - this.dbConnection.beginTransaction(); - this.moveToDeletedTable( - "SELECT guid, :timeDeleted FROM moz_formhistory " + - "WHERE firstUsed >= :beginTime AND firstUsed <= :endTime", { - beginTime, - endTime - }); - - stmt = this.dbCreateStatement(query, params); - stmt.executeStep(); - this.sendIntNotification("removeEntriesByTimeframe", beginTime, endTime); - } catch (e) { - if (!existingTransactionInProgress) - this.dbConnection.rollbackTransaction(); - this.log("removeEntriesByTimeframe failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - if (!existingTransactionInProgress) - this.dbConnection.commitTransaction(); - }, - - moveToDeletedTable : function moveToDeletedTable(values, params) { - if (AppConstants.platform == "android") { - this.log("Moving entries to deleted table."); - - let stmt; - - try { - // Move the entries to the deleted items table. - let query = "INSERT INTO moz_deleted_formhistory (guid, timeDeleted) "; - if (values) query += values; - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - } catch (e) { - this.log("Moving deleted entries failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - } - }, - - get dbConnection() { - // Make sure dbConnection can't be called from now to prevent infinite loops. - delete FormHistory.prototype.dbConnection; - - try { - this.dbFile = Services.dirsvc.get("ProfD", Ci.nsIFile).clone(); - this.dbFile.append("formhistory.sqlite"); - this.log("Opening database at " + this.dbFile.path); - - FormHistory.prototype.dbConnection = this.dbOpen(); - this.dbInit(); - } catch (e) { - this.log("Initialization failed: " + e); - // If dbInit fails... - if (e.result == Cr.NS_ERROR_FILE_CORRUPTED) { - this.dbCleanup(); - FormHistory.prototype.dbConnection = this.dbOpen(); - this.dbInit(); - } else { - throw "Initialization failed"; - } - } - - return FormHistory.prototype.dbConnection; - }, - - get DBConnection() { - return this.dbConnection; - }, - - - /* ---- nsIObserver interface ---- */ - - - observe : function observe(subject, topic, data) { - switch (topic) { - case "nsPref:changed": - this.updatePrefs(); - break; - case "profile-before-change": - this._dbClose(false); - break; - default: - this.log("Oops! Unexpected notification: " + topic); - break; - } - }, - - - /* ---- helpers ---- */ - - - generateGUID() { - // string like: "{f60d9eac-9421-4abc-8491-8e8322b063d4}" - let uuid = this.uuidService.generateUUID().toString(); - let raw = ""; // A string with the low bytes set to random values - let bytes = 0; - for (let i = 1; bytes < 12 ; i += 2) { - // Skip dashes - if (uuid[i] == "-") - i++; - let hexVal = parseInt(uuid[i] + uuid[i + 1], 16); - raw += String.fromCharCode(hexVal); - bytes++; - } - return btoa(raw); - }, - - - sendStringNotification(changeType, str1, str2, str3) { - function wrapit(str) { - let wrapper = Cc["@mozilla.org/supports-string;1"]. - createInstance(Ci.nsISupportsString); - wrapper.data = str; - return wrapper; - } - - let strData; - if (arguments.length == 2) { - // Just 1 string, no need to put it in an array - strData = wrapit(str1); - } else { - // 3 strings, put them in an array. - strData = Cc["@mozilla.org/array;1"]. - createInstance(Ci.nsIMutableArray); - strData.appendElement(wrapit(str1), false); - strData.appendElement(wrapit(str2), false); - strData.appendElement(wrapit(str3), false); - } - this.sendNotification(changeType, strData); - }, - - - sendIntNotification(changeType, int1, int2) { - function wrapit(int) { - let wrapper = Cc["@mozilla.org/supports-PRInt64;1"]. - createInstance(Ci.nsISupportsPRInt64); - wrapper.data = int; - return wrapper; - } - - let intData; - if (arguments.length == 2) { - // Just 1 int, no need for an array - intData = wrapit(int1); - } else { - // 2 ints, put them in an array. - intData = Cc["@mozilla.org/array;1"]. - createInstance(Ci.nsIMutableArray); - intData.appendElement(wrapit(int1), false); - intData.appendElement(wrapit(int2), false); - } - this.sendNotification(changeType, intData); - }, - - - sendNotification(changeType, data) { - Services.obs.notifyObservers(data, "satchel-storage-changed", changeType); - }, - - - getExistingEntryID(name, value) { - let id = -1, guid = null; - let stmt; - let query = "SELECT id, guid FROM moz_formhistory WHERE fieldname = :fieldname AND value = :value"; - let params = { - fieldname : name, - value - }; - try { - stmt = this.dbCreateStatement(query, params); - if (stmt.executeStep()) { - id = stmt.row.id; - guid = stmt.row.guid; - } - } catch (e) { - this.log("getExistingEntryID failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - - return [id, guid]; - }, - - - countAllEntries() { - let query = "SELECT COUNT(1) AS numEntries FROM moz_formhistory"; - - let stmt, numEntries; - try { - stmt = this.dbCreateStatement(query, null); - stmt.executeStep(); - numEntries = stmt.row.numEntries; - } catch (e) { - this.log("countAllEntries failed: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - - this.log("countAllEntries: counted entries: " + numEntries); - return numEntries; - }, - - - updatePrefs() { - this.debug = Services.prefs.getBoolPref("browser.formfill.debug"); - this.enabled = Services.prefs.getBoolPref("browser.formfill.enable"); - }, - - // Database Creation & Access - - /* - * dbCreateStatement - * - * Creates a statement, wraps it, and then does parameter replacement - * Will use memoization so that statements can be reused. - */ - dbCreateStatement(query, params) { - let stmt = this.dbStmts[query]; - // Memoize the statements - if (!stmt) { - this.log("Creating new statement for query: " + query); - stmt = this.dbConnection.createStatement(query); - this.dbStmts[query] = stmt; - } - // Replace parameters, must be done 1 at a time - if (params) - for (let i in params) - stmt.params[i] = params[i]; - return stmt; - }, - - /* - * dbOpen - * - * Open a connection with the database and returns it. - * - * @returns a db connection object. - */ - dbOpen() { - this.log("Open Database"); - - let storage = Cc["@mozilla.org/storage/service;1"]. - getService(Ci.mozIStorageService); - return storage.openDatabase(this.dbFile); - }, - - /* - * dbInit - * - * Attempts to initialize the database. This creates the file if it doesn't - * exist, performs any migrations, etc. - */ - dbInit() { - this.log("Initializing Database"); - - let version = this.dbConnection.schemaVersion; - - // Note: Firefox 3 didn't set a schema value, so it started from 0. - // So we can't depend on a simple version == 0 check - if (version == 0 && !this.dbConnection.tableExists("moz_formhistory")) - this.dbCreate(); - else if (version != DB_VERSION) - this.dbMigrate(version); - }, - - - dbCreate() { - this.log("Creating DB -- tables"); - for (let name in this.dbSchema.tables) { - let table = this.dbSchema.tables[name]; - this.dbCreateTable(name, table); - } - - this.log("Creating DB -- indices"); - for (let name in this.dbSchema.indices) { - let index = this.dbSchema.indices[name]; - let statement = "CREATE INDEX IF NOT EXISTS " + name + " ON " + index.table + - "(" + index.columns.join(", ") + ")"; - this.dbConnection.executeSimpleSQL(statement); - } - - this.dbConnection.schemaVersion = DB_VERSION; - }, - - dbCreateTable(name, table) { - let tSQL = Object.keys(table).map(col => [col, table[col]].join(" ")).join(", "); - this.log("Creating table " + name + " with " + tSQL); - this.dbConnection.createTable(name, tSQL); - }, - - dbMigrate(oldVersion) { - this.log("Attempting to migrate from version " + oldVersion); - - if (oldVersion > DB_VERSION) { - this.log("Downgrading to version " + DB_VERSION); - // User's DB is newer. Sanity check that our expected columns are - // present, and if so mark the lower version and merrily continue - // on. If the columns are borked, something is wrong so blow away - // the DB and start from scratch. [Future incompatible upgrades - // should swtich to a different table or file.] - - if (!this.dbAreExpectedColumnsPresent()) - throw Components.Exception("DB is missing expected columns", - Cr.NS_ERROR_FILE_CORRUPTED); - - // Change the stored version to the current version. If the user - // runs the newer code again, it will see the lower version number - // and re-upgrade (to fixup any entries the old code added). - this.dbConnection.schemaVersion = DB_VERSION; - return; - } - - // Upgrade to newer version... - - this.dbConnection.beginTransaction(); - - try { - for (let v = oldVersion + 1; v <= DB_VERSION; v++) { - this.log("Upgrading to version " + v + "..."); - let migrateFunction = "dbMigrateToVersion" + v; - this[migrateFunction](); - } - } catch (e) { - this.log("Migration failed: " + e); - this.dbConnection.rollbackTransaction(); - throw e; - } - - this.dbConnection.schemaVersion = DB_VERSION; - this.dbConnection.commitTransaction(); - this.log("DB migration completed."); - }, - - - /* - * dbMigrateToVersion1 - * - * Updates the DB schema to v1 (bug 463154). - * Adds firstUsed, lastUsed, timesUsed columns. - */ - dbMigrateToVersion1() { - // Check to see if the new columns already exist (could be a v1 DB that - // was downgraded to v0). If they exist, we don't need to add them. - let query; - ["timesUsed", "firstUsed", "lastUsed"].forEach(function(column) { - if (!this.dbColumnExists(column)) { - query = "ALTER TABLE moz_formhistory ADD COLUMN " + column + " INTEGER"; - this.dbConnection.executeSimpleSQL(query); - } - }, this); - - // Set the default values for the new columns. - // - // Note that we set the timestamps to 24 hours in the past. We want a - // timestamp that's recent (so that "keep form history for 90 days" - // doesn't expire things surprisingly soon), but not so recent that - // "forget the last hour of stuff" deletes all freshly migrated data. - let stmt; - query = "UPDATE moz_formhistory " + - "SET timesUsed = 1, firstUsed = :time, lastUsed = :time " + - "WHERE timesUsed isnull OR firstUsed isnull or lastUsed isnull"; - let params = { time: (Date.now() - DAY_IN_MS) * 1000 } - try { - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - } catch (e) { - this.log("Failed setting timestamps: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - }, - - - /* - * dbMigrateToVersion2 - * - * Updates the DB schema to v2 (bug 243136). - * Adds lastUsed index, removes moz_dummy_table - */ - dbMigrateToVersion2() { - let query = "DROP TABLE IF EXISTS moz_dummy_table"; - this.dbConnection.executeSimpleSQL(query); - - query = "CREATE INDEX IF NOT EXISTS moz_formhistory_lastused_index ON moz_formhistory (lastUsed)"; - this.dbConnection.executeSimpleSQL(query); - }, - - - /* - * dbMigrateToVersion3 - * - * Updates the DB schema to v3 (bug 506402). - * Adds guid column and index. - */ - dbMigrateToVersion3() { - // Check to see if GUID column already exists, add if needed - let query; - if (!this.dbColumnExists("guid")) { - query = "ALTER TABLE moz_formhistory ADD COLUMN guid TEXT"; - this.dbConnection.executeSimpleSQL(query); - - query = "CREATE INDEX IF NOT EXISTS moz_formhistory_guid_index ON moz_formhistory (guid)"; - this.dbConnection.executeSimpleSQL(query); - } - - // Get a list of IDs for existing logins - let ids = []; - query = "SELECT id FROM moz_formhistory WHERE guid isnull"; - let stmt; - try { - stmt = this.dbCreateStatement(query); - while (stmt.executeStep()) - ids.push(stmt.row.id); - } catch (e) { - this.log("Failed getting IDs: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - - // Generate a GUID for each login and update the DB. - query = "UPDATE moz_formhistory SET guid = :guid WHERE id = :id"; - for (let id of ids) { - let params = { - id, - guid : this.generateGUID() - }; - - try { - stmt = this.dbCreateStatement(query, params); - stmt.execute(); - } catch (e) { - this.log("Failed setting GUID: " + e); - throw e; - } finally { - if (stmt) { - stmt.reset(); - } - } - } - }, - - dbMigrateToVersion4() { - if (!this.dbConnection.tableExists("moz_deleted_formhistory")) { - this.dbCreateTable("moz_deleted_formhistory", this.dbSchema.tables.moz_deleted_formhistory); - } - }, - - /* - * dbAreExpectedColumnsPresent - * - * Sanity check to ensure that the columns this version of the code expects - * are present in the DB we're using. - */ - dbAreExpectedColumnsPresent() { - for (let name in this.dbSchema.tables) { - let table = this.dbSchema.tables[name]; - let query = "SELECT " + - Object.keys(table).join(", ") + - " FROM " + name; - try { - let stmt = this.dbConnection.createStatement(query); - // (no need to execute statement, if it compiled we're good) - stmt.finalize(); - } catch (e) { - return false; - } - } - - this.log("verified that expected columns are present in DB."); - return true; - }, - - - /* - * dbColumnExists - * - * Checks to see if the named column already exists. - */ - dbColumnExists(columnName) { - let query = "SELECT " + columnName + " FROM moz_formhistory"; - try { - let stmt = this.dbConnection.createStatement(query); - // (no need to execute statement, if it compiled we're good) - stmt.finalize(); - return true; - } catch (e) { - return false; - } - }, - - /** - * _dbClose - * - * Finalize all statements and close the connection. - * - * @param aBlocking - Should we spin the loop waiting for the db to be - * closed. - */ - _dbClose : function FH__dbClose(aBlocking) { - for (let query in this.dbStmts) { - let stmt = this.dbStmts[query]; - stmt.finalize(); - } - this.dbStmts = {}; - - let connectionDescriptor = Object.getOwnPropertyDescriptor(FormHistory.prototype, "dbConnection"); - // Return if the database hasn't been opened. - if (!connectionDescriptor || connectionDescriptor.value === undefined) - return; - - let completed = false; - try { - this.dbConnection.asyncClose(function() { completed = true; }); - } catch (e) { - completed = true; - Components.utils.reportError(e); - } - - let thread = Services.tm.currentThread; - while (aBlocking && !completed) { - thread.processNextEvent(true); - } - }, - - /* - * dbCleanup - * - * Called when database creation fails. Finalizes database statements, - * closes the database connection, deletes the database file. - */ - dbCleanup() { - this.log("Cleaning up DB file - close & remove & backup") - - // Create backup file - let storage = Cc["@mozilla.org/storage/service;1"]. - getService(Ci.mozIStorageService); - let backupFile = this.dbFile.leafName + ".corrupt"; - storage.backupDatabaseFile(this.dbFile, backupFile); - - this._dbClose(true); - this.dbFile.remove(false); - } -}; - -var component = [FormHistory]; -this.NSGetFactory = XPCOMUtils.generateNSGetFactory(component); diff --git a/toolkit/components/satchel/nsIFormHistory.idl b/toolkit/components/satchel/nsIFormHistory.idl deleted file mode 100644 index ac78451e90e5..000000000000 --- a/toolkit/components/satchel/nsIFormHistory.idl +++ /dev/null @@ -1,74 +0,0 @@ -/* 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 "nsISupports.idl" -interface nsIFile; -interface mozIStorageConnection; - -/** - * The nsIFormHistory object is a service which holds a set of name/value - * pairs. The names correspond to form field names, and the values correspond - * to values the user has submitted. So, several values may exist for a single - * name. - * - * Note: this interface provides no means to access stored values. - * Stored values are used by the FormFillController to generate - * autocomplete matches. - * - * @deprecated use FormHistory.jsm instead. - */ - -[scriptable, uuid(5d7d84d1-9798-4016-bf61-a32acf09b29d)] -interface nsIFormHistory2 : nsISupports -{ - /** - * Returns true if the form history has any entries. - */ - readonly attribute boolean hasEntries; - - /** - * Adds a name and value pair to the form history. - */ - void addEntry(in AString name, in AString value); - - /** - * Removes a name and value pair from the form history. - */ - void removeEntry(in AString name, in AString value); - - /** - * Removes all entries that are paired with a name. - */ - void removeEntriesForName(in AString name); - - /** - * Removes all entries in the entire form history. - */ - void removeAllEntries(); - - /** - * Returns true if there is no entry that is paired with a name. - */ - boolean nameExists(in AString name); - - /** - * Gets whether a name and value pair exists in the form history. - */ - boolean entryExists(in AString name, in AString value); - - /** - * Removes entries that were created between the specified times. - * - * @param aBeginTime - * The beginning of the timeframe, in microseconds - * @param aEndTime - * The end of the timeframe, in microseconds - */ - void removeEntriesByTimeframe(in long long aBeginTime, in long long aEndTime); - - /** - * Returns the underlying DB connection the form history module is using. - */ - readonly attribute mozIStorageConnection DBConnection; -}; diff --git a/toolkit/components/satchel/satchel.manifest b/toolkit/components/satchel/satchel.manifest index 5afc0a38c032..0dba85473ef9 100644 --- a/toolkit/components/satchel/satchel.manifest +++ b/toolkit/components/satchel/satchel.manifest @@ -1,5 +1,3 @@ -component {0c1bb408-71a2-403f-854a-3a0659829ded} nsFormHistory.js -contract @mozilla.org/satchel/form-history;1 {0c1bb408-71a2-403f-854a-3a0659829ded} component {c11c21b2-71c9-4f87-a0f8-5e13f50495fd} nsFormAutoComplete.js contract @mozilla.org/satchel/form-autocomplete;1 {c11c21b2-71c9-4f87-a0f8-5e13f50495fd} component {bf1e01d0-953e-11df-981c-0800200c9a66} nsInputListAutoComplete.js From 6e0c53ec9fd4d76cce9578a99256695b83ff9b01 Mon Sep 17 00:00:00 2001 From: Randell Jesup Date: Thu, 9 Feb 2017 02:55:20 -0500 Subject: [PATCH 090/112] Bug 1311380: make shutdown ordering for sctp deregister_address consistent r=tuexen --- netwerk/sctp/datachannel/DataChannel.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/netwerk/sctp/datachannel/DataChannel.cpp b/netwerk/sctp/datachannel/DataChannel.cpp index b5adef05ab66..9da4b3c2c48f 100644 --- a/netwerk/sctp/datachannel/DataChannel.cpp +++ b/netwerk/sctp/datachannel/DataChannel.cpp @@ -268,6 +268,14 @@ DataChannelConnection::Destroy() MOZ_ASSERT(mSTS); ASSERT_WEBRTC(NS_IsMainThread()); + // Must do this in Destroy() since we may then delete this object. + // Do this before dispatching to create a consistent ordering of calls to + // the SCTP stack. + if (mUsingDtls) { + usrsctp_deregister_address(static_cast(this)); + LOG(("Deregistered %p from the SCTP stack.", static_cast(this))); + } + // Finish Destroy on STS thread to avoid bug 876167 - once that's fixed, // the usrsctp_close() calls can move back here (and just proxy the // disconnect_all()) @@ -280,12 +288,6 @@ DataChannelConnection::Destroy() mSocket = nullptr; mMasterSocket = nullptr; // also a flag that we've Destroyed this connection - // Must do this in Destroy() since we may then delete this object - if (mUsingDtls) { - usrsctp_deregister_address(static_cast(this)); - LOG(("Deregistered %p from the SCTP stack.", static_cast(this))); - } - // We can't get any more new callbacks from the SCTP library // All existing callbacks have refs to DataChannelConnection From ab55eb3915c7b9148956ca349624671d3a0c94d8 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Thu, 9 Feb 2017 09:54:53 +0100 Subject: [PATCH 091/112] Bug 1338068 - Correct the metadata handling for .any.js tests in workers; r=jgraham The previous code would try to read a virtual file from the file system, which would result in an exception in the handler and a 500 Internal Server Error sent to the client. This change is part of the code that landed upstream in . --- .../XMLHttpRequest-withCredentials.any.js.ini | 6 ------ .../meta/console/console-is-a-namespace.any.js.ini | 6 ------ testing/web-platform/tests/tools/serve/serve.py | 1 + 3 files changed, 1 insertion(+), 12 deletions(-) delete mode 100644 testing/web-platform/meta/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js.ini delete mode 100644 testing/web-platform/meta/console/console-is-a-namespace.any.js.ini diff --git a/testing/web-platform/meta/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js.ini b/testing/web-platform/meta/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js.ini deleted file mode 100644 index 6ff3a483394d..000000000000 --- a/testing/web-platform/meta/XMLHttpRequest/XMLHttpRequest-withCredentials.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[XMLHttpRequest-withCredentials.any.worker.html] - type: testharness - expected: TIMEOUT - -[XMLHttpRequest-withCredentials.any.html] - type: testharness diff --git a/testing/web-platform/meta/console/console-is-a-namespace.any.js.ini b/testing/web-platform/meta/console/console-is-a-namespace.any.js.ini deleted file mode 100644 index bbf28e2159dc..000000000000 --- a/testing/web-platform/meta/console/console-is-a-namespace.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[console-is-a-namespace.any.worker.html] - type: testharness - expected: TIMEOUT - -[console-is-a-namespace.any.html] - type: testharness diff --git a/testing/web-platform/tests/tools/serve/serve.py b/testing/web-platform/tests/tools/serve/serve.py index ef0901d04f8a..bd935c56f2b4 100644 --- a/testing/web-platform/tests/tools/serve/serve.py +++ b/testing/web-platform/tests/tools/serve/serve.py @@ -59,6 +59,7 @@ fetch_tests_from_worker(new Worker("%(worker_path)s")); def _get_meta(self, request): path = filesystem_path(self.base_path, request, self.url_base) + path = path.replace(".any.worker.html", ".any.js") path = path.replace(".worker.html", ".worker.js") meta_values = [] with open(path) as f: From a1f4b8b3cd936ba1483b80202161786ab0565d56 Mon Sep 17 00:00:00 2001 From: Ethan Lin Date: Thu, 9 Feb 2017 17:22:17 +0800 Subject: [PATCH 092/112] Bug 1337681 - Part1. Support border radius for BorderLayer. r=mattwoodrow --- layout/painting/nsDisplayList.cpp | 5 ++++- layout/painting/nsDisplayList.h | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/layout/painting/nsDisplayList.cpp b/layout/painting/nsDisplayList.cpp index 50448ac8b6c8..5a51610f0757 100644 --- a/layout/painting/nsDisplayList.cpp +++ b/layout/painting/nsDisplayList.cpp @@ -4439,6 +4439,9 @@ nsDisplayBorder::GetLayerState(nsDisplayListBuilder* aBuilder, mWidths[i] = 0; } } + NS_FOR_CSS_FULL_CORNERS(corner) { + mCorners[corner] = LayerSize(br->mBorderRadii[corner].width, br->mBorderRadii[corner].height); + } mRect = ViewAs(br->mOuterRect); return LAYER_ACTIVE; @@ -4457,7 +4460,7 @@ nsDisplayBorder::BuildLayer(nsDisplayListBuilder* aBuilder, return nullptr; } layer->SetRect(mRect); - layer->SetCornerRadii({ LayerSize(), LayerSize(), LayerSize(), LayerSize() }); + layer->SetCornerRadii(mCorners); layer->SetColors(mColors); layer->SetWidths(mWidths); layer->SetStyles(mBorderStyles); diff --git a/layout/painting/nsDisplayList.h b/layout/painting/nsDisplayList.h index ded1ef5a0b07..8eed8697f1c0 100644 --- a/layout/painting/nsDisplayList.h +++ b/layout/painting/nsDisplayList.h @@ -2846,6 +2846,7 @@ protected: mozilla::Array mColors; mozilla::Array mWidths; + mozilla::Array mCorners; mozilla::Array mBorderStyles; mozilla::LayerRect mRect; From 4434f5a66883ac48934df7be1e5404923e575ee1 Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 10:37:54 +0100 Subject: [PATCH 093/112] Bug 1337722 - Use BufferSource in webIDL, r=qdot --- dom/base/Navigator.cpp | 2 +- dom/base/Navigator.h | 3 ++- dom/fetch/Fetch.cpp | 4 ++-- dom/fetch/Fetch.h | 13 +++++++++---- dom/fetch/Request.cpp | 6 ++---- dom/fetch/Response.cpp | 4 ++-- dom/fetch/Response.h | 2 +- dom/webidl/Blob.webidl | 4 ++-- dom/webidl/Fetch.webidl | 2 +- dom/webidl/MediaKeys.webidl | 2 +- 10 files changed, 23 insertions(+), 19 deletions(-) diff --git a/dom/base/Navigator.cpp b/dom/base/Navigator.cpp index 0c5e6d1eff77..2f3dd6e24853 100644 --- a/dom/base/Navigator.cpp +++ b/dom/base/Navigator.cpp @@ -1229,7 +1229,7 @@ BeaconStreamListener::OnDataAvailable(nsIRequest *aRequest, bool Navigator::SendBeacon(const nsAString& aUrl, - const Nullable& aData, + const Nullable& aData, ErrorResult& aRv) { if (aData.IsNull()) { diff --git a/dom/base/Navigator.h b/dom/base/Navigator.h index df6b59841fed..8e97c4661518 100644 --- a/dom/base/Navigator.h +++ b/dom/base/Navigator.h @@ -9,6 +9,7 @@ #include "mozilla/MemoryReporting.h" #include "mozilla/dom/BindingDeclarations.h" +#include "mozilla/dom/Fetch.h" #include "mozilla/dom/Nullable.h" #include "mozilla/ErrorResult.h" #include "nsIDOMNavigator.h" @@ -226,7 +227,7 @@ public: Presentation* GetPresentation(ErrorResult& aRv); bool SendBeacon(const nsAString& aUrl, - const Nullable& aData, + const Nullable& aData, ErrorResult& aRv); void MozGetUserMedia(const MediaStreamConstraints& aConstraints, diff --git a/dom/fetch/Fetch.cpp b/dom/fetch/Fetch.cpp index fe06f4c074c8..5f164643f09b 100644 --- a/dom/fetch/Fetch.cpp +++ b/dom/fetch/Fetch.cpp @@ -480,7 +480,7 @@ WorkerFetchResolver::FlushConsoleReport() } nsresult -ExtractByteStreamFromBody(const OwningArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams& aBodyInit, +ExtractByteStreamFromBody(const fetch::OwningBodyInit& aBodyInit, nsIInputStream** aStream, nsCString& aContentTypeWithCharset, uint64_t& aContentLength) @@ -533,7 +533,7 @@ ExtractByteStreamFromBody(const OwningArrayBufferOrArrayBufferViewOrBlobOrFormDa } nsresult -ExtractByteStreamFromBody(const ArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams& aBodyInit, +ExtractByteStreamFromBody(const fetch::BodyInit& aBodyInit, nsIInputStream** aStream, nsCString& aContentTypeWithCharset, uint64_t& aContentLength) diff --git a/dom/fetch/Fetch.h b/dom/fetch/Fetch.h index baacf38c3b0f..d69f92d98a55 100644 --- a/dom/fetch/Fetch.h +++ b/dom/fetch/Fetch.h @@ -27,10 +27,10 @@ class nsIGlobalObject; namespace mozilla { namespace dom { -class ArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams; +class BlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString; class BlobImpl; class InternalRequest; -class OwningArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams; +class OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString; class RequestOrUSVString; enum class CallerType : uint32_t; @@ -46,13 +46,18 @@ FetchRequest(nsIGlobalObject* aGlobal, const RequestOrUSVString& aInput, nsresult UpdateRequestReferrer(nsIGlobalObject* aGlobal, InternalRequest* aRequest); +namespace fetch { +typedef BlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString BodyInit; +typedef OwningBlobOrArrayBufferViewOrArrayBufferOrFormDataOrURLSearchParamsOrUSVString OwningBodyInit; +}; + /* * Creates an nsIInputStream based on the fetch specifications 'extract a byte * stream algorithm' - http://fetch.spec.whatwg.org/#concept-bodyinit-extract. * Stores content type in out param aContentType. */ nsresult -ExtractByteStreamFromBody(const OwningArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams& aBodyInit, +ExtractByteStreamFromBody(const fetch::OwningBodyInit& aBodyInit, nsIInputStream** aStream, nsCString& aContentType, uint64_t& aContentLength); @@ -61,7 +66,7 @@ ExtractByteStreamFromBody(const OwningArrayBufferOrArrayBufferViewOrBlobOrFormDa * Non-owning version. */ nsresult -ExtractByteStreamFromBody(const ArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams& aBodyInit, +ExtractByteStreamFromBody(const fetch::BodyInit& aBodyInit, nsIInputStream** aStream, nsCString& aContentType, uint64_t& aContentLength); diff --git a/dom/fetch/Request.cpp b/dom/fetch/Request.cpp index 97863a40d5b4..0847ed088ae2 100644 --- a/dom/fetch/Request.cpp +++ b/dom/fetch/Request.cpp @@ -547,11 +547,9 @@ Request::Constructor(const GlobalObject& aGlobal, } if (aInit.mBody.WasPassed()) { - const Nullable& bodyInitNullable = - aInit.mBody.Value(); + const Nullable& bodyInitNullable = aInit.mBody.Value(); if (!bodyInitNullable.IsNull()) { - const OwningArrayBufferOrArrayBufferViewOrBlobOrFormDataOrUSVStringOrURLSearchParams& bodyInit = - bodyInitNullable.Value(); + const fetch::OwningBodyInit& bodyInit = bodyInitNullable.Value(); nsCOMPtr stream; nsAutoCString contentTypeWithCharset; uint64_t contentLengthUnused; diff --git a/dom/fetch/Response.cpp b/dom/fetch/Response.cpp index c69bffba53b5..628d9d0c0b8a 100644 --- a/dom/fetch/Response.cpp +++ b/dom/fetch/Response.cpp @@ -104,7 +104,7 @@ Response::Redirect(const GlobalObject& aGlobal, const nsAString& aUrl, return nullptr; } - Optional body; + Optional body; ResponseInit init; init.mStatus = aStatus; RefPtr r = Response::Constructor(aGlobal, body, init, aRv); @@ -125,7 +125,7 @@ Response::Redirect(const GlobalObject& aGlobal, const nsAString& aUrl, /*static*/ already_AddRefed Response::Constructor(const GlobalObject& aGlobal, - const Optional& aBody, + const Optional& aBody, const ResponseInit& aInit, ErrorResult& aRv) { nsCOMPtr global = do_QueryInterface(aGlobal.GetAsSupports()); diff --git a/dom/fetch/Response.h b/dom/fetch/Response.h index 64b3c5f45194..67e03d65b7cc 100644 --- a/dom/fetch/Response.h +++ b/dom/fetch/Response.h @@ -114,7 +114,7 @@ public: static already_AddRefed Constructor(const GlobalObject& aGlobal, - const Optional& aBody, + const Optional& aBody, const ResponseInit& aInit, ErrorResult& rv); nsIGlobalObject* GetParentObject() const diff --git a/dom/webidl/Blob.webidl b/dom/webidl/Blob.webidl index 4df66630db42..d6a62dfef549 100644 --- a/dom/webidl/Blob.webidl +++ b/dom/webidl/Blob.webidl @@ -4,13 +4,13 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. * * The origin of this IDL file is - * http://dev.w3.org/2006/webapi/FileAPI/#blob + * https://w3c.github.io/FileAPI/#blob * * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C * liability, trademark and document use rules apply. */ -typedef (ArrayBuffer or ArrayBufferView or Blob or USVString) BlobPart; +typedef (BufferSource or Blob or USVString) BlobPart; [Constructor(optional sequence blobParts, optional BlobPropertyBag options), diff --git a/dom/webidl/Fetch.webidl b/dom/webidl/Fetch.webidl index 4b2a0af7d009..137cbde35441 100644 --- a/dom/webidl/Fetch.webidl +++ b/dom/webidl/Fetch.webidl @@ -8,7 +8,7 @@ */ typedef object JSON; -typedef (ArrayBuffer or ArrayBufferView or Blob or FormData or USVString or URLSearchParams) BodyInit; +typedef (Blob or BufferSource or FormData or URLSearchParams or USVString) BodyInit; [NoInterfaceObject, Exposed=(Window,Worker)] interface Body { diff --git a/dom/webidl/MediaKeys.webidl b/dom/webidl/MediaKeys.webidl index 470f0b68be63..bb80602bbd3b 100644 --- a/dom/webidl/MediaKeys.webidl +++ b/dom/webidl/MediaKeys.webidl @@ -25,5 +25,5 @@ interface MediaKeys { MediaKeySession createSession(optional MediaKeySessionType sessionType = "temporary"); [NewObject] - Promise setServerCertificate((ArrayBufferView or ArrayBuffer) serverCertificate); + Promise setServerCertificate(BufferSource serverCertificate); }; From 3fdb9b2063a3952185a8c7b0efdc33af59942d92 Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 10:40:46 +0100 Subject: [PATCH 094/112] Bug 1337765 - Fix a compilation issue in FileCreatorHelper, r=qdot, f=jbeich --- dom/file/FileCreatorHelper.cpp | 4 ++++ dom/file/FileCreatorHelper.h | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dom/file/FileCreatorHelper.cpp b/dom/file/FileCreatorHelper.cpp index 918fdf72d709..00094c892d5d 100644 --- a/dom/file/FileCreatorHelper.cpp +++ b/dom/file/FileCreatorHelper.cpp @@ -99,6 +99,10 @@ FileCreatorHelper::FileCreatorHelper(Promise* aPromise, MOZ_ASSERT(aPromise); } +FileCreatorHelper::~FileCreatorHelper() +{ +} + void FileCreatorHelper::SendRequest(nsIFile* aFile, const ChromeFilePropertyBag& aBag, diff --git a/dom/file/FileCreatorHelper.h b/dom/file/FileCreatorHelper.h index 4c64ce83ecc3..12cd7e72800a 100644 --- a/dom/file/FileCreatorHelper.h +++ b/dom/file/FileCreatorHelper.h @@ -72,7 +72,7 @@ private: BlobImpl** aBlobImpl); FileCreatorHelper(Promise* aPromise, nsPIDOMWindowInner* aWindow); - ~FileCreatorHelper() = default; + ~FileCreatorHelper(); void SendRequest(nsIFile* aFile, const ChromeFilePropertyBag& aBag, From 5333794e038482d856dd24c2f6322fc2bcc17043 Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 10:41:39 +0100 Subject: [PATCH 095/112] Bug 1337787 - Get rid of old code in XHRWorker, r=qdot --- dom/xhr/XMLHttpRequestWorker.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/dom/xhr/XMLHttpRequestWorker.cpp b/dom/xhr/XMLHttpRequestWorker.cpp index 87bc29a17f49..d7ed3a1691bc 100644 --- a/dom/xhr/XMLHttpRequestWorker.cpp +++ b/dom/xhr/XMLHttpRequestWorker.cpp @@ -1315,12 +1315,6 @@ EventRunnable::WorkerRun(JSContext* aCx, WorkerPrivate* aWorkerPrivate) return true; } - JS::Rooted type(aCx, - JS_NewUCStringCopyN(aCx, mType.get(), mType.Length())); - if (!type) { - return false; - } - XMLHttpRequestEventTarget* target; if (mUploadEvent) { target = xhr->GetUploadObjectNoCreate(); From 6bce17f8b4bf7897d3da98138b48826e3d6be8bc Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 10:47:43 +0100 Subject: [PATCH 096/112] Bug 1337746 - XHR should cancel the nsIChannel with an error code and not with NS_OK, r=smaug --- dom/xhr/XMLHttpRequestMainThread.cpp | 84 ++++++++++++++++------------ 1 file changed, 49 insertions(+), 35 deletions(-) diff --git a/dom/xhr/XMLHttpRequestMainThread.cpp b/dom/xhr/XMLHttpRequestMainThread.cpp index 9c790e16d5d7..3622b68da60f 100644 --- a/dom/xhr/XMLHttpRequestMainThread.cpp +++ b/dom/xhr/XMLHttpRequestMainThread.cpp @@ -1858,7 +1858,11 @@ XMLHttpRequestMainThread::OnDataAvailable(nsIRequest *request, NS_ENSURE_SUCCESS(rv, rv); ChangeState(State::loading); - return request->Cancel(NS_OK); + + // Cancel() must be called with an error. We use + // NS_ERROR_FILE_ALREADY_EXISTS to know that we've aborted the operation + // just because we can retrieve the File from the channel directly. + return request->Cancel(NS_ERROR_FILE_ALREADY_EXISTS); } } @@ -2185,7 +2189,10 @@ XMLHttpRequestMainThread::OnStopRequest(nsIRequest *request, nsISupports *ctxt, bool waitingForBlobCreation = false; - if (NS_SUCCEEDED(status) && + // If we have this error, we have to deal with a file: URL + responseType = + // blob. We have this error because we canceled the channel. The status will + // be set to NS_OK. + if (status == NS_ERROR_FILE_ALREADY_EXISTS && (mResponseType == XMLHttpRequestResponseType::Blob || mResponseType == XMLHttpRequestResponseType::Moz_blob)) { nsCOMPtr file; @@ -2215,41 +2222,48 @@ XMLHttpRequestMainThread::OnStopRequest(nsIRequest *request, nsISupports *ctxt, FileCreationHandler::Create(promise, this); waitingForBlobCreation = true; + status = NS_OK; + + NS_ASSERTION(mResponseBody.IsEmpty(), "mResponseBody should be empty"); + NS_ASSERTION(mResponseText.IsEmpty(), "mResponseText should be empty"); + } + } + + if (NS_SUCCEEDED(status) && + (mResponseType == XMLHttpRequestResponseType::Blob || + mResponseType == XMLHttpRequestResponseType::Moz_blob) && + !waitingForBlobCreation) { + // Smaller files may be written in cache map instead of separate files. + // Also, no-store response cannot be written in persistent cache. + nsAutoCString contentType; + mChannel->GetContentType(contentType); + + if (mResponseType == XMLHttpRequestResponseType::Blob) { + // mBlobStorage can be null if the channel is non-file non-cacheable + // and if the response length is zero. + MaybeCreateBlobStorage(); + mBlobStorage->GetBlobWhenReady(GetOwner(), contentType, this); + waitingForBlobCreation = true; } else { - // No local file. - - // Smaller files may be written in cache map instead of separate files. - // Also, no-store response cannot be written in persistent cache. - nsAutoCString contentType; - mChannel->GetContentType(contentType); - - if (mResponseType == XMLHttpRequestResponseType::Blob) { - // mBlobStorage can be null if the channel is non-file non-cacheable - // and if the response length is zero. - MaybeCreateBlobStorage(); - mBlobStorage->GetBlobWhenReady(GetOwner(), contentType, this); - waitingForBlobCreation = true; - } else { - // mBlobSet can be null if the channel is non-file non-cacheable - // and if the response length is zero. - if (!mBlobSet) { - mBlobSet = new BlobSet(); - } - - ErrorResult error; - nsTArray> subImpls(mBlobSet->GetBlobImpls()); - RefPtr blobImpl = - MultipartBlobImpl::Create(Move(subImpls), - NS_ConvertASCIItoUTF16(contentType), - error); - mBlobSet = nullptr; - - if (NS_WARN_IF(error.Failed())) { - return error.StealNSResult(); - } - - mResponseBlob = Blob::Create(GetOwner(), blobImpl); + // mBlobSet can be null if the channel is non-file non-cacheable + // and if the response length is zero. + if (!mBlobSet) { + mBlobSet = new BlobSet(); } + + ErrorResult error; + nsTArray> subImpls(mBlobSet->GetBlobImpls()); + RefPtr blobImpl = + MultipartBlobImpl::Create(Move(subImpls), + NS_ConvertASCIItoUTF16(contentType), + error); + mBlobSet = nullptr; + + if (NS_WARN_IF(error.Failed())) { + return error.StealNSResult(); + } + + mResponseBlob = Blob::Create(GetOwner(), blobImpl); } NS_ASSERTION(mResponseBody.IsEmpty(), "mResponseBody should be empty"); From b9332b43d8176cdd780de1448c8ef8c6d7885d4c Mon Sep 17 00:00:00 2001 From: Andrea Marchesini Date: Thu, 9 Feb 2017 10:57:15 +0100 Subject: [PATCH 097/112] Bug 1337722 - Use BufferSource in webIDL - part 2, r=me CLOSED TREE --- dom/file/File.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dom/file/File.h b/dom/file/File.h index 4343023a164d..4dc448eb75ae 100644 --- a/dom/file/File.h +++ b/dom/file/File.h @@ -42,7 +42,7 @@ struct ChromeFilePropertyBag; struct FilePropertyBag; class BlobImpl; class File; -class OwningArrayBufferOrArrayBufferViewOrBlobOrUSVString; +class OwningArrayBufferViewOrArrayBufferOrBlobOrUSVString; class Promise; class Blob : public nsIDOMBlob @@ -59,7 +59,7 @@ public: NS_DECL_CYCLE_COLLECTING_ISUPPORTS NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_AMBIGUOUS(Blob, nsIDOMBlob) - typedef OwningArrayBufferOrArrayBufferViewOrBlobOrUSVString BlobPart; + typedef OwningArrayBufferViewOrArrayBufferOrBlobOrUSVString BlobPart; // This creates a Blob or a File based on the type of BlobImpl. static Blob* From 58b3c3d75f33eee799e2d09bb09611d9e7f15f06 Mon Sep 17 00:00:00 2001 From: Hannes Verschore Date: Thu, 9 Feb 2017 11:33:05 +0100 Subject: [PATCH 098/112] Bug 1334194: Follow-up fixes to tracelogger thread safety, r=bhackett --- js/src/vm/TraceLogging.cpp | 17 +++++++++-------- js/src/vm/TraceLogging.h | 17 +++++++++++++++-- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/js/src/vm/TraceLogging.cpp b/js/src/vm/TraceLogging.cpp index a009cf336fd8..d91f6e510d2c 100644 --- a/js/src/vm/TraceLogging.cpp +++ b/js/src/vm/TraceLogging.cpp @@ -417,6 +417,8 @@ TraceLoggerThreadState::getOrCreateEventPayload(const char* text) if (!pointerMap.add(p, text, payload)) return nullptr; + payload->incPointerCount(); + return payload; } @@ -484,6 +486,8 @@ TraceLoggerThreadState::getOrCreateEventPayload(TraceLoggerTextId type, const ch if (ptr) { if (!pointerMap.add(p, ptr, payload)) return nullptr; + + payload->incPointerCount(); } return payload; @@ -511,21 +515,18 @@ TraceLoggerThreadState::purgeUnusedPayloads() // zero (but not the other way around; see TraceLoggerEventPayload::use()). LockGuard guard(lock); - // Remove the item in the pointerMap for which the payloads - // have no uses anymore + // Remove all the pointers to payloads that have no uses anymore + // and decrease the pointer count of that payload. for (PointerHashMap::Enum e(pointerMap); !e.empty(); e.popFront()) { if (e.front().value()->uses() == 0) { - TextIdHashMap::Ptr p = textIdPayloads.lookup(e.front().value()->textId()); - MOZ_ASSERT(p); - textIdPayloads.remove(p); - js_delete(e.front().value()); + e.front().value()->decPointerCount(); e.removeFront(); } } // Free all other payloads that have no uses anymore. for (TextIdHashMap::Enum e(textIdPayloads); !e.empty(); e.popFront()) { - if (e.front().value()->uses() == 0) { + if (e.front().value()->uses() == 0 && e.front().value()->pointerCount() == 0) { js_delete(e.front().value()); e.removeFront(); } @@ -568,7 +569,7 @@ TraceLoggerThread::startEvent(uint32_t id) #endif if (graph.get()) { - for (uint32_t otherId = graph->nextTextId(); otherId <= id; id++) + for (uint32_t otherId = graph->nextTextId(); otherId <= id; otherId++) graph->addTextId(otherId, maybeEventText(id)); } diff --git a/js/src/vm/TraceLogging.h b/js/src/vm/TraceLogging.h index 4a63f0856043..e86cff4df6cd 100644 --- a/js/src/vm/TraceLogging.h +++ b/js/src/vm/TraceLogging.h @@ -120,16 +120,18 @@ bool CurrentThreadOwnsTraceLoggerThreadStateLock(); /** * An internal class holding the string information to report, together with an - * unique id and a useCount. Whenever this useCount reaches 0, this event + * unique id, a useCount and a pointerCount. Whenever this useCount reaches 0, this event * cannot get started/stopped anymore. Consumers may still request the * string information through maybeEventText below, but this may not succeed: * when the use count becomes zero, a payload may be deleted by any thread - * holding the TraceLoggerThreadState lock. + * holding the TraceLoggerThreadState lock, after that the pointers have been + * cleared out of the pointerMap. That means pointerCount needs to be zero. */ class TraceLoggerEventPayload { uint32_t textId_; UniqueChars string_; mozilla::Atomic uses_; + mozilla::Atomic pointerCount_; public: TraceLoggerEventPayload(uint32_t textId, char* string) @@ -151,6 +153,9 @@ class TraceLoggerEventPayload { uint32_t uses() { return uses_; } + uint32_t pointerCount() { + return pointerCount_; + } // Payloads may have their use count change at any time, *except* the count // can only go from zero to non-zero while the thread state lock is held. @@ -163,6 +168,14 @@ class TraceLoggerEventPayload { void release() { uses_--; } + void incPointerCount() { + MOZ_ASSERT(CurrentThreadOwnsTraceLoggerThreadStateLock()); + pointerCount_++; + } + void decPointerCount() { + MOZ_ASSERT(CurrentThreadOwnsTraceLoggerThreadStateLock()); + pointerCount_--; + } }; // Per thread trace logger state. From 09b0858370985de1b5fb1319c7a9cfe6882f54af Mon Sep 17 00:00:00 2001 From: Hannes Verschore Date: Thu, 9 Feb 2017 11:33:05 +0100 Subject: [PATCH 099/112] Bug 1334219: Fix typo in IonTrackedOptimizationsTypeInfo, r=shu --- js/src/jit/OptimizationTracking.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/src/jit/OptimizationTracking.cpp b/js/src/jit/OptimizationTracking.cpp index 013e39dda044..655e82d3e996 100644 --- a/js/src/jit/OptimizationTracking.cpp +++ b/js/src/jit/OptimizationTracking.cpp @@ -1244,7 +1244,7 @@ IonTrackedOptimizationsTypeInfo::ForEachOpAdapter::readType(const IonTrackedType const char* filename; Maybe lineno; InterpretedFunctionFilenameAndLineNumber(fun, &filename, &lineno); - op_.readType(tracked.constructor ? "constructor" : "function", + op_.readType(tracked.hasConstructor() ? "constructor" : "function", name, filename, lineno); return; } From f717145420c038cdd245fc85f7d684aae4a66f27 Mon Sep 17 00:00:00 2001 From: Hannes Verschore Date: Thu, 9 Feb 2017 11:33:05 +0100 Subject: [PATCH 100/112] Bug 1330532: Don't enable optimization tracking by default, r=shu --- js/src/jit/JitOptions.cpp | 3 +++ js/src/jit/JitOptions.h | 1 + js/src/jit/JitSpewer.cpp | 4 +++- js/src/jit/MIRGenerator.h | 3 ++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/js/src/jit/JitOptions.cpp b/js/src/jit/JitOptions.cpp index 82fd77b0be1d..e04975978475 100644 --- a/js/src/jit/JitOptions.cpp +++ b/js/src/jit/JitOptions.cpp @@ -105,6 +105,9 @@ DefaultJitOptions::DefaultJitOptions() // Toggles whether Loop Unrolling is globally disabled. SET_DEFAULT(disableLoopUnrolling, true); + // Toggles wheter optimization tracking is globally disabled. + SET_DEFAULT(disableOptimizationTracking, true); + // Toggle whether Profile Guided Optimization is globally disabled. SET_DEFAULT(disablePgo, false); diff --git a/js/src/jit/JitOptions.h b/js/src/jit/JitOptions.h index 6c226422b459..37bf120953e6 100644 --- a/js/src/jit/JitOptions.h +++ b/js/src/jit/JitOptions.h @@ -57,6 +57,7 @@ struct DefaultJitOptions bool disableInlining; bool disableLicm; bool disableLoopUnrolling; + bool disableOptimizationTracking; bool disablePgo; bool disableInstructionReordering; bool disableRangeAnalysis; diff --git a/js/src/jit/JitSpewer.cpp b/js/src/jit/JitSpewer.cpp index 43cac10ad215..f7f4426511ad 100644 --- a/js/src/jit/JitSpewer.cpp +++ b/js/src/jit/JitSpewer.cpp @@ -517,8 +517,10 @@ jit::CheckLogging() EnableIonDebugSyncLogging(); if (ContainsFlag(env, "profiling")) EnableChannel(JitSpew_Profiling); - if (ContainsFlag(env, "trackopts")) + if (ContainsFlag(env, "trackopts")) { + JitOptions.disableOptimizationTracking = false; EnableChannel(JitSpew_OptimizationTracking); + } if (ContainsFlag(env, "trackopts-ext")) EnableChannel(JitSpew_OptimizationTrackingExtended); if (ContainsFlag(env, "dump-mir-expr")) diff --git a/js/src/jit/MIRGenerator.h b/js/src/jit/MIRGenerator.h index 14fc3c5f0c21..461cfe702e58 100644 --- a/js/src/jit/MIRGenerator.h +++ b/js/src/jit/MIRGenerator.h @@ -102,7 +102,8 @@ class MIRGenerator } bool isOptimizationTrackingEnabled() { - return isProfilerInstrumentationEnabled() && !info().isAnalysis(); + return isProfilerInstrumentationEnabled() && !info().isAnalysis() && + !JitOptions.disableOptimizationTracking; } bool safeForMinorGC() const { From 050810a922f34330ae68385f12c1021e25a3fc26 Mon Sep 17 00:00:00 2001 From: Hannes Verschore Date: Thu, 9 Feb 2017 11:33:05 +0100 Subject: [PATCH 101/112] Bug 1338071: IonMonkey - Enable spewing graph mid-compilation, r=jandem --- js/src/jit/C1Spewer.cpp | 8 +++++--- js/src/jit/JSONSpewer.cpp | 20 ++++++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/js/src/jit/C1Spewer.cpp b/js/src/jit/C1Spewer.cpp index f334345ba4de..421d169a8ece 100644 --- a/js/src/jit/C1Spewer.cpp +++ b/js/src/jit/C1Spewer.cpp @@ -137,9 +137,11 @@ C1Spewer::spewPass(GenericPrinter& out, MBasicBlock* block) out.printf("\n"); out.printf(" successors"); - for (uint32_t i = 0; i < block->numSuccessors(); i++) { - MBasicBlock* successor = block->getSuccessor(i); - out.printf(" \"B%d\"", successor->id()); + if (block->hasLastIns()) { + for (uint32_t i = 0; i < block->numSuccessors(); i++) { + MBasicBlock* successor = block->getSuccessor(i); + out.printf(" \"B%d\"", successor->id()); + } } out.printf("\n"); diff --git a/js/src/jit/JSONSpewer.cpp b/js/src/jit/JSONSpewer.cpp index e9d3e8bb8876..96bf263c8f66 100644 --- a/js/src/jit/JSONSpewer.cpp +++ b/js/src/jit/JSONSpewer.cpp @@ -144,12 +144,14 @@ JSONSpewer::spewMIR(MIRGraph* mir) integerProperty("count", block->getHitCount()); beginListProperty("attributes"); - if (block->isLoopBackedge()) - stringValue("backedge"); - if (block->isLoopHeader()) - stringValue("loopheader"); - if (block->isSplitEdge()) - stringValue("splitedge"); + if (block->hasLastIns()) { + if (block->isLoopBackedge()) + stringValue("backedge"); + if (block->isLoopHeader()) + stringValue("loopheader"); + if (block->isSplitEdge()) + stringValue("splitedge"); + } endList(); beginListProperty("predecessors"); @@ -158,8 +160,10 @@ JSONSpewer::spewMIR(MIRGraph* mir) endList(); beginListProperty("successors"); - for (size_t i = 0; i < block->numSuccessors(); i++) - integerValue(block->getSuccessor(i)->id()); + if (block->hasLastIns()) { + for (size_t i = 0; i < block->numSuccessors(); i++) + integerValue(block->getSuccessor(i)->id()); + } endList(); beginListProperty("instructions"); From ad42fa5bcb003dace32e06f6d4f8b103323ec420 Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Thu, 9 Feb 2017 11:33:14 +0100 Subject: [PATCH 102/112] Backed out changeset bdea29a8b0f3 (bug 1332956) --HG-- extra : rebase_source : 6f70d61486f1d583ab0632476b552ef002ad1b89 --- dom/base/nsObjectLoadingContent.cpp | 57 +++++-------------- dom/base/nsObjectLoadingContent.h | 15 ----- dom/html/HTMLObjectElement.cpp | 15 ++--- dom/html/HTMLObjectElement.h | 6 +- dom/html/HTMLSharedObjectElement.cpp | 30 +++++++++- dom/html/HTMLSharedObjectElement.h | 15 +++++ .../general/resource_timing_cross_origin.html | 20 +++---- testing/web-platform/meta/MANIFEST.json | 22 +------ .../object-ignored-in-media-element.html | 22 ------- .../object-in-object-fallback-2.html | 56 ------------------ 10 files changed, 77 insertions(+), 181 deletions(-) delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html diff --git a/dom/base/nsObjectLoadingContent.cpp b/dom/base/nsObjectLoadingContent.cpp index 2458fb6e3b6b..05770d8ce4ef 100644 --- a/dom/base/nsObjectLoadingContent.cpp +++ b/dom/base/nsObjectLoadingContent.cpp @@ -88,7 +88,6 @@ #include "mozilla/Telemetry.h" #include "mozilla/dom/HTMLObjectElementBinding.h" #include "mozilla/dom/HTMLSharedObjectElement.h" -#include "mozilla/dom/HTMLObjectElement.h" #include "nsChannelClassifier.h" #ifdef XP_WIN @@ -98,6 +97,13 @@ #endif #endif // XP_WIN +#ifdef XP_MACOSX +// HandlePluginCrashed() and HandlePluginInstantiated() needed from here to +// fix bug 1147521. Should later be replaced by proper interface methods, +// maybe on nsIObjectLoadingContext. +#include "mozilla/dom/HTMLObjectElement.h" +#endif + static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); static const char *kPrefJavaMIME = "plugin.java.mime"; @@ -3011,7 +3017,7 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { // Fixup mFallbackType // nsCOMPtr thisContent = - do_QueryInterface(static_cast(this)); + do_QueryInterface(static_cast(this)); NS_ASSERTION(thisContent, "must be a content"); if (!thisContent->IsHTMLElement() || mContentType.IsEmpty()) { @@ -3024,10 +3030,8 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { // child embeds as we find them in the upcoming loop. mType = eType_Null; - bool thisIsObject = thisContent->IsHTMLElement(nsGkAtoms::object); - - // Do a depth-first traverse of node tree with the current element as root, - // looking for or elements that might now need to load. + // Do a breadth-first traverse of node tree with the current element as root, + // looking for the first embed we can find. nsTArray childNodes; if ((thisContent->IsHTMLElement(nsGkAtoms::object) || thisContent->IsHTMLElement(nsGkAtoms::applet)) && @@ -3043,11 +3047,10 @@ nsObjectLoadingContent::LoadFallback(FallbackType aType, bool aNotify) { nsStyleUtil::IsSignificantChild(child, true, false)) { aType = eFallbackAlternate; } - if (thisIsObject) { - if (child->IsHTMLElement(nsGkAtoms::embed)) { - HTMLSharedObjectElement* embed = static_cast(child); - embed->StartObjectLoad(true, true); - } else if (auto object = HTMLObjectElement::FromContent(child)) { + if (child->IsHTMLElement(nsGkAtoms::embed) && + thisContent->IsHTMLElement(nsGkAtoms::object)) { + HTMLSharedObjectElement* object = static_cast(child); + if (object) { object->StartObjectLoad(true, true); } } @@ -3813,38 +3816,6 @@ nsObjectLoadingContent::MaybeFireErrorEvent() } } -bool -nsObjectLoadingContent::BlockEmbedOrObjectContentLoading() -{ - nsCOMPtr thisContent = - do_QueryInterface(static_cast(this)); - if (!thisContent->IsHTMLElement(nsGkAtoms::embed) && - !thisContent->IsHTMLElement(nsGkAtoms::object)) { - // Doesn't apply to other elements (i.e. ) - return false; - } - - // Traverse up the node tree to see if we have any ancestors that may block us - // from loading - for (nsIContent* parent = thisContent->GetParent(); - parent; - parent = parent->GetParent()) { - if (parent->IsAnyOfHTMLElements(nsGkAtoms::video, nsGkAtoms::audio)) { - return true; - } - // If we have an ancestor that is an object with a source, it'll have an - // associated displayed type. If that type is not null, don't load content - // for the embed. - if (HTMLObjectElement* object = HTMLObjectElement::FromContent(parent)) { - uint32_t type = object->DisplayedType(); - if (type != eType_Null) { - return true; - } - } - } - return false; -} - // SetupProtoChainRunner implementation nsObjectLoadingContent::SetupProtoChainRunner::SetupProtoChainRunner( nsObjectLoadingContent* aContent) diff --git a/dom/base/nsObjectLoadingContent.h b/dom/base/nsObjectLoadingContent.h index 92d880d99b75..13b7cc3f893f 100644 --- a/dom/base/nsObjectLoadingContent.h +++ b/dom/base/nsObjectLoadingContent.h @@ -334,21 +334,6 @@ class nsObjectLoadingContent : public nsImageLoadingContent */ virtual nsContentPolicyType GetContentPolicyType() const = 0; - /** - * Decides whether we should load / node content. - * - * If this is an or node there are cases in which we should - * not try to load the content: - * - * - If the node is the child of a media element - * - If the node is the child of an node that already has - * content being loaded. - * - * In these cases, this function will return false, which will cause - * us to skip calling LoadObject. - */ - bool BlockEmbedOrObjectContentLoading(); - private: // Object parameter changes returned by UpdateObjectParameters diff --git a/dom/html/HTMLObjectElement.cpp b/dom/html/HTMLObjectElement.cpp index 0c6127f00c1b..2c69070d1357 100644 --- a/dom/html/HTMLObjectElement.cpp +++ b/dom/html/HTMLObjectElement.cpp @@ -79,7 +79,7 @@ HTMLObjectElement::DoneAddingChildren(bool aHaveNotified) // If we're already in a document, we need to trigger the load // Otherwise, BindToTree takes care of that. if (IsInComposedDoc()) { - StartObjectLoad(aHaveNotified, false); + StartObjectLoad(aHaveNotified); } } @@ -310,8 +310,7 @@ HTMLObjectElement::SetAttr(int32_t aNameSpaceID, nsIAtom *aName, // a document, just in case that the caller wants to set additional // attributes before inserting the node into the document. if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && - aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::data && - !BlockEmbedOrObjectContentLoading()) { + aNameSpaceID == kNameSpaceID_None && aName == nsGkAtoms::data) { return LoadObject(aNotify, true); } @@ -328,8 +327,7 @@ HTMLObjectElement::UnsetAttr(int32_t aNameSpaceID, nsIAtom* aAttribute, // See comment in SetAttr if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && - aNameSpaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::data && - !BlockEmbedOrObjectContentLoading()) { + aNameSpaceID == kNameSpaceID_None && aAttribute == nsGkAtoms::data) { return LoadObject(aNotify, true); } @@ -537,16 +535,15 @@ HTMLObjectElement::GetAttributeMappingFunction() const } void -HTMLObjectElement::StartObjectLoad(bool aNotify, bool aForce) +HTMLObjectElement::StartObjectLoad(bool aNotify) { // BindToTree can call us asynchronously, and we may be removed from the tree // in the interim - if (!IsInComposedDoc() || !OwnerDoc()->IsActive() || - BlockEmbedOrObjectContentLoading()) { + if (!IsInComposedDoc() || !OwnerDoc()->IsActive()) { return; } - LoadObject(aNotify, aForce); + LoadObject(aNotify); SetIsNetworkCreated(false); } diff --git a/dom/html/HTMLObjectElement.h b/dom/html/HTMLObjectElement.h index 15a43ad0c81b..4041b78a3145 100644 --- a/dom/html/HTMLObjectElement.h +++ b/dom/html/HTMLObjectElement.h @@ -98,7 +98,7 @@ public: nsresult CopyInnerTo(Element* aDest); - void StartObjectLoad() { StartObjectLoad(true, false); } + void StartObjectLoad() { StartObjectLoad(true); } NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(HTMLObjectElement, nsGenericHTMLFormElement) @@ -247,12 +247,12 @@ public: return GetContentDocument(aSubjectPrincipal); } +private: /** * Calls LoadObject with the correct arguments to start the plugin load. */ - void StartObjectLoad(bool aNotify, bool aForceLoad); + void StartObjectLoad(bool aNotify); -private: /** * Returns if the element is currently focusable regardless of it's tabindex * value. This is used to know the default tabindex value. diff --git a/dom/html/HTMLSharedObjectElement.cpp b/dom/html/HTMLSharedObjectElement.cpp index b85cc0da1c06..889fd5aef36f 100644 --- a/dom/html/HTMLSharedObjectElement.cpp +++ b/dom/html/HTMLSharedObjectElement.cpp @@ -180,7 +180,7 @@ HTMLSharedObjectElement::SetAttr(int32_t aNameSpaceID, nsIAtom *aName, // attributes before inserting the node into the document. if (aNotify && IsInComposedDoc() && mIsDoneAddingChildren && aNameSpaceID == kNameSpaceID_None && aName == URIAttrName() - && !BlockEmbedOrObjectContentLoading()) { + && !BlockEmbedContentLoading()) { return LoadObject(aNotify, true); } @@ -313,7 +313,7 @@ HTMLSharedObjectElement::StartObjectLoad(bool aNotify, bool aForceLoad) // BindToTree can call us asynchronously, and we may be removed from the tree // in the interim if (!IsInComposedDoc() || !OwnerDoc()->IsActive() || - BlockEmbedOrObjectContentLoading()) { + BlockEmbedContentLoading()) { return; } @@ -389,5 +389,31 @@ HTMLSharedObjectElement::GetContentPolicyType() const } } +bool +HTMLSharedObjectElement::BlockEmbedContentLoading() +{ + // Only check on embed elements + if (!IsHTMLElement(nsGkAtoms::embed)) { + return false; + } + // Traverse up the node tree to see if we have any ancestors that may block us + // from loading + for (nsIContent* parent = GetParent(); parent; parent = parent->GetParent()) { + if (parent->IsAnyOfHTMLElements(nsGkAtoms::video, nsGkAtoms::audio)) { + return true; + } + // If we have an ancestor that is an object with a source, it'll have an + // associated displayed type. If that type is not null, don't load content + // for the embed. + if (HTMLObjectElement* object = HTMLObjectElement::FromContent(parent)) { + uint32_t type = object->DisplayedType(); + if (type != eType_Null) { + return true; + } + } + } + return false; +} + } // namespace dom } // namespace mozilla diff --git a/dom/html/HTMLSharedObjectElement.h b/dom/html/HTMLSharedObjectElement.h index bcfebbeeda79..c70ba8ebd009 100644 --- a/dom/html/HTMLSharedObjectElement.h +++ b/dom/html/HTMLSharedObjectElement.h @@ -220,6 +220,21 @@ private: static void MapAttributesIntoRule(const nsMappedAttributes* aAttributes, nsRuleData* aData); + + /** + * Decides whether we should load embed node content. + * + * If this is an embed node there are cases in which we should not try to load + * the content: + * + * - If the embed node is the child of a media element + * - If the embed node is the child of an object node that already has + * content being loaded. + * + * In these cases, this function will return false, which will cause + * us to skip calling LoadObject. + */ + bool BlockEmbedContentLoading(); }; } // namespace dom diff --git a/dom/tests/mochitest/general/resource_timing_cross_origin.html b/dom/tests/mochitest/general/resource_timing_cross_origin.html index 6a82885a74c4..c5b906280744 100644 --- a/dom/tests/mochitest/general/resource_timing_cross_origin.html +++ b/dom/tests/mochitest/general/resource_timing_cross_origin.html @@ -170,16 +170,16 @@ function finishTests() {

- - - - - - - - - - + + + + + + + + + + diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index b80f9eb12348..d67063c5c539 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -92467,18 +92467,6 @@ {} ] ], - "html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html": [ - [ - "/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html", - {} - ] - ], - "html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html": [ - [ - "/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html", - {} - ] - ], "html/semantics/embedded-content/the-object-element/usemap-casing.html": [ [ "/html/semantics/embedded-content/the-object-element/usemap-casing.html", @@ -174561,7 +174549,7 @@ "support" ], "html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html": [ - "cb57cbe52e4f586006461b8eae6bc233b5ed5ad5", + "94a08a7a5b5ec5c26f1974d5e5d8b4381a60baf5", "testharness" ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ @@ -174884,14 +174872,6 @@ "bf051d12a045698b2f9c3870ad4236f65bb85f51", "testharness" ], - "html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html": [ - "62a6c079bc00ae6ebeca363fd42d8701c4791222", - "testharness" - ], - "html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html": [ - "a5bb885111ac7ea02241957ee7233491c2277516", - "testharness" - ], "html/semantics/embedded-content/the-object-element/test0.html": [ "04319dea2f1e0b00e8db1703f2072ec22f1a82ad", "support" diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html deleted file mode 100644 index 2bf84c2946f1..000000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-ignored-in-media-element.html +++ /dev/null @@ -1,22 +0,0 @@ - - -HTML Test: The embed element represents a document - - - - - - - - diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html b/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html deleted file mode 100644 index 47cf8016935d..000000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-object-element/object-in-object-fallback-2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - - - - - - - -
- - -
-
- - -
- - From 09c7ea3a2321ab832363e04af6d3968f65310324 Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Thu, 9 Feb 2017 11:33:16 +0100 Subject: [PATCH 103/112] Backed out changeset 9cb85309542e (bug 1332956) --HG-- extra : rebase_source : 30e02ae40a5eba7713ed8aaeee8e3b593335c728 --- .../embed-ignored-in-media-element.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html index 941b0c0b7785..d29d520f0e52 100644 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html +++ b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-ignored-in-media-element.html @@ -5,18 +5,18 @@ From 8d609a03820026da903bf68ca4e12b93f584fc2d Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Thu, 9 Feb 2017 11:33:37 +0100 Subject: [PATCH 104/112] Backed out changeset 116291cf00b5 (bug 1332956) for causing merge conflicts with mozilla-central --HG-- rename : testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html => dom/base/test/test_bug1263696.html extra : rebase_source : febe534a5dc591efb6ac3fdd1fc7a0bb5e082b4f --- dom/base/test/file_bug1263696_frame_fail.html | 12 ++++ dom/base/test/file_bug1263696_frame_pass.html | 13 +++++ dom/base/test/mochitest.ini | 3 + dom/base/test/test_bug1263696.html | 53 ++++++++++++++++++ testing/web-platform/meta/MANIFEST.json | 28 ---------- .../resources/should-load.html | 3 - .../resources/should-not-load.html | 5 -- .../embed-in-object-fallback-2.html | 56 ------------------- 8 files changed, 81 insertions(+), 92 deletions(-) create mode 100644 dom/base/test/file_bug1263696_frame_fail.html create mode 100644 dom/base/test/file_bug1263696_frame_pass.html create mode 100644 dom/base/test/test_bug1263696.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html delete mode 100644 testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html diff --git a/dom/base/test/file_bug1263696_frame_fail.html b/dom/base/test/file_bug1263696_frame_fail.html new file mode 100644 index 000000000000..b45561aa6f72 --- /dev/null +++ b/dom/base/test/file_bug1263696_frame_fail.html @@ -0,0 +1,12 @@ + + + + Bug 1263696 - iframe that should not be loaded + + + + + diff --git a/dom/base/test/file_bug1263696_frame_pass.html b/dom/base/test/file_bug1263696_frame_pass.html new file mode 100644 index 000000000000..7f49d6541c44 --- /dev/null +++ b/dom/base/test/file_bug1263696_frame_pass.html @@ -0,0 +1,13 @@ + + + + Bug 1263696 - iframe that should be loaded + + + + + diff --git a/dom/base/test/mochitest.ini b/dom/base/test/mochitest.ini index 368b0ae0b295..f6f548a8a6c3 100644 --- a/dom/base/test/mochitest.ini +++ b/dom/base/test/mochitest.ini @@ -125,6 +125,8 @@ support-files = file_bug902350_frame.html file_bug907892.html file_bug945152.jar + file_bug1263696_frame_pass.html + file_bug1263696_frame_fail.html file_bug1274806.html file_general_document.html file_htmlserializer_1.html @@ -585,6 +587,7 @@ skip-if = toolkit == 'android' [test_bug1238440.html] [test_bug1250148.html] [test_bug1259588.html] +[test_bug1263696.html] [test_bug1268962.html] [test_bug1274806.html] [test_bug1281963.html] diff --git a/dom/base/test/test_bug1263696.html b/dom/base/test/test_bug1263696.html new file mode 100644 index 000000000000..289a26ba4ff1 --- /dev/null +++ b/dom/base/test/test_bug1263696.html @@ -0,0 +1,53 @@ + + + + + Test Embed/Object Node Conflicts + + + + + + + + + + + + + +
+ +
+ +
+ +
+
+ + + + + + + + + + +
+ + +
+
+ + +
+ + diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json index d67063c5c539..e5269f7fc84b 100644 --- a/testing/web-platform/meta/MANIFEST.json +++ b/testing/web-platform/meta/MANIFEST.json @@ -51741,16 +51741,6 @@ {} ] ], - "html/semantics/embedded-content/resources/should-load.html": [ - [ - {} - ] - ], - "html/semantics/embedded-content/resources/should-not-load.html": [ - [ - {} - ] - ], "html/semantics/embedded-content/svg/.gitkeep": [ [ {} @@ -92201,12 +92191,6 @@ {} ] ], - "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ - [ - "/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html", - {} - ] - ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html": [ [ "/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html", @@ -173860,14 +173844,6 @@ "8840fa9072d9367f358721ed757bd3d23dd64967", "testharness" ], - "html/semantics/embedded-content/resources/should-load.html": [ - "7cc95b9b2eb8c3f2d89278d22db271b9ae42e107", - "support" - ], - "html/semantics/embedded-content/resources/should-not-load.html": [ - "a1657fc9e655ad0a30ced47a1412b6c34ba964b9", - "support" - ], "html/semantics/embedded-content/svg/.gitkeep": [ "da39a3ee5e6b4b0d3255bfef95601890afd80709", "support" @@ -174552,10 +174528,6 @@ "94a08a7a5b5ec5c26f1974d5e5d8b4381a60baf5", "testharness" ], - "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html": [ - "a7da1fefb2403084205bf1ead77b422e69dc33b6", - "testharness" - ], "html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-subdocument.html": [ "1b60c4e5c8868fe87553b78047e711d63702a673", "support" diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html deleted file mode 100644 index a9a178ce51ed..000000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-load.html +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html b/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html deleted file mode 100644 index 6281b2da5539..000000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/resources/should-not-load.html +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html b/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html deleted file mode 100644 index d904a7e1a1ca..000000000000 --- a/testing/web-platform/tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-2.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - -
- -
- -
- -
-
- - - - - - - - - - -
- - -
-
- - -
- - From f0343913a8bac64320a73137c4e92300f6272497 Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Thu, 9 Feb 2017 11:49:38 +0100 Subject: [PATCH 105/112] Backed out changeset f4c6758e15f9 (bug 1307708) on developers request --- dom/plugins/ipc/PPluginModule.ipdl | 2 +- dom/plugins/ipc/PluginModuleChild.cpp | 2 +- dom/plugins/ipc/PluginModuleParent.cpp | 6 +++--- dom/plugins/ipc/PluginModuleParent.h | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dom/plugins/ipc/PPluginModule.ipdl b/dom/plugins/ipc/PPluginModule.ipdl index 29de2048545c..369f3ecf7182 100644 --- a/dom/plugins/ipc/PPluginModule.ipdl +++ b/dom/plugins/ipc/PPluginModule.ipdl @@ -160,7 +160,7 @@ parent: async ReturnSitesWithData(nsCString[] aSites, uint64_t aCallbackId); - sync GetKeyState(int32_t aVirtKey) + intr GetKeyState(int32_t aVirtKey) returns (int16_t aState); intr NPN_SetValue_NPPVpluginRequiresAudioDeviceChanges(bool shouldRegister) diff --git a/dom/plugins/ipc/PluginModuleChild.cpp b/dom/plugins/ipc/PluginModuleChild.cpp index 87e8598a502d..ba3cf9f7c311 100644 --- a/dom/plugins/ipc/PluginModuleChild.cpp +++ b/dom/plugins/ipc/PluginModuleChild.cpp @@ -2118,7 +2118,7 @@ PMCGetKeyState(int aVirtKey) PluginModuleChild* chromeInstance = PluginModuleChild::GetChrome(); if (chromeInstance) { int16_t ret = 0; - if (chromeInstance->SendGetKeyState(aVirtKey, &ret)) { + if (chromeInstance->CallGetKeyState(aVirtKey, &ret)) { return ret; } } diff --git a/dom/plugins/ipc/PluginModuleParent.cpp b/dom/plugins/ipc/PluginModuleParent.cpp index dbf11cc1b4b1..84c1925dae0a 100644 --- a/dom/plugins/ipc/PluginModuleParent.cpp +++ b/dom/plugins/ipc/PluginModuleParent.cpp @@ -3403,19 +3403,19 @@ PluginModuleChromeParent::RecvProfile(const nsCString& aProfile) } mozilla::ipc::IPCResult -PluginModuleParent::RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet) +PluginModuleParent::AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) { return IPC_FAIL_NO_REASON(this); } mozilla::ipc::IPCResult -PluginModuleChromeParent::RecvGetKeyState(const int32_t& aVirtKey, +PluginModuleChromeParent::AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) { #if defined(XP_WIN) *aRet = ::GetKeyState(aVirtKey); return IPC_OK(); #else - return PluginModuleParent::RecvGetKeyState(aVirtKey, aRet); + return PluginModuleParent::AnswerGetKeyState(aVirtKey, aRet); #endif } diff --git a/dom/plugins/ipc/PluginModuleParent.h b/dom/plugins/ipc/PluginModuleParent.h index dc56749701c8..25e251c7452a 100644 --- a/dom/plugins/ipc/PluginModuleParent.h +++ b/dom/plugins/ipc/PluginModuleParent.h @@ -213,7 +213,7 @@ protected: virtual mozilla::ipc::IPCResult RecvProfile(const nsCString& aProfile) override { return IPC_OK(); } - virtual mozilla::ipc::IPCResult RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; + virtual mozilla::ipc::IPCResult AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; virtual mozilla::ipc::IPCResult RecvReturnClearSiteData(const NPError& aRv, const uint64_t& aCallbackId) override; @@ -507,7 +507,7 @@ class PluginModuleChromeParent RecvProfile(const nsCString& aProfile) override; virtual mozilla::ipc::IPCResult - RecvGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; + AnswerGetKeyState(const int32_t& aVirtKey, int16_t* aRet) override; private: virtual void From 7efff53231a602d5e464b39e1ae3f259a9196612 Mon Sep 17 00:00:00 2001 From: ffxbld Date: Thu, 9 Feb 2017 07:37:04 -0800 Subject: [PATCH 106/112] No bug, Automated HSTS preload list update from host bld-linux64-spot-387 - a=hsts-update --- security/manager/ssl/nsSTSPreloadList.errors | 188 +- security/manager/ssl/nsSTSPreloadList.inc | 30272 +++++++++-------- 2 files changed, 15233 insertions(+), 15227 deletions(-) diff --git a/security/manager/ssl/nsSTSPreloadList.errors b/security/manager/ssl/nsSTSPreloadList.errors index e353e7939621..302b53cd13aa 100644 --- a/security/manager/ssl/nsSTSPreloadList.errors +++ b/security/manager/ssl/nsSTSPreloadList.errors @@ -28,6 +28,7 @@ 1xcess.com: did not receive HSTS header 1years.cc: did not receive HSTS header 206rc.net: max-age too low: 2592000 +246060.ru: could not connect to host 247loan.com: max-age too low: 0 25daysof.io: could not connect to host 2600hq.com: could not connect to host @@ -42,9 +43,10 @@ 365.or.jp: did not receive HSTS header 3chit.cf: could not connect to host 3click-loan.com: could not connect to host +3sreporting.com: did not receive HSTS header 3yearloans.com: max-age too low: 0 404.sh: max-age too low: 0 -420dongstorm.com: could not connect to host +404404.info: could not connect to host 42ms.org: could not connect to host 4455software.com: did not receive HSTS header 4679.space: could not connect to host @@ -100,8 +102,6 @@ actu-medias.com: did not receive HSTS header actualite-videos.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] acuve.jp: could not connect to host ada.is: max-age too low: 2592000 -adam-kostecki.de: did not receive HSTS header -adamkostecki.de: did not receive HSTS header adams.net: max-age too low: 0 adamwk.com: did not receive HSTS header addaxpetroleum.com: could not connect to host @@ -133,8 +133,8 @@ aficotroceni.ro: did not receive HSTS header afp548.tk: could not connect to host agalaxyfarfaraway.co.uk: could not connect to host agbremen.de: did not receive HSTS header +agentseeker.ca: could not connect to host agilebits.net: could not connect to host -agrias.com.br: could not connect to host agrimap.com: did not receive HSTS header agrios.de: did not receive HSTS header agro-id.gov.ua: could not connect to host @@ -153,7 +153,6 @@ aiw-thkoeln.online: could not connect to host ajmahal.com: could not connect to host akclinics.org: did not receive HSTS header akombakom.net: did not receive HSTS header -akostecki.de: did not receive HSTS header akselimedia.fi: did not receive HSTS header akutun.cl: did not receive HSTS header al-shami.net: could not connect to host @@ -177,7 +176,7 @@ alfa24.pro: could not connect to host alittlebitcheeky.com: did not receive HSTS header alkami.com: did not receive HSTS header all-subtitles.com: did not receive HSTS header -all.tf: could not connect to host +all.tf: did not receive HSTS header alldaymonitoring.com: could not connect to host allforyou.at: could not connect to host allinnote.com: could not connect to host @@ -211,7 +210,6 @@ analytic-s.ml: could not connect to host anarchistischegroepnijmegen.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] anassiriphotography.com: could not connect to host ancientkarma.com: could not connect to host -andbraiz.com: could not connect to host andere-gedanken.net: max-age too low: 10 andiplusben.com: could not connect to host andisadhdspot.com: did not receive HSTS header @@ -303,6 +301,7 @@ asc16.com: could not connect to host asdpress.cn: could not connect to host ashlane-cottages.com: could not connect to host ashutoshmishra.org: did not receive HSTS header +asianodor.com: could not connect to host askfit.cz: did not receive HSTS header asm-x.com: could not connect to host asmui.ga: could not connect to host @@ -316,6 +315,8 @@ 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 +asuhe.win: 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 @@ -345,7 +346,8 @@ authentication.io: could not connect to host authoritynutrition.com: did not receive HSTS header auto-serwis.zgorzelec.pl: did not receive HSTS header auto4trade.nl: could not connect to host -autojuhos.sk: did not receive HSTS header +autoepc.ro: did not receive HSTS header +autojuhos.sk: could not connect to host autokovrik-diskont.ru: did not receive HSTS header autotsum.com: could not connect to host autumnwindsagility.com: could not connect to host @@ -381,12 +383,10 @@ bakingstone.com: could not connect to host bakkerdesignandbuild.com: did not receive HSTS header balcan-underground.net: could not connect to host baldwinkoo.com: could not connect to host -baleares.party: could not connect to host bandb.xyz: could not connect to host bandrcrafts.com: could not connect to host bannisbierblog.de: could not connect to host banqingdiao.com: could not connect to host -bardiharborow.tk: could not connect to host barely.sexy: did not receive HSTS header bashcode.ninja: could not connect to host basicsolutionsus.com: did not receive HSTS header @@ -397,7 +397,6 @@ baud.ninja: could not connect to host baumstark.ca: could not connect to host baysse.eu: could not connect to host bazarstupava.sk: could not connect to host -bbb1991.me: did not receive HSTS header bcbsmagentprofile.com: could not connect to host bccx.com: could not connect to host bckp.de: could not connect to host @@ -437,6 +436,7 @@ besixdouze.world: could not connect to host bestbeards.ca: could not connect to host bestcellular.com: did not receive HSTS header betafive.net: could not connect to host +betcafearena.ro: did not receive HSTS header betnet.fr: could not connect to host betplanning.it: did not receive HSTS header bets.de: did not receive HSTS header @@ -487,12 +487,6 @@ bityes.org: could not connect to host bivsi.com: could not connect to host bizcms.com: did not receive HSTS header bizon.sk: did not receive HSTS header -bl4ckb0x.com: did not receive HSTS header -bl4ckb0x.de: did not receive HSTS header -bl4ckb0x.eu: did not receive HSTS header -bl4ckb0x.info: did not receive HSTS header -bl4ckb0x.net: did not receive HSTS header -bl4ckb0x.org: did not receive HSTS header black-armada.com.pl: could not connect to host black-armada.pl: could not connect to host blackburn.link: could not connect to host @@ -514,6 +508,7 @@ bloglikepro.com: could not connect to host blubbablasen.de: could not connect to host blucas.org: did not receive HSTS header blueglobalmedia.com: max-age too low: 0 +blueimp.net: did not receive HSTS header blueliv.com: did not receive HSTS header bluescloud.xyz: could not connect to host bluetenmeer.com: did not receive HSTS header @@ -536,7 +531,7 @@ bonigo.de: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_ bonitabrazilian.co.nz: did not receive HSTS header bookcelerator.com: did not receive HSTS header booked.holiday: could not connect to host -bookourdjs.com: could not connect to host +bookourdjs.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] boomerang.com: could not connect to host boosterlearnpro.com: did not receive HSTS header bootjp.me: did not receive HSTS header @@ -564,6 +559,7 @@ brettabel.com: did not receive HSTS header brianmwaters.net: did not receive HSTS header brickoo.com: could not connect to host brid.gy: did not receive HSTS header +bristebein.com: could not connect to host britzer-toner.de: did not receive HSTS header brks.xyz: could not connect to host broken-oak.com: could not connect to host @@ -593,6 +589,7 @@ burian-server.cz: could not connect to host burrow.ovh: could not connect to host burtrum.me: could not connect to host burtrum.top: could not connect to host +busindre.com: could not connect to host business.lookout.com: could not connect to host businesshosting.nl: did not receive HSTS header businessloanstoday.com: max-age too low: 0 @@ -611,7 +608,6 @@ bysymphony.com: max-age too low: 0 byte.wtf: did not receive HSTS header bytepark.de: did not receive HSTS header bytesund.biz: could not connect to host -bytesystems.com: could not connect to host c1yd3i.me: could not connect to host c3b.info: could not connect to host cabarave.com: could not connect to host @@ -800,7 +796,6 @@ cmsbattle.com: could not connect to host cmscafe.ru: did not receive HSTS header cn.search.yahoo.com: did not receive HSTS header cni-certing.it: max-age too low: 0 -cnwarn.com: could not connect to host co50.com: did not receive HSTS header cocaine-import.agency: could not connect to host cocktailfuture.fr: could not connect to host @@ -812,14 +807,15 @@ codeco.pw: could not connect to host codeforce.io: could not connect to host codelayer.ca: 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 codereview.appspot.com: did not receive HSTS header (error ignored - included regardless) +codereview.chromium.org: did not receive HSTS header (error ignored - included regardless) codiva.io: max-age too low: 2592000 coffeeetc.co.uk: did not receive HSTS header coffeestrategies.com: max-age too low: 2592000 coiffeurschnittstelle.ch: did not receive HSTS header coindam.com: could not connect to host +colinwolff.com: could not connect to host colisfrais.com: did not receive HSTS header collegepulse.org: could not connect to host collies.eu: did not receive HSTS header @@ -843,7 +839,6 @@ condesaelectronics.com: max-age too low: 0 confirm365.com: could not connect to host conformal.com: could not connect to host connect.ua: did not receive HSTS header -conrad-kostecki.de: did not receive HSTS header consciousandglamorous.com: could not connect to host console.python.org: did not receive HSTS header constructionjobs.com: did not receive HSTS header @@ -854,9 +849,10 @@ continuumgaming.com: could not connect to host controlcenter.gigahost.dk: did not receive HSTS header convert.zone: could not connect to host coolchevy.org.ua: could not connect to host +coopens.com: could not connect to host cor-ser.es: could not connect to host coralproject.net: did not receive HSTS header -coralrosado.com.br: could not connect to host +coralrosado.com.br: did not receive HSTS header cordial-restaurant.com: did not receive HSTS header core.mx: could not connect to host core4system.de: could not connect to host @@ -892,7 +888,6 @@ crestoncottage.com: could not connect to host criticalaim.com: could not connect to host crizk.com: could not connect to host crosssec.com: did not receive HSTS header -crow.tw: could not connect to host crowd.supply: could not connect to host crowdcurity.com: did not receive HSTS header crowdjuris.com: could not connect to host @@ -931,7 +926,9 @@ cupidmentor.com: did not receive HSTS header curroapp.com: could not connect to host custe.rs: could not connect to host cuvva.insure: did not receive HSTS header +cwage.com: could not connect to host cyanogenmod.xxx: could not connect to host +cyberianhusky.com: could not connect to host cyberpunk.ca: could not connect to host cybershambles.com: could not connect to host cycleluxembourg.lu: did not receive HSTS header @@ -949,6 +946,7 @@ daku.gdn: did not receive HSTS header dalingk.co: could not connect to host damianuv-blog.cz: did not receive HSTS header dango.in: did not receive HSTS header +daniel-steuer.de: could not connect to host danielcowie.me: could not connect to host danieldk.eu: did not receive HSTS header danieliancu.com: could not connect to host @@ -991,7 +989,6 @@ davidnoren.com: did not receive HSTS header davidreinhardt.de: could not connect to host davidscherzer.at: could not connect to host daylightcompany.com: did not receive HSTS header -dayman.net: did not receive HSTS header daytonaseaside.com: did not receive HSTS header db.gy: did not receive HSTS header dbx.ovh: could not connect to host @@ -1038,12 +1035,14 @@ derevtsov.com: did not receive HSTS header derhil.de: did not receive HSTS header derwolfe.net: did not receive HSTS header desiccantpackets.com: did not receive HSTS header +designgears.com: max-age too low: 0 designthinking.or.jp: did not receive HSTS header despora.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] destinationbijoux.fr: could not connect to host destom.be: could not connect to host detector.exposed: could not connect to host devcu.net: did not receive HSTS header +devdoodle.net: could not connect to host deviltracks.net: could not connect to host devincrow.me: could not connect to host devtub.com: did not receive HSTS header @@ -1058,7 +1057,6 @@ digitaldaddy.net: could not connect to host digitalriver.tk: could not connect to host digitalskillswap.com: could not connect to host dim.lighting: could not connect to host -dimonb.com: could not connect to host dinamoelektrik.com: max-age too low: 0 dinkum.online: could not connect to host discoveringdocker.com: did not receive HSTS header @@ -1107,6 +1105,7 @@ doridian.net: did not receive HSTS header doridian.org: could not connect to host dossplumbing.co.za: did not receive HSTS header dotadata.me: could not connect to host +dothebangthingsalon.com: did not receive HSTS header dovetailnow.com: could not connect to host download.jitsi.org: did not receive HSTS header downsouthweddings.com.au: did not receive HSTS header @@ -1120,6 +1119,7 @@ drdevil.ru: could not connect to host drdim.ru: could not connect to host dreadbyte.com: could not connect to host dreaming.solutions: did not receive HSTS header +dredgepress.com: did not receive HSTS header drishti.guru: could not connect to host drive.google.com: did not receive HSTS header (error ignored - included regardless) drobniuch.pl: could not connect to host @@ -1133,6 +1133,7 @@ dubrovskiy.net: could not connect to host dubrovskiy.pro: could not connect to host duesee.org: could not connect to host dullsir.com: did not receive HSTS header +dungi.org: could not connect to host duria.de: max-age too low: 3600 dustri.org: did not receive HSTS header dutchrank.com: could not connect to host @@ -1144,7 +1145,7 @@ dylanscott.com.au: did not receive HSTS header dymersion.com: did not receive HSTS header dzimejl.sk: did not receive HSTS header dzlibs.io: could not connect to host -dzndk.com: could not connect to host +dzndk.net: could not connect to host dzndk.org: could not connect to host e-deca2.org: did not receive HSTS header e-sa.com: did not receive HSTS header @@ -1170,6 +1171,7 @@ ecole-en-danger.fr: could not connect to host ecole-maternelle-saint-joseph.be: could not connect to host ecomparemo.com: did not receive HSTS header ecorus.eu: did not receive HSTS header +ecupcafe.com: did not receive HSTS header edcphenix.tk: could not connect to host edelsteincosmetic.com: did not receive HSTS header edissecurity.sk: did not receive HSTS header @@ -1179,7 +1181,6 @@ edmodo.com: did not receive HSTS header edp-collaborative.com: max-age too low: 2500 eduvance.in: did not receive HSTS header edxg.de: could not connect to host -eewna.org: did not receive HSTS header efficienthealth.com: did not receive HSTS header effortlesshr.com: did not receive HSTS header egg-ortho.ch: did not receive HSTS header @@ -1190,22 +1191,18 @@ ehrenamt-skpfcw.de: could not connect to host eicfood.com: could not connect to host eidolonhost.com: did not receive HSTS header ekbanden.nl: could not connect to host -ekostecki.de: did not receive HSTS header elaintehtaat.fi: did not receive HSTS header elan-organics.com: did not receive HSTS header elanguest.pl: could not connect to host elbetech.net: could not connect to host electricianforum.co.uk: did not receive HSTS header electromc.com: could not connect to host -elektronring.com: could not connect to host elemenx.com: did not receive HSTS header elemprendedor.com.ve: could not connect to host elenag.ga: could not connect to host elenoon.ir: did not receive HSTS header elgacien.de: could not connect to host elimdengelen.com: did not receive HSTS header -elisabeth-kostecki.de: did not receive HSTS header -elisabethkostecki.de: did not receive HSTS header elitefishtank.com: could not connect to host elliotgluck.com: could not connect to host elnutricionista.es: did not receive HSTS header @@ -1346,6 +1343,8 @@ fallenangelspirits.uk: could not connect to host familie-sprink.de: could not connect to host familie-zimmermann.at: could not connect to host fanyl.cn: could not connect to host +farhadexchange.com: did not receive HSTS header +farhood.org: could not connect to host fashioncare.cz: did not receive HSTS header fasset.jp: could not connect to host fastograph.com: could not connect to host @@ -1420,6 +1419,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 +flowlo.me: could not connect to host flushstudios.com: did not receive HSTS header flyaces.com: did not receive HSTS header fm83.nl: could not connect to host @@ -1445,6 +1445,9 @@ fotopasja.info: could not connect to host fourchin.net: could not connect to host foxdev.io: could not connect to host foxelbox.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] +foxley-farm.co.uk: could not connect to host +foxley-seeds.co.uk: could not connect to host +foxleyseeds.co.uk: could not connect to host foxtrot.pw: could not connect to host fr33d0m.link: could not connect to host francescopalazzo.com: could not connect to host @@ -1467,6 +1470,7 @@ freeutopia.org: did not receive HSTS header frenzel.dk: could not connect to host freqlabs.com: could not connect to host freshfind.xyz: could not connect to host +freshlymind.com: did not receive HSTS header frezbo.com: could not connect to host frforms.com: did not receive HSTS header friendica.ch: could not connect to host @@ -1479,6 +1483,7 @@ fruitusers.com: could not connect to host frusky.net: could not connect to host fspphoto.com: could not connect to host ftctele.com: did not receive HSTS header +fuckav.ru: could not connect to host fuckbilibili.com: did not receive HSTS header fuckgfw233.org: could not connect to host fukushima-web.com: did not receive HSTS header @@ -1533,7 +1538,7 @@ gatapro.net: could not connect to host gatilagata.com.br: could not connect to host gchq.wtf: could not connect to host gdpventure.com: max-age too low: 0 -gedankenbude.info: did not receive HSTS header +gedankenbude.info: could not connect to host geekcast.co.uk: did not receive HSTS header geeky.software: could not connect to host geli-graphics.com: did not receive HSTS header @@ -1554,6 +1559,7 @@ getblys.com.au: did not receive HSTS header getbooks.co.il: did not receive HSTS header getcarefirst.com: did not receive HSTS header getcolor.com: did not receive HSTS header +getfirepress.com: did not receive HSTS header getgeek.dk: did not receive HSTS header getgeek.eu: did not receive HSTS header getgeek.fi: did not receive HSTS header @@ -1582,6 +1588,7 @@ gheorghesarcov.tk: could not connect to host giakki.eu: could not connect to host gietvloergarant.nl: did not receive HSTS header gigacloud.org: max-age too low: 0 +gilgaz.com: did not receive HSTS header gilly.berlin: did not receive HSTS header gingali.de: did not receive HSTS header gintenreiter-photography.com: did not receive HSTS header @@ -1592,6 +1599,7 @@ gistfy.com: could not connect to host github.party: could not connect to host givemyanswer.com: did not receive HSTS header gizzo.sk: could not connect to host +gjung.com: could not connect to host gkralik.eu: [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] gl.search.yahoo.com: did not receive HSTS header glass.google.com: did not receive HSTS header (error ignored - included regardless) @@ -1627,7 +1635,7 @@ gogold-g.com: could not connect to host gold24.in: did not receive HSTS header goldendata.io: could not connect to host golocal-media.de: did not receive HSTS header -gonzalosanchez.mx: did not receive HSTS header +gonzalosanchez.mx: could not connect to host goodenough.nz: did not receive HSTS header goodwin43.ru: could not connect to host google: could not connect to host (error ignored - included regardless) @@ -1645,6 +1653,7 @@ gov.ax: could not connect to host govillemo.ca: did not receive HSTS header gozel.com.tr: did not receive HSTS header gparent.org: did not receive HSTS header +gps.com.br: could not connect to host gpsfix.cz: could not connect to host gpstuner.com: did not receive HSTS header gracesofgrief.com: max-age too low: 86400 @@ -1661,6 +1670,8 @@ greatnet.de: did not receive HSTS header greenhillantiques.co.uk: did not receive HSTS header greenvines.com.tw: did not receive HSTS header greg.red: could not connect to host +gregmilton.com: could not connect to host +gregmilton.org: could not connect to host gregorytlee.me: did not receive HSTS header gremots.com: did not receive HSTS header greplin.com: could not connect to host @@ -1686,10 +1697,6 @@ gulenet.com: could not connect to host gunnarhafdal.com: did not receive HSTS header gurom.lv: could not connect to host gurusupe.com: could not connect to host -guso.gq: could not connect to host -guso.ml: could not connect to host -guso.site: could not connect to host -guso.tech: could not connect to host gussi.is: did not receive HSTS header gvt2.com: could not connect to host (error ignored - included regardless) gvt3.com: could not connect to host (error ignored - included regardless) @@ -1705,13 +1712,12 @@ gyz.io: could not connect to host h2check.org: could not connect to host haarkliniek.com: did not receive HSTS header habanaavenue.com: did not receive HSTS header -habbo.life: did not receive HSTS header +habbo.life: could not connect to host hablemosdetecnologia.com.ve: could not connect to host 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 @@ -1728,7 +1734,6 @@ halo.red: could not connect to host hancc.net: could not connect to host hanfu.la: could not connect to host hang333.pw: did not receive HSTS header -hannover-banditen.de: did not receive HSTS header hansen.hn: could not connect to host hao2taiwan.com: max-age too low: 0 haoyugao.com: could not connect to host @@ -1755,10 +1760,9 @@ haufschild.de: could not connect to host haurumcraft.net: could not connect to host hausarzt-stader-str.de: did not receive HSTS header haveeruexaminer.com: could not connect to host -haxoff.com: did not receive HSTS header +haxoff.com: could not connect to host haydenhill.us: could not connect to host hazcod.com: could not connect to host -hazyrom.net: could not connect to host hcie.pl: could not connect to host hcs-company.com: did not receive HSTS header hcs-company.nl: did not receive HSTS header @@ -1782,9 +1786,9 @@ henriknoerr.com: could not connect to host hepteract.us: did not receive HSTS header hermes-net.de: could not connect to host herpaderp.net: could not connect to host +herrenfahrt.com: did not receive HSTS header herzbotschaft.de: did not receive HSTS header heutger.net: did not receive HSTS header -hexagon-e.com: could not connect to host hibilog.com: could not connect to host hicn.gq: could not connect to host hiddendepth.ie: max-age too low: 0 @@ -1806,7 +1810,6 @@ hn.search.yahoo.com: did not receive HSTS header hodne.io: could not connect to host hoerbuecher-und-hoerspiele.de: could not connect to host hogar123.es: could not connect to host -hokieprivacy.org: could not connect to host holifestival-freyung.de: could not connect to host holymoly.lu: could not connect to host homa.website: could not connect to host @@ -1841,6 +1844,7 @@ hsts.date: could not connect to host hstsfail.appspot.com: did not receive HSTS header hstspreload.appspot.com: did not receive HSTS header hstspreload.org: did not receive HSTS header +html-lab.tk: could not connect to host http418.xyz: could not connect to host httpstatuscode418.xyz: could not connect to host hu.search.yahoo.com: did not receive HSTS header @@ -1853,6 +1857,7 @@ humpteedumptee.in: did not receive HSTS header huntshomeinspections.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] hurricanelabs.com: did not receive HSTS header huskybutt.dog: could not connect to host +huskyinc.us: could not connect to host hydra.ws: could not connect to host hydronium.cf: could not connect to host hydronium.ga: could not connect to host @@ -1872,6 +1877,7 @@ ichnichtskaufmann.de: could not connect to host ichoosebtec.com: could not connect to host icpc2016.in.th: could not connect to host icreative.nl: did not receive HSTS header +ictinforensics.org: could not connect to host ictual.com: max-age too low: 0 id-co.in: could not connect to host id-conf.com: could not connect to host @@ -1891,6 +1897,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 +ifx.ee: could not connect to host ignatisd.gr: did not receive HSTS header igule.net: could not connect to host ihrlotto.de: could not connect to host @@ -1943,6 +1950,7 @@ inkstory.gr: did not receive HSTS header inksupply.com: did not receive HSTS header inleaked.com: could not connect to host inmyarea.com: max-age too low: 0 +innoloop.com: did not receive HSTS header innophate-security.nl: could not connect to host ins1gn1a.com: did not receive HSTS header insane-bullets.com: could not connect to host @@ -1981,6 +1989,7 @@ ipmimagazine.com: did not receive HSTS header iprody.com: could not connect to host iptel.by: max-age too low: 0 iptel.ro: could not connect to host +ipuservicedesign.com: could not connect to host ipv6cloud.club: could not connect to host iqcn.co: did not receive HSTS header iqualtech.com: did not receive HSTS header @@ -1990,6 +1999,7 @@ irazimina.ru: did not receive HSTS header irccloud.com: did not receive HSTS header ireef.tv: could not connect to host irelandesign.com: did not receive HSTS header +irmtrudjurke.de: did not receive HSTS header ischool.co.jp: did not receive HSTS header iseek.biz: max-age too low: 0 iseulde.com: could not connect to host @@ -1998,7 +2008,6 @@ isitamor.pm: could not connect to host iskaz.rs: did not receive HSTS header israkurort.com: did not receive HSTS header istaspirtslietas.lv: did not receive HSTS header -isteinbaby.de: could not connect to host it-go.net: did not receive HSTS header itechgeek.com: max-age too low: 0 itos.asia: did not receive HSTS header @@ -2010,8 +2019,6 @@ itsamurai.ru: max-age too low: 2592000 itsecurityassurance.pw: could not connect to host itsg-faq.de: could not connect to host itshost.ru: could not connect to host -itskayla.com: did not receive HSTS header -itsryan.com: did not receive HSTS header ivi-fertility.com: max-age too low: 0 ivi.es: max-age too low: 0 ivk.website: could not connect to host @@ -2080,7 +2087,7 @@ jetsetcharge.com: could not connect to host jetsetpay.com: could not connect to host jettshome.org: could not connect to host jeugdkans.nl: did not receive HSTS header -jf.duckdns.org: could not connect to host +jf.duckdns.org: max-age too low: 0 jfmel.com: did not receive HSTS header jfx.space: did not receive HSTS header jh-media.eu: could not connect to host @@ -2184,7 +2191,6 @@ 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 -kevinmeijer.nl: 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 @@ -2224,16 +2230,13 @@ kleinblogje.nl: [Exception... "Component returned failure code: 0x80004005 (NS_E kletterkater.com: did not receive HSTS header klicktojob.de: could not connect to host kmartin.io: did not receive HSTS header -kn007.net: could not connect to host knccloud.com: could not connect to host knightsbridgegroup.org: could not connect to host -knowledgesnap.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] knowledgesnapsites.com: could not connect to host kodokushi.fr: could not connect to host koen.io: did not receive HSTS header koenrouwhorst.nl: did not receive HSTS header kojipkgs.fedoraproject.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] -kolaykaydet.com: did not receive HSTS header kollabria.com: max-age too low: 0 komikito.com: could not connect to host kompetenzwerft.de: did not receive HSTS header @@ -2254,7 +2257,6 @@ krayx.com: could not connect to host kreavis.com: did not receive HSTS header kredite.sale: could not connect to host kriegt.es: could not connect to host -kristikala.nl: could not connect to host krmela.com: could not connect to host kroetenfuchs.de: could not connect to host kropkait.pl: could not connect to host @@ -2334,7 +2336,6 @@ lemp.io: did not receive HSTS header lenovogaming.com: did not receive HSTS header lentri.com: did not receive HSTS header leob.in: did not receive HSTS header -leolana.com: could not connect to host leon-jaekel.com: could not connect to host leopold.email: could not connect to host leopotamgroup.com: could not connect to host @@ -2399,6 +2400,7 @@ linuxfixed.it: could not connect to host linuxforyou.com: could not connect to host linuxgeek.ro: could not connect to host linuxmonitoring.net: did not receive HSTS header +linuxwebservertips.in: could not connect to host liquorsanthe.in: could not connect to host lisonfan.com: did not receive HSTS header listafirmelor.com: could not connect to host @@ -2407,10 +2409,11 @@ livedemo.io: could not connect to host livej.am: could not connect to host livi.co: did not receive HSTS header loadingdeck.com: did not receive HSTS header +loadso.me: could not connect to host loafbox.com: could not connect to host +locchat.com: did not receive HSTS header locktheirphone.com: could not connect to host locomotive.ca: did not receive HSTS header -loforo.com: could not connect to host login.corp.google.com: max-age too low: 7776000 (error ignored - included regardless) loginseite.com: could not connect to host lolicore.ch: could not connect to host @@ -2426,7 +2429,6 @@ lookastic.mx: [Exception... "Component returned failure code: 0x80004005 (NS_ERR lookastic.ru: [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] lookout.com: did not receive HSTS header lookzook.com: did not receive HSTS header -loongsg.xyz: 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 @@ -2559,6 +2561,7 @@ matty.digital: max-age too low: 3600 maultrom.ml: could not connect to host maur.cz: did not receive HSTS header mavisang.cf: could not connect to host +mawe.red: could not connect to host maxfox.me: did not receive HSTS header maxhoechtl.at: could not connect to host maya.mg: could not connect to host @@ -2569,9 +2572,7 @@ mccarty.io: could not connect to host mccrackon.com: could not connect to host mcdonalds.ru: did not receive HSTS header mcga.media: did not receive HSTS header -mckinley1.com: did not receive HSTS header mclab.su: could not connect to host -mdcloudps.com: could not connect to host mdewendt.de: could not connect to host mdfnet.se: did not receive HSTS header mdscomp.net: did not receive HSTS header @@ -2620,7 +2621,6 @@ meuemail.pro: could not connect to host mexbt.com: could not connect to host mfcatalin.com: could not connect to host mfiles.pl: [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] -mgrossklaus.de: did not receive HSTS header mh-bloemen.co.jp: could not connect to host mhdsyarif.com: did not receive HSTS header mhealthdemocamp.com: could not connect to host @@ -2649,6 +2649,7 @@ mijn-email.org: could not connect to host mikadoe.nl: could not connect to host mikaelemilsson.net: did not receive HSTS header mikeburns.com: did not receive HSTS header +mikecb.org: did not receive HSTS header mikeg.de: did not receive HSTS header mikeology.org: could not connect to host mikonmaa.fi: could not connect to host @@ -2665,7 +2666,6 @@ mineover.es: could not connect to host minikneet.com: did not receive HSTS header minikneet.nl: did not receive HSTS header minnesotadata.com: could not connect to host -minora.io: could not connect to host miragrow.com: could not connect to host mirindadomo.ru: did not receive HSTS header mironized.com: did not receive HSTS header @@ -2705,6 +2705,7 @@ mogry.net: did not receive HSTS header moho.kr: did not receive HSTS header monarca.systems: could not connect to host monasterialis.eu: could not connect to host +mondar.io: did not receive HSTS header mondopoint.com: did not receive HSTS header moneytoday.com: max-age too low: 0 monitman.com: could not connect to host @@ -2715,7 +2716,6 @@ moov.is: could not connect to host moparisthebest.biz: could not connect to host moparisthebest.info: could not connect to host moparscape.org: did not receive HSTS header -mople71.cz: could not connect to host mor.gl: could not connect to host morethanadream.lv: could not connect to host moriz.net: could not connect to host @@ -2734,13 +2734,14 @@ moula.com.au: did not receive HSTS header mountainmusicpromotions.com: did not receive HSTS header moviesabout.net: could not connect to host moy-gorod.od.ua: did not receive HSTS header -moy.cat: could not connect to host +moy.cat: did not receive HSTS header mp3juices.is: could not connect to host mqas.net: could not connect to host mrettich.org: did not receive HSTS header mrnonz.com: max-age too low: 0 mrpopat.in: did not receive HSTS header mrs-shop.com: did not receive HSTS header +ms-alternativ.de: could not connect to host msc-seereisen.net: could not connect to host msno.no: did not receive HSTS header mszaki.com: did not receive HSTS header @@ -2971,7 +2972,7 @@ nz.search.yahoo.com: max-age too low: 172800 nzb.cat: max-age too low: 7776000 nzquakes.maori.nz: did not receive HSTS header o0o.one: did not receive HSTS header -oasis.mobi: could not connect to host +oasis.mobi: did not receive HSTS header oasisim.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] oauth-dropins.appspot.com: did not receive HSTS header obsydian.org: could not connect to host @@ -3104,6 +3105,7 @@ pahae.de: did not receive HSTS header paintingat.com: could not connect to host paisaone.com: did not receive HSTS header paku.me: could not connect to host +palmer.im: could not connect to host pamplona.tv: could not connect to host pamsoft.pl: max-age too low: 0 panaceallc.net: could not connect to host @@ -3129,7 +3131,6 @@ 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 -pasadenapooch.org: did not receive HSTS header 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) @@ -3197,7 +3198,6 @@ php-bach.org: could not connect to host phpfashion.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] phurl.de: could not connect to host phus.lu: did not receive HSTS header -pickme.nl: could not connect to host pickr.co: could not connect to host picotronic.biz: could not connect to host picscare.co.uk: did not receive HSTS header @@ -3256,19 +3256,18 @@ poleartschool.com: could not connect to host policeiwitness.sg: could not connect to host polimat.org: could not connect to host politically-incorrect.xyz: could not connect to host -politologos.org: did not receive HSTS header +politologos.org: could not connect to host polycoise.com: could not connect to host +polymathematician.com: could not connect to host polypho.nyc: could not connect to host pompompoes.com: could not connect to host pontokay.com.br: did not receive HSTS header pontualcomp.com: max-age too low: 2592000 poolsandstuff.com: did not receive HSTS header poon.tech: could not connect to host -pornstars.me: could not connect to host portalplatform.net: did not receive HSTS header poshpak.com: max-age too low: 86400 postcodewise.co.uk: did not receive HSTS header -posterspy.com: 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 @@ -3376,7 +3375,6 @@ rafaelcz.de: could not connect to host railgun.com.cn: could not connect to host rainbowbarracuda.com: could not connect to host ramonj.nl: could not connect to host -ramshair.jp: could not connect to host randomcage.com: did not receive HSTS header randomcloud.net: could not connect to host rankthespot.com: could not connect to host @@ -3388,8 +3386,8 @@ raspass.me: could not connect to host rastreador.com.es: did not receive HSTS header ratajczak.fr: could not connect to host rate-esport.de: could not connect to host -rathorian.fr: could not connect to host raulfraile.net: could not connect to host +raven.lipetsk.ru: could not connect to host rawet.se: did not receive HSTS header rawstorieslondon.com: could not connect to host raydan.space: could not connect to host @@ -3493,7 +3491,7 @@ rodosto.com: did not receive HSTS header roeper.party: could not connect to host rohitagr.com: did not receive HSTS header rolemaster.net: could not connect to host -romans-place.me.uk: could not connect to host +romans-place.me.uk: did not receive HSTS header ron2k.za.net: could not connect to host ronvandordt.info: could not connect to host ronwo.de: max-age too low: 1 @@ -3522,6 +3520,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 @@ -3559,11 +3558,12 @@ samraskauskas.com: could not connect to host samsen.club: did not receive HSTS header samuelkeeley.com: could not connect to host sanasalud.org: could not connect to host +sanchez.adv.br: could not connect to host sandrolittke.de: did not receive HSTS header sandviks.com: did not receive HSTS header sangwon.org: could not connect to host sansemea.com: did not receive HSTS header -sansonehowell.com: could not connect to host +sansonehowell.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] sarah-beckett-harpist.com: did not receive HSTS header sarahsweetlife.com: could not connect to host sarisonproductions.com: did not receive HSTS header @@ -3633,8 +3633,6 @@ securityinet.biz: did not receive HSTS header securityinet.net: did not receive HSTS header securityinet.org.il: did not receive HSTS header securiviera.ch: did not receive HSTS header -sedoexpert.nl: could not connect to host -sedoexperts.nl: could not connect to host seedbox.fr: did not receive HSTS header seedboxers.net: did not receive HSTS header seele.ca: could not connect to host @@ -3680,7 +3678,6 @@ seyahatsagliksigortalari.com: could not connect to host sfsltd.com: did not receive HSTS header shadoom.com: did not receive HSTS header shadowmorph.info: did not receive HSTS header -shadowsocks.com: could not connect to host shadowsocks.net: could not connect to host shakepeers.org: did not receive HSTS header shanesage.com: could not connect to host @@ -3751,6 +3748,7 @@ skile.ru: could not connect to host 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 +skou.dk: 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 @@ -3769,7 +3767,6 @@ sluitkampzeist.nl: [Exception... "Component returned failure code: 0x80004005 (N slycurity.de: did not receive HSTS header smart-mirror.de: did not receive HSTS header smart-ov.nl: could not connect to host -smartairkey.com: could not connect to host smartcoin.com.br: could not connect to host smartlend.se: [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] smartofficesandsmarthomes.com: did not receive HSTS header @@ -3798,7 +3795,7 @@ snoozedds.com: max-age too low: 600 snoqualmiefiber.org: did not receive HSTS header sobabox.ru: could not connect to host sobie.ch: could not connect to host -sobotkama.eu: did not receive HSTS header +sobotkama.eu: could not connect to host soccergif.com: could not connect to host soci.ml: did not receive HSTS header socialbillboard.com: could not connect to host @@ -3809,6 +3806,7 @@ socialspirit.com.br: did not receive HSTS header socioambiental.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] sockeye.cc: could not connect to host socomponents.co.uk: did not receive HSTS header +sodacore.com: could not connect to host sogeek.me: did not receive HSTS header sol-3.de: did not receive HSTS header solidfuelappliancespares.co.uk: did not receive HSTS header @@ -3819,7 +3817,7 @@ solsystems.ru: could not connect to host someshit.xyz: could not connect to host somethingnew.xyz: did not receive HSTS header sonicrainboom.rocks: could not connect to host -sotiran.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] +sotiran.com: did not receive HSTS header sotor.de: did not receive HSTS header soulboy.io: could not connect to host soulema.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] @@ -3890,6 +3888,7 @@ stargatepartners.com: did not receive HSTS header starmusic.ga: did not receive HSTS header stat.ink: did not receive HSTS header state-sponsored-actors.net: could not connect to host +statementinsertsforless.com: did not receive HSTS header stateofexception.io: could not connect to host static.or.at: did not receive HSTS header staticanime.net: could not connect to host @@ -3940,6 +3939,7 @@ studiozelden.com: did not receive HSTS header studybay.com: did not receive HSTS header studydrive.net: did not receive HSTS header stugb.de: did not receive HSTS header +sturbock.me: did not receive HSTS header stw-group.at: could not connect to host stygium.net: could not connect to host stylenda.com: could not connect to host @@ -3964,6 +3964,7 @@ superbabysitting.ch: could not connect to host superbike.tw: could not connect to host supereight.net: did not receive HSTS header superiorfloridavacation.com: did not receive HSTS header +superpase.com: could not connect to host supersalescontest.nl: did not receive HSTS header supersecurefancydomain.com: could not connect to host superuser.fi: could not connect to host @@ -4044,6 +4045,7 @@ teamsocial.co: did not receive HSTS header teamzeus.cz: could not connect to host tech55i.com: did not receive HSTS header techassist.io: did not receive HSTS header +techelements.co: could not connect to host techhipster.net: could not connect to host techhub.ml: could not connect to host techllage.com: could not connect to host @@ -4052,6 +4054,7 @@ techmatehq.com: could not connect to host technogroup.cz: did not receive HSTS header technosavvyport.com: did not receive HSTS header techpointed.com: could not connect to host +tedb.us: 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 @@ -4129,7 +4132,6 @@ thezonders.com: did not receive HSTS header thierfreund.de: could not connect to host thinkcoding.de: could not connect to host thinkcoding.org: could not connect to host -thinktux.net: could not connect to host thirdpartytrade.com: did not receive HSTS header thirty5.net: did not receive HSTS header thisisacompletetest.ga: could not connect to host @@ -4142,7 +4144,6 @@ thriveapproach.co.uk: did not receive HSTS header thumbtack.com: did not receive HSTS header thusoy.com: did not receive HSTS header tibbitshall.ca: did not receive HSTS header -ticketmates.com.au: did not receive HSTS header tickettoaster.de: max-age too low: 0 tickopa.co.uk: could not connect to host tickreport.com: did not receive HSTS header @@ -4172,7 +4173,6 @@ titouan.co: did not receive HSTS header tittelbach.at: did not receive HSTS header titties.ml: could not connect to host tkarstens.de: did not receive HSTS header -tlach.cz: did not receive HSTS header tlo.hosting: could not connect to host tlo.link: did not receive HSTS header tlo.network: could not connect to host @@ -4198,7 +4198,7 @@ tomberek.info: could not connect to host tomeara.net: could not connect to host tomharling.co.uk: max-age too low: 86400 tomharling.uk: max-age too low: 86400 -tomharris.tech: did not receive HSTS header +tomharris.tech: could not connect to host tomlankhorst.nl: did not receive HSTS header tommsy.com: did not receive HSTS header tommyads.com: could not connect to host @@ -4206,7 +4206,6 @@ tonburi.jp: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR tonsit.org: did not receive HSTS header tonyfantjr.com: could not connect to host toomanypillows.com: could not connect to host -tooti.biz: could not connect to host topbargains.com.au: did not receive HSTS header topdeskdev.net: could not connect to host topmarine.se: could not connect to host @@ -4231,6 +4230,7 @@ trainut.com: could not connect to host transitownplaza.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 +travelinsurance.co.nz: did not receive HSTS header treeby.net: could not connect to host trendberry.ru: could not connect to host trinityaffirmations.com: max-age too low: 0 @@ -4282,14 +4282,12 @@ txclimbers.com: could not connect to host txf.pw: could not connect to host ty2u.com: did not receive HSTS header tylian.net: max-age too low: 0 -typingrevolution.com: did not receive HSTS header tyrelius.com: did not receive HSTS header 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 uadp.pw: did not receive HSTS header -uasmi.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] ubicloud.de: could not connect to host ubicv.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] ublox.com: did not receive HSTS header @@ -4339,7 +4337,6 @@ uonstaffhub.com: could not connect to host uow.ninja: could not connect to host up1.ca: could not connect to host upaknship.com: did not receive HSTS header -upandclear.org: could not connect to host upani.net: did not receive HSTS header upldr.pw: could not connect to host uprotect.it: could not connect to host @@ -4375,6 +4372,7 @@ valleyridgepta.org: could not connect to host vallis.net: did not receive HSTS header valmagus.com: could not connect to host vampirism.eu: could not connect to host +vanacht.co.za: did not receive HSTS header vanderkley.it: could not connect to host vanderstraeten.dynv6.net: could not connect to host vanestack.com: could not connect to host @@ -4390,10 +4388,9 @@ vbulletin-russia.com: could not connect to host vbulletinrussia.com: could not connect to host vcdove.com: did not receive HSTS header vcr.re: could not connect to host -vdrpro.com: could not connect to host veblen.com: could not connect to host vechkasov.ru: did not receive HSTS header -vehent.org: did not receive HSTS header +vehent.org: could not connect to host vemokin.net: did not receive HSTS header venixplays-stream.ml: could not connect to host verifikatorindonesia.com: could not connect to host @@ -4408,13 +4405,13 @@ videnskabsklubben.dk: did not receive HSTS header videomuz.com: did not receive HSTS header vidz.ga: could not connect to host vieaw.com: could not connect to host -viemeister.com: could not connect to host viewsea.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] vigilo.cf: could not connect to host viktorsvantesson.net: did not receive HSTS header vincentkooijman.at: did not receive HSTS header vincentkooijman.nl: did not receive HSTS header vincentpancol.com: could not connect to host +vinicius.sl: did not receive HSTS header vintageheartcoffee.com: did not receive HSTS header vio.no: did not receive HSTS header viperdns.com: could not connect to host @@ -4431,10 +4428,10 @@ vlora.city: could not connect to host vm0.eu: did not receive HSTS header vmrdev.com: could not connect to host voceinveste.com: did not receive HSTS header +vodpay.com: could not connect to host vodpay.net: could not connect to host vodpay.org: could not connect to host -vogler.name: did not receive HSTS header -voicesuk.co.uk: did not receive HSTS header +voicesuk.co.uk: could not connect to host voidpay.com: could not connect to host voidpay.net: could not connect to host voidpay.org: could not connect to host @@ -4470,11 +4467,11 @@ warandpeace.xyz: could not connect to host warehost.de: did not receive HSTS header warhistoryonline.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] warlions.info: did not receive HSTS header -warmlyyours.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] warped.com: did not receive HSTS header warsentech.com: did not receive HSTS header washingtonviews.com: did not receive HSTS header watchium.com: did not receive HSTS header +watersportmarkt.net: did not receive HSTS header watsonhall.uk: could not connect to host wave.is: could not connect to host wavefrontsystemstech.com: could not connect to host @@ -4569,7 +4566,6 @@ winecodeavocado.com: could not connect to host winged.io: could not connect to host wingos.net: could not connect to host wingumd.net: could not connect to host -winhistory-forum.net: did not receive HSTS header winpack.cf: could not connect to host winpack.eu.org: could not connect to host winsec.nl: did not receive HSTS header @@ -4605,8 +4601,6 @@ wootton95.com: could not connect to host woresite.jp: did not receive HSTS header workfone.io: did not receive HSTS header workwithgo.com: could not connect to host -wormdisk.net: could not connect to host -wow-foederation.de: could not connect to host wowapi.org: could not connect to host wphostingspot.com: did not receive HSTS header wpmetadatastandardsproject.org: could not connect to host @@ -4614,6 +4608,7 @@ writeapp.me: did not receive HSTS header wsscompany.com.ve: could not connect to host wufu.org: did not receive HSTS header wuhengmin.com: did not receive HSTS header +wuji.cz: could not connect to host wurzelzwerg.net: could not connect to host wusx.club: could not connect to host www.apollo-auto.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] @@ -4781,6 +4776,7 @@ zomerschoen.nl: [Exception... "Component returned failure code: 0x80004005 (NS_E zoneminder.com: did not receive HSTS header zoo24.de: did not receive HSTS header zoomingin.net: max-age too low: 5184000 +zoommailing.com: did not receive HSTS header zortium.report: could not connect to host zoznamrealit.sk: did not receive HSTS header zqhong.com: could not connect to host diff --git a/security/manager/ssl/nsSTSPreloadList.inc b/security/manager/ssl/nsSTSPreloadList.inc index e021673e5f03..01a7742682c9 100644 --- a/security/manager/ssl/nsSTSPreloadList.inc +++ b/security/manager/ssl/nsSTSPreloadList.inc @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1497453160251000); +const PRTime gPreloadListExpirationTime = INT64_C(1497540807176000); static const char kSTSHostTable[] = { /* "0.me.uk", true */ '0', '.', 'm', 'e', '.', 'u', 'k', '\0', @@ -107,7 +107,6 @@ static const char kSTSHostTable[] = { /* "21.co.uk", true */ '2', '1', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "21lg.co", true */ '2', '1', 'l', 'g', '.', 'c', 'o', '\0', /* "21stnc.com", true */ '2', '1', 's', 't', 'n', 'c', '.', 'c', 'o', 'm', '\0', - /* "246060.ru", true */ '2', '4', '6', '0', '6', '0', '.', 'r', 'u', '\0', /* "247healthshop.com", true */ '2', '4', '7', 'h', 'e', 'a', 'l', 't', 'h', 's', 'h', 'o', 'p', '.', 'c', 'o', 'm', '\0', /* "24hourpaint.com", true */ '2', '4', 'h', 'o', 'u', 'r', 'p', 'a', 'i', 'n', 't', '.', 'c', 'o', 'm', '\0', /* "24ip.com", true */ '2', '4', 'i', 'p', '.', 'c', 'o', 'm', '\0', @@ -159,16 +158,15 @@ static const char kSTSHostTable[] = { /* "3do3dont.com", true */ '3', 'd', 'o', '3', 'd', 'o', 'n', 't', '.', 'c', 'o', 'm', '\0', /* "3r.org.uk", true */ '3', 'r', '.', 'o', 'r', 'g', '.', 'u', 'k', '\0', /* "3s-hosting.de", true */ '3', 's', '-', 'h', 'o', 's', 't', 'i', 'n', 'g', '.', 'd', 'e', '\0', - /* "3sreporting.com", true */ '3', 's', 'r', 'e', 'p', 'o', 'r', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "3timegear.com", true */ '3', 't', 'i', 'm', 'e', 'g', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "4-1-where.com", true */ '4', '-', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "4-it.de", true */ '4', '-', 'i', 't', '.', 'd', 'e', '\0', /* "403.ch", true */ '4', '0', '3', '.', 'c', 'h', '\0', - /* "404404.info", true */ '4', '0', '4', '4', '0', '4', '.', 'i', 'n', 'f', 'o', '\0', /* "4096bit.de", true */ '4', '0', '9', '6', 'b', 'i', 't', '.', 'd', 'e', '\0', /* "41-where.com", true */ '4', '1', '-', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "41844.de", true */ '4', '1', '8', '4', '4', '.', 'd', 'e', '\0', /* "41where.com", true */ '4', '1', 'w', 'h', 'e', 'r', 'e', '.', 'c', 'o', 'm', '\0', + /* "420dongstorm.com", true */ '4', '2', '0', 'd', 'o', 'n', 'g', 's', 't', 'o', 'r', 'm', '.', 'c', 'o', 'm', '\0', /* "439191.com", true */ '4', '3', '9', '1', '9', '1', '.', 'c', 'o', 'm', '\0', /* "441jj.com", true */ '4', '4', '1', 'j', 'j', '.', 'c', 'o', 'm', '\0', /* "4500.co.il", true */ '4', '5', '0', '0', '.', 'c', 'o', '.', 'i', 'l', '\0', @@ -338,10 +336,12 @@ static const char kSTSHostTable[] = { /* "ada.gov", true */ 'a', 'd', 'a', '.', 'g', 'o', 'v', '\0', /* "adajwells.me", true */ 'a', 'd', 'a', 'j', 'w', 'e', 'l', 'l', 's', '.', 'm', 'e', '\0', /* "adalis.org", true */ 'a', 'd', 'a', 'l', 'i', 's', '.', 'o', 'r', 'g', '\0', + /* "adam-kostecki.de", true */ 'a', 'd', 'a', 'm', '-', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "adambyers.com", true */ 'a', 'd', 'a', 'm', 'b', 'y', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "adamdixon.co.uk", true */ 'a', 'd', 'a', 'm', 'd', 'i', 'x', 'o', 'n', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "adamgold.net", true */ 'a', 'd', 'a', 'm', 'g', 'o', 'l', 'd', '.', 'n', 'e', 't', '\0', /* "adamkaminski.com", true */ 'a', 'd', 'a', 'm', 'k', 'a', 'm', 'i', 'n', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0', + /* "adamkostecki.de", true */ 'a', 'd', 'a', 'm', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "adamoutler.com", true */ 'a', 'd', 'a', 'm', 'o', 'u', 't', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "adamradocz.com", true */ 'a', 'd', 'a', 'm', 'r', 'a', 'd', 'o', 'c', 'z', '.', 'c', 'o', 'm', '\0', /* "adamricheimer.com", true */ 'a', 'd', 'a', 'm', 'r', 'i', 'c', 'h', 'e', 'i', 'm', 'e', 'r', '.', 'c', 'o', 'm', '\0', @@ -451,7 +451,6 @@ static const char kSTSHostTable[] = { /* "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', /* "agenda21senden.de", true */ 'a', 'g', 'e', 'n', 'd', 'a', '2', '1', 's', 'e', 'n', 'd', 'e', 'n', '.', 'd', 'e', '\0', - /* "agentseeker.ca", true */ 'a', 'g', 'e', 'n', 't', 's', 'e', 'e', 'k', 'e', 'r', '.', 'c', 'a', '\0', /* "agevio.com", true */ 'a', 'g', 'e', 'v', 'i', 'o', '.', 'c', 'o', 'm', '\0', /* "agfmedia.com", true */ 'a', 'g', 'f', 'm', 'e', 'd', 'i', 'a', '.', 'c', 'o', 'm', '\0', /* "aggr.pw", true */ 'a', 'g', 'g', 'r', '.', 'p', 'w', '\0', @@ -461,6 +460,7 @@ static const char kSTSHostTable[] = { /* "agonswim.com", false */ 'a', 'g', 'o', 'n', 's', 'w', 'i', 'm', '.', 'c', 'o', 'm', '\0', /* "agotnes.com", true */ 'a', 'g', 'o', 't', 'n', 'e', 's', '.', 'c', 'o', 'm', '\0', /* "agowa338.de", true */ 'a', 'g', 'o', 'w', 'a', '3', '3', '8', '.', 'd', 'e', '\0', + /* "agrias.com.br", true */ 'a', 'g', 'r', 'i', 'a', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "agwa.name", true */ 'a', 'g', 'w', 'a', '.', 'n', 'a', 'm', 'e', '\0', /* "ahd.com", true */ 'a', 'h', 'd', '.', 'c', 'o', 'm', '\0', /* "ahelos.tk", true */ 'a', 'h', 'e', 'l', 'o', 's', '.', 't', 'k', '\0', @@ -513,6 +513,7 @@ static const char kSTSHostTable[] = { /* "akerek.hu", true */ 'a', 'k', 'e', 'r', 'e', 'k', '.', 'h', 'u', '\0', /* "akhilindurti.com", false */ 'a', 'k', 'h', 'i', 'l', 'i', 'n', 'd', 'u', 'r', 't', 'i', '.', 'c', 'o', 'm', '\0', /* "akhras.at", true */ 'a', 'k', 'h', 'r', 'a', 's', '.', 'a', 't', '\0', + /* "akostecki.de", true */ 'a', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "akovana.com", true */ 'a', 'k', 'o', 'v', 'a', 'n', 'a', '.', 'c', 'o', 'm', '\0', /* "akoww.de", true */ 'a', 'k', 'o', 'w', 'w', '.', 'd', 'e', '\0', /* "akpwebdesign.com", true */ 'a', 'k', 'p', 'w', 'e', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'c', 'o', 'm', '\0', @@ -721,6 +722,7 @@ static const char kSTSHostTable[] = { /* "anchorgrounds.com", true */ 'a', 'n', 'c', 'h', 'o', 'r', 'g', 'r', 'o', 'u', 'n', 'd', 's', '.', 'c', 'o', 'm', '\0', /* "and-stuff.nl", true */ 'a', 'n', 'd', '-', 's', 't', 'u', 'f', 'f', '.', 'n', 'l', '\0', /* "and.com", true */ 'a', 'n', 'd', '.', 'c', 'o', 'm', '\0', + /* "andbraiz.com", true */ 'a', 'n', 'd', 'b', 'r', 'a', 'i', 'z', '.', 'c', 'o', 'm', '\0', /* "anderslind.dk", true */ 'a', 'n', 'd', 'e', 'r', 's', 'l', 'i', 'n', 'd', '.', 'd', 'k', '\0', /* "andre-ballensiefen.de", true */ 'a', 'n', 'd', 'r', 'e', '-', 'b', 'a', 'l', 'l', 'e', 'n', 's', 'i', 'e', 'f', 'e', 'n', '.', 'd', 'e', '\0', /* "andre-otto.com", true */ 'a', 'n', 'd', 'r', 'e', '-', 'o', 't', 't', 'o', '.', 'c', 'o', 'm', '\0', @@ -1011,7 +1013,6 @@ static const char kSTSHostTable[] = { /* "aserver.co", true */ 'a', 's', 'e', 'r', 'v', 'e', 'r', '.', 'c', 'o', '\0', /* "ashleymedway.com", true */ 'a', 's', 'h', 'l', 'e', 'y', 'm', 'e', 'd', 'w', 'a', 'y', '.', 'c', 'o', 'm', '\0', /* "asia.dating", true */ 'a', 's', 'i', 'a', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', - /* "asianodor.com", true */ 'a', 's', 'i', 'a', 'n', 'o', 'd', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "ask.fedoraproject.org", true */ 'a', 's', 'k', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0', /* "ask.stg.fedoraproject.org", true */ 'a', 's', 'k', '.', 's', 't', 'g', '.', 'f', 'e', 'd', 'o', 'r', 'a', 'p', 'r', 'o', 'j', 'e', 'c', 't', '.', 'o', 'r', 'g', '\0', /* "askizzy.org.au", true */ 'a', 's', 'k', 'i', 'z', 'z', 'y', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0', @@ -1033,8 +1034,6 @@ static const char kSTSHostTable[] = { /* "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', /* "astrea-voetbal-groningen.nl", true */ 'a', 's', 't', 'r', 'e', 'a', '-', 'v', 'o', 'e', 't', 'b', 'a', 'l', '-', 'g', 'r', 'o', 'n', 'i', 'n', 'g', 'e', 'n', '.', 'n', 'l', '\0', - /* "asuhe.cc", true */ 'a', 's', 'u', 'h', 'e', '.', 'c', 'c', '\0', - /* "asuhe.win", true */ 'a', 's', 'u', 'h', 'e', '.', 'w', 'i', 'n', '\0', /* "asuhe.xyz", true */ 'a', 's', 'u', 'h', 'e', '.', 'x', 'y', 'z', '\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', @@ -1126,7 +1125,6 @@ static const char kSTSHostTable[] = { /* "autodalmacija.com", true */ 'a', 'u', 't', 'o', 'd', 'a', 'l', 'm', 'a', 'c', 'i', 'j', 'a', '.', 'c', 'o', 'm', '\0', /* "autodeploy.it", true */ 'a', 'u', 't', 'o', 'd', 'e', 'p', 'l', 'o', 'y', '.', 'i', 't', '\0', /* "autoentrepreneurinfo.com", true */ 'a', 'u', 't', 'o', 'e', 'n', 't', 'r', 'e', 'p', 'r', 'e', 'n', 'e', 'u', 'r', 'i', 'n', 'f', 'o', '.', 'c', 'o', 'm', '\0', - /* "autoepc.ro", true */ 'a', 'u', 't', 'o', 'e', 'p', 'c', '.', 'r', 'o', '\0', /* "autoledky.sk", true */ 'a', 'u', 't', 'o', 'l', 'e', 'd', 'k', 'y', '.', 's', 'k', '\0', /* "automacity.com", true */ 'a', 'u', 't', 'o', 'm', 'a', 'c', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "autoosijek.com", true */ 'a', 'u', 't', 'o', 'o', 's', 'i', 'j', 'e', 'k', '.', 'c', 'o', 'm', '\0', @@ -1252,6 +1250,7 @@ static const char kSTSHostTable[] = { /* "bakabt.info", true */ 'b', 'a', 'k', 'a', 'b', 't', '.', 'i', 'n', 'f', 'o', '\0', /* "bakaweb.fr", true */ 'b', 'a', 'k', 'a', 'w', 'e', 'b', '.', 'f', 'r', '\0', /* "balboa.io", true */ 'b', 'a', 'l', 'b', 'o', 'a', '.', 'i', 'o', '\0', + /* "baleares.party", true */ 'b', 'a', 'l', 'e', 'a', 'r', 'e', 's', '.', 'p', 'a', 'r', 't', 'y', '\0', /* "balicekzdravi.cz", true */ 'b', 'a', 'l', 'i', 'c', 'e', 'k', 'z', 'd', 'r', 'a', 'v', 'i', '.', 'c', 'z', '\0', /* "balikonos.cz", true */ 'b', 'a', 'l', 'i', 'k', 'o', 'n', 'o', 's', '.', 'c', 'z', '\0', /* "balist.es", true */ 'b', 'a', 'l', 'i', 's', 't', '.', 'e', 's', '\0', @@ -1295,6 +1294,7 @@ static const char kSTSHostTable[] = { /* "barcodeberlin.com", true */ 'b', 'a', 'r', 'c', 'o', 'd', 'e', 'b', 'e', 'r', 'l', 'i', 'n', '.', 'c', 'o', 'm', '\0', /* "barcoderealty.com", true */ 'b', 'a', 'r', 'c', 'o', 'd', 'e', 'r', 'e', 'a', 'l', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "bardiharborow.com", true */ 'b', 'a', 'r', 'd', 'i', 'h', 'a', 'r', 'b', 'o', 'r', 'o', 'w', '.', 'c', 'o', 'm', '\0', + /* "bardiharborow.tk", true */ 'b', 'a', 'r', 'd', 'i', 'h', 'a', 'r', 'b', 'o', 'r', 'o', 'w', '.', 't', 'k', '\0', /* "barisi.me", true */ 'b', 'a', 'r', 'i', 's', 'i', '.', 'm', 'e', '\0', /* "barkerjr.xyz", true */ 'b', 'a', 'r', 'k', 'e', 'r', 'j', 'r', '.', 'x', 'y', 'z', '\0', /* "barqo.co", true */ 'b', 'a', 'r', 'q', 'o', '.', 'c', 'o', '\0', @@ -1335,6 +1335,7 @@ static const char kSTSHostTable[] = { /* "bazos.cz", true */ 'b', 'a', 'z', 'o', 's', '.', 'c', 'z', '\0', /* "bazos.sk", true */ 'b', 'a', 'z', 'o', 's', '.', 's', 'k', '\0', /* "bb-shiokaze.jp", true */ 'b', 'b', '-', 's', 'h', 'i', 'o', 'k', 'a', 'z', 'e', '.', 'j', 'p', '\0', + /* "bbb1991.me", false */ 'b', 'b', 'b', '1', '9', '9', '1', '.', 'm', 'e', '\0', /* "bbdos.ru", true */ 'b', 'b', 'd', 'o', 's', '.', 'r', 'u', '\0', /* "bblovess.cn", true */ 'b', 'b', 'l', 'o', 'v', 'e', 's', 's', '.', 'c', 'n', '\0', /* "bbnx.net", true */ 'b', 'b', 'n', 'x', '.', 'n', 'e', 't', '\0', @@ -1476,7 +1477,6 @@ static const char kSTSHostTable[] = { /* "betaclean.fr", true */ 'b', 'e', 't', 'a', 'c', 'l', 'e', 'a', 'n', '.', 'f', 'r', '\0', /* "betaworx.de", true */ 'b', 'e', 't', 'a', 'w', 'o', 'r', 'x', '.', 'd', 'e', '\0', /* "betaworx.eu", true */ 'b', 'e', 't', 'a', 'w', 'o', 'r', 'x', '.', 'e', 'u', '\0', - /* "betcafearena.ro", false */ 'b', 'e', 't', 'c', 'a', 'f', 'e', 'a', 'r', 'e', 'n', 'a', '.', 'r', 'o', '\0', /* "betlander.com", true */ 'b', 'e', 't', 'l', 'a', 'n', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "betobaccofree.gov", true */ 'b', 'e', 't', 'o', 'b', 'a', 'c', 'c', 'o', 'f', 'r', 'e', 'e', '.', 'g', 'o', 'v', '\0', /* "betonmoney.com", true */ 'b', 'e', 't', 'o', 'n', 'm', 'o', 'n', 'e', 'y', '.', 'c', 'o', 'm', '\0', @@ -1663,6 +1663,12 @@ static const char kSTSHostTable[] = { /* "bjornjohansen.no", true */ 'b', 'j', 'o', 'r', 'n', 'j', 'o', 'h', 'a', 'n', 's', 'e', 'n', '.', 'n', 'o', '\0', /* "bk-bund-berlin.de", true */ 'b', 'k', '-', 'b', 'u', 'n', 'd', '-', 'b', 'e', 'r', 'l', 'i', 'n', '.', 'd', 'e', '\0', /* "bk99.de", false */ 'b', 'k', '9', '9', '.', 'd', 'e', '\0', + /* "bl4ckb0x.com", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'c', 'o', 'm', '\0', + /* "bl4ckb0x.de", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'd', 'e', '\0', + /* "bl4ckb0x.eu", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'e', 'u', '\0', + /* "bl4ckb0x.info", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'i', 'n', 'f', 'o', '\0', + /* "bl4ckb0x.net", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'n', 'e', 't', '\0', + /* "bl4ckb0x.org", true */ 'b', 'l', '4', 'c', 'k', 'b', '0', 'x', '.', 'o', 'r', 'g', '\0', /* "blablacar.co.uk", true */ 'b', 'l', 'a', 'b', 'l', 'a', 'c', 'a', 'r', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "blablacar.com", true */ 'b', 'l', 'a', 'b', 'l', 'a', 'c', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "blablacar.com.tr", true */ 'b', 'l', 'a', 'b', 'l', 'a', 'c', 'a', 'r', '.', 'c', 'o', 'm', '.', 't', 'r', '\0', @@ -1755,7 +1761,6 @@ static const char kSTSHostTable[] = { /* "bluechilli.com", true */ 'b', 'l', 'u', 'e', 'c', 'h', 'i', 'l', 'l', 'i', '.', 'c', 'o', 'm', '\0', /* "blueflare.org", true */ 'b', 'l', 'u', 'e', 'f', 'l', 'a', 'r', 'e', '.', 'o', 'r', 'g', '\0', /* "bluefuzz.nl", true */ 'b', 'l', 'u', 'e', 'f', 'u', 'z', 'z', '.', 'n', 'l', '\0', - /* "blueimp.net", true */ 'b', 'l', 'u', 'e', 'i', 'm', 'p', '.', 'n', 'e', 't', '\0', /* "bluemoonroleplaying.com", true */ 'b', 'l', 'u', 'e', 'm', 'o', 'o', 'n', 'r', 'o', 'l', 'e', 'p', 'l', 'a', 'y', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "bluemosh.com", true */ 'b', 'l', 'u', 'e', 'm', 'o', 's', 'h', '.', 'c', 'o', 'm', '\0', /* "blueperil.de", true */ 'b', 'l', 'u', 'e', 'p', 'e', 'r', 'i', 'l', '.', 'd', 'e', '\0', @@ -1930,7 +1935,6 @@ static const char kSTSHostTable[] = { /* "brilliantbuilders.co.uk", true */ 'b', 'r', 'i', 'l', 'l', 'i', 'a', 'n', 't', 'b', 'u', 'i', 'l', 'd', 'e', 'r', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "brilliantdecisionmaking.com", true */ 'b', 'r', 'i', 'l', 'l', 'i', 'a', 'n', 't', 'd', 'e', 'c', 'i', 's', 'i', 'o', 'n', 'm', 'a', 'k', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "brinkhu.is", true */ 'b', 'r', 'i', 'n', 'k', 'h', 'u', '.', 'i', 's', '\0', - /* "bristebein.com", true */ 'b', 'r', 'i', 's', 't', 'e', 'b', 'e', 'i', 'n', '.', 'c', 'o', 'm', '\0', /* "britishgroupsg.com", true */ 'b', 'r', 'i', 't', 'i', 's', 'h', 'g', 'r', 'o', 'u', 'p', 's', 'g', '.', 'c', 'o', 'm', '\0', /* "britishscienceweek.org", true */ 'b', 'r', 'i', 't', 'i', 's', 'h', 's', 'c', 'i', 'e', 'n', 'c', 'e', 'w', 'e', 'e', 'k', '.', 'o', 'r', 'g', '\0', /* "britton-photography.com", true */ 'b', 'r', 'i', 't', 't', 'o', 'n', '-', 'p', 'h', 'o', 't', 'o', 'g', 'r', 'a', 'p', 'h', 'y', '.', 'c', 'o', 'm', '\0', @@ -2052,7 +2056,6 @@ static const char kSTSHostTable[] = { /* "burtrum.name", true */ 'b', 'u', 'r', 't', 'r', 'u', 'm', '.', 'n', 'a', 'm', 'e', '\0', /* "burtrum.org", true */ 'b', 'u', 'r', 't', 'r', 'u', 'm', '.', 'o', 'r', 'g', '\0', /* "burzmali.com", true */ 'b', 'u', 'r', 'z', 'm', 'a', 'l', 'i', '.', 'c', 'o', 'm', '\0', - /* "busindre.com", true */ 'b', 'u', 's', 'i', 'n', 'd', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "business.facebook.com", false */ 'b', 'u', 's', 'i', 'n', 'e', 's', 's', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0', /* "business.medbank.com.mt", true */ 'b', 'u', 's', 'i', 'n', 'e', 's', 's', '.', 'm', 'e', 'd', 'b', 'a', 'n', 'k', '.', 'c', 'o', 'm', '.', 'm', 't', '\0', /* "businessesdirectory.eu", true */ 'b', 'u', 's', 'i', 'n', 'e', 's', 's', 'e', 's', 'd', 'i', 'r', 'e', 'c', 't', 'o', 'r', 'y', '.', 'e', 'u', '\0', @@ -2117,6 +2120,7 @@ static const char kSTSHostTable[] = { /* "byteshark.org", true */ 'b', 'y', 't', 'e', 's', 'h', 'a', 'r', 'k', '.', 'o', 'r', 'g', '\0', /* "bytesofcode.de", true */ 'b', 'y', 't', 'e', 's', 'o', 'f', 'c', 'o', 'd', 'e', '.', 'd', 'e', '\0', /* "bytesunlimited.com", true */ 'b', 'y', 't', 'e', 's', 'u', 'n', 'l', 'i', 'm', 'i', 't', 'e', 'd', '.', 'c', 'o', 'm', '\0', + /* "bytesystems.com", true */ 'b', 'y', 't', 'e', 's', 'y', 's', 't', 'e', 'm', 's', '.', 'c', 'o', 'm', '\0', /* "byteturtle.eu", true */ 'b', 'y', 't', 'e', 't', 'u', 'r', 't', 'l', 'e', '.', 'e', 'u', '\0', /* "bythisverse.com", true */ 'b', 'y', 't', 'h', 'i', 's', 'v', 'e', 'r', 's', 'e', '.', 'c', 'o', 'm', '\0', /* "bziaks.xyz", true */ 'b', 'z', 'i', 'a', 'k', 's', '.', 'x', 'y', 'z', '\0', @@ -2714,6 +2718,7 @@ static const char kSTSHostTable[] = { /* "cncn.us", true */ 'c', 'n', 'c', 'n', '.', 'u', 's', '\0', /* "cnlic.com", true */ 'c', 'n', 'l', 'i', 'c', '.', 'c', 'o', 'm', '\0', /* "cnwage.com", true */ 'c', 'n', 'w', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0', + /* "cnwarn.com", true */ 'c', 'n', 'w', 'a', 'r', 'n', '.', 'c', 'o', 'm', '\0', /* "co.search.yahoo.com", false */ 'c', 'o', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0', /* "coachingconsultancy.com", true */ 'c', 'o', 'a', 'c', 'h', 'i', 'n', 'g', 'c', 'o', 'n', 's', 'u', 'l', 't', 'a', 'n', 'c', 'y', '.', 'c', 'o', 'm', '\0', /* "coalpointcottage.com", true */ 'c', 'o', 'a', 'l', 'p', 'o', 'i', 'n', 't', 'c', 'o', 't', 't', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0', @@ -2750,9 +2755,10 @@ 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", true */ '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', + /* "codereview.chromium.org", true */ 'c', 'o', 'd', 'e', 'r', 'e', 'v', 'i', 'e', 'w', '.', 'c', 'h', 'r', 'o', 'm', 'i', 'u', 'm', '.', 'o', 'r', 'g', '\0', /* "coderhangout.com", true */ 'c', 'o', 'd', 'e', 'r', 'h', 'a', 'n', 'g', 'o', 'u', 't', '.', 'c', 'o', 'm', '\0', /* "codesport.io", true */ 'c', 'o', 'd', 'e', 's', 'p', 'o', 'r', 't', '.', 'i', 'o', '\0', /* "codeux.com", true */ 'c', 'o', 'd', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0', @@ -2792,7 +2798,6 @@ static const char kSTSHostTable[] = { /* "colengo.com", true */ 'c', 'o', 'l', 'e', 'n', 'g', 'o', '.', 'c', 'o', 'm', '\0', /* "colinchartier.com", true */ 'c', 'o', 'l', 'i', 'n', 'c', 'h', 'a', 'r', 't', 'i', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "colinstark.ca", true */ 'c', 'o', 'l', 'i', 'n', 's', 't', 'a', 'r', 'k', '.', 'c', 'a', '\0', - /* "colinwolff.com", true */ 'c', 'o', 'l', 'i', 'n', 'w', 'o', 'l', 'f', 'f', '.', 'c', 'o', 'm', '\0', /* "collabornation.net", true */ 'c', 'o', 'l', 'l', 'a', 'b', 'o', 'r', 'n', 'a', 't', 'i', 'o', 'n', '.', 'n', 'e', 't', '\0', /* "collabra.email", true */ 'c', 'o', 'l', 'l', 'a', 'b', 'r', 'a', '.', 'e', 'm', 'a', 'i', 'l', '\0', /* "collaction.hk", true */ 'c', 'o', 'l', 'l', 'a', 'c', 't', 'i', 'o', 'n', '.', 'h', 'k', '\0', @@ -2881,6 +2886,7 @@ static const char kSTSHostTable[] = { /* "connectum.eu", true */ 'c', 'o', 'n', 'n', 'e', 'c', 't', 'u', 'm', '.', 'e', 'u', '\0', /* "connext.de", true */ 'c', 'o', 'n', 'n', 'e', 'x', 't', '.', 'd', 'e', '\0', /* "connyduck.at", true */ 'c', 'o', 'n', 'n', 'y', 'd', 'u', 'c', 'k', '.', 'a', 't', '\0', + /* "conrad-kostecki.de", true */ 'c', 'o', 'n', 'r', 'a', 'd', '-', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "consciousbrand.co", true */ 'c', 'o', 'n', 's', 'c', 'i', 'o', 'u', 's', 'b', 'r', 'a', 'n', 'd', '.', 'c', 'o', '\0', /* "consciousbrand.org.au", true */ 'c', 'o', 'n', 's', 'c', 'i', 'o', 'u', 's', 'b', 'r', 'a', 'n', 'd', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0', /* "consciousbranding.org.au", true */ 'c', 'o', 'n', 's', 'c', 'i', 'o', 'u', 's', 'b', 'r', 'a', 'n', 'd', 'i', 'n', 'g', '.', 'o', 'r', 'g', '.', 'a', 'u', '\0', @@ -2920,7 +2926,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', @@ -3048,6 +3053,7 @@ static const char kSTSHostTable[] = { /* "crosscom.ch", true */ 'c', 'r', 'o', 's', 's', 'c', 'o', 'm', '.', 'c', 'h', '\0', /* "crossfitblackwater.com", true */ 'c', 'r', 'o', 's', 's', 'f', 'i', 't', 'b', 'l', 'a', 'c', 'k', 'w', 'a', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "crosssellguide.com", true */ 'c', 'r', 'o', 's', 's', 's', 'e', 'l', 'l', 'g', 'u', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0', + /* "crow.tw", true */ 'c', 'r', 'o', 'w', '.', 't', 'w', '\0', /* "crowdsupply.com", true */ 'c', 'r', 'o', 'w', 'd', 's', 'u', 'p', 'p', 'l', 'y', '.', 'c', 'o', 'm', '\0', /* "crownruler.com", true */ 'c', 'r', 'o', 'w', 'n', 'r', 'u', 'l', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "crrev.com", true */ 'c', 'r', 'r', 'e', 'v', '.', 'c', 'o', 'm', '\0', @@ -3180,14 +3186,12 @@ static const char kSTSHostTable[] = { /* "cvtparking.co.uk", true */ 'c', 'v', 't', 'p', 'a', 'r', 'k', 'i', 'n', 'g', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "cvursache.com", true */ 'c', 'v', 'u', 'r', 's', 'a', 'c', 'h', 'e', '.', 'c', 'o', 'm', '\0', /* "cvv.cn", true */ 'c', 'v', 'v', '.', 'c', 'n', '\0', - /* "cwage.com", true */ 'c', 'w', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0', /* "cwagner.me", true */ 'c', 'w', 'a', 'g', 'n', 'e', 'r', '.', 'm', 'e', '\0', /* "cyber-konzept.de", true */ 'c', 'y', 'b', 'e', 'r', '-', 'k', 'o', 'n', 'z', 'e', 'p', 't', '.', 'd', 'e', '\0', /* "cyberfrancais.ro", true */ 'c', 'y', 'b', 'e', 'r', 'f', 'r', 'a', 'n', 'c', 'a', 'i', 's', '.', 'r', 'o', '\0', /* "cyberguerrilla.info", true */ 'c', 'y', 'b', 'e', 'r', 'g', 'u', 'e', 'r', 'r', 'i', 'l', 'l', 'a', '.', 'i', 'n', 'f', 'o', '\0', /* "cyberguerrilla.org", true */ 'c', 'y', 'b', 'e', 'r', 'g', 'u', 'e', 'r', 'r', 'i', 'l', 'l', 'a', '.', 'o', 'r', 'g', '\0', /* "cyberhouse.at", false */ 'c', 'y', 'b', 'e', 'r', 'h', 'o', 'u', 's', 'e', '.', 'a', 't', '\0', - /* "cyberianhusky.com", true */ 'c', 'y', 'b', 'e', 'r', 'i', 'a', 'n', 'h', 'u', 's', 'k', 'y', '.', 'c', 'o', 'm', '\0', /* "cyberkov.com", true */ 'c', 'y', 'b', 'e', 'r', 'k', 'o', 'v', '.', 'c', 'o', 'm', '\0', /* "cyberlab.kiev.ua", true */ 'c', 'y', 'b', 'e', 'r', 'l', 'a', 'b', '.', 'k', 'i', 'e', 'v', '.', 'u', 'a', '\0', /* "cyberoptic.de", true */ 'c', 'y', 'b', 'e', 'r', 'o', 'p', 't', 'i', 'c', '.', 'd', 'e', '\0', @@ -3274,7 +3278,6 @@ static const char kSTSHostTable[] = { /* "daniel-baumann.ch", true */ 'd', 'a', 'n', 'i', 'e', 'l', '-', 'b', 'a', 'u', 'm', 'a', 'n', 'n', '.', 'c', 'h', '\0', /* "daniel-ruf.de", true */ 'd', 'a', 'n', 'i', 'e', 'l', '-', 'r', 'u', 'f', '.', 'd', 'e', '\0', /* "daniel-seifert.com", true */ 'd', 'a', 'n', 'i', 'e', 'l', '-', 's', 'e', 'i', 'f', 'e', 'r', 't', '.', 'c', 'o', 'm', '\0', - /* "daniel-steuer.de", true */ 'd', 'a', 'n', 'i', 'e', 'l', '-', 's', 't', 'e', 'u', 'e', 'r', '.', 'd', 'e', '\0', /* "danielalvarez.net", true */ 'd', 'a', 'n', 'i', 'e', 'l', 'a', 'l', 'v', 'a', 'r', 'e', 'z', '.', 'n', 'e', 't', '\0', /* "danielheal.net", true */ 'd', 'a', 'n', 'i', 'e', 'l', 'h', 'e', 'a', 'l', '.', 'n', 'e', 't', '\0', /* "danielhochleitner.de", true */ 'd', 'a', 'n', 'i', 'e', 'l', 'h', 'o', 'c', 'h', 'l', 'e', 'i', 't', 'n', 'e', 'r', '.', 'd', 'e', '\0', @@ -3388,6 +3391,7 @@ static const char kSTSHostTable[] = { /* "davisroi.com", true */ 'd', 'a', 'v', 'i', 's', 'r', 'o', 'i', '.', 'c', 'o', 'm', '\0', /* "dawson-floridavilla.co.uk", true */ 'd', 'a', 'w', 's', 'o', 'n', '-', 'f', 'l', 'o', 'r', 'i', 'd', 'a', 'v', 'i', 'l', 'l', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "daylightpirates.org", true */ 'd', 'a', 'y', 'l', 'i', 'g', 'h', 't', 'p', 'i', 'r', 'a', 't', 'e', 's', '.', 'o', 'r', 'g', '\0', + /* "dayman.net", false */ 'd', 'a', 'y', 'm', 'a', 'n', '.', 'n', 'e', 't', '\0', /* "daysoftheyear.com", true */ 'd', 'a', 'y', 's', 'o', 'f', 't', 'h', 'e', 'y', 'e', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "db-sanity.com", true */ 'd', 'b', '-', 's', 'a', 'n', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "db-works.nl", true */ 'd', 'b', '-', 'w', 'o', 'r', 'k', 's', '.', 'n', 'l', '\0', @@ -3544,7 +3548,6 @@ static const char kSTSHostTable[] = { /* "derreichesack.com", true */ 'd', 'e', 'r', 'r', 'e', 'i', 'c', 'h', 'e', 's', 'a', 'c', 'k', '.', 'c', 'o', 'm', '\0', /* "dersoundhunter.de", true */ 'd', 'e', 'r', 's', 'o', 'u', 'n', 'd', 'h', 'u', 'n', 't', 'e', 'r', '.', 'd', 'e', '\0', /* "designed-cybersecurity.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 'e', 'd', '-', 'c', 'y', 'b', 'e', 'r', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', - /* "designgears.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 'g', 'e', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "designhotel-kronjuwel.de", true */ 'd', 'e', 's', 'i', 'g', 'n', 'h', 'o', 't', 'e', 'l', '-', 'k', 'r', 'o', 'n', 'j', 'u', 'w', 'e', 'l', '.', 'd', 'e', '\0', /* "designpilot.ch", true */ 'd', 'e', 's', 'i', 'g', 'n', 'p', 'i', 'l', 'o', 't', '.', 'c', 'h', '\0', /* "designsbyjanith.com", true */ 'd', 'e', 's', 'i', 'g', 'n', 's', 'b', 'y', 'j', 'a', 'n', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0', @@ -3578,7 +3581,6 @@ static const char kSTSHostTable[] = { /* "devcu.com", true */ 'd', 'e', 'v', 'c', 'u', '.', 'c', 'o', 'm', '\0', /* "devdesco.com", true */ 'd', 'e', 'v', 'd', 'e', 's', 'c', 'o', '.', 'c', 'o', 'm', '\0', /* "devdom.io", true */ 'd', 'e', 'v', 'd', 'o', 'm', '.', 'i', 'o', '\0', - /* "devdoodle.net", true */ 'd', 'e', 'v', 'd', 'o', 'o', 'd', 'l', 'e', '.', 'n', 'e', 't', '\0', /* "developer.mydigipass.com", false */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', '.', 'm', 'y', 'd', 'i', 'g', 'i', 'p', 'a', 's', 's', '.', 'c', 'o', 'm', '\0', /* "developerfair.com", true */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 'f', 'a', 'i', 'r', '.', 'c', 'o', 'm', '\0', /* "developers.facebook.com", false */ 'd', 'e', 'v', 'e', 'l', 'o', 'p', 'e', 'r', 's', '.', 'f', 'a', 'c', 'e', 'b', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0', @@ -3708,6 +3710,7 @@ static const char kSTSHostTable[] = { /* "dimanss47.net", true */ 'd', 'i', 'm', 'a', 'n', 's', 's', '4', '7', '.', 'n', 'e', 't', '\0', /* "dime-staging.com", true */ 'd', 'i', 'm', 'e', '-', 's', 't', 'a', 'g', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "dime.io", true */ 'd', 'i', 'm', 'e', '.', 'i', 'o', '\0', + /* "dimonb.com", true */ 'd', 'i', 'm', 'o', 'n', 'b', '.', 'c', 'o', 'm', '\0', /* "dinepont.fr", true */ 'd', 'i', 'n', 'e', 'p', 'o', 'n', 't', '.', 'f', 'r', '\0', /* "dinge.xyz", true */ 'd', 'i', 'n', 'g', 'e', '.', 'x', 'y', 'z', '\0', /* "dingss.com", true */ 'd', 'i', 'n', 'g', 's', 's', '.', 'c', 'o', 'm', '\0', @@ -3897,7 +3900,6 @@ static const char kSTSHostTable[] = { /* "dotacni-parazit.cz", true */ 'd', 'o', 't', 'a', 'c', 'n', 'i', '-', 'p', 'a', 'r', 'a', 'z', 'i', 't', '.', 'c', 'z', '\0', /* "dotbigbang.com", true */ 'd', 'o', 't', 'b', 'i', 'g', 'b', 'a', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "dotbox.org", true */ 'd', 'o', 't', 'b', 'o', 'x', '.', 'o', 'r', 'g', '\0', - /* "dothebangthingsalon.com", true */ 'd', 'o', 't', 'h', 'e', 'b', 'a', 'n', 'g', 't', 'h', 'i', 'n', 'g', 's', 'a', 'l', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "dotkod.com", true */ 'd', 'o', 't', 'k', 'o', 'd', '.', 'c', 'o', 'm', '\0', /* "dotkod.pl", true */ 'd', 'o', 't', 'k', 'o', 'd', '.', 'p', 'l', '\0', /* "dotphoto.com", true */ 'd', 'o', 't', 'p', 'h', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0', @@ -3946,7 +3948,6 @@ static const char kSTSHostTable[] = { /* "dreamlinehost.com", false */ 'd', 'r', 'e', 'a', 'm', 'l', 'i', 'n', 'e', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0', /* "dreamsforabetterworld.com.au", true */ 'd', 'r', 'e', 'a', 'm', 's', 'f', 'o', 'r', 'a', 'b', 'e', 't', 't', 'e', 'r', 'w', 'o', 'r', 'l', 'd', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0', /* "dreamtechie.com", true */ 'd', 'r', 'e', 'a', 'm', 't', 'e', 'c', 'h', 'i', 'e', '.', 'c', 'o', 'm', '\0', - /* "dredgepress.com", true */ 'd', 'r', 'e', 'd', 'g', 'e', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0', /* "dreid.org", true */ 'd', 'r', 'e', 'i', 'd', '.', 'o', 'r', 'g', '\0', /* "dreizwosechs.de", true */ 'd', 'r', 'e', 'i', 'z', 'w', 'o', 's', 'e', 'c', 'h', 's', '.', 'd', 'e', '\0', /* "dress-cons.com", true */ 'd', 'r', 'e', 's', 's', '-', 'c', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0', @@ -4029,7 +4030,6 @@ static const char kSTSHostTable[] = { /* "duncanwinfrey.com", true */ 'd', 'u', 'n', 'c', 'a', 'n', 'w', 'i', 'n', 'f', 'r', 'e', 'y', '.', 'c', 'o', 'm', '\0', /* "dune.io", true */ 'd', 'u', 'n', 'e', '.', 'i', 'o', '\0', /* "dunea.nl", true */ 'd', 'u', 'n', 'e', 'a', '.', 'n', 'l', '\0', - /* "dungi.org", true */ 'd', 'u', 'n', 'g', 'i', '.', 'o', 'r', 'g', '\0', /* "duo.money", true */ 'd', 'u', 'o', '.', 'm', 'o', 'n', 'e', 'y', '\0', /* "duoluodeyu.com", true */ 'd', 'u', 'o', 'l', 'u', 'o', 'd', 'e', 'y', 'u', '.', 'c', 'o', 'm', '\0', /* "dupree.co", true */ 'd', 'u', 'p', 'r', 'e', 'e', '.', 'c', 'o', '\0', @@ -4064,7 +4064,7 @@ static const char kSTSHostTable[] = { /* "dyrenesverden.no", true */ 'd', 'y', 'r', 'e', 'n', 'e', 's', 'v', 'e', 'r', 'd', 'e', 'n', '.', 'n', 'o', '\0', /* "dyrkar.com", true */ 'd', 'y', 'r', 'k', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "dziekonski.com", true */ 'd', 'z', 'i', 'e', 'k', 'o', 'n', 's', 'k', 'i', '.', 'c', 'o', 'm', '\0', - /* "dzndk.net", true */ 'd', 'z', 'n', 'd', 'k', '.', 'n', 'e', 't', '\0', + /* "dzndk.com", true */ 'd', 'z', 'n', 'd', 'k', '.', 'c', 'o', 'm', '\0', /* "dzyabchenko.com", true */ 'd', 'z', 'y', 'a', 'b', 'c', 'h', 'e', 'n', 'k', 'o', '.', 'c', 'o', 'm', '\0', /* "e-aut.net", true */ 'e', '-', 'a', 'u', 't', '.', 'n', 'e', 't', '\0', /* "e-biografias.net", true */ 'e', '-', 'b', 'i', 'o', 'g', 'r', 'a', 'f', 'i', 'a', 's', '.', 'n', 'e', 't', '\0', @@ -4152,7 +4152,6 @@ static const char kSTSHostTable[] = { /* "ecotruck-pooling.com", true */ 'e', 'c', 'o', 't', 'r', 'u', 'c', 'k', '-', 'p', 'o', 'o', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\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', @@ -4210,6 +4209,7 @@ static const char kSTSHostTable[] = { /* "eenhoorn.ga", true */ 'e', 'e', 'n', 'h', 'o', 'o', 'r', 'n', '.', 'g', 'a', '\0', /* "eeqj.com", true */ 'e', 'e', 'q', 'j', '.', 'c', 'o', 'm', '\0', /* "eery.de", true */ 'e', 'e', 'r', 'y', '.', 'd', 'e', '\0', + /* "eewna.org", false */ 'e', 'e', 'w', 'n', 'a', '.', 'o', 'r', 'g', '\0', /* "ef.gy", true */ 'e', 'f', '.', 'g', 'y', '\0', /* "eff.org", true */ 'e', 'f', 'f', '.', 'o', 'r', 'g', '\0', /* "effectiveosgi.com", true */ 'e', 'f', 'f', 'e', 'c', 't', 'i', 'v', 'e', 'o', 's', 'g', 'i', '.', 'c', 'o', 'm', '\0', @@ -4253,6 +4253,7 @@ static const char kSTSHostTable[] = { /* "ekedc.com", true */ 'e', 'k', 'e', 'd', 'c', '.', 'c', 'o', 'm', '\0', /* "ekodevices.com", true */ 'e', 'k', 'o', 'd', 'e', 'v', 'i', 'c', 'e', 's', '.', 'c', 'o', 'm', '\0', /* "ekokontakt.cz", true */ 'e', 'k', 'o', 'k', 'o', 'n', 't', 'a', 'k', 't', '.', 'c', 'z', '\0', + /* "ekostecki.de", true */ 'e', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "eksik.com", true */ 'e', 'k', 's', 'i', 'k', '.', 'c', 'o', 'm', '\0', /* "eksisozluk.com", true */ 'e', 'k', 's', 'i', 's', 'o', 'z', 'l', 'u', 'k', '.', 'c', 'o', 'm', '\0', /* "ekzarta.ru", true */ 'e', 'k', 'z', 'a', 'r', 't', 'a', '.', 'r', 'u', '\0', @@ -4275,6 +4276,7 @@ static const char kSTSHostTable[] = { /* "elefantevoador.com", true */ 'e', 'l', 'e', 'f', 'a', 'n', 't', 'e', 'v', 'o', 'a', 'd', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "eleicoes2016.com.br", true */ 'e', 'l', 'e', 'i', 'c', 'o', 'e', 's', '2', '0', '1', '6', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "elektro-koehl.de", true */ 'e', 'l', 'e', 'k', 't', 'r', 'o', '-', 'k', 'o', 'e', 'h', 'l', '.', 'd', 'e', '\0', + /* "elektronring.com", true */ 'e', 'l', 'e', 'k', 't', 'r', 'o', 'n', 'r', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "elektropost.org", true */ 'e', 'l', 'e', 'k', 't', 'r', 'o', 'p', 'o', 's', 't', '.', 'o', 'r', 'g', '\0', /* "element-43.com", true */ 'e', 'l', 'e', 'm', 'e', 'n', 't', '-', '4', '3', '.', 'c', 'o', 'm', '\0', /* "elemental.software", true */ 'e', 'l', 'e', 'm', 'e', 'n', 't', 'a', 'l', '.', 's', 'o', 'f', 't', 'w', 'a', 'r', 'e', '\0', @@ -4293,7 +4295,9 @@ static const char kSTSHostTable[] = { /* "eliolita.com", true */ 'e', 'l', 'i', 'o', 'l', 'i', 't', 'a', '.', 'c', 'o', 'm', '\0', /* "eliott.be", false */ 'e', 'l', 'i', 'o', 't', 't', '.', 'b', 'e', '\0', /* "elisa.ee", false */ 'e', 'l', 'i', 's', 'a', '.', 'e', 'e', '\0', + /* "elisabeth-kostecki.de", true */ 'e', 'l', 'i', 's', 'a', 'b', 'e', 't', 'h', '-', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "elisabeth-strunz.de", true */ 'e', 'l', 'i', 's', 'a', 'b', 'e', 't', 'h', '-', 's', 't', 'r', 'u', 'n', 'z', '.', 'd', 'e', '\0', + /* "elisabethkostecki.de", true */ 'e', 'l', 'i', 's', 'a', 'b', 'e', 't', 'h', 'k', 'o', 's', 't', 'e', 'c', 'k', 'i', '.', 'd', 'e', '\0', /* "elite-porno.ru", true */ 'e', 'l', 'i', 't', 'e', '-', 'p', 'o', 'r', 'n', 'o', '.', 'r', 'u', '\0', /* "elite12.de", true */ 'e', 'l', 'i', 't', 'e', '1', '2', '.', 'd', 'e', '\0', /* "elitegameservers.net", true */ 'e', 'l', 'i', 't', 'e', 'g', 'a', 'm', 'e', 's', 'e', 'r', 'v', 'e', 'r', 's', '.', 'n', 'e', 't', '\0', @@ -4433,7 +4437,7 @@ static const char kSTSHostTable[] = { /* "epicwalnutcreek.com", true */ 'e', 'p', 'i', 'c', 'w', 'a', 'l', 'n', 'u', 't', 'c', 'r', 'e', 'e', 'k', '.', 'c', 'o', 'm', '\0', /* "epizentrum.work", true */ 'e', 'p', 'i', 'z', 'e', 'n', 't', 'r', 'u', 'm', '.', 'w', 'o', 'r', 'k', '\0', /* "epizentrum.works", true */ 'e', 'p', 'i', 'z', 'e', 'n', 't', 'r', 'u', 'm', '.', 'w', 'o', 'r', 'k', 's', '\0', - /* "epoch.com", true */ 'e', 'p', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\0', + /* "epoch.com", false */ 'e', 'p', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\0', /* "epostplus.li", true */ 'e', 'p', 'o', 's', 't', 'p', 'l', 'u', 's', '.', 'l', 'i', '\0', /* "epsilon.dk", true */ 'e', 'p', 's', 'i', 'l', 'o', 'n', '.', 'd', 'k', '\0', /* "epublibre.org", true */ 'e', 'p', 'u', 'b', 'l', 'i', 'b', 'r', 'e', '.', 'o', 'r', 'g', '\0', @@ -4765,8 +4769,6 @@ static const char kSTSHostTable[] = { /* "faretravel.co.uk", true */ 'f', 'a', 'r', 'e', 't', 'r', 'a', 'v', 'e', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "farfetchos.com", true */ 'f', 'a', 'r', 'f', 'e', 't', 'c', 'h', 'o', 's', '.', 'c', 'o', 'm', '\0', /* "fargtorget.se", true */ 'f', 'a', 'r', 'g', 't', 'o', 'r', 'g', 'e', 't', '.', 's', 'e', '\0', - /* "farhadexchange.com", true */ 'f', 'a', 'r', 'h', 'a', 'd', 'e', 'x', 'c', 'h', 'a', 'n', 'g', 'e', '.', 'c', 'o', 'm', '\0', - /* "farhood.org", true */ 'f', 'a', 'r', 'h', 'o', 'o', 'd', '.', 'o', 'r', 'g', '\0', /* "farmacia.pt", true */ 'f', 'a', 'r', 'm', 'a', 'c', 'i', 'a', '.', 'p', 't', '\0', /* "farmacialaboratorio.it", true */ 'f', 'a', 'r', 'm', 'a', 'c', 'i', 'a', 'l', 'a', 'b', 'o', 'r', 'a', 't', 'o', 'r', 'i', 'o', '.', 'i', 't', '\0', /* "farmer.dating", true */ 'f', 'a', 'r', 'm', 'e', 'r', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', @@ -5008,7 +5010,6 @@ static const char kSTSHostTable[] = { /* "floskelwolke.de", true */ 'f', 'l', 'o', 's', 'k', 'e', 'l', 'w', 'o', 'l', 'k', 'e', '.', 'd', 'e', '\0', /* "floth.at", true */ 'f', 'l', 'o', 't', 'h', '.', 'a', 't', '\0', /* "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', /* "flucky.xyz", true */ 'f', 'l', 'u', 'c', 'k', 'y', '.', 'x', 'y', 'z', '\0', @@ -5109,9 +5110,6 @@ static const char kSTSHostTable[] = { /* "foxbnc.co.uk", true */ 'f', 'o', 'x', 'b', 'n', 'c', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "foxdev.co", true */ 'f', 'o', 'x', 'd', 'e', 'v', '.', 'c', 'o', '\0', /* "foxhound.com.br", true */ 'f', 'o', 'x', 'h', 'o', 'u', 'n', 'd', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', - /* "foxley-farm.co.uk", true */ 'f', 'o', 'x', 'l', 'e', 'y', '-', 'f', 'a', 'r', 'm', '.', 'c', 'o', '.', 'u', 'k', '\0', - /* "foxley-seeds.co.uk", true */ 'f', 'o', 'x', 'l', 'e', 'y', '-', 's', 'e', 'e', 'd', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', - /* "foxleyseeds.co.uk", true */ 'f', 'o', 'x', 'l', 'e', 'y', 's', 'e', 'e', 'd', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "foxontheinter.net", true */ 'f', 'o', 'x', 'o', 'n', 't', 'h', 'e', 'i', 'n', 't', 'e', 'r', '.', 'n', 'e', 't', '\0', /* "foxterrier.com.br", true */ 'f', 'o', 'x', 't', 'e', 'r', 'r', 'i', 'e', 'r', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "fpc.gov", false */ 'f', 'p', 'c', '.', 'g', 'o', 'v', '\0', @@ -5180,7 +5178,6 @@ static const char kSTSHostTable[] = { /* "fresh.co.il", true */ 'f', 'r', 'e', 's', 'h', '.', 'c', 'o', '.', 'i', 'l', '\0', /* "freshdns.nl", true */ 'f', 'r', 'e', 's', 'h', 'd', 'n', 's', '.', 'n', 'l', '\0', /* "freshempire.gov", true */ 'f', 'r', 'e', 's', 'h', 'e', 'm', 'p', 'i', 'r', 'e', '.', 'g', 'o', 'v', '\0', - /* "freshlymind.com", true */ 'f', 'r', 'e', 's', 'h', 'l', 'y', 'm', 'i', 'n', 'd', '.', 'c', 'o', 'm', '\0', /* "fretscha.com", true */ 'f', 'r', 'e', 't', 's', 'c', 'h', 'a', '.', 'c', 'o', 'm', '\0', /* "fretworksec.com", true */ 'f', 'r', 'e', 't', 'w', 'o', 'r', 'k', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0', /* "frickelboxx.de", true */ 'f', 'r', 'i', 'c', 'k', 'e', 'l', 'b', 'o', 'x', 'x', '.', 'd', 'e', '\0', @@ -5230,7 +5227,6 @@ static const char kSTSHostTable[] = { /* "ftccomplaintassistant.gov", true */ 'f', 't', 'c', 'c', 'o', 'm', 'p', 'l', 'a', 'i', 'n', 't', 'a', 's', 's', 'i', 's', 't', 'a', 'n', 't', '.', 'g', 'o', 'v', '\0', /* "fteproxy.org", true */ 'f', 't', 'e', 'p', 'r', 'o', 'x', 'y', '.', 'o', 'r', 'g', '\0', /* "ftrsecure.com", true */ 'f', 't', 'r', 's', 'e', 'c', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0', - /* "fuckav.ru", true */ 'f', 'u', 'c', 'k', 'a', 'v', '.', 'r', 'u', '\0', /* "fuechschen.org", true */ 'f', 'u', 'e', 'c', 'h', 's', 'c', 'h', 'e', 'n', '.', 'o', 'r', 'g', '\0', /* "fugle.de", true */ 'f', 'u', 'g', 'l', 'e', '.', 'd', 'e', '\0', /* "fuglede.dk", true */ 'f', 'u', 'g', 'l', 'e', 'd', 'e', '.', 'd', 'k', '\0', @@ -5487,7 +5483,6 @@ static const char kSTSHostTable[] = { /* "geterp.ru", true */ 'g', 'e', 't', 'e', 'r', 'p', '.', 'r', 'u', '\0', /* "getfedora.org", true */ 'g', 'e', 't', 'f', 'e', 'd', 'o', 'r', 'a', '.', 'o', 'r', 'g', '\0', /* "getfestify.com", true */ 'g', 'e', 't', 'f', 'e', 's', 't', 'i', 'f', 'y', '.', 'c', 'o', 'm', '\0', - /* "getfirepress.com", true */ 'g', 'e', 't', 'f', 'i', 'r', 'e', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0', /* "getfittedstore.com", true */ 'g', 'e', 't', 'f', 'i', 't', 't', 'e', 'd', 's', 't', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "getflorence.co.uk", true */ 'g', 'e', 't', 'f', 'l', 'o', 'r', 'e', 'n', 'c', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "gethttpsforfree.com", true */ 'g', 'e', 't', 'h', 't', 't', 'p', 's', 'f', 'o', 'r', 'f', 'r', 'e', 'e', '.', 'c', 'o', 'm', '\0', @@ -5542,7 +5537,6 @@ static const char kSTSHostTable[] = { /* "gigawa.lt", true */ 'g', 'i', 'g', 'a', 'w', 'a', '.', 'l', 't', '\0', /* "gijsbertus.com", true */ 'g', 'i', 'j', 's', 'b', 'e', 'r', 't', 'u', 's', '.', 'c', 'o', 'm', '\0', /* "gilcloud.com", true */ 'g', 'i', 'l', 'c', 'l', 'o', 'u', 'd', '.', 'c', 'o', 'm', '\0', - /* "gilgaz.com", true */ 'g', 'i', 'l', 'g', 'a', 'z', '.', 'c', 'o', 'm', '\0', /* "gillet-cros.fr", true */ 'g', 'i', 'l', 'l', 'e', 't', '-', 'c', 'r', 'o', 's', '.', 'f', 'r', '\0', /* "gillmanandsoame.co.uk", true */ 'g', 'i', 'l', 'l', 'm', 'a', 'n', 'a', 'n', 'd', 's', 'o', 'a', 'm', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "gilroywestwood.org", true */ 'g', 'i', 'l', 'r', 'o', 'y', 'w', 'e', 's', 't', 'w', 'o', 'o', 'd', '.', 'o', 'r', 'g', '\0', @@ -5570,7 +5564,6 @@ static const char kSTSHostTable[] = { /* "gj-bochum.de", true */ 'g', 'j', '-', 'b', 'o', 'c', 'h', 'u', 'm', '.', 'd', 'e', '\0', /* "gjcampbell.co.uk", true */ 'g', 'j', 'c', 'a', 'm', 'p', 'b', 'e', 'l', 'l', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "gjspunk.de", false */ 'g', 'j', 's', 'p', 'u', 'n', 'k', '.', 'd', 'e', '\0', - /* "gjung.com", false */ 'g', 'j', 'u', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "glamguru.co.il", true */ 'g', 'l', 'a', 'm', 'g', 'u', 'r', 'u', '.', 'c', 'o', '.', 'i', 'l', '\0', /* "glamguru.world", true */ 'g', 'l', 'a', 'm', 'g', 'u', 'r', 'u', '.', 'w', 'o', 'r', 'l', 'd', '\0', /* "glasen-hardt.de", true */ 'g', 'l', 'a', 's', 'e', 'n', '-', 'h', 'a', 'r', 'd', 't', '.', 'd', 'e', '\0', @@ -5688,7 +5681,6 @@ static const char kSTSHostTable[] = { /* "gplintegratedit.com", true */ 'g', 'p', 'l', 'i', 'n', 't', 'e', 'g', 'r', 'a', 't', 'e', 'd', 'i', 't', '.', 'c', 'o', 'm', '\0', /* "gpo.gov", false */ 'g', 'p', 'o', '.', 'g', 'o', 'v', '\0', /* "gprs.uk.com", true */ 'g', 'p', 'r', 's', '.', 'u', 'k', '.', 'c', 'o', 'm', '\0', - /* "gps.com.br", true */ 'g', 'p', 's', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "gpsvideocanada.com", true */ 'g', 'p', 's', 'v', 'i', 'd', 'e', 'o', 'c', 'a', 'n', 'a', 'd', 'a', '.', 'c', 'o', 'm', '\0', /* "gr.search.yahoo.com", false */ 'g', 'r', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0', /* "gra2.com", true */ 'g', 'r', 'a', '2', '.', 'c', 'o', 'm', '\0', @@ -5754,8 +5746,6 @@ static const char kSTSHostTable[] = { /* "greensolid.biz", true */ 'g', 'r', 'e', 'e', 'n', 's', 'o', 'l', 'i', 'd', '.', 'b', 'i', 'z', '\0', /* "greenteamtwente.nl", true */ 'g', 'r', 'e', 'e', 'n', 't', 'e', 'a', 'm', 't', 'w', 'e', 'n', 't', 'e', '.', 'n', 'l', '\0', /* "greger.me", true */ 'g', 'r', 'e', 'g', 'e', 'r', '.', 'm', 'e', '\0', - /* "gregmilton.com", true */ 'g', 'r', 'e', 'g', 'm', 'i', 'l', 't', 'o', 'n', '.', 'c', 'o', 'm', '\0', - /* "gregmilton.org", true */ 'g', 'r', 'e', 'g', 'm', 'i', 'l', 't', 'o', 'n', '.', 'o', 'r', 'g', '\0', /* "gregorians.org", true */ 'g', 'r', 'e', 'g', 'o', 'r', 'i', 'a', 'n', 's', '.', 'o', 'r', 'g', '\0', /* "gregorywiest.com", true */ 'g', 'r', 'e', 'g', 'o', 'r', 'y', 'w', 'i', 'e', 's', 't', '.', 'c', 'o', 'm', '\0', /* "greiners.net", true */ 'g', 'r', 'e', 'i', 'n', 'e', 'r', 's', '.', 'n', 'e', 't', '\0', @@ -5866,6 +5856,10 @@ static const char kSTSHostTable[] = { /* "gus.host", true */ 'g', 'u', 's', '.', 'h', 'o', 's', 't', '\0', /* "gus.moe", true */ 'g', 'u', 's', '.', 'm', 'o', 'e', '\0', /* "guscaplan.me", true */ 'g', 'u', 's', 'c', 'a', 'p', 'l', 'a', 'n', '.', 'm', 'e', '\0', + /* "guso.gq", true */ 'g', 'u', 's', 'o', '.', 'g', 'q', '\0', + /* "guso.ml", true */ 'g', 'u', 's', 'o', '.', 'm', 'l', '\0', + /* "guso.site", true */ 'g', 'u', 's', 'o', '.', 's', 'i', 't', 'e', '\0', + /* "guso.tech", true */ 'g', 'u', 's', 'o', '.', 't', 'e', 'c', 'h', '\0', /* "guthabenkarten-billiger.de", true */ 'g', 'u', 't', 'h', 'a', 'b', 'e', 'n', 'k', 'a', 'r', 't', 'e', 'n', '-', 'b', 'i', 'l', 'l', 'i', 'g', 'e', 'r', '.', 'd', 'e', '\0', /* "guts.me", true */ 'g', 'u', 't', 's', '.', 'm', 'e', '\0', /* "guvernalternativa.ro", true */ 'g', 'u', 'v', 'e', 'r', 'n', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', 'a', '.', 'r', 'o', '\0', @@ -5906,6 +5900,7 @@ 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', /* "hackerone.net", true */ 'h', 'a', 'c', 'k', 'e', 'r', 'o', 'n', 'e', '.', 'n', 'e', 't', '\0', @@ -5952,6 +5947,7 @@ static const char kSTSHostTable[] = { /* "hangouts.google.com", true */ 'h', 'a', 'n', 'g', 'o', 'u', 't', 's', '.', 'g', 'o', 'o', 'g', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "hanimalis.fr", true */ 'h', 'a', 'n', 'i', 'm', 'a', 'l', 'i', 's', '.', 'f', 'r', '\0', /* "hannah.link", true */ 'h', 'a', 'n', 'n', 'a', 'h', '.', 'l', 'i', 'n', 'k', '\0', + /* "hannover-banditen.de", true */ 'h', 'a', 'n', 'n', 'o', 'v', 'e', 'r', '-', 'b', 'a', 'n', 'd', 'i', 't', 'e', 'n', '.', 'd', 'e', '\0', /* "hans-natur.de", true */ 'h', 'a', 'n', 's', '-', 'n', 'a', 't', 'u', 'r', '.', 'd', 'e', '\0', /* "hansvaneijsden.com", true */ 'h', 'a', 'n', 's', 'v', 'a', 'n', 'e', 'i', 'j', 's', 'd', 'e', 'n', '.', 'c', 'o', 'm', '\0', /* "hansvaneijsden.nl", true */ 'h', 'a', 'n', 's', 'v', 'a', 'n', 'e', 'i', 'j', 's', 'd', 'e', 'n', '.', 'n', 'l', '\0', @@ -6025,6 +6021,7 @@ static const char kSTSHostTable[] = { /* "hawthornharpist.com", true */ 'h', 'a', 'w', 't', 'h', 'o', 'r', 'n', 'h', 'a', 'r', 'p', 'i', 's', 't', '.', 'c', 'o', 'm', '\0', /* "haxo.nl", false */ 'h', 'a', 'x', 'o', '.', 'n', 'l', '\0', /* "hayai.space", true */ 'h', 'a', 'y', 'a', 'i', '.', 's', 'p', 'a', 'c', 'e', '\0', + /* "hazyrom.net", true */ 'h', 'a', 'z', 'y', 'r', 'o', 'm', '.', 'n', 'e', 't', '\0', /* "hbdesign.work", true */ 'h', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'w', 'o', 'r', 'k', '\0', /* "hboeck.de", true */ 'h', 'b', 'o', 'e', 'c', 'k', '.', 'd', 'e', '\0', /* "hbpowell.com", true */ 'h', 'b', 'p', 'o', 'w', 'e', 'l', 'l', '.', 'c', 'o', 'm', '\0', @@ -6142,7 +6139,6 @@ static const char kSTSHostTable[] = { /* "heritagedentistry.ca", true */ 'h', 'e', 'r', 'i', 't', 'a', 'g', 'e', 'd', 'e', 'n', 't', 'i', 's', 't', 'r', 'y', '.', 'c', 'a', '\0', /* "herocentral.de", true */ 'h', 'e', 'r', 'o', 'c', 'e', 'n', 't', 'r', 'a', 'l', '.', 'd', 'e', '\0', /* "herr-webdesign.de", true */ 'h', 'e', 'r', 'r', '-', 'w', 'e', 'b', 'd', 'e', 's', 'i', 'g', 'n', '.', 'd', 'e', '\0', - /* "herrenfahrt.com", true */ 'h', 'e', 'r', 'r', 'e', 'n', 'f', 'a', 'h', 'r', 't', '.', 'c', 'o', 'm', '\0', /* "herringsresidence.be", true */ 'h', 'e', 'r', 'r', 'i', 'n', 'g', 's', 'r', 'e', 's', 'i', 'd', 'e', 'n', 'c', 'e', '.', 'b', 'e', '\0', /* "herrsmith.com", true */ 'h', 'e', 'r', 'r', 's', 'm', 'i', 't', 'h', '.', 'c', 'o', 'm', '\0', /* "hesaplama.net", true */ 'h', 'e', 's', 'a', 'p', 'l', 'a', 'm', 'a', '.', 'n', 'e', 't', '\0', @@ -6151,6 +6147,7 @@ static const char kSTSHostTable[] = { /* "heute-kaufen.de", true */ 'h', 'e', 'u', 't', 'e', '-', 'k', 'a', 'u', 'f', 'e', 'n', '.', 'd', 'e', '\0', /* "hex2013.com", true */ 'h', 'e', 'x', '2', '0', '1', '3', '.', 'c', 'o', 'm', '\0', /* "hexacon.io", true */ 'h', 'e', 'x', 'a', 'c', 'o', 'n', '.', 'i', 'o', '\0', + /* "hexagon-e.com", true */ 'h', 'e', 'x', 'a', 'g', 'o', 'n', '-', 'e', '.', 'c', 'o', 'm', '\0', /* "hexe.net", true */ 'h', 'e', 'x', 'e', '.', 'n', 'e', 't', '\0', /* "hexed.it", true */ 'h', 'e', 'x', 'e', 'd', '.', 'i', 't', '\0', /* "hexicurity.com", true */ 'h', 'e', 'x', 'i', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', @@ -6228,6 +6225,7 @@ static const char kSTSHostTable[] = { /* "hohm.in", true */ 'h', 'o', 'h', 'm', '.', 'i', 'n', '\0', /* "hohnet.com", true */ 'h', 'o', 'h', 'n', 'e', 't', '.', 'c', 'o', 'm', '\0', /* "hoiku-map.tokyo", true */ 'h', 'o', 'i', 'k', 'u', '-', 'm', 'a', 'p', '.', 't', 'o', 'k', 'y', 'o', '\0', + /* "hokieprivacy.org", true */ 'h', 'o', 'k', 'i', 'e', 'p', 'r', 'i', 'v', 'a', 'c', 'y', '.', 'o', 'r', 'g', '\0', /* "holisticon.de", true */ 'h', 'o', 'l', 'i', 's', 't', 'i', 'c', 'o', 'n', '.', 'd', 'e', '\0', /* "hollowrap.com", true */ 'h', 'o', 'l', 'l', 'o', 'w', 'r', 'a', 'p', '.', 'c', 'o', 'm', '\0', /* "hollyforrest.ca", true */ 'h', 'o', 'l', 'l', 'y', 'f', 'o', 'r', 'r', 'e', 's', 't', '.', 'c', 'a', '\0', @@ -6359,7 +6357,6 @@ static const char kSTSHostTable[] = { /* "hszemi.de", true */ 'h', 's', 'z', 'e', 'm', 'i', '.', 'd', 'e', '\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', /* "htmlacademy.ru", true */ 'h', 't', 'm', 'l', 'a', 'c', 'a', 'd', 'e', 'm', 'y', '.', 'r', 'u', '\0', /* "htmue.net", true */ 'h', 't', 'm', 'u', 'e', '.', 'n', 'e', 't', '\0', @@ -6403,7 +6400,6 @@ static const char kSTSHostTable[] = { /* "hushfile.it", true */ 'h', 'u', 's', 'h', 'f', 'i', 'l', 'e', '.', 'i', 't', '\0', /* "husic.net", true */ 'h', 'u', 's', 'i', 'c', '.', 'n', 'e', 't', '\0', /* "husky.xyz", true */ 'h', 'u', 's', 'k', 'y', '.', 'x', 'y', 'z', '\0', - /* "huskyinc.us", true */ 'h', 'u', 's', 'k', 'y', 'i', 'n', 'c', '.', 'u', 's', '\0', /* "hussam.eu.org", true */ 'h', 'u', 's', 's', 'a', 'm', '.', 'e', 'u', '.', 'o', 'r', 'g', '\0', /* "huutonauru.net", true */ 'h', 'u', 'u', 't', 'o', 'n', 'a', 'u', 'r', 'u', '.', 'n', 'e', 't', '\0', /* "huwcbjones.co.uk", true */ 'h', 'u', 'w', 'c', 'b', 'j', 'o', 'n', 'e', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', @@ -6479,7 +6475,6 @@ static const char kSTSHostTable[] = { /* "ict-concept.nl", false */ 'i', 'c', 't', '-', 'c', 'o', 'n', 'c', 'e', 'p', 't', '.', 'n', 'l', '\0', /* "ict-radar.com", true */ 'i', 'c', 't', '-', 'r', 'a', 'd', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "ict-radar.nl", true */ 'i', 'c', 't', '-', 'r', 'a', 'd', 'a', 'r', '.', 'n', 'l', '\0', - /* "ictinforensics.org", true */ 'i', 'c', 't', 'i', 'n', 'f', 'o', 'r', 'e', 'n', 's', 'i', 'c', 's', '.', 'o', 'r', 'g', '\0', /* "ictradar.com", true */ 'i', 'c', 't', 'r', 'a', 'd', 'a', 'r', '.', 'c', 'o', 'm', '\0', /* "icusignature.com", true */ 'i', 'c', 'u', 's', 'i', 'g', 'n', 'a', 't', 'u', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "icymint.me", true */ 'i', 'c', 'y', 'm', 'i', 'n', 't', '.', 'm', 'e', '\0', @@ -6525,7 +6520,6 @@ static const char kSTSHostTable[] = { /* "ifsac.org", true */ 'i', 'f', 's', 'a', 'c', '.', 'o', 'r', 'g', '\0', /* "ifsr.de", true */ 'i', 'f', 's', 'r', '.', 'd', 'e', '\0', /* "iftrue.de", true */ 'i', 'f', 't', 'r', 'u', 'e', '.', 'd', 'e', '\0', - /* "ifx.ee", true */ 'i', 'f', 'x', '.', 'e', 'e', '\0', /* "ifxor.com", true */ 'i', 'f', 'x', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "igforums.com", true */ 'i', 'g', 'f', 'o', 'r', 'u', 'm', 's', '.', 'c', 'o', 'm', '\0', /* "igglabs.com", true */ 'i', 'g', 'g', 'l', 'a', 'b', 's', '.', 'c', 'o', 'm', '\0', @@ -6701,7 +6695,6 @@ static const char kSTSHostTable[] = { /* "inline-sport.cz", true */ 'i', 'n', 'l', 'i', 'n', 'e', '-', 's', 'p', 'o', 'r', 't', '.', 'c', 'z', '\0', /* "inme.ga", true */ 'i', 'n', 'm', 'e', '.', 'g', 'a', '\0', /* "innermostparts.org", true */ 'i', 'n', 'n', 'e', 'r', 'm', 'o', 's', 't', 'p', 'a', 'r', 't', 's', '.', 'o', 'r', 'g', '\0', - /* "innoloop.com", true */ 'i', 'n', 'n', 'o', 'l', 'o', 'o', 'p', '.', 'c', 'o', 'm', '\0', /* "innophate-security.com", true */ 'i', 'n', 'n', 'o', 'p', 'h', 'a', 't', 'e', '-', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "innovaptor.at", true */ 'i', 'n', 'n', 'o', 'v', 'a', 'p', 't', 'o', 'r', '.', 'a', 't', '\0', /* "innovaptor.com", true */ 'i', 'n', 'n', 'o', 'v', 'a', 'p', 't', 'o', 'r', '.', 'c', 'o', 'm', '\0', @@ -6847,7 +6840,6 @@ static const char kSTSHostTable[] = { /* "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', - /* "ipuservicedesign.com", true */ 'i', 'p', 'u', 's', 'e', 'r', 'v', 'i', 'c', 'e', 'd', 'e', 's', 'i', 'g', 'n', '.', 'c', 'o', 'm', '\0', /* "ipv4.gr", true */ 'i', 'p', 'v', '4', '.', 'g', 'r', '\0', /* "ipv6-adresse.dk", true */ 'i', 'p', 'v', '6', '-', 'a', 'd', 'r', 'e', 's', 's', 'e', '.', 'd', 'k', '\0', /* "ipv6-handbuch.de", true */ 'i', 'p', 'v', '6', '-', 'h', 'a', 'n', 'd', 'b', 'u', 'c', 'h', '.', 'd', 'e', '\0', @@ -6866,7 +6858,6 @@ static const char kSTSHostTable[] = { /* "irish.dating", true */ 'i', 'r', 'i', 's', 'h', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', /* "irmag.ru", true */ 'i', 'r', 'm', 'a', 'g', '.', 'r', 'u', '\0', /* "irmgard-woelfle.de", true */ 'i', 'r', 'm', 'g', 'a', 'r', 'd', '-', 'w', 'o', 'e', 'l', 'f', 'l', 'e', '.', 'd', 'e', '\0', - /* "irmtrudjurke.de", true */ 'i', 'r', 'm', 't', 'r', 'u', 'd', 'j', 'u', 'r', 'k', 'e', '.', 'd', 'e', '\0', /* "iron-guard.net", true */ 'i', 'r', 'o', 'n', '-', 'g', 'u', 'a', 'r', 'd', '.', 'n', 'e', 't', '\0', /* "ironcarnival.com", true */ 'i', 'r', 'o', 'n', 'c', 'a', 'r', 'n', 'i', 'v', 'a', 'l', '.', 'c', 'o', 'm', '\0', /* "irondaleirregulars.com", true */ 'i', 'r', 'o', 'n', 'd', 'a', 'l', 'e', 'i', 'r', 'r', 'e', 'g', 'u', 'l', 'a', 'r', 's', '.', 'c', 'o', 'm', '\0', @@ -6914,6 +6905,7 @@ static const char kSTSHostTable[] = { /* "istanbul.systems", true */ 'i', 's', 't', 'a', 'n', 'b', 'u', 'l', '.', 's', 'y', 's', 't', 'e', 'm', 's', '\0', /* "istanbultravelguide.info", true */ 'i', 's', 't', 'a', 'n', 'b', 'u', 'l', 't', 'r', 'a', 'v', 'e', 'l', 'g', 'u', 'i', 'd', 'e', '.', 'i', 'n', 'f', 'o', '\0', /* "istdieweltschonuntergegangen.de", true */ 'i', 's', 't', 'd', 'i', 'e', 'w', 'e', 'l', 't', 's', 'c', 'h', 'o', 'n', 'u', 'n', 't', 'e', 'r', 'g', 'e', 'g', 'a', 'n', 'g', 'e', 'n', '.', 'd', 'e', '\0', + /* "isteinbaby.de", true */ 'i', 's', 't', 'e', 'i', 'n', 'b', 'a', 'b', 'y', '.', 'd', 'e', '\0', /* "istgame.com", true */ 'i', 's', 't', 'g', 'a', 'm', 'e', '.', 'c', 'o', 'm', '\0', /* "istheapplestoredown.com", true */ 'i', 's', 't', 'h', 'e', 'a', 'p', 'p', 'l', 'e', 's', 't', 'o', 'r', 'e', 'd', 'o', 'w', 'n', '.', 'c', 'o', 'm', '\0', /* "istheapplestoredown.de", true */ 'i', 's', 't', 'h', 'e', 'a', 'p', 'p', 'l', 'e', 's', 't', 'o', 'r', 'e', 'd', 'o', 'w', 'n', '.', 'd', 'e', '\0', @@ -6968,9 +6960,11 @@ static const char kSTSHostTable[] = { /* "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', /* "itsgoingdown.org", true */ 'i', 't', 's', 'g', 'o', 'i', 'n', 'g', 'd', 'o', 'w', 'n', '.', 'o', 'r', 'g', '\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', /* "itspawned.com", true */ 'i', 't', 's', 'p', 'a', 'w', 'n', 'e', 'd', '.', 'c', 'o', 'm', '\0', /* "itspersonaltraining.nl", true */ 'i', 't', 's', 'p', 'e', 'r', 's', 'o', 'n', 'a', 'l', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'n', 'l', '\0', + /* "itsryan.com", false */ 'i', 't', 's', 'r', 'y', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "itu2015.de", true */ 'i', 't', 'u', '2', '0', '1', '5', '.', 'd', 'e', '\0', /* "iuscommunity.org", true */ 'i', 'u', 's', 'c', 'o', 'm', 'm', 'u', 'n', 'i', 't', 'y', '.', 'o', 'r', 'g', '\0', /* "ivancacic.com", true */ 'i', 'v', 'a', 'n', 'c', 'a', 'c', 'i', 'c', '.', 'c', 'o', 'm', '\0', @@ -7554,6 +7548,7 @@ static const char kSTSHostTable[] = { /* "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', /* "kevindekoninck.com", false */ 'k', 'e', 'v', 'i', 'n', 'd', 'e', 'k', 'o', 'n', 'i', 'n', 'c', 'k', '.', 'c', 'o', 'm', '\0', + /* "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', @@ -7697,6 +7692,7 @@ static const char kSTSHostTable[] = { /* "klva.cz", true */ 'k', 'l', 'v', 'a', '.', 'c', 'z', '\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', /* "knaake.net", true */ 'k', 'n', 'a', 'a', 'k', 'e', '.', 'n', 'e', 't', '\0', /* "knapen.io", true */ 'k', 'n', 'a', 'p', 'e', 'n', '.', 'i', 'o', '\0', /* "knapp.noip.me", true */ 'k', 'n', 'a', 'p', 'p', '.', 'n', 'o', 'i', 'p', '.', 'm', 'e', '\0', @@ -7710,6 +7706,7 @@ static const char kSTSHostTable[] = { /* "knip.ch", true */ 'k', 'n', 'i', 'p', '.', 'c', 'h', '\0', /* "knot-store.com", true */ 'k', 'n', 'o', 't', '-', 's', 't', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "knowledgehook.com", true */ 'k', 'n', 'o', 'w', 'l', 'e', 'd', 'g', 'e', 'h', 'o', 'o', 'k', '.', 'c', 'o', 'm', '\0', + /* "knowledgesnap.com", true */ 'k', 'n', 'o', 'w', 'l', 'e', 'd', 'g', 'e', 's', 'n', 'a', 'p', '.', 'c', 'o', 'm', '\0', /* "knthost.com", true */ 'k', 'n', 't', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '\0', /* "knygos.lt", true */ 'k', 'n', 'y', 'g', 'o', 's', '.', 'l', 't', '\0', /* "ko-sys.com", true */ 'k', 'o', '-', 's', 'y', 's', '.', 'c', 'o', 'm', '\0', @@ -7732,6 +7729,7 @@ static const char kSTSHostTable[] = { /* "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', /* "kokumoto.com", true */ 'k', 'o', 'k', 'u', 'm', 'o', 't', 'o', '.', 'c', 'o', 'm', '\0', + /* "kolaykaydet.com", false */ 'k', 'o', 'l', 'a', 'y', 'k', 'a', 'y', 'd', 'e', 't', '.', 'c', 'o', 'm', '\0', /* "kolba.design", true */ 'k', 'o', 'l', 'b', 'a', '.', 'd', 'e', 's', 'i', 'g', 'n', '\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', @@ -7817,6 +7815,7 @@ static const char kSTSHostTable[] = { /* "kriptosec.com", true */ 'k', 'r', 'i', 'p', 't', 'o', 's', 'e', 'c', '.', 'c', 'o', 'm', '\0', /* "krislamoureux.com", true */ 'k', 'r', 'i', 's', 'l', 'a', 'm', 'o', 'u', 'r', 'e', 'u', 'x', '.', 'c', 'o', 'm', '\0', /* "krisstarkey.co.uk", true */ 'k', 'r', 'i', 's', 's', 't', 'a', 'r', 'k', 'e', 'y', '.', 'c', 'o', '.', 'u', 'k', '\0', + /* "kristikala.nl", true */ 'k', 'r', 'i', 's', 't', 'i', 'k', 'a', 'l', 'a', '.', 'n', 'l', '\0', /* "kristinbailey.com", true */ 'k', 'r', 'i', 's', 't', 'i', 'n', 'b', 'a', 'i', 'l', 'e', 'y', '.', 'c', 'o', 'm', '\0', /* "kristjanrang.eu", true */ 'k', 'r', 'i', 's', 't', 'j', 'a', 'n', 'r', 'a', 'n', 'g', '.', 'e', 'u', '\0', /* "kristofferkoch.com", true */ 'k', 'r', 'i', 's', 't', 'o', 'f', 'f', 'e', 'r', 'k', 'o', 'c', 'h', '.', 'c', 'o', 'm', '\0', @@ -8117,6 +8116,7 @@ static const char kSTSHostTable[] = { /* "lenzw.de", true */ 'l', 'e', 'n', 'z', 'w', '.', 'd', 'e', '\0', /* "leola.cz", true */ 'l', 'e', 'o', 'l', 'a', '.', 'c', 'z', '\0', /* "leola.sk", true */ 'l', 'e', 'o', 'l', 'a', '.', 's', 'k', '\0', + /* "leolana.com", true */ 'l', 'e', 'o', 'l', 'a', 'n', 'a', '.', 'c', 'o', 'm', '\0', /* "leominstercu.com", false */ 'l', 'e', 'o', 'm', 'i', 'n', 's', 't', 'e', 'r', 'c', 'u', '.', 'c', 'o', 'm', '\0', /* "leonard.io", false */ 'l', 'e', 'o', 'n', 'a', 'r', 'd', '.', 'i', 'o', '\0', /* "leonardcamacho.me", true */ 'l', 'e', 'o', 'n', 'a', 'r', 'd', 'c', 'a', 'm', 'a', 'c', 'h', 'o', '.', 'm', 'e', '\0', @@ -8266,7 +8266,6 @@ static const char kSTSHostTable[] = { /* "linuxhostsupport.com", true */ 'l', 'i', 'n', 'u', 'x', 'h', 'o', 's', 't', 's', 'u', 'p', 'p', 'o', 'r', 't', '.', 'c', 'o', 'm', '\0', /* "linuxlounge.net", true */ 'l', 'i', 'n', 'u', 'x', 'l', 'o', 'u', 'n', 'g', 'e', '.', 'n', 'e', 't', '\0', /* "linuxmint.cz", true */ 'l', 'i', 'n', 'u', 'x', 'm', 'i', 'n', 't', '.', 'c', 'z', '\0', - /* "linuxwebservertips.in", true */ 'l', 'i', 'n', 'u', 'x', 'w', 'e', 'b', 's', 'e', 'r', 'v', 'e', 'r', 't', 'i', 'p', 's', '.', 'i', 'n', '\0', /* "linvx.org", true */ 'l', 'i', 'n', 'v', 'x', '.', 'o', 'r', 'g', '\0', /* "linx.li", true */ 'l', 'i', 'n', 'x', '.', 'l', 'i', '\0', /* "linx.net", true */ 'l', 'i', 'n', 'x', '.', 'n', 'e', 't', '\0', @@ -8337,7 +8336,6 @@ static const char kSTSHostTable[] = { /* "lnx.li", true */ 'l', 'n', 'x', '.', 'l', 'i', '\0', /* "loacg.com", true */ 'l', 'o', 'a', 'c', 'g', '.', 'c', 'o', 'm', '\0', /* "loadlow.me", true */ 'l', 'o', 'a', 'd', 'l', 'o', 'w', '.', 'm', 'e', '\0', - /* "loadso.me", true */ 'l', 'o', 'a', 'd', 's', 'o', '.', 'm', 'e', '\0', /* "loancompare.co.za", true */ 'l', 'o', 'a', 'n', 'c', 'o', 'm', 'p', 'a', 'r', 'e', '.', 'c', 'o', '.', 'z', 'a', '\0', /* "loansonline.today", true */ 'l', 'o', 'a', 'n', 's', 'o', 'n', 'l', 'i', 'n', 'e', '.', 't', 'o', 'd', 'a', 'y', '\0', /* "loanstreet.be", true */ 'l', 'o', 'a', 'n', 's', 't', 'r', 'e', 'e', 't', '.', 'b', 'e', '\0', @@ -8353,13 +8351,13 @@ static const char kSTSHostTable[] = { /* "localnetwork.nz", true */ 'l', 'o', 'c', 'a', 'l', 'n', 'e', 't', 'w', 'o', 'r', 'k', '.', 'n', 'z', '\0', /* "localspot.pl", true */ 'l', 'o', 'c', 'a', 'l', 's', 'p', 'o', 't', '.', 'p', 'l', '\0', /* "locauxrama.fr", true */ 'l', 'o', 'c', 'a', 'u', 'x', 'r', 'a', 'm', 'a', '.', 'f', 'r', '\0', - /* "locchat.com", true */ 'l', 'o', 'c', 'c', 'h', 'a', 't', '.', 'c', 'o', 'm', '\0', /* "lockify.com", true */ 'l', 'o', 'c', 'k', 'i', 'f', 'y', '.', 'c', 'o', 'm', '\0', /* "lockpick.nl", true */ 'l', 'o', 'c', 'k', 'p', 'i', 'c', 'k', '.', 'n', 'l', '\0', /* "lockpicks.se", true */ 'l', 'o', 'c', 'k', 'p', 'i', 'c', 'k', 's', '.', 's', 'e', '\0', /* "locomore.com", true */ 'l', 'o', 'c', 'o', 'm', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "lodash.com", false */ 'l', 'o', 'd', 'a', 's', 'h', '.', 'c', 'o', 'm', '\0', /* "loenshotel.de", true */ 'l', 'o', 'e', 'n', 's', 'h', 'o', 't', 'e', 'l', '.', 'd', 'e', '\0', + /* "loforo.com", true */ 'l', 'o', 'f', 'o', 'r', 'o', '.', 'c', 'o', 'm', '\0', /* "loftboard.eu", true */ 'l', 'o', 'f', 't', 'b', 'o', 'a', 'r', 'd', '.', 'e', 'u', '\0', /* "lofttravel.com", true */ 'l', 'o', 'f', 't', 't', 'r', 'a', 'v', 'e', 'l', '.', 'c', 'o', 'm', '\0', /* "log.my", true */ 'l', 'o', 'g', '.', 'm', 'y', '\0', @@ -8411,6 +8409,7 @@ static const char kSTSHostTable[] = { /* "lookasik.eu", true */ 'l', 'o', 'o', 'k', 'a', 's', 'i', 'k', '.', 'e', 'u', '\0', /* "looktothestars.org", true */ 'l', 'o', 'o', 'k', 't', 'o', 't', 'h', 'e', 's', 't', 'a', 'r', 's', '.', 'o', 'r', 'g', '\0', /* "lookyman.net", true */ 'l', 'o', 'o', 'k', 'y', 'm', 'a', 'n', '.', 'n', 'e', 't', '\0', + /* "loongsg.xyz", true */ 'l', 'o', 'o', 'n', 'g', 's', 'g', '.', 'x', 'y', 'z', '\0', /* "loony.info", true */ 'l', 'o', 'o', 'n', 'y', '.', 'i', 'n', 'f', 'o', '\0', /* "loophost.com.br", false */ 'l', 'o', 'o', 'p', 'h', 'o', 's', 't', '.', 'c', 'o', 'm', '.', 'b', 'r', '\0', /* "loopower.com", true */ 'l', 'o', 'o', 'p', 'o', 'w', 'e', 'r', '.', 'c', 'o', 'm', '\0', @@ -8832,7 +8831,6 @@ static const char kSTSHostTable[] = { /* "mavenclinic.com", true */ 'm', 'a', 'v', 'e', 'n', 'c', 'l', 'i', 'n', 'i', 'c', '.', 'c', 'o', 'm', '\0', /* "mavensecurity.com", true */ 'm', 'a', 'v', 'e', 'n', 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "maveris.com", true */ 'm', 'a', 'v', 'e', 'r', 'i', 's', '.', 'c', 'o', 'm', '\0', - /* "mawe.red", true */ 'm', 'a', 'w', 'e', '.', 'r', 'e', 'd', '\0', /* "mawidabp.com", true */ 'm', 'a', 'w', 'i', 'd', 'a', 'b', 'p', '.', 'c', 'o', 'm', '\0', /* "mawidaca.com", true */ 'm', 'a', 'w', 'i', 'd', 'a', 'c', 'a', '.', 'c', 'o', 'm', '\0', /* "max-moeglich.de", true */ 'm', 'a', 'x', '-', 'm', 'o', 'e', 'g', 'l', 'i', 'c', 'h', '.', 'd', 'e', '\0', @@ -8883,6 +8881,7 @@ static const char kSTSHostTable[] = { /* "mchristopher.com", true */ 'm', 'c', 'h', 'r', 'i', 's', 't', 'o', 'p', 'h', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "mcjackk77.com", true */ 'm', 'c', 'j', 'a', 'c', 'k', 'k', '7', '7', '.', 'c', 'o', 'm', '\0', /* "mckinley.school", false */ 'm', 'c', 'k', 'i', 'n', 'l', 'e', 'y', '.', 's', 'c', 'h', 'o', 'o', 'l', '\0', + /* "mckinley1.com", false */ 'm', 'c', 'k', 'i', 'n', 'l', 'e', 'y', '1', '.', 'c', 'o', 'm', '\0', /* "mcl.gg", true */ 'm', 'c', 'l', '.', 'g', 'g', '\0', /* "mclist.it", true */ 'm', 'c', 'l', 'i', 's', 't', '.', 'i', 't', '\0', /* "mcnext.net", true */ 'm', 'c', 'n', 'e', 'x', 't', '.', 'n', 'e', 't', '\0', @@ -8896,6 +8895,7 @@ static const char kSTSHostTable[] = { /* "md5file.com", true */ 'm', 'd', '5', 'f', 'i', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "md5hashing.net", true */ 'm', 'd', '5', 'h', 'a', 's', 'h', 'i', 'n', 'g', '.', 'n', 'e', 't', '\0', /* "mdcloudpracticesolutions.com", true */ 'm', 'd', 'c', 'l', 'o', 'u', 'd', 'p', 'r', 'a', 'c', 't', 'i', 'c', 'e', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'c', 'o', 'm', '\0', + /* "mdcloudps.com", true */ 'm', 'd', 'c', 'l', 'o', 'u', 'd', 'p', 's', '.', 'c', 'o', 'm', '\0', /* "mdek.at", true */ 'm', 'd', 'e', 'k', '.', 'a', 't', '\0', /* "mdkr.nl", true */ 'm', 'd', 'k', 'r', '.', 'n', 'l', '\0', /* "mdma.net", true */ 'm', 'd', 'm', 'a', '.', 'n', 'e', 't', '\0', @@ -9056,6 +9056,7 @@ static const char kSTSHostTable[] = { /* "mfxbe.de", true */ 'm', 'f', 'x', 'b', 'e', '.', 'd', 'e', '\0', /* "mgdigital.fr", true */ 'm', 'g', 'd', 'i', 'g', 'i', 't', 'a', 'l', '.', 'f', 'r', '\0', /* "mghiorzi.com.ar", true */ 'm', 'g', 'h', 'i', 'o', 'r', 'z', 'i', '.', 'c', 'o', 'm', '.', 'a', 'r', '\0', + /* "mgrossklaus.de", true */ 'm', 'g', 'r', 'o', 's', 's', 'k', 'l', 'a', 'u', 's', '.', 'd', 'e', '\0', /* "mheistermann.de", true */ 'm', 'h', 'e', 'i', 's', 't', 'e', 'r', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0', /* "mhermans.nl", true */ 'm', 'h', 'e', 'r', 'm', 'a', 'n', 's', '.', 'n', 'l', '\0', /* "mhjuma.com", true */ 'm', 'h', 'j', 'u', 'm', 'a', '.', 'c', 'o', 'm', '\0', @@ -9108,7 +9109,6 @@ static const char kSTSHostTable[] = { /* "mikaela.info", true */ 'm', 'i', 'k', 'a', 'e', 'l', 'a', '.', 'i', 'n', 'f', 'o', '\0', /* "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', /* "mikepair.net", true */ 'm', 'i', 'k', 'e', 'p', 'a', 'i', 'r', '.', 'n', 'e', 't', '\0', /* "mikes.tk", true */ 'm', 'i', 'k', 'e', 's', '.', 't', 'k', '\0', @@ -9175,6 +9175,7 @@ static const char kSTSHostTable[] = { /* "minitrucktalk.com", true */ 'm', 'i', 'n', 'i', 't', 'r', 'u', 'c', 'k', 't', 'a', 'l', 'k', '.', 'c', 'o', 'm', '\0', /* "minkondom.nu", true */ 'm', 'i', 'n', 'k', 'o', 'n', 'd', 'o', 'm', '.', 'n', 'u', '\0', /* "minobar.com", true */ 'm', 'i', 'n', 'o', 'b', 'a', 'r', '.', 'c', 'o', 'm', '\0', + /* "minora.io", true */ 'm', 'i', 'n', 'o', 'r', 'a', '.', 'i', 'o', '\0', /* "minoris.se", true */ 'm', 'i', 'n', 'o', 'r', 'i', 's', '.', 's', 'e', '\0', /* "minpingvin.dk", true */ 'm', 'i', 'n', 'p', 'i', 'n', 'g', 'v', 'i', 'n', '.', 'd', 'k', '\0', /* "mintea-noua.ro", true */ 'm', 'i', 'n', 't', 'e', 'a', '-', 'n', 'o', 'u', 'a', '.', 'r', 'o', '\0', @@ -9321,7 +9322,6 @@ static const char kSTSHostTable[] = { /* "mona-dress.com", true */ 'm', 'o', 'n', 'a', '-', 'd', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0', /* "mona.lu", false */ 'm', 'o', 'n', 'a', '.', 'l', 'u', '\0', /* "monautoneuve.fr", true */ 'm', 'o', 'n', 'a', 'u', 't', 'o', 'n', 'e', 'u', 'v', 'e', '.', 'f', 'r', '\0', - /* "mondar.io", false */ 'm', 'o', 'n', 'd', 'a', 'r', '.', 'i', 'o', '\0', /* "mondedie.fr", true */ 'm', 'o', 'n', 'd', 'e', 'd', 'i', 'e', '.', 'f', 'r', '\0', /* "mondwandler.de", true */ 'm', 'o', 'n', 'd', 'w', 'a', 'n', 'd', 'l', 'e', 'r', '.', 'd', 'e', '\0', /* "moneromerchant.com", true */ 'm', 'o', 'n', 'e', 'r', 'o', 'm', 'e', 'r', 'c', 'h', 'a', 'n', 't', '.', 'c', 'o', 'm', '\0', @@ -9365,6 +9365,7 @@ static const char kSTSHostTable[] = { /* "moparisthebest.net", true */ 'm', 'o', 'p', 'a', 'r', 'i', 's', 't', 'h', 'e', 'b', 'e', 's', 't', '.', 'n', 'e', 't', '\0', /* "moparisthebest.org", true */ 'm', 'o', 'p', 'a', 'r', 'i', 's', 't', 'h', 'e', 'b', 'e', 's', 't', '.', 'o', 'r', 'g', '\0', /* "moparscape.net", true */ 'm', 'o', 'p', 'a', 'r', 's', 'c', 'a', 'p', 'e', '.', 'n', 'e', 't', '\0', + /* "mople71.cz", true */ 'm', 'o', 'p', 'l', 'e', '7', '1', '.', 'c', 'z', '\0', /* "mor.cloud", true */ 'm', 'o', 'r', '.', 'c', 'l', 'o', 'u', 'd', '\0', /* "morbatex.com", true */ 'm', 'o', 'r', 'b', 'a', 't', 'e', 'x', '.', 'c', 'o', 'm', '\0', /* "morbitzer.de", false */ 'm', 'o', 'r', 'b', 'i', 't', 'z', 'e', 'r', '.', 'd', 'e', '\0', @@ -9425,7 +9426,6 @@ static const char kSTSHostTable[] = { /* "mrizzio.com", true */ 'm', 'r', 'i', 'z', 'z', 'i', 'o', '.', 'c', 'o', 'm', '\0', /* "mrmoregame.de", true */ 'm', 'r', 'm', 'o', 'r', 'e', 'g', 'a', 'm', 'e', '.', 'd', 'e', '\0', /* "mrserge.lv", true */ 'm', 'r', 's', 'e', 'r', 'g', 'e', '.', 'l', 'v', '\0', - /* "ms-alternativ.de", true */ 'm', 's', '-', 'a', 'l', 't', 'e', 'r', 'n', 'a', 't', 'i', 'v', '.', 'd', 'e', '\0', /* "msa-aesch.ch", true */ 'm', 's', 'a', '-', 'a', 'e', 's', 'c', 'h', '.', 'c', 'h', '\0', /* "mscc.org", true */ 'm', 's', 'c', 'c', '.', 'o', 'r', 'g', '\0', /* "msebera.cz", true */ 'm', 's', 'e', 'b', 'e', 'r', 'a', '.', 'c', 'z', '\0', @@ -10469,7 +10469,6 @@ static const char kSTSHostTable[] = { /* "palatin.at", true */ 'p', 'a', 'l', 'a', 't', 'i', 'n', '.', 'a', 't', '\0', /* "palationtrade.com", true */ 'p', 'a', 'l', 'a', 't', 'i', 'o', 'n', 't', 'r', 'a', 'd', 'e', '.', 'c', 'o', 'm', '\0', /* "palava.tv", true */ 'p', 'a', 'l', 'a', 'v', 'a', '.', 't', 'v', '\0', - /* "palmer.im", true */ 'p', 'a', 'l', 'm', 'e', 'r', '.', 'i', 'm', '\0', /* "pamaniqu.nl", true */ 'p', 'a', 'm', 'a', 'n', 'i', 'q', 'u', '.', 'n', 'l', '\0', /* "pan.digital", true */ 'p', 'a', 'n', '.', 'd', 'i', 'g', 'i', 't', 'a', 'l', '\0', /* "panaxis.ch", true */ 'p', 'a', 'n', 'a', 'x', 'i', 's', '.', 'c', 'h', '\0', @@ -10528,6 +10527,7 @@ static const char kSTSHostTable[] = { /* "partyhaus.ovh", true */ 'p', 'a', 'r', 't', 'y', 'h', 'a', 'u', 's', '.', 'o', 'v', 'h', '\0', /* "partyvan.eu", true */ 'p', 'a', 'r', 't', 'y', 'v', 'a', 'n', '.', 'e', 'u', '\0', /* "partyvan.io", true */ 'p', 'a', 'r', 't', 'y', 'v', 'a', 'n', '.', 'i', 'o', '\0', + /* "pasadenapooch.org", false */ 'p', 'a', 's', 'a', 'd', 'e', 'n', 'a', 'p', 'o', 'o', 'c', 'h', '.', 'o', 'r', 'g', '\0', /* "pasarella.eu", true */ 'p', 'a', 's', 'a', 'r', 'e', 'l', 'l', 'a', '.', 'e', 'u', '\0', /* "pascal-wittmann.de", true */ 'p', 'a', 's', 'c', 'a', 'l', '-', 'w', 'i', 't', 't', 'm', 'a', 'n', 'n', '.', 'd', 'e', '\0', /* "pascalleguern.com", true */ 'p', 'a', 's', 'c', 'a', 'l', 'l', 'e', 'g', 'u', 'e', 'r', 'n', '.', 'c', 'o', 'm', '\0', @@ -10811,6 +10811,7 @@ static const char kSTSHostTable[] = { /* "pic2map.com", true */ 'p', 'i', 'c', '2', 'm', 'a', 'p', '.', 'c', 'o', 'm', '\0', /* "picallo.es", true */ 'p', 'i', 'c', 'a', 'l', 'l', 'o', '.', 'e', 's', '\0', /* "picardiascr.com", true */ 'p', 'i', 'c', 'a', 'r', 'd', 'i', 'a', 's', 'c', 'r', '.', 'c', 'o', 'm', '\0', + /* "pickme.nl", true */ 'p', 'i', 'c', 'k', 'm', 'e', '.', 'n', 'l', '\0', /* "picksin.club", true */ 'p', 'i', 'c', 'k', 's', 'i', 'n', '.', 'c', 'l', 'u', 'b', '\0', /* "picoauto.com", true */ 'p', 'i', 'c', 'o', 'a', 'u', 't', 'o', '.', 'c', 'o', 'm', '\0', /* "picone.com.au", true */ 'p', 'i', 'c', 'o', 'n', 'e', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0', @@ -10987,7 +10988,6 @@ static const char kSTSHostTable[] = { /* "politik-bei-uns.de", true */ 'p', 'o', 'l', 'i', 't', 'i', 'k', '-', 'b', 'e', 'i', '-', 'u', 'n', 's', '.', 'd', 'e', '\0', /* "pollpodium.nl", true */ 'p', 'o', 'l', 'l', 'p', 'o', 'd', 'i', 'u', 'm', '.', 'n', 'l', '\0', /* "polycrypt.us", true */ 'p', 'o', 'l', 'y', 'c', 'r', 'y', 'p', 't', '.', 'u', 's', '\0', - /* "polymathematician.com", true */ 'p', 'o', 'l', 'y', 'm', 'a', 't', 'h', 'e', 'm', 'a', 't', 'i', 'c', 'i', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "polynomapp.com", true */ 'p', 'o', 'l', 'y', 'n', 'o', 'm', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0', /* "polypet.com.sg", true */ 'p', 'o', 'l', 'y', 'p', 'e', 't', '.', 'c', 'o', 'm', '.', 's', 'g', '\0', /* "pomar.club", true */ 'p', 'o', 'm', 'a', 'r', '.', 'c', 'l', 'u', 'b', '\0', @@ -11003,6 +11003,7 @@ static const char kSTSHostTable[] = { /* "pornbase.info", true */ 'p', 'o', 'r', 'n', 'b', 'a', 's', 'e', '.', 'i', 'n', 'f', 'o', '\0', /* "pornbay.org", true */ 'p', 'o', 'r', 'n', 'b', 'a', 'y', '.', 'o', 'r', 'g', '\0', /* "porno-gif.ru", true */ 'p', 'o', 'r', 'n', 'o', '-', 'g', 'i', 'f', '.', 'r', 'u', '\0', + /* "pornstars.me", true */ 'p', 'o', 'r', 'n', 's', 't', 'a', 'r', 's', '.', 'm', 'e', '\0', /* "porschen.fr", true */ 'p', 'o', 'r', 's', 'c', 'h', 'e', 'n', '.', 'f', 'r', '\0', /* "port443.hamburg", true */ 'p', 'o', 'r', 't', '4', '4', '3', '.', 'h', 'a', 'm', 'b', 'u', 'r', 'g', '\0', /* "port80.hamburg", true */ 'p', 'o', 'r', 't', '8', '0', '.', 'h', 'a', 'm', 'b', 'u', 'r', 'g', '\0', @@ -11023,6 +11024,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', @@ -11447,6 +11449,7 @@ static const char kSTSHostTable[] = { /* "ramatola.uk", true */ 'r', 'a', 'm', 'a', 't', 'o', 'l', 'a', '.', 'u', 'k', '\0', /* "rametrix.com", true */ 'r', 'a', 'm', 'e', 't', 'r', 'i', 'x', '.', 'c', 'o', 'm', '\0', /* "ramon-c.nl", true */ 'r', 'a', 'm', 'o', 'n', '-', 'c', '.', 'n', 'l', '\0', + /* "ramshair.jp", false */ 'r', 'a', 'm', 's', 'h', 'a', 'i', 'r', '.', 'j', 'p', '\0', /* "ramsor-gaming.de", true */ 'r', 'a', 'm', 's', 'o', 'r', '-', 'g', 'a', 'm', 'i', 'n', 'g', '.', 'd', 'e', '\0', /* "randc.org", true */ 'r', 'a', 'n', 'd', 'c', '.', 'o', 'r', 'g', '\0', /* "randomhero.cloud", true */ 'r', 'a', 'n', 'd', 'o', 'm', 'h', 'e', 'r', 'o', '.', 'c', 'l', 'o', 'u', 'd', '\0', @@ -11465,6 +11468,7 @@ static const char kSTSHostTable[] = { /* "rasebo.ro", true */ 'r', 'a', 's', 'e', 'b', 'o', '.', 'r', 'o', '\0', /* "raspberry.us", true */ 'r', 'a', 's', 'p', 'b', 'e', 'r', 'r', 'y', '.', 'u', 's', '\0', /* "ratd.net", true */ 'r', 'a', 't', 'd', '.', 'n', 'e', 't', '\0', + /* "rathorian.fr", true */ 'r', 'a', 't', 'h', 'o', 'r', 'i', 'a', 'n', '.', 'f', 'r', '\0', /* "rationalism.com", true */ 'r', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'i', 's', 'm', '.', 'c', 'o', 'm', '\0', /* "rationalops.com", true */ 'r', 'a', 't', 'i', 'o', 'n', 'a', 'l', 'o', 'p', 's', '.', 'c', 'o', 'm', '\0', /* "ratuseks.com", false */ 'r', 'a', 't', 'u', 's', 'e', 'k', 's', '.', 'c', 'o', 'm', '\0', @@ -11475,7 +11479,6 @@ static const char kSTSHostTable[] = { /* "rautermods.net", true */ 'r', 'a', 'u', 't', 'e', 'r', 'm', 'o', 'd', 's', '.', 'n', 'e', 't', '\0', /* "ravage.fm", true */ 'r', 'a', 'v', 'a', 'g', 'e', '.', 'f', 'm', '\0', /* "ravchat.com", true */ 'r', 'a', 'v', 'c', 'h', 'a', 't', '.', 'c', 'o', 'm', '\0', - /* "raven.lipetsk.ru", true */ 'r', 'a', 'v', 'e', 'n', '.', 'l', 'i', 'p', 'e', 't', 's', 'k', '.', 'r', 'u', '\0', /* "ravensbuch.de", true */ 'r', 'a', 'v', 'e', 'n', 's', 'b', 'u', 'c', 'h', '.', 'd', 'e', '\0', /* "ravindran.me", true */ 'r', 'a', 'v', 'i', 'n', 'd', 'r', 'a', 'n', '.', 'm', 'e', '\0', /* "ravkr.duckdns.org", true */ 'r', 'a', 'v', 'k', 'r', '.', 'd', 'u', 'c', 'k', 'd', 'n', 's', '.', 'o', 'r', 'g', '\0', @@ -11936,7 +11939,6 @@ static const char kSTSHostTable[] = { /* "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', /* "rugby.video", true */ 'r', 'u', 'g', 'b', 'y', '.', 'v', 'i', 'd', 'e', 'o', '\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', @@ -12070,7 +12072,6 @@ static const char kSTSHostTable[] = { /* "sanandreasstories.com", true */ 's', 'a', 'n', 'a', 'n', 'd', 'r', 'e', 'a', 's', 's', 't', 'o', 'r', 'i', 'e', 's', '.', 'c', 'o', 'm', '\0', /* "sanasport.cz", true */ 's', 'a', 'n', 'a', 's', 'p', 'o', 'r', 't', '.', 'c', 'z', '\0', /* "sanatfilan.com", false */ 's', 'a', 'n', 'a', 't', 'f', 'i', 'l', 'a', 'n', '.', 'c', 'o', 'm', '\0', - /* "sanchez.adv.br", true */ 's', 'a', 'n', 'c', 'h', 'e', 'z', '.', 'a', 'd', 'v', '.', 'b', 'r', '\0', /* "sandalj.com", true */ 's', 'a', 'n', 'd', 'a', 'l', 'j', '.', 'c', 'o', 'm', '\0', /* "sandbagexpress.com", true */ 's', 'a', 'n', 'd', 'b', 'a', 'g', 'e', 'x', 'p', 'r', 'e', 's', 's', '.', 'c', 'o', 'm', '\0', /* "sandbox.mydigipass.com", false */ 's', 'a', 'n', 'd', 'b', 'o', 'x', '.', 'm', 'y', 'd', 'i', 'g', 'i', 'p', 'a', 's', 's', '.', 'c', 'o', 'm', '\0', @@ -12333,6 +12334,8 @@ static const char kSTSHostTable[] = { /* "securitywithnick.com", true */ 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'w', 'i', 't', 'h', 'n', 'i', 'c', 'k', '.', 'c', 'o', 'm', '\0', /* "securitywithoutborders.org", true */ 's', 'e', 'c', 'u', 'r', 'i', 't', 'y', 'w', 'i', 't', 'h', 'o', 'u', 't', 'b', 'o', 'r', 'd', 'e', 'r', 's', '.', 'o', 'r', 'g', '\0', /* "secuvera.de", true */ 's', 'e', 'c', 'u', 'v', 'e', 'r', 'a', '.', 'd', 'e', '\0', + /* "sedoexpert.nl", true */ 's', 'e', 'd', 'o', 'e', 'x', 'p', 'e', 'r', 't', '.', 'n', 'l', '\0', + /* "sedoexperts.nl", true */ 's', 'e', 'd', 'o', 'e', 'x', 'p', 'e', 'r', 't', 's', '.', 'n', 'l', '\0', /* "sedrubal.de", true */ 's', 'e', 'd', 'r', 'u', 'b', 'a', 'l', '.', 'd', 'e', '\0', /* "sedussa.ro", true */ 's', 'e', 'd', 'u', 's', 's', 'a', '.', 'r', 'o', '\0', /* "sedziapilkarski.pl", true */ 's', 'e', 'd', 'z', 'i', 'a', 'p', 'i', 'l', 'k', 'a', 'r', 's', 'k', 'i', '.', 'p', 'l', '\0', @@ -12469,6 +12472,7 @@ static const char kSTSHostTable[] = { /* "shadowkitsune.net", true */ 's', 'h', 'a', 'd', 'o', 'w', 'k', 'i', 't', 's', 'u', 'n', 'e', '.', 'n', 'e', 't', '\0', /* "shadowplus.net", true */ 's', 'h', 'a', 'd', 'o', 'w', 'p', 'l', 'u', 's', '.', 'n', 'e', 't', '\0', /* "shadowrocket.net", true */ 's', 'h', 'a', 'd', 'o', 'w', 'r', 'o', 'c', 'k', 'e', 't', '.', 'n', 'e', 't', '\0', + /* "shadowsocks.com", true */ 's', 'h', 'a', 'd', 'o', 'w', 's', 'o', 'c', 'k', 's', '.', 'c', 'o', 'm', '\0', /* "shadowsworldonline.co.uk", true */ 's', 'h', 'a', 'd', 'o', 'w', 's', 'w', 'o', 'r', 'l', 'd', 'o', 'n', 'l', 'i', 'n', 'e', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "shagi29.ru", true */ 's', 'h', 'a', 'g', 'i', '2', '9', '.', 'r', 'u', '\0', /* "shaitan.eu", true */ 's', 'h', 'a', 'i', 't', 'a', 'n', '.', 'e', 'u', '\0', @@ -12641,7 +12645,7 @@ static const char kSTSHostTable[] = { /* "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', - /* "simonsmh.cc", true */ 's', 'i', 'm', 'o', 'n', 's', 'm', 'h', '.', 'c', 'c', '\0', + /* "simonsmh.cc", false */ 's', 'i', 'm', 'o', 'n', 's', 'm', 'h', '.', 'c', 'c', '\0', /* "simonsreich.de", true */ 's', 'i', 'm', 'o', 'n', 's', 'r', 'e', 'i', 'c', 'h', '.', 'd', 'e', '\0', /* "simonwessel.net", true */ 's', 'i', 'm', 'o', 'n', 'w', 'e', 's', 's', 'e', 'l', '.', 'n', 'e', 't', '\0', /* "simonwoodside.com", true */ 's', 'i', 'm', 'o', 'n', 'w', 'o', 'o', 'd', 's', 'i', 'd', 'e', '.', 'c', 'o', 'm', '\0', @@ -12732,7 +12736,6 @@ static const char kSTSHostTable[] = { /* "skontorp-enterprise.no", true */ 's', 'k', 'o', 'n', 't', 'o', 'r', 'p', '-', 'e', 'n', 't', 'e', 'r', 'p', 'r', 'i', 's', 'e', '.', 'n', 'o', '\0', /* "skory.us", true */ 's', 'k', 'o', 'r', 'y', '.', 'u', 's', '\0', /* "skotty.io", true */ 's', 'k', 'o', 't', 't', 'y', '.', 'i', 'o', '\0', - /* "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.com", true */ 's', 'k', 'y', 'a', 's', 'k', 'e', 'r', '.', 'c', 'o', 'm', '\0', @@ -12797,6 +12800,7 @@ static const char kSTSHostTable[] = { /* "smalltalkconsulting.com", true */ 's', 'm', 'a', 'l', 'l', 't', 'a', 'l', 'k', 'c', 'o', 'n', 's', 'u', 'l', 't', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "smares.de", true */ 's', 'm', 'a', 'r', 'e', 's', '.', 'd', 'e', '\0', /* "smart-cp.jp", true */ 's', 'm', 'a', 'r', 't', '-', 'c', 'p', '.', 'j', 'p', '\0', + /* "smartairkey.com", true */ 's', 'm', 'a', 'r', 't', 'a', 'i', 'r', 'k', 'e', 'y', '.', 'c', 'o', 'm', '\0', /* "smartbuyelectric.com", true */ 's', 'm', 'a', 'r', 't', 'b', 'u', 'y', 'e', 'l', 'e', 'c', 't', 'r', 'i', 'c', '.', 'c', 'o', 'm', '\0', /* "smartcheck.gov", true */ 's', 'm', 'a', 'r', 't', 'c', 'h', 'e', 'c', 'k', '.', 'g', 'o', 'v', '\0', /* "smartcleaningcenter.nl", false */ 's', 'm', 'a', 'r', 't', 'c', 'l', 'e', 'a', 'n', 'i', 'n', 'g', 'c', 'e', 'n', 't', 'e', 'r', '.', 'n', 'l', '\0', @@ -12897,7 +12901,6 @@ static const char kSTSHostTable[] = { /* "societyhilldance.com", true */ 's', 'o', 'c', 'i', 'e', 't', 'y', 'h', 'i', 'l', 'l', 'd', 'a', 'n', 'c', 'e', '.', 'c', 'o', 'm', '\0', /* "socketize.com", true */ 's', 'o', 'c', 'k', 'e', 't', 'i', 'z', 'e', '.', 'c', 'o', 'm', '\0', /* "sockeye.io", true */ 's', 'o', 'c', 'k', 'e', 'y', 'e', '.', 'i', 'o', '\0', - /* "sodacore.com", true */ 's', 'o', 'd', 'a', 'c', 'o', 'r', 'e', '.', 'c', 'o', 'm', '\0', /* "sodi.nl", true */ 's', 'o', 'd', 'i', '.', 'n', 'l', '\0', /* "sodiao.cc", true */ 's', 'o', 'd', 'i', 'a', 'o', '.', 'c', 'c', '\0', /* "soe-server.com", true */ 's', 'o', 'e', '-', 's', 'e', 'r', 'v', 'e', 'r', '.', 'c', 'o', 'm', '\0', @@ -13215,7 +13218,6 @@ static const char kSTSHostTable[] = { /* "starwatches.eu", true */ 's', 't', 'a', 'r', 'w', 'a', 't', 'c', 'h', 'e', 's', '.', 'e', 'u', '\0', /* "stash.ai", true */ 's', 't', 'a', 's', 'h', '.', 'a', 'i', '\0', /* "stassi.ch", true */ 's', 't', 'a', 's', 's', 'i', '.', 'c', 'h', '\0', - /* "statementinsertsforless.com", true */ 's', 't', 'a', 't', 'e', 'm', 'e', 'n', 't', 'i', 'n', 's', 'e', 'r', 't', 's', 'f', 'o', 'r', 'l', 'e', 's', 's', '.', 'c', 'o', 'm', '\0', /* "statgram.me", true */ 's', 't', 'a', 't', 'g', 'r', 'a', 'm', '.', 'm', 'e', '\0', /* "static.wepay.com", false */ 's', 't', 'a', 't', 'i', 'c', '.', 'w', 'e', 'p', 'a', 'y', '.', 'c', 'o', 'm', '\0', /* "staticisnoise.com", true */ 's', 't', 'a', 't', 'i', 'c', 'i', 's', 'n', 'o', 'i', 's', 'e', '.', 'c', 'o', 'm', '\0', @@ -13360,7 +13362,6 @@ static const char kSTSHostTable[] = { /* "stuntmen.xyz", true */ 's', 't', 'u', 'n', 't', 'm', 'e', 'n', '.', 'x', 'y', 'z', '\0', /* "stupendous.net", true */ 's', 't', 'u', 'p', 'e', 'n', 'd', 'o', 'u', 's', '.', 'n', 'e', 't', '\0', /* "sturbi.de", true */ 's', 't', 'u', 'r', 'b', 'i', '.', 'd', 'e', '\0', - /* "sturbock.me", true */ 's', 't', 'u', 'r', 'b', 'o', 'c', 'k', '.', 'm', 'e', '\0', /* "stutelage.com", true */ 's', 't', 'u', 't', 'e', 'l', 'a', 'g', 'e', '.', 'c', 'o', 'm', '\0', /* "stuur.nl", false */ 's', 't', 'u', 'u', 'r', '.', 'n', 'l', '\0', /* "styleci.io", true */ 's', 't', 'y', 'l', 'e', 'c', 'i', '.', 'i', 'o', '\0', @@ -13413,7 +13414,6 @@ static const char kSTSHostTable[] = { /* "superkonsult.se", true */ 's', 'u', 'p', 'e', 'r', 'k', 'o', 'n', 's', 'u', 'l', 't', '.', 's', 'e', '\0', /* "supermarx.nl", true */ 's', 'u', 'p', 'e', 'r', 'm', 'a', 'r', 'x', '.', 'n', 'l', '\0', /* "supernt.lt", true */ 's', 'u', 'p', 'e', 'r', 'n', 't', '.', 'l', 't', '\0', - /* "superpase.com", true */ 's', 'u', 'p', 'e', 'r', 'p', 'a', 's', 'e', '.', 'c', 'o', 'm', '\0', /* "superschnappchen.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'c', 'h', 'n', 'a', 'p', 'p', 'c', 'h', 'e', 'n', '.', 'd', 'e', '\0', /* "supersonnig-festival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', '-', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0', /* "supersonnigfestival.de", true */ 's', 'u', 'p', 'e', 'r', 's', 'o', 'n', 'n', 'i', 'g', 'f', 'e', 's', 't', 'i', 'v', 'a', 'l', '.', 'd', 'e', '\0', @@ -13678,7 +13678,6 @@ static const char kSTSHostTable[] = { /* "techcultivation.de", true */ 't', 'e', 'c', 'h', 'c', 'u', 'l', 't', 'i', 'v', 'a', 't', 'i', 'o', 'n', '.', 'd', 'e', '\0', /* "techcultivation.net", true */ 't', 'e', 'c', 'h', 'c', 'u', 'l', 't', 'i', 'v', 'a', 't', 'i', 'o', 'n', '.', 'n', 'e', 't', '\0', /* "techcultivation.org", true */ 't', 'e', 'c', 'h', 'c', 'u', 'l', 't', 'i', 'v', 'a', 't', 'i', 'o', 'n', '.', 'o', 'r', 'g', '\0', - /* "techelements.co", false */ 't', 'e', 'c', 'h', 'e', 'l', 'e', 'm', 'e', 'n', 't', 's', '.', 'c', 'o', '\0', /* "techmajesty.com", true */ 't', 'e', 'c', 'h', 'm', 'a', 'j', 'e', 's', 't', 'y', '.', 'c', 'o', 'm', '\0', /* "techmasters.io", true */ 't', 'e', 'c', 'h', 'm', 'a', 's', 't', 'e', 'r', 's', '.', 'i', 'o', '\0', /* "technologysi.com", true */ 't', 'e', 'c', 'h', 'n', 'o', 'l', 'o', 'g', 'y', 's', 'i', '.', 'c', 'o', 'm', '\0', @@ -13696,7 +13695,6 @@ static const char kSTSHostTable[] = { /* "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', - /* "tedb.us", true */ 't', 'e', 'd', 'b', '.', 'u', 's', '\0', /* "teddy.ch", true */ 't', 'e', 'd', 'd', 'y', '.', 'c', 'h', '\0', /* "tedeh.net", true */ 't', 'e', 'd', 'e', 'h', '.', 'n', 'e', 't', '\0', /* "tedovo.com", true */ 't', 'e', 'd', 'o', 'v', 'o', '.', 'c', 'o', 'm', '\0', @@ -13941,6 +13939,7 @@ static const char kSTSHostTable[] = { /* "thinkindifferent.net", true */ 't', 'h', 'i', 'n', 'k', 'i', 'n', 'd', 'i', 'f', 'f', 'e', 'r', 'e', 'n', 't', '.', 'n', 'e', 't', '\0', /* "thinklikeanentrepreneur.com", true */ 't', 'h', 'i', 'n', 'k', 'l', 'i', 'k', 'e', 'a', 'n', 'e', 'n', 't', 'r', 'e', 'p', 'r', 'e', 'n', 'e', 'u', 'r', '.', 'c', 'o', 'm', '\0', /* "thinkrealty.com", true */ 't', 'h', 'i', 'n', 'k', 'r', 'e', 'a', 'l', 't', 'y', '.', 'c', 'o', 'm', '\0', + /* "thinktux.net", true */ 't', 'h', 'i', 'n', 'k', 't', 'u', 'x', '.', 'n', 'e', 't', '\0', /* "thinlyveiledcontempt.com", true */ 't', 'h', 'i', 'n', 'l', 'y', 'v', 'e', 'i', 'l', 'e', 'd', 'c', 'o', 'n', 't', 'e', 'm', 'p', 't', '.', 'c', 'o', 'm', '\0', /* "thisbrownman.com", true */ 't', 'h', 'i', 's', 'b', 'r', 'o', 'w', 'n', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0', /* "thisfreelife.gov", true */ 't', 'h', 'i', 's', 'f', 'r', 'e', 'e', 'l', 'i', 'f', 'e', '.', 'g', 'o', 'v', '\0', @@ -13992,6 +13991,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', /* "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', /* "ticketsourcebeta.co.uk", true */ 't', 'i', 'c', 'k', 'e', 't', 's', 'o', 'u', 'r', 'c', 'e', 'b', 'e', 't', 'a', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "tid.jp", true */ 't', 'i', 'd', '.', 'j', 'p', '\0', @@ -14054,6 +14054,7 @@ static const char kSTSHostTable[] = { /* "tkappertjedemetamorfose.nl", true */ 't', 'k', 'a', 'p', 'p', 'e', 'r', 't', 'j', 'e', 'd', 'e', 'm', 'e', 't', 'a', 'm', 'o', 'r', 'f', 'o', 's', 'e', '.', 'n', 'l', '\0', /* "tkat.ch", true */ 't', 'k', 'a', 't', '.', 'c', 'h', '\0', /* "tkn.tokyo", true */ 't', 'k', 'n', '.', 't', 'o', 'k', 'y', 'o', '\0', + /* "tlach.cz", true */ 't', 'l', 'a', 'c', 'h', '.', 'c', 'z', '\0', /* "tlo.xyz", true */ 't', 'l', 'o', '.', 'x', 'y', 'z', '\0', /* "tls.builders", true */ 't', 'l', 's', '.', 'b', 'u', 'i', 'l', 'd', 'e', 'r', 's', '\0', /* "tls.care", true */ 't', 'l', 's', '.', 'c', 'a', 'r', 'e', '\0', @@ -14176,6 +14177,7 @@ static const char kSTSHostTable[] = { /* "toool.nl", true */ 't', 'o', 'o', 'o', 'l', '.', 'n', 'l', '\0', /* "toool.org", true */ 't', 'o', 'o', 'o', 'l', '.', 'o', 'r', 'g', '\0', /* "tooolroc.org", true */ 't', 'o', 'o', 'o', 'l', 'r', 'o', 'c', '.', 'o', 'r', 'g', '\0', + /* "tooti.biz", true */ 't', 'o', 'o', 't', 'i', '.', 'b', 'i', 'z', '\0', /* "top-stage.net", true */ 't', 'o', 'p', '-', 's', 't', 'a', 'g', 'e', '.', 'n', 'e', 't', '\0', /* "topaxi.ch", true */ 't', 'o', 'p', 'a', 'x', 'i', '.', 'c', 'h', '\0', /* "topaxi.codes", true */ 't', 'o', 'p', 'a', 'x', 'i', '.', 'c', 'o', 'd', 'e', 's', '\0', @@ -14311,7 +14313,6 @@ static const char kSTSHostTable[] = { /* "travador.com", true */ 't', 'r', 'a', 'v', 'a', 'd', 'o', 'r', '.', 'c', 'o', 'm', '\0', /* "travality.ru", true */ 't', 'r', 'a', 'v', 'a', 'l', 'i', 't', 'y', '.', 'r', 'u', '\0', /* "travelinsightswriter.com", true */ 't', 'r', 'a', 'v', 'e', 'l', 'i', 'n', 's', 'i', 'g', 'h', 't', 's', 'w', 'r', 'i', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0', - /* "travelinsurance.co.nz", true */ 't', 'r', 'a', 'v', 'e', 'l', 'i', 'n', 's', 'u', 'r', 'a', 'n', 'c', 'e', '.', 'c', 'o', '.', 'n', 'z', '\0', /* "travellers.dating", true */ 't', 'r', 'a', 'v', 'e', 'l', 'l', 'e', 'r', 's', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', /* "travelogue.jp", true */ 't', 'r', 'a', 'v', 'e', 'l', 'o', 'g', 'u', 'e', '.', 'j', 'p', '\0', /* "travelpricecheck.com", true */ 't', 'r', 'a', 'v', 'e', 'l', 'p', 'r', 'i', 'c', 'e', 'c', 'h', 'e', 'c', 'k', '.', 'c', 'o', 'm', '\0', @@ -14491,6 +14492,7 @@ static const char kSTSHostTable[] = { /* "typeria.net", true */ 't', 'y', 'p', 'e', 'r', 'i', 'a', '.', 'n', 'e', 't', '\0', /* "typewolf.com", true */ 't', 'y', 'p', 'e', 'w', 'o', 'l', 'f', '.', 'c', 'o', 'm', '\0', /* "typing.com", true */ 't', 'y', 'p', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', + /* "typingrevolution.com", true */ 't', 'y', 'p', 'i', 'n', 'g', 'r', 'e', 'v', 'o', 'l', 'u', 't', 'i', 'o', 'n', '.', 'c', 'o', 'm', '\0', /* "typo3.com", true */ 't', 'y', 'p', 'o', '3', '.', 'c', 'o', 'm', '\0', /* "tysye.ca", true */ 't', 'y', 's', 'y', 'e', '.', 'c', 'a', '\0', /* "tzwe.com", true */ 't', 'z', 'w', 'e', '.', 'c', 'o', 'm', '\0', @@ -14498,6 +14500,7 @@ static const char kSTSHostTable[] = { /* "u5b.de", true */ 'u', '5', 'b', '.', 'd', 'e', '\0', /* "uae-company-service.com", true */ 'u', 'a', 'e', '-', 'c', 'o', 'm', 'p', 'a', 'n', 'y', '-', 's', 'e', 'r', 'v', 'i', 'c', 'e', '.', 'c', 'o', 'm', '\0', /* "uangteman.com", true */ 'u', 'a', 'n', 'g', 't', 'e', 'm', 'a', 'n', '.', 'c', 'o', 'm', '\0', + /* "uasmi.com", true */ 'u', 'a', 's', 'm', 'i', '.', 'c', 'o', 'm', '\0', /* "uat-activesg.com", true */ 'u', 'a', 't', '-', 'a', 'c', 't', 'i', 'v', 'e', 's', 'g', '.', 'c', 'o', 'm', '\0', /* "ub3rk1tten.com", false */ 'u', 'b', '3', 'r', 'k', '1', 't', 't', 'e', 'n', '.', 'c', 'o', 'm', '\0', /* "ubanquity.com", true */ 'u', 'b', 'a', 'n', 'q', 'u', 'i', 't', 'y', '.', 'c', 'o', 'm', '\0', @@ -14635,6 +14638,7 @@ static const char kSTSHostTable[] = { /* "unwomen.is", true */ 'u', 'n', 'w', 'o', 'm', 'e', 'n', '.', 'i', 's', '\0', /* "unxicdellum.cat", true */ 'u', 'n', 'x', 'i', 'c', 'd', 'e', 'l', 'l', 'u', 'm', '.', 'c', 'a', 't', '\0', /* "unyq.me", false */ 'u', 'n', 'y', 'q', '.', 'm', 'e', '\0', + /* "upandclear.org", true */ 'u', 'p', 'a', 'n', 'd', 'c', 'l', 'e', 'a', 'r', '.', 'o', 'r', 'g', '\0', /* "upay.ru", true */ 'u', 'p', 'a', 'y', '.', 'r', 'u', '\0', /* "upboard.jp", true */ 'u', 'p', 'b', 'o', 'a', 'r', 'd', '.', 'j', 'p', '\0', /* "upgauged.com", true */ 'u', 'p', 'g', 'a', 'u', 'g', 'e', 'd', '.', 'c', 'o', 'm', '\0', @@ -14739,7 +14743,6 @@ static const char kSTSHostTable[] = { /* "valskis.lt", true */ 'v', 'a', 'l', 's', 'k', 'i', 's', '.', 'l', 't', '\0', /* "valtoaho.com", true */ 'v', 'a', 'l', 't', 'o', 'a', 'h', 'o', '.', 'c', 'o', 'm', '\0', /* "van11y.net", true */ 'v', 'a', 'n', '1', '1', 'y', '.', 'n', 'e', 't', '\0', - /* "vanacht.co.za", true */ 'v', 'a', 'n', 'a', 'c', 'h', 't', '.', 'c', 'o', '.', 'z', 'a', '\0', /* "vandalfsen.me", true */ 'v', 'a', 'n', 'd', 'a', 'l', 'f', 's', 'e', 'n', '.', 'm', 'e', '\0', /* "vande-walle.eu", true */ 'v', 'a', 'n', 'd', 'e', '-', 'w', 'a', 'l', 'l', 'e', '.', 'e', 'u', '\0', /* "vanderrijt.nl", true */ 'v', 'a', 'n', 'd', 'e', 'r', 'r', 'i', 'j', 't', '.', 'n', 'l', '\0', @@ -14787,6 +14790,7 @@ static const char kSTSHostTable[] = { /* "vdesc.com", true */ 'v', 'd', 'e', 's', 'c', '.', 'c', 'o', 'm', '\0', /* "vdhco.be", true */ 'v', 'd', 'h', 'c', 'o', '.', 'b', 'e', '\0', /* "vdownloader.com", true */ 'v', 'd', 'o', 'w', 'n', 'l', 'o', 'a', 'd', 'e', 'r', '.', 'c', 'o', 'm', '\0', + /* "vdrpro.com", true */ 'v', 'd', 'r', 'p', 'r', 'o', '.', 'c', 'o', 'm', '\0', /* "ve.search.yahoo.com", false */ 'v', 'e', '.', 's', 'e', 'a', 'r', 'c', 'h', '.', 'y', 'a', 'h', 'o', 'o', '.', 'c', 'o', 'm', '\0', /* "ve3oat.ca", true */ 'v', 'e', '3', 'o', 'a', 't', '.', 'c', 'a', '\0', /* "vea.re", true */ 'v', 'e', 'a', '.', 'r', 'e', '\0', @@ -14866,6 +14870,7 @@ static const char kSTSHostTable[] = { /* "videotogel.net", false */ 'v', 'i', 'd', 'e', 'o', 't', 'o', 'g', 'e', 'l', '.', 'n', 'e', 't', '\0', /* "vidid.net", false */ 'v', 'i', 'd', 'i', 'd', '.', 'n', 'e', 't', '\0', /* "vieclam24h.vn", false */ 'v', 'i', 'e', 'c', 'l', 'a', 'm', '2', '4', 'h', '.', 'v', 'n', '\0', + /* "viemeister.com", true */ 'v', 'i', 'e', 'm', 'e', 'i', 's', 't', 'e', 'r', '.', 'c', 'o', 'm', '\0', /* "viennan.net", true */ 'v', 'i', 'e', 'n', 'n', 'a', 'n', '.', 'n', 'e', 't', '\0', /* "vietnamchevrolet.net", true */ 'v', 'i', 'e', 't', 'n', 'a', 'm', 'c', 'h', 'e', 'v', 'r', 'o', 'l', 'e', 't', '.', 'n', 'e', 't', '\0', /* "vietnamese.dating", true */ 'v', 'i', 'e', 't', 'n', 'a', 'm', 'e', 's', 'e', '.', 'd', 'a', 't', 'i', 'n', 'g', '\0', @@ -14896,7 +14901,6 @@ static const char kSTSHostTable[] = { /* "vincitraining.com", true */ 'v', 'i', 'n', 'c', 'i', 't', 'r', 'a', 'i', 'n', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "vineright.com", true */ 'v', 'i', 'n', 'e', 'r', 'i', 'g', 'h', 't', '.', 'c', 'o', 'm', '\0', /* "vinesauce.info", true */ 'v', 'i', 'n', 'e', 's', 'a', 'u', 'c', 'e', '.', 'i', 'n', 'f', 'o', '\0', - /* "vinicius.sl", true */ 'v', 'i', 'n', 'i', 'c', 'i', 'u', 's', '.', 's', 'l', '\0', /* "vinilosdecorativos.net", true */ 'v', 'i', 'n', 'i', 'l', 'o', 's', 'd', 'e', 'c', 'o', 'r', 'a', 't', 'i', 'v', 'o', 's', '.', 'n', 'e', 't', '\0', /* "vinner.com.au", true */ 'v', 'i', 'n', 'n', 'e', 'r', '.', 'c', 'o', 'm', '.', 'a', 'u', '\0', /* "vintagetrailerbuyers.com", true */ 'v', 'i', 'n', 't', 'a', 'g', 'e', 't', 'r', 'a', 'i', 'l', 'e', 'r', 'b', 'u', 'y', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0', @@ -14966,7 +14970,7 @@ static const char kSTSHostTable[] = { /* "vnvisa.ru", true */ 'v', 'n', 'v', 'i', 's', 'a', '.', 'r', 'u', '\0', /* "vocab.guru", true */ 'v', 'o', 'c', 'a', 'b', '.', 'g', 'u', 'r', 'u', '\0', /* "vocaloid.my", true */ 'v', 'o', 'c', 'a', 'l', 'o', 'i', 'd', '.', 'm', 'y', '\0', - /* "vodpay.com", true */ 'v', 'o', 'd', 'p', 'a', 'y', '.', 'c', 'o', 'm', '\0', + /* "vogler.name", true */ 'v', 'o', 'g', 'l', 'e', 'r', '.', 'n', 'a', 'm', 'e', '\0', /* "vogt.tech", true */ 'v', 'o', 'g', 't', '.', 't', 'e', 'c', 'h', '\0', /* "voidi.ca", true */ 'v', 'o', 'i', 'd', 'i', '.', 'c', 'a', '\0', /* "voidserv.net", true */ 'v', 'o', 'i', 'd', 's', 'e', 'r', 'v', '.', 'n', 'e', 't', '\0', @@ -15090,6 +15094,7 @@ static const char kSTSHostTable[] = { /* "warekon.dk", true */ 'w', 'a', 'r', 'e', 'k', 'o', 'n', '.', 'd', 'k', '\0', /* "warhaggis.com", true */ 'w', 'a', 'r', 'h', 'a', 'g', 'g', 'i', 's', '.', 'c', 'o', 'm', '\0', /* "warmestwishes.ca", true */ 'w', 'a', 'r', 'm', 'e', 's', 't', 'w', 'i', 's', 'h', 'e', 's', '.', 'c', 'a', '\0', + /* "warmlyyours.com", false */ 'w', 'a', 'r', 'm', 'l', 'y', 'y', 'o', 'u', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "warmservers.com", true */ 'w', 'a', 'r', 'm', 's', 'e', 'r', 'v', 'e', 'r', 's', '.', 'c', 'o', 'm', '\0', /* "warr.ath.cx", true */ 'w', 'a', 'r', 'r', '.', 'a', 't', 'h', '.', 'c', 'x', '\0', /* "warrencreative.com", false */ 'w', 'a', 'r', 'r', 'e', 'n', 'c', 'r', 'e', 'a', 't', 'i', 'v', 'e', '.', 'c', 'o', 'm', '\0', @@ -15107,7 +15112,6 @@ static const char kSTSHostTable[] = { /* "waterfedpole.com", true */ 'w', 'a', 't', 'e', 'r', 'f', 'e', 'd', 'p', 'o', 'l', 'e', '.', 'c', 'o', 'm', '\0', /* "waterforlife.net.au", true */ 'w', 'a', 't', 'e', 'r', 'f', 'o', 'r', 'l', 'i', 'f', 'e', '.', 'n', 'e', 't', '.', 'a', 'u', '\0', /* "watersb.org", true */ 'w', 'a', 't', 'e', 'r', 's', 'b', '.', 'o', 'r', 'g', '\0', - /* "watersportmarkt.net", true */ 'w', 'a', 't', 'e', 'r', 's', 'p', 'o', 'r', 't', 'm', 'a', 'r', 'k', 't', '.', 'n', 'e', 't', '\0', /* "watertrails.io", true */ 'w', 'a', 't', 'e', 'r', 't', 'r', 'a', 'i', 'l', 's', '.', 'i', 'o', '\0', /* "wavesboardshop.com", true */ 'w', 'a', 'v', 'e', 's', 'b', 'o', 'a', 'r', 'd', 's', 'h', 'o', 'p', '.', 'c', 'o', 'm', '\0', /* "wawak.pl", true */ 'w', 'a', 'w', 'a', 'k', '.', 'p', 'l', '\0', @@ -15380,6 +15384,7 @@ static const char kSTSHostTable[] = { /* "windscribe.com", true */ 'w', 'i', 'n', 'd', 's', 'c', 'r', 'i', 'b', 'e', '.', 'c', 'o', 'm', '\0', /* "winebid.com", true */ 'w', 'i', 'n', 'e', 'b', 'i', 'd', '.', 'c', 'o', 'm', '\0', /* "winghill.com", false */ 'w', 'i', 'n', 'g', 'h', 'i', 'l', 'l', '.', 'c', 'o', 'm', '\0', + /* "winhistory-forum.net", true */ 'w', 'i', 'n', 'h', 'i', 's', 't', 'o', 'r', 'y', '-', 'f', 'o', 'r', 'u', 'm', '.', 'n', 'e', 't', '\0', /* "winmodels.org", true */ 'w', 'i', 'n', 'm', 'o', 'd', 'e', 'l', 's', '.', 'o', 'r', 'g', '\0', /* "winmodels.ru", true */ 'w', 'i', 'n', 'm', 'o', 'd', 'e', 'l', 's', '.', 'r', 'u', '\0', /* "winsufi.biz", true */ 'w', 'i', 'n', 's', 'u', 'f', 'i', '.', 'b', 'i', 'z', '\0', @@ -15469,11 +15474,13 @@ static const char kSTSHostTable[] = { /* "worldofbelia.de", true */ 'w', 'o', 'r', 'l', 'd', 'o', 'f', 'b', 'e', 'l', 'i', 'a', '.', 'd', 'e', '\0', /* "worldpovertysolutions.org", true */ 'w', 'o', 'r', 'l', 'd', 'p', 'o', 'v', 'e', 'r', 't', 'y', 's', 'o', 'l', 'u', 't', 'i', 'o', 'n', 's', '.', 'o', 'r', 'g', '\0', /* "worldsbeststory.com", true */ 'w', 'o', 'r', 'l', 'd', 's', 'b', 'e', 's', 't', 's', 't', 'o', 'r', 'y', '.', 'c', 'o', 'm', '\0', + /* "wormdisk.net", true */ 'w', 'o', 'r', 'm', 'd', 'i', 's', 'k', '.', 'n', 'e', 't', '\0', /* "wormholevpn.net", true */ 'w', 'o', 'r', 'm', 'h', 'o', 'l', 'e', 'v', 'p', 'n', '.', 'n', 'e', 't', '\0', /* "worshapp.com", true */ 'w', 'o', 'r', 's', 'h', 'a', 'p', 'p', '.', 'c', 'o', 'm', '\0', /* "woufbox.com", true */ 'w', 'o', 'u', 'f', 'b', 'o', 'x', '.', 'c', 'o', 'm', '\0', /* "woutergeraedts.nl", true */ 'w', 'o', 'u', 't', 'e', 'r', 'g', 'e', 'r', 'a', 'e', 'd', 't', 's', '.', 'n', 'l', '\0', /* "woutervdb.com", true */ 'w', 'o', 'u', 't', 'e', 'r', 'v', 'd', 'b', '.', 'c', 'o', 'm', '\0', + /* "wow-foederation.de", true */ 'w', 'o', 'w', '-', 'f', 'o', 'e', 'd', 'e', 'r', 'a', 't', 'i', 'o', 'n', '.', 'd', 'e', '\0', /* "wowhelp.it", true */ 'w', 'o', 'w', 'h', 'e', 'l', 'p', '.', 'i', 't', '\0', /* "wowjs.co.uk", true */ 'w', 'o', 'w', 'j', 's', '.', 'c', 'o', '.', 'u', 'k', '\0', /* "wowjs.org", true */ 'w', 'o', 'w', 'j', 's', '.', 'o', 'r', 'g', '\0', @@ -15522,7 +15529,6 @@ static const char kSTSHostTable[] = { /* "wubocong.com", true */ 'w', 'u', 'b', 'o', 'c', 'o', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "wubthecaptain.eu", true */ 'w', 'u', 'b', 't', 'h', 'e', 'c', 'a', 'p', 't', 'a', 'i', 'n', '.', 'e', 'u', '\0', /* "wuetix.de", true */ 'w', 'u', 'e', 't', 'i', 'x', '.', 'd', 'e', '\0', - /* "wuji.cz", true */ 'w', 'u', 'j', 'i', '.', 'c', 'z', '\0', /* "wukongmusic.us", true */ 'w', 'u', 'k', 'o', 'n', 'g', 'm', 'u', 's', 'i', 'c', '.', 'u', 's', '\0', /* "wumbo.co.nz", true */ 'w', 'u', 'm', 'b', 'o', '.', 'c', 'o', '.', 'n', 'z', '\0', /* "wunderkarten.de", true */ 'w', 'u', 'n', 'd', 'e', 'r', 'k', 'a', 'r', 't', 'e', 'n', '.', 'd', 'e', '\0', @@ -16031,7 +16037,6 @@ static const char kSTSHostTable[] = { /* "zonglovani.info", true */ 'z', 'o', 'n', 'g', 'l', 'o', 'v', 'a', 'n', 'i', '.', 'i', 'n', 'f', 'o', '\0', /* "zonky.io", true */ 'z', 'o', 'n', 'k', 'y', '.', 'i', 'o', '\0', /* "zoom.earth", true */ 'z', 'o', 'o', 'm', '.', 'e', 'a', 'r', 't', 'h', '\0', - /* "zoommailing.com", true */ 'z', 'o', 'o', 'm', 'm', 'a', 'i', 'l', 'i', 'n', 'g', '.', 'c', 'o', 'm', '\0', /* "zooom.azurewebsites.net", true */ 'z', 'o', 'o', 'o', 'm', '.', 'a', 'z', 'u', 'r', 'e', 'w', 'e', 'b', 's', 'i', 't', 'e', 's', '.', 'n', 'e', 't', '\0', /* "zooparadies.eu", true */ 'z', 'o', 'o', 'p', 'a', 'r', 'a', 'd', 'i', 'e', 's', '.', 'e', 'u', '\0', /* "zoowiki.us", true */ 'z', 'o', 'o', 'w', 'i', 'k', 'i', '.', 'u', 's', '\0', @@ -16176,15966 +16181,15971 @@ static const nsSTSPreload kSTSPreloadList[] = { { 1114, true }, { 1122, true }, { 1133, true }, - { 1143, true }, - { 1161, true }, - { 1177, true }, - { 1186, true }, - { 1194, true }, - { 1202, true }, - { 1213, true }, - { 1231, true }, - { 1240, true }, - { 1252, true }, - { 1266, true }, + { 1151, true }, + { 1167, true }, + { 1176, true }, + { 1184, true }, + { 1192, true }, + { 1203, true }, + { 1221, true }, + { 1230, true }, + { 1242, true }, + { 1256, true }, + { 1264, true }, { 1274, true }, - { 1284, true }, - { 1300, false }, - { 1313, true }, - { 1322, true }, - { 1336, true }, - { 1345, true }, - { 1366, true }, - { 1386, true }, + { 1290, false }, + { 1303, true }, + { 1312, true }, + { 1326, true }, + { 1335, true }, + { 1356, true }, + { 1376, true }, + { 1385, true }, { 1395, true }, - { 1405, true }, - { 1420, true }, - { 1428, true }, - { 1445, true }, - { 1461, true }, - { 1468, true }, - { 1481, true }, - { 1490, false }, - { 1502, true }, - { 1510, true }, - { 1521, true }, - { 1528, true }, - { 1537, true }, - { 1546, true }, - { 1559, true }, - { 1568, true }, - { 1587, true }, - { 1606, true }, - { 1618, true }, - { 1632, true }, - { 1644, true }, - { 1655, true }, - { 1664, true }, - { 1675, true }, - { 1688, true }, - { 1696, true }, - { 1711, true }, - { 1723, true }, + { 1410, true }, + { 1418, true }, + { 1435, true }, + { 1451, true }, + { 1458, true }, + { 1471, true }, + { 1480, false }, + { 1492, true }, + { 1500, true }, + { 1511, true }, + { 1518, true }, + { 1527, true }, + { 1536, true }, + { 1549, true }, + { 1558, true }, + { 1577, true }, + { 1596, true }, + { 1608, true }, + { 1622, true }, + { 1634, true }, + { 1645, true }, + { 1654, true }, + { 1665, true }, + { 1678, true }, + { 1686, true }, + { 1701, true }, + { 1713, true }, + { 1726, true }, { 1736, true }, - { 1746, true }, - { 1760, true }, - { 1776, true }, - { 1790, true }, + { 1750, true }, + { 1764, true }, + { 1778, true }, + { 1786, true }, + { 1793, true }, { 1804, true }, - { 1812, true }, - { 1819, true }, - { 1831, true }, - { 1842, true }, + { 1817, true }, + { 1826, true }, + { 1838, true }, { 1855, true }, - { 1864, true }, + { 1866, true }, { 1876, true }, { 1887, true }, - { 1897, true }, - { 1908, true }, - { 1919, true }, - { 1932, true }, - { 1940, false }, - { 1949, false }, - { 1962, true }, - { 1970, true }, - { 1982, true }, - { 1994, true }, - { 2009, true }, - { 2028, true }, - { 2035, false }, - { 2054, true }, - { 2064, true }, - { 2070, true }, - { 2079, true }, + { 1898, true }, + { 1911, true }, + { 1919, false }, + { 1928, false }, + { 1941, true }, + { 1949, true }, + { 1961, true }, + { 1973, true }, + { 1988, true }, + { 2007, true }, + { 2014, false }, + { 2033, true }, + { 2043, true }, + { 2049, true }, + { 2058, true }, + { 2071, true }, + { 2083, true }, { 2092, true }, - { 2104, true }, - { 2113, true }, - { 2126, true }, - { 2136, true }, - { 2146, false }, - { 2153, true }, - { 2164, true }, + { 2105, true }, + { 2115, true }, + { 2125, false }, + { 2132, true }, + { 2143, true }, + { 2155, true }, + { 2163, true }, { 2176, true }, - { 2184, true }, - { 2197, true }, + { 2183, true }, + { 2192, true }, { 2204, true }, { 2213, true }, - { 2225, true }, { 2234, true }, - { 2255, true }, - { 2279, true }, - { 2294, true }, - { 2305, true }, - { 2311, true }, - { 2324, true }, - { 2336, true }, - { 2348, true }, - { 2356, true }, - { 2366, true }, - { 2373, true }, - { 2390, true }, - { 2397, true }, + { 2258, true }, + { 2273, true }, + { 2284, true }, + { 2290, true }, + { 2303, true }, + { 2315, true }, + { 2327, true }, + { 2335, true }, + { 2345, true }, + { 2352, true }, + { 2369, true }, + { 2376, true }, + { 2385, true }, { 2406, true }, - { 2427, true }, - { 2440, false }, - { 2453, true }, - { 2463, true }, + { 2419, false }, + { 2432, true }, + { 2442, true }, + { 2495, true }, + { 2507, true }, { 2516, true }, - { 2528, true }, - { 2537, true }, - { 2546, true }, + { 2525, true }, + { 2535, true }, + { 2545, true }, { 2556, true }, - { 2566, true }, - { 2577, true }, - { 2585, true }, - { 2592, true }, - { 2604, true }, - { 2620, true }, + { 2564, true }, + { 2571, true }, + { 2583, true }, + { 2599, true }, + { 2611, true }, + { 2621, true }, { 2632, true }, - { 2642, true }, - { 2653, true }, + { 2651, true }, + { 2662, true }, { 2672, true }, { 2683, true }, - { 2693, true }, - { 2704, true }, - { 2713, true }, - { 2726, true }, - { 2741, true }, - { 2756, true }, - { 2764, true }, - { 2774, true }, - { 2791, true }, - { 2806, true }, - { 2818, true }, - { 2834, true }, - { 2844, true }, - { 2851, true }, - { 2862, true }, - { 2877, true }, - { 2887, true }, - { 2915, true }, + { 2692, true }, + { 2705, true }, + { 2720, true }, + { 2735, true }, + { 2743, true }, + { 2753, true }, + { 2770, true }, + { 2785, true }, + { 2797, true }, + { 2813, true }, + { 2823, true }, + { 2830, true }, + { 2841, true }, + { 2856, true }, + { 2866, true }, + { 2894, true }, + { 2913, true }, + { 2923, true }, { 2934, true }, - { 2944, true }, - { 2955, true }, - { 2973, true }, - { 2984, true }, - { 2998, true }, - { 3010, true }, - { 3032, true }, - { 3048, true }, - { 3059, false }, - { 3075, false }, - { 3087, true }, - { 3100, true }, - { 3117, true }, - { 3142, true }, - { 3159, true }, - { 3183, false }, - { 3191, true }, - { 3215, true }, - { 3228, true }, - { 3240, true }, - { 3251, true }, - { 3269, true }, - { 3293, true }, - { 3300, true }, - { 3313, true }, - { 3326, true }, - { 3335, true }, - { 3352, true }, - { 3364, true }, - { 3383, true }, - { 3406, true }, - { 3420, true }, - { 3444, true }, - { 3460, true }, - { 3473, true }, - { 3490, true }, - { 3510, true }, - { 3523, true }, - { 3541, true }, + { 2952, true }, + { 2963, true }, + { 2977, true }, + { 2989, true }, + { 3011, true }, + { 3027, true }, + { 3038, false }, + { 3054, false }, + { 3066, true }, + { 3079, true }, + { 3096, true }, + { 3121, true }, + { 3138, true }, + { 3162, false }, + { 3170, true }, + { 3194, true }, + { 3207, true }, + { 3219, true }, + { 3230, true }, + { 3248, true }, + { 3272, true }, + { 3279, true }, + { 3292, true }, + { 3305, true }, + { 3314, true }, + { 3331, true }, + { 3343, true }, + { 3362, true }, + { 3385, true }, + { 3399, true }, + { 3423, true }, + { 3439, true }, + { 3452, true }, + { 3469, true }, + { 3489, true }, + { 3502, true }, + { 3520, true }, + { 3535, true }, { 3556, true }, - { 3577, true }, - { 3597, true }, - { 3622, true }, - { 3634, true }, - { 3645, true }, - { 3664, false }, + { 3576, true }, + { 3601, true }, + { 3613, true }, + { 3624, true }, + { 3643, false }, + { 3650, true }, { 3671, true }, - { 3692, true }, - { 3704, true }, - { 3721, true }, - { 3734, true }, + { 3683, true }, + { 3700, true }, + { 3713, true }, + { 3729, true }, { 3750, true }, - { 3771, true }, - { 3783, true }, - { 3796, false }, - { 3805, false }, - { 3815, true }, - { 3830, true }, - { 3847, true }, - { 3861, true }, - { 3874, true }, - { 3890, true }, - { 3901, true }, - { 3913, true }, - { 3934, false }, - { 3944, true }, - { 3959, true }, - { 3973, false }, - { 3986, true }, - { 3995, true }, - { 4010, true }, - { 4024, true }, - { 4036, true }, - { 4051, true }, - { 4064, true }, - { 4076, true }, - { 4088, true }, - { 4100, true }, - { 4112, true }, + { 3762, true }, + { 3775, false }, + { 3784, false }, + { 3794, true }, + { 3809, true }, + { 3826, true }, + { 3840, true }, + { 3853, true }, + { 3869, true }, + { 3880, true }, + { 3892, true }, + { 3913, false }, + { 3923, true }, + { 3938, true }, + { 3952, false }, + { 3965, true }, + { 3974, true }, + { 3989, true }, + { 4003, true }, + { 4015, true }, + { 4030, true }, + { 4043, true }, + { 4055, true }, + { 4067, true }, + { 4079, true }, + { 4091, true }, + { 4103, true }, + { 4111, true }, { 4124, true }, - { 4132, true }, - { 4145, true }, - { 4156, true }, - { 4170, true }, - { 4186, true }, - { 4199, true }, - { 4216, true }, - { 4231, true }, - { 4246, true }, - { 4264, true }, - { 4273, true }, - { 4286, true }, - { 4307, true }, - { 4316, true }, - { 4326, true }, - { 4351, true }, - { 4362, true }, + { 4135, true }, + { 4152, true }, + { 4166, true }, + { 4182, true }, + { 4195, true }, + { 4212, true }, + { 4228, true }, + { 4243, true }, + { 4258, true }, + { 4276, true }, + { 4285, true }, + { 4298, true }, + { 4319, true }, + { 4328, true }, + { 4338, true }, + { 4363, true }, { 4374, true }, - { 4393, true }, + { 4386, true }, { 4405, true }, - { 4424, true }, - { 4443, true }, - { 4462, true }, - { 4473, true }, + { 4417, true }, + { 4436, true }, + { 4455, true }, + { 4474, true }, { 4485, true }, - { 4500, true }, - { 4511, true }, - { 4524, true }, + { 4497, true }, + { 4512, true }, + { 4523, true }, { 4536, true }, - { 4549, true }, - { 4563, true }, - { 4585, true }, - { 4608, true }, - { 4618, true }, - { 4640, true }, - { 4649, true }, - { 4662, true }, - { 4676, true }, + { 4548, true }, + { 4561, true }, + { 4575, true }, + { 4597, true }, + { 4620, true }, + { 4630, true }, + { 4652, true }, + { 4661, true }, + { 4674, true }, { 4688, true }, - { 4701, true }, - { 4728, true }, - { 4754, true }, - { 4765, true }, - { 4778, true }, - { 4789, true }, - { 4813, true }, - { 4830, true }, - { 4858, true }, - { 4874, true }, - { 4883, true }, - { 4893, true }, - { 4907, true }, - { 4926, true }, - { 4936, true }, - { 4950, true }, - { 4958, false }, - { 4979, true }, - { 4997, true }, - { 5008, true }, - { 5018, true }, - { 5027, true }, - { 5046, true }, - { 5067, true }, - { 5081, true }, - { 5100, true }, - { 5113, true }, - { 5124, true }, - { 5144, true }, - { 5162, true }, - { 5180, false }, - { 5199, true }, - { 5213, true }, - { 5234, true }, - { 5250, true }, - { 5260, true }, - { 5273, true }, - { 5286, true }, - { 5300, true }, - { 5314, true }, - { 5324, true }, - { 5334, true }, - { 5344, true }, - { 5354, true }, - { 5364, true }, - { 5374, true }, - { 5391, true }, - { 5401, false }, - { 5409, true }, - { 5420, true }, - { 5431, true }, - { 5442, true }, - { 5460, true }, - { 5469, true }, - { 5489, true }, - { 5500, true }, - { 5517, true }, - { 5541, true }, - { 5555, true }, - { 5574, true }, - { 5596, true }, - { 5606, true }, + { 4700, true }, + { 4713, true }, + { 4740, true }, + { 4766, true }, + { 4777, true }, + { 4790, true }, + { 4801, true }, + { 4825, true }, + { 4842, true }, + { 4870, true }, + { 4886, true }, + { 4895, true }, + { 4905, true }, + { 4919, true }, + { 4938, true }, + { 4948, true }, + { 4962, true }, + { 4970, false }, + { 4991, true }, + { 5009, true }, + { 5020, true }, + { 5030, true }, + { 5039, true }, + { 5058, true }, + { 5079, true }, + { 5093, true }, + { 5112, true }, + { 5125, true }, + { 5136, true }, + { 5156, true }, + { 5174, true }, + { 5192, false }, + { 5211, true }, + { 5225, true }, + { 5246, true }, + { 5262, true }, + { 5272, true }, + { 5285, true }, + { 5298, true }, + { 5312, true }, + { 5326, true }, + { 5336, true }, + { 5346, true }, + { 5356, true }, + { 5366, true }, + { 5376, true }, + { 5386, true }, + { 5403, true }, + { 5413, false }, + { 5421, true }, + { 5432, true }, + { 5443, true }, + { 5454, true }, + { 5472, true }, + { 5481, true }, + { 5501, true }, + { 5512, true }, + { 5529, true }, + { 5553, true }, + { 5567, true }, + { 5586, true }, + { 5608, true }, { 5618, true }, - { 5634, true }, - { 5645, true }, - { 5659, true }, - { 5675, true }, - { 5690, true }, - { 5698, true }, - { 5707, true }, - { 5724, false }, - { 5736, true }, - { 5755, true }, - { 5772, true }, - { 5780, false }, - { 5796, true }, - { 5814, true }, - { 5829, true }, - { 5840, true }, - { 5853, true }, - { 5861, true }, - { 5875, true }, - { 5887, true }, - { 5897, false }, - { 5910, true }, - { 5922, true }, - { 5934, true }, - { 5944, true }, - { 5952, true }, - { 5962, true }, - { 5976, true }, - { 5989, true }, - { 6001, true }, - { 6020, true }, - { 6039, true }, - { 6049, true }, - { 6082, true }, - { 6092, true }, - { 6106, true }, - { 6113, true }, - { 6130, true }, - { 6146, true }, - { 6155, true }, - { 6162, true }, - { 6176, true }, - { 6184, true }, + { 5630, true }, + { 5646, true }, + { 5657, true }, + { 5671, true }, + { 5687, true }, + { 5702, true }, + { 5710, true }, + { 5719, true }, + { 5736, false }, + { 5748, true }, + { 5767, true }, + { 5784, true }, + { 5792, false }, + { 5808, true }, + { 5826, true }, + { 5837, true }, + { 5850, true }, + { 5858, true }, + { 5872, true }, + { 5884, true }, + { 5894, false }, + { 5907, true }, + { 5919, true }, + { 5931, true }, + { 5945, true }, + { 5955, true }, + { 5963, true }, + { 5973, true }, + { 5987, true }, + { 6000, true }, + { 6012, true }, + { 6031, true }, + { 6050, true }, + { 6060, true }, + { 6093, true }, + { 6103, true }, + { 6117, true }, + { 6124, true }, + { 6141, true }, + { 6157, true }, + { 6166, true }, + { 6173, true }, + { 6187, true }, { 6195, true }, - { 6210, true }, - { 6225, true }, - { 6242, true }, - { 6255, true }, - { 6265, true }, + { 6206, true }, + { 6221, true }, + { 6236, true }, + { 6253, true }, + { 6266, true }, { 6276, true }, - { 6291, true }, - { 6314, true }, + { 6287, true }, + { 6302, true }, { 6325, true }, - { 6337, true }, + { 6336, true }, { 6348, true }, - { 6368, true }, + { 6359, true }, { 6379, true }, { 6390, true }, { 6401, true }, { 6412, true }, - { 6425, true }, - { 6443, true }, - { 6455, true }, - { 6472, true }, - { 6481, true }, - { 6495, true }, + { 6423, true }, + { 6436, true }, + { 6454, true }, + { 6466, true }, + { 6483, true }, + { 6492, true }, { 6506, true }, - { 6523, true }, + { 6517, true }, { 6534, true }, - { 6542, true }, - { 6551, false }, - { 6577, false }, - { 6588, true }, - { 6598, false }, - { 6615, true }, - { 6625, true }, - { 6637, true }, - { 6646, true }, - { 6663, true }, + { 6545, true }, + { 6553, true }, + { 6562, false }, + { 6588, false }, + { 6599, true }, + { 6609, false }, + { 6626, true }, + { 6636, true }, + { 6649, true }, + { 6661, true }, { 6670, true }, + { 6687, true }, { 6694, true }, - { 6710, true }, - { 6730, true }, - { 6755, true }, - { 6780, true }, - { 6805, true }, - { 6817, true }, + { 6718, true }, + { 6734, true }, + { 6754, true }, + { 6779, true }, + { 6804, true }, { 6829, true }, - { 6838, true }, - { 6851, false }, - { 6860, true }, - { 6876, true }, - { 6892, true }, - { 6904, true }, - { 6918, true }, - { 6938, true }, - { 6953, true }, - { 6974, true }, - { 6986, true }, - { 6997, true }, - { 7007, true }, - { 7019, true }, + { 6841, true }, + { 6853, true }, + { 6862, true }, + { 6875, false }, + { 6884, true }, + { 6900, true }, + { 6916, true }, + { 6928, true }, + { 6942, true }, + { 6962, true }, + { 6977, true }, + { 6998, true }, + { 7010, true }, + { 7021, true }, { 7031, true }, - { 7040, true }, - { 7052, true }, - { 7071, true }, - { 7084, true }, + { 7043, true }, + { 7055, true }, + { 7064, true }, + { 7076, true }, { 7095, true }, - { 7104, true }, - { 7122, true }, - { 7136, true }, - { 7150, true }, - { 7166, true }, - { 7182, true }, - { 7202, true }, - { 7223, true }, - { 7237, true }, - { 7250, true }, - { 7265, true }, - { 7275, true }, - { 7293, true }, - { 7308, true }, - { 7326, true }, - { 7336, true }, - { 7351, true }, - { 7369, true }, - { 7383, true }, - { 7397, true }, - { 7411, true }, - { 7423, true }, - { 7438, true }, - { 7452, true }, - { 7467, true }, - { 7477, true }, + { 7108, true }, + { 7119, true }, + { 7128, true }, + { 7146, true }, + { 7160, true }, + { 7174, true }, + { 7190, true }, + { 7206, true }, + { 7226, true }, + { 7247, true }, + { 7261, true }, + { 7274, true }, + { 7289, true }, + { 7299, true }, + { 7317, true }, + { 7332, true }, + { 7350, true }, + { 7360, true }, + { 7375, true }, + { 7393, true }, + { 7407, true }, + { 7421, true }, + { 7435, true }, + { 7447, true }, + { 7462, true }, + { 7476, true }, { 7491, true }, - { 7506, true }, - { 7520, true }, - { 7534, true }, - { 7550, true }, - { 7562, true }, - { 7575, false }, - { 7590, true }, - { 7617, true }, - { 7629, true }, - { 7644, true }, - { 7658, true }, - { 7680, true }, - { 7692, true }, - { 7715, true }, - { 7736, true }, - { 7748, true }, - { 7761, true }, - { 7773, true }, - { 7786, true }, - { 7801, true }, - { 7812, false }, - { 7828, true }, - { 7839, true }, - { 7851, true }, - { 7864, true }, - { 7884, true }, - { 7897, true }, - { 7915, true }, - { 7932, true }, + { 7501, true }, + { 7515, true }, + { 7530, true }, + { 7544, true }, + { 7558, true }, + { 7574, true }, + { 7586, true }, + { 7599, false }, + { 7614, true }, + { 7641, true }, + { 7653, true }, + { 7668, true }, + { 7682, true }, + { 7704, true }, + { 7716, true }, + { 7739, true }, + { 7760, true }, + { 7772, true }, + { 7785, true }, + { 7797, true }, + { 7810, true }, + { 7825, true }, + { 7836, false }, + { 7852, true }, + { 7863, true }, + { 7875, true }, + { 7888, true }, + { 7908, true }, + { 7921, true }, + { 7939, true }, { 7956, true }, - { 7975, true }, - { 7989, true }, - { 8002, true }, - { 8018, true }, - { 8034, true }, - { 8053, true }, - { 8066, true }, - { 8087, true }, - { 8107, true }, - { 8127, true }, - { 8143, true }, - { 8156, false }, - { 8169, true }, - { 8181, true }, - { 8191, true }, - { 8204, true }, - { 8218, true }, - { 8234, true }, - { 8248, true }, - { 8264, true }, - { 8276, true }, - { 8290, true }, - { 8301, true }, - { 8320, true }, - { 8333, true }, - { 8347, true }, - { 8355, true }, - { 8368, true }, - { 8383, true }, - { 8397, true }, - { 8414, true }, - { 8433, true }, - { 8445, true }, - { 8459, true }, - { 8481, true }, - { 8495, true }, - { 8507, true }, - { 8535, true }, - { 8550, true }, - { 8562, true }, - { 8573, true }, - { 8584, true }, - { 8596, true }, - { 8604, true }, - { 8615, true }, - { 8623, true }, - { 8631, true }, + { 7980, true }, + { 7999, true }, + { 8013, true }, + { 8026, true }, + { 8042, true }, + { 8058, true }, + { 8077, true }, + { 8090, true }, + { 8111, true }, + { 8131, true }, + { 8151, true }, + { 8167, true }, + { 8180, false }, + { 8193, true }, + { 8205, true }, + { 8215, true }, + { 8228, true }, + { 8242, true }, + { 8258, true }, + { 8272, true }, + { 8288, true }, + { 8300, true }, + { 8314, true }, + { 8325, true }, + { 8344, true }, + { 8357, true }, + { 8371, true }, + { 8379, true }, + { 8392, true }, + { 8407, true }, + { 8421, true }, + { 8438, true }, + { 8457, true }, + { 8469, true }, + { 8483, true }, + { 8505, true }, + { 8519, true }, + { 8531, true }, + { 8559, true }, + { 8574, true }, + { 8586, true }, + { 8597, true }, + { 8608, true }, + { 8620, true }, + { 8628, true }, { 8639, true }, { 8647, true }, - { 8660, true }, - { 8667, true }, - { 8677, true }, - { 8690, true }, - { 8702, true }, - { 8715, true }, - { 8735, true }, - { 8747, true }, + { 8655, true }, + { 8663, true }, + { 8671, true }, + { 8684, true }, + { 8691, true }, + { 8701, true }, + { 8714, true }, + { 8726, true }, + { 8739, true }, { 8759, true }, - { 8777, true }, - { 8805, true }, - { 8818, true }, - { 8827, true }, - { 8840, true }, - { 8852, true }, - { 8866, true }, - { 8879, true }, + { 8771, true }, + { 8783, true }, + { 8801, true }, + { 8829, true }, + { 8842, true }, + { 8851, true }, + { 8864, true }, + { 8876, true }, { 8890, true }, - { 8900, true }, - { 8911, true }, - { 8921, true }, - { 8932, true }, - { 8941, true }, - { 8957, true }, - { 8973, true }, - { 9001, true }, - { 9020, true }, - { 9035, true }, - { 9055, true }, - { 9067, true }, + { 8903, true }, + { 8914, true }, + { 8924, true }, + { 8935, true }, + { 8945, true }, + { 8956, true }, + { 8965, true }, + { 8981, true }, + { 8997, true }, + { 9025, true }, + { 9044, true }, + { 9059, true }, { 9079, true }, - { 9092, true }, - { 9101, true }, - { 9110, true }, - { 9129, true }, - { 9140, true }, - { 9151, true }, - { 9166, true }, - { 9186, true }, - { 9204, true }, - { 9214, true }, - { 9231, true }, - { 9242, true }, - { 9252, true }, + { 9091, true }, + { 9103, true }, + { 9116, true }, + { 9125, true }, + { 9134, true }, + { 9153, true }, + { 9164, true }, + { 9175, true }, + { 9190, true }, + { 9210, true }, + { 9228, true }, + { 9238, true }, + { 9255, true }, { 9266, true }, - { 9283, true }, - { 9292, true }, - { 9303, true }, - { 9323, true }, - { 9342, true }, - { 9353, true }, - { 9364, true }, - { 9382, true }, - { 9408, false }, - { 9419, true }, - { 9441, true }, - { 9463, true }, - { 9477, true }, - { 9492, true }, - { 9506, true }, - { 9520, true }, - { 9535, true }, - { 9556, true }, - { 9566, true }, - { 9577, true }, - { 9598, true }, - { 9616, true }, - { 9634, true }, - { 9647, true }, - { 9655, true }, - { 9669, true }, - { 9691, true }, + { 9276, true }, + { 9290, true }, + { 9307, true }, + { 9316, true }, + { 9327, true }, + { 9347, true }, + { 9366, true }, + { 9377, true }, + { 9388, true }, + { 9406, true }, + { 9432, false }, + { 9443, true }, + { 9465, true }, + { 9487, true }, + { 9501, true }, + { 9516, true }, + { 9530, true }, + { 9544, true }, + { 9559, true }, + { 9580, true }, + { 9590, true }, + { 9601, true }, + { 9622, true }, + { 9640, true }, + { 9658, true }, + { 9671, true }, + { 9679, true }, + { 9692, true }, { 9706, true }, - { 9723, true }, - { 9745, true }, + { 9728, true }, + { 9743, true }, { 9760, true }, - { 9777, true }, - { 9798, true }, + { 9782, true }, + { 9797, true }, { 9814, true }, - { 9841, true }, - { 9857, true }, - { 9874, true }, - { 9889, true }, - { 9903, true }, - { 9920, true }, - { 9937, true }, - { 9949, true }, - { 9967, true }, - { 9984, true }, - { 9999, true }, - { 10013, true }, - { 10030, true }, - { 10048, true }, - { 10063, true }, - { 10075, true }, - { 10091, true }, - { 10104, true }, - { 10124, true }, - { 10144, true }, - { 10155, true }, - { 10166, true }, - { 10177, true }, + { 9835, true }, + { 9851, true }, + { 9878, true }, + { 9894, true }, + { 9911, true }, + { 9926, true }, + { 9940, true }, + { 9957, true }, + { 9974, true }, + { 9986, true }, + { 10004, true }, + { 10021, true }, + { 10036, true }, + { 10050, true }, + { 10067, true }, + { 10085, true }, + { 10100, true }, + { 10112, true }, + { 10128, true }, + { 10141, true }, + { 10161, true }, + { 10181, true }, { 10192, true }, { 10203, true }, - { 10220, true }, - { 10236, true }, - { 10247, true }, - { 10258, true }, - { 10270, true }, - { 10283, true }, - { 10302, true }, - { 10313, true }, - { 10326, true }, - { 10340, true }, - { 10358, false }, - { 10371, false }, - { 10380, true }, - { 10397, true }, - { 10414, true }, + { 10214, true }, + { 10229, true }, + { 10240, true }, + { 10257, true }, + { 10273, true }, + { 10284, true }, + { 10295, true }, + { 10307, true }, + { 10320, true }, + { 10339, true }, + { 10350, true }, + { 10363, true }, + { 10377, true }, + { 10395, false }, + { 10408, false }, + { 10417, true }, { 10434, true }, - { 10445, true }, - { 10456, true }, - { 10474, true }, - { 10506, true }, - { 10533, true }, - { 10545, true }, - { 10555, true }, - { 10573, true }, - { 10588, true }, - { 10600, true }, - { 10612, true }, - { 10632, true }, - { 10651, true }, - { 10671, true }, - { 10694, false }, - { 10718, true }, - { 10730, true }, - { 10741, true }, - { 10753, true }, - { 10765, true }, - { 10781, true }, - { 10798, true }, - { 10817, true }, - { 10831, true }, - { 10842, true }, - { 10858, true }, - { 10877, true }, - { 10890, true }, - { 10903, true }, - { 10915, false }, - { 10939, true }, - { 10955, true }, - { 10971, true }, - { 10983, true }, - { 10999, true }, - { 11016, true }, - { 11030, true }, - { 11045, true }, - { 11060, true }, - { 11071, true }, - { 11089, true }, - { 11105, true }, + { 10451, true }, + { 10471, true }, + { 10482, true }, + { 10493, true }, + { 10511, true }, + { 10543, true }, + { 10570, true }, + { 10582, true }, + { 10592, true }, + { 10610, true }, + { 10625, true }, + { 10637, true }, + { 10649, true }, + { 10669, true }, + { 10688, true }, + { 10708, true }, + { 10731, false }, + { 10755, true }, + { 10767, true }, + { 10778, true }, + { 10790, true }, + { 10802, true }, + { 10818, true }, + { 10835, true }, + { 10854, true }, + { 10868, true }, + { 10879, true }, + { 10895, true }, + { 10914, true }, + { 10927, true }, + { 10940, true }, + { 10952, false }, + { 10976, true }, + { 10992, true }, + { 11008, true }, + { 11020, true }, + { 11036, true }, + { 11053, true }, + { 11067, true }, + { 11082, true }, + { 11097, true }, + { 11108, true }, { 11126, true }, - { 11140, true }, - { 11155, true }, - { 11165, true }, - { 11178, true }, - { 11195, true }, - { 11208, true }, - { 11221, true }, - { 11237, true }, - { 11248, true }, - { 11260, true }, - { 11271, true }, - { 11278, true }, - { 11286, false }, + { 11142, true }, + { 11163, true }, + { 11177, true }, + { 11192, true }, + { 11202, true }, + { 11215, true }, + { 11232, true }, + { 11245, true }, + { 11258, true }, + { 11274, true }, + { 11285, true }, { 11297, true }, { 11308, true }, - { 11321, false }, - { 11329, true }, - { 11339, true }, - { 11346, true }, - { 11360, false }, - { 11374, true }, - { 11390, true }, - { 11404, true }, - { 11413, true }, - { 11443, true }, - { 11466, true }, - { 11479, true }, - { 11498, true }, - { 11511, false }, - { 11530, true }, - { 11546, false }, - { 11562, true }, - { 11578, false }, - { 11593, false }, - { 11606, true }, - { 11622, true }, - { 11634, true }, - { 11653, true }, - { 11674, true }, - { 11687, true }, - { 11700, true }, - { 11710, true }, - { 11721, true }, - { 11732, true }, - { 11746, true }, - { 11762, true }, - { 11779, false }, - { 11796, true }, - { 11822, true }, - { 11835, true }, - { 11849, true }, - { 11868, true }, - { 11889, true }, - { 11901, true }, - { 11915, true }, - { 11939, true }, - { 11948, true }, - { 11961, true }, - { 11974, true }, - { 11988, true }, - { 11999, true }, - { 12008, true }, - { 12021, true }, - { 12034, true }, - { 12046, true }, - { 12067, false }, - { 12085, true }, - { 12108, true }, - { 12135, true }, - { 12154, true }, - { 12174, true }, - { 12185, true }, - { 12202, true }, - { 12214, true }, - { 12228, true }, - { 12236, true }, - { 12253, true }, - { 12266, true }, - { 12278, true }, - { 12296, true }, - { 12319, false }, - { 12335, true }, - { 12341, true }, - { 12353, true }, - { 12363, true }, - { 12375, true }, - { 12386, true }, - { 12396, true }, - { 12413, true }, - { 12432, true }, - { 12444, true }, - { 12456, true }, + { 11315, true }, + { 11323, false }, + { 11334, true }, + { 11345, true }, + { 11358, false }, + { 11366, true }, + { 11376, true }, + { 11383, true }, + { 11397, false }, + { 11411, true }, + { 11427, true }, + { 11441, true }, + { 11450, true }, + { 11480, true }, + { 11503, true }, + { 11516, true }, + { 11535, true }, + { 11548, false }, + { 11567, true }, + { 11583, false }, + { 11599, true }, + { 11615, false }, + { 11630, false }, + { 11643, true }, + { 11659, true }, + { 11671, true }, + { 11690, true }, + { 11711, true }, + { 11724, true }, + { 11737, true }, + { 11747, true }, + { 11758, true }, + { 11769, true }, + { 11783, true }, + { 11799, true }, + { 11816, false }, + { 11833, true }, + { 11859, true }, + { 11872, true }, + { 11886, true }, + { 11905, true }, + { 11926, true }, + { 11938, true }, + { 11952, true }, + { 11976, true }, + { 11985, true }, + { 11998, true }, + { 12011, true }, + { 12025, true }, + { 12036, true }, + { 12045, true }, + { 12058, true }, + { 12071, true }, + { 12083, true }, + { 12104, false }, + { 12122, true }, + { 12145, true }, + { 12172, true }, + { 12191, true }, + { 12211, true }, + { 12222, true }, + { 12239, true }, + { 12251, true }, + { 12265, true }, + { 12273, true }, + { 12290, true }, + { 12303, true }, + { 12315, true }, + { 12333, true }, + { 12356, false }, + { 12372, true }, + { 12378, true }, + { 12390, true }, + { 12400, true }, + { 12412, true }, + { 12423, true }, + { 12433, true }, + { 12450, true }, { 12469, true }, - { 12498, true }, - { 12514, true }, - { 12527, true }, - { 12541, true }, - { 12557, true }, - { 12576, true }, - { 12600, true }, + { 12481, true }, + { 12493, true }, + { 12506, true }, + { 12535, true }, + { 12551, true }, + { 12564, true }, + { 12578, true }, + { 12594, true }, { 12613, true }, - { 12622, true }, - { 12634, true }, + { 12637, true }, { 12650, true }, - { 12664, true }, - { 12680, true }, - { 12700, true }, - { 12714, true }, - { 12722, true }, - { 12736, true }, - { 12754, true }, - { 12774, true }, - { 12796, true }, - { 12808, true }, - { 12824, true }, - { 12838, false }, - { 12851, true }, - { 12866, true }, - { 12884, true }, - { 12898, true }, - { 12907, true }, - { 12919, true }, - { 12937, true }, - { 12957, false }, - { 12972, true }, - { 12985, true }, - { 12995, true }, + { 12659, true }, + { 12671, true }, + { 12687, true }, + { 12701, true }, + { 12717, true }, + { 12737, true }, + { 12751, true }, + { 12759, true }, + { 12773, true }, + { 12791, true }, + { 12811, true }, + { 12833, true }, + { 12845, true }, + { 12861, true }, + { 12875, false }, + { 12888, true }, + { 12903, true }, + { 12921, true }, + { 12935, true }, + { 12944, true }, + { 12956, true }, + { 12974, true }, + { 12994, false }, { 13009, true }, - { 13035, true }, - { 13045, true }, - { 13059, true }, - { 13071, true }, - { 13089, true }, - { 13107, false }, - { 13123, true }, - { 13133, true }, - { 13144, true }, - { 13157, true }, - { 13173, true }, + { 13022, true }, + { 13032, true }, + { 13046, true }, + { 13072, true }, + { 13082, true }, + { 13096, true }, + { 13108, true }, + { 13126, true }, + { 13144, false }, + { 13160, true }, + { 13170, true }, { 13181, true }, - { 13192, true }, - { 13202, true }, - { 13217, true }, - { 13236, true }, - { 13249, true }, - { 13267, false }, - { 13282, true }, - { 13302, true }, - { 13313, true }, - { 13325, true }, - { 13338, true }, - { 13358, false }, - { 13372, true }, - { 13385, true }, - { 13403, true }, - { 13417, true }, - { 13430, true }, - { 13442, true }, - { 13456, true }, - { 13469, true }, - { 13483, true }, - { 13495, true }, - { 13513, true }, - { 13525, true }, - { 13536, true }, - { 13547, true }, - { 13560, true }, + { 13194, true }, + { 13210, true }, + { 13218, true }, + { 13229, true }, + { 13239, true }, + { 13254, true }, + { 13273, true }, + { 13286, true }, + { 13304, false }, + { 13319, true }, + { 13339, true }, + { 13350, true }, + { 13362, true }, + { 13375, true }, + { 13395, false }, + { 13409, true }, + { 13422, true }, + { 13440, true }, + { 13454, true }, + { 13467, true }, + { 13479, true }, + { 13493, true }, + { 13506, true }, + { 13520, true }, + { 13532, true }, + { 13550, true }, + { 13562, true }, { 13573, true }, - { 13588, true }, - { 13599, true }, + { 13584, true }, + { 13597, true }, { 13610, true }, - { 13621, true }, - { 13631, true }, - { 13652, true }, - { 13661, true }, + { 13625, true }, + { 13636, true }, + { 13647, true }, + { 13658, true }, { 13668, true }, - { 13682, false }, - { 13695, true }, + { 13689, true }, + { 13698, true }, { 13705, true }, - { 13718, true }, - { 13731, true }, - { 13743, true }, - { 13760, true }, - { 13771, true }, - { 13785, true }, - { 13795, true }, - { 13813, true }, - { 13823, true }, - { 13835, true }, - { 13849, true }, - { 13866, true }, - { 13880, true }, - { 13890, true }, - { 13906, true }, + { 13719, false }, + { 13732, true }, + { 13742, true }, + { 13755, true }, + { 13768, true }, + { 13780, true }, + { 13797, true }, + { 13808, true }, + { 13822, true }, + { 13832, true }, + { 13850, true }, + { 13860, true }, + { 13872, true }, + { 13886, true }, + { 13903, true }, { 13917, true }, - { 13934, true }, - { 13946, true }, - { 13960, true }, - { 13982, true }, - { 14008, true }, - { 14023, true }, - { 14036, true }, - { 14054, true }, - { 14065, true }, - { 14075, true }, - { 14085, true }, - { 14104, true }, - { 14124, true }, - { 14136, true }, - { 14150, true }, - { 14157, true }, - { 14167, true }, - { 14177, true }, - { 14199, true }, - { 14211, true }, - { 14229, true }, - { 14241, true }, - { 14254, true }, - { 14282, true }, - { 14291, true }, - { 14301, true }, - { 14311, true }, - { 14319, true }, - { 14331, false }, - { 14351, true }, - { 14358, true }, - { 14374, true }, - { 14390, true }, - { 14405, true }, - { 14415, true }, - { 14433, true }, - { 14448, true }, - { 14475, true }, - { 14492, true }, - { 14510, true }, - { 14518, true }, - { 14532, true }, - { 14543, true }, - { 14552, true }, - { 14579, true }, - { 14587, true }, - { 14597, true }, - { 14613, true }, - { 14625, true }, - { 14640, true }, - { 14652, true }, - { 14667, true }, - { 14682, true }, - { 14694, true }, - { 14715, true }, - { 14732, true }, - { 14746, true }, - { 14758, true }, - { 14772, true }, - { 14782, true }, - { 14792, true }, - { 14807, true }, - { 14822, true }, - { 14833, true }, - { 14846, true }, - { 14859, true }, - { 14871, true }, - { 14879, true }, - { 14892, true }, - { 14910, true }, - { 14931, true }, - { 14945, true }, - { 14961, true }, - { 14973, true }, - { 14985, true }, - { 14997, true }, - { 15009, true }, - { 15019, true }, - { 15029, true }, - { 15040, true }, - { 15055, true }, - { 15068, true }, - { 15087, true }, - { 15113, true }, - { 15125, true }, - { 15141, true }, - { 15153, true }, - { 15169, true }, - { 15188, true }, - { 15201, true }, - { 15212, true }, - { 15223, true }, - { 15241, true }, - { 15271, true }, - { 15294, true }, - { 15307, false }, - { 15315, true }, - { 15327, true }, - { 15337, true }, - { 15347, true }, - { 15361, true }, - { 15377, true }, - { 15406, true }, - { 15422, true }, - { 15438, true }, - { 15456, true }, - { 15477, true }, - { 15488, true }, - { 15500, true }, - { 15512, true }, - { 15530, true }, - { 15548, true }, - { 15569, true }, - { 15594, true }, - { 15612, true }, - { 15626, true }, - { 15651, true }, - { 15662, true }, - { 15675, true }, - { 15690, true }, - { 15705, true }, - { 15718, true }, - { 15731, true }, - { 15744, true }, - { 15757, true }, - { 15770, true }, - { 15783, true }, - { 15794, true }, - { 15810, true }, - { 15820, true }, - { 15832, true }, - { 15849, true }, - { 15861, true }, - { 15874, true }, - { 15882, true }, - { 15893, true }, - { 15904, true }, - { 15922, true }, - { 15937, true }, - { 15955, true }, - { 15965, true }, - { 15975, true }, - { 15984, true }, - { 16006, true }, - { 16020, true }, - { 16031, true }, - { 16039, true }, - { 16049, true }, - { 16061, true }, - { 16069, true }, - { 16079, true }, - { 16094, true }, - { 16114, true }, - { 16122, true }, - { 16147, true }, - { 16163, true }, + { 13927, true }, + { 13943, true }, + { 13954, true }, + { 13971, true }, + { 13983, true }, + { 14005, true }, + { 14031, true }, + { 14046, true }, + { 14059, true }, + { 14077, true }, + { 14088, true }, + { 14098, true }, + { 14108, true }, + { 14127, true }, + { 14147, true }, + { 14159, true }, + { 14173, true }, + { 14180, true }, + { 14190, true }, + { 14200, true }, + { 14222, true }, + { 14234, true }, + { 14252, true }, + { 14264, true }, + { 14277, true }, + { 14305, true }, + { 14315, true }, + { 14323, true }, + { 14335, false }, + { 14355, true }, + { 14362, true }, + { 14378, true }, + { 14394, true }, + { 14409, true }, + { 14419, true }, + { 14437, true }, + { 14452, true }, + { 14479, true }, + { 14496, true }, + { 14514, true }, + { 14522, true }, + { 14536, true }, + { 14547, true }, + { 14556, true }, + { 14583, true }, + { 14591, true }, + { 14601, true }, + { 14617, true }, + { 14629, true }, + { 14644, true }, + { 14656, true }, + { 14671, true }, + { 14686, true }, + { 14698, true }, + { 14719, true }, + { 14736, true }, + { 14750, true }, + { 14762, true }, + { 14776, true }, + { 14786, true }, + { 14796, true }, + { 14811, true }, + { 14826, true }, + { 14837, true }, + { 14850, true }, + { 14863, true }, + { 14875, true }, + { 14883, true }, + { 14896, true }, + { 14914, true }, + { 14935, true }, + { 14949, true }, + { 14965, true }, + { 14977, true }, + { 14989, true }, + { 15001, true }, + { 15013, true }, + { 15023, true }, + { 15033, true }, + { 15044, true }, + { 15059, true }, + { 15072, true }, + { 15091, true }, + { 15117, true }, + { 15129, true }, + { 15145, true }, + { 15157, true }, + { 15173, true }, + { 15192, true }, + { 15205, true }, + { 15216, true }, + { 15227, true }, + { 15245, true }, + { 15275, true }, + { 15298, true }, + { 15311, false }, + { 15319, true }, + { 15331, true }, + { 15341, true }, + { 15351, true }, + { 15365, true }, + { 15381, true }, + { 15410, true }, + { 15426, true }, + { 15442, true }, + { 15460, true }, + { 15481, true }, + { 15492, true }, + { 15504, true }, + { 15516, true }, + { 15534, true }, + { 15552, true }, + { 15573, true }, + { 15598, true }, + { 15616, true }, + { 15630, true }, + { 15655, true }, + { 15668, true }, + { 15683, true }, + { 15698, true }, + { 15711, true }, + { 15724, true }, + { 15737, true }, + { 15750, true }, + { 15763, true }, + { 15776, true }, + { 15787, true }, + { 15803, true }, + { 15813, true }, + { 15825, true }, + { 15842, true }, + { 15854, true }, + { 15867, true }, + { 15875, true }, + { 15886, true }, + { 15897, true }, + { 15915, true }, + { 15930, true }, + { 15948, true }, + { 15958, true }, + { 15968, true }, + { 15977, true }, + { 15999, true }, + { 16013, true }, + { 16024, true }, + { 16032, true }, + { 16042, true }, + { 16054, true }, + { 16062, true }, + { 16072, true }, + { 16087, true }, + { 16107, true }, + { 16115, true }, + { 16140, true }, + { 16156, true }, + { 16180, true }, { 16187, true }, - { 16194, true }, - { 16202, true }, + { 16195, true }, + { 16204, true }, { 16211, true }, - { 16218, true }, - { 16230, true }, - { 16241, true }, - { 16252, true }, - { 16264, true }, - { 16276, false }, - { 16285, true }, - { 16301, true }, - { 16314, true }, - { 16323, true }, - { 16332, true }, - { 16347, true }, - { 16357, true }, - { 16369, true }, - { 16387, false }, - { 16403, true }, - { 16415, true }, - { 16425, true }, - { 16435, true }, - { 16445, true }, - { 16457, true }, - { 16470, true }, - { 16483, true }, - { 16493, true }, - { 16503, true }, - { 16511, true }, - { 16523, true }, - { 16535, true }, - { 16548, true }, - { 16564, true }, - { 16580, true }, - { 16591, false }, - { 16601, true }, - { 16618, true }, - { 16626, true }, - { 16635, true }, - { 16649, true }, - { 16679, true }, - { 16694, false }, - { 16703, true }, - { 16717, true }, - { 16738, true }, - { 16749, true }, - { 16762, true }, - { 16786, true }, - { 16800, true }, - { 16813, true }, - { 16825, true }, - { 16848, true }, - { 16859, true }, - { 16879, true }, - { 16897, true }, - { 16915, true }, - { 16930, true }, - { 16945, true }, - { 16969, true }, - { 16979, true }, - { 16989, true }, - { 16999, true }, - { 17012, true }, - { 17023, true }, - { 17048, true }, - { 17077, true }, - { 17090, true }, - { 17102, true }, - { 17112, true }, - { 17120, true }, - { 17129, true }, - { 17143, false }, - { 17160, true }, - { 17172, true }, + { 16223, true }, + { 16234, true }, + { 16245, true }, + { 16257, true }, + { 16269, false }, + { 16278, true }, + { 16294, true }, + { 16307, true }, + { 16316, true }, + { 16325, true }, + { 16340, true }, + { 16350, true }, + { 16362, true }, + { 16380, false }, + { 16396, true }, + { 16408, true }, + { 16418, true }, + { 16428, true }, + { 16438, true }, + { 16450, true }, + { 16463, true }, + { 16476, true }, + { 16486, true }, + { 16496, true }, + { 16504, true }, + { 16516, true }, + { 16528, true }, + { 16541, true }, + { 16557, true }, + { 16573, true }, + { 16584, false }, + { 16594, true }, + { 16611, true }, + { 16619, true }, + { 16628, true }, + { 16642, true }, + { 16672, true }, + { 16687, false }, + { 16696, true }, + { 16710, true }, + { 16731, true }, + { 16742, true }, + { 16755, true }, + { 16779, true }, + { 16793, true }, + { 16806, true }, + { 16818, true }, + { 16841, true }, + { 16852, true }, + { 16872, true }, + { 16890, true }, + { 16908, true }, + { 16923, true }, + { 16938, true }, + { 16962, true }, + { 16972, true }, + { 16982, true }, + { 16992, true }, + { 17005, true }, + { 17016, true }, + { 17041, true }, + { 17070, true }, + { 17083, true }, + { 17095, true }, + { 17105, true }, + { 17113, true }, + { 17122, true }, + { 17136, false }, + { 17153, true }, + { 17165, true }, + { 17180, true }, { 17187, true }, - { 17194, true }, - { 17207, true }, - { 17219, true }, - { 17233, true }, - { 17241, true }, - { 17256, true }, - { 17265, true }, - { 17278, true }, - { 17290, true }, - { 17301, true }, - { 17311, true }, - { 17328, true }, - { 17341, true }, - { 17351, true }, - { 17364, true }, - { 17378, true }, - { 17392, true }, - { 17404, true }, - { 17419, true }, - { 17435, true }, - { 17450, true }, - { 17464, true }, - { 17477, true }, - { 17493, true }, - { 17505, true }, - { 17519, true }, - { 17531, true }, - { 17543, true }, - { 17554, true }, - { 17565, true }, - { 17580, false }, - { 17595, false }, - { 17611, true }, - { 17633, true }, - { 17651, true }, - { 17668, true }, - { 17686, true }, - { 17697, true }, - { 17710, true }, - { 17727, true }, - { 17743, true }, - { 17763, true }, - { 17778, true }, - { 17793, true }, - { 17807, true }, - { 17818, true }, - { 17830, true }, - { 17843, true }, - { 17856, true }, - { 17870, true }, - { 17883, true }, - { 17901, true }, - { 17919, true }, - { 17937, true }, - { 17947, true }, - { 17960, true }, - { 17969, true }, - { 17984, true }, - { 17995, false }, - { 18005, true }, - { 18016, true }, + { 17200, true }, + { 17212, true }, + { 17226, true }, + { 17234, true }, + { 17249, true }, + { 17258, true }, + { 17271, true }, + { 17283, true }, + { 17294, true }, + { 17304, true }, + { 17319, true }, + { 17336, true }, + { 17349, true }, + { 17359, true }, + { 17372, true }, + { 17386, true }, + { 17400, true }, + { 17412, true }, + { 17427, true }, + { 17443, true }, + { 17458, true }, + { 17472, true }, + { 17485, true }, + { 17501, true }, + { 17513, true }, + { 17527, true }, + { 17539, true }, + { 17551, true }, + { 17562, true }, + { 17573, true }, + { 17588, false }, + { 17603, false }, + { 17619, true }, + { 17641, true }, + { 17659, true }, + { 17676, true }, + { 17694, true }, + { 17705, true }, + { 17718, true }, + { 17735, true }, + { 17751, true }, + { 17771, true }, + { 17786, true }, + { 17801, true }, + { 17815, true }, + { 17826, true }, + { 17838, true }, + { 17851, true }, + { 17864, true }, + { 17878, true }, + { 17891, true }, + { 17909, true }, + { 17927, true }, + { 17945, true }, + { 17962, true }, + { 17972, true }, + { 17985, true }, + { 17994, true }, + { 18009, true }, + { 18020, false }, { 18030, true }, - { 18043, true }, - { 18053, true }, - { 18066, true }, - { 18080, true }, + { 18041, true }, + { 18055, true }, + { 18068, true }, + { 18078, true }, { 18091, true }, - { 18101, true }, - { 18119, true }, - { 18128, true }, - { 18145, true }, - { 18164, true }, - { 18179, true }, - { 18199, true }, - { 18217, true }, - { 18228, true }, - { 18241, true }, - { 18256, true }, - { 18269, true }, - { 18280, true }, + { 18105, true }, + { 18116, true }, + { 18126, true }, + { 18144, true }, + { 18153, true }, + { 18170, true }, + { 18189, true }, + { 18204, true }, + { 18224, true }, + { 18242, true }, + { 18253, true }, + { 18266, true }, + { 18281, true }, { 18294, true }, - { 18318, true }, - { 18344, true }, - { 18352, true }, - { 18362, true }, - { 18373, true }, - { 18384, true }, - { 18411, true }, - { 18423, true }, - { 18435, true }, - { 18444, true }, - { 18453, true }, - { 18462, true }, - { 18477, true }, - { 18486, true }, - { 18498, true }, - { 18507, true }, - { 18517, true }, - { 18528, true }, - { 18540, true }, - { 18550, true }, - { 18562, true }, + { 18305, true }, + { 18319, true }, + { 18343, true }, + { 18369, true }, + { 18377, true }, + { 18387, true }, + { 18398, true }, + { 18409, true }, + { 18436, true }, + { 18448, true }, + { 18460, true }, + { 18469, true }, + { 18478, true }, + { 18487, true }, + { 18502, false }, + { 18513, true }, + { 18522, true }, + { 18534, true }, + { 18543, true }, + { 18553, true }, + { 18564, true }, { 18576, true }, { 18586, true }, - { 18596, true }, - { 18609, true }, - { 18619, false }, - { 18630, true }, - { 18648, true }, - { 18658, true }, - { 18665, true }, - { 18677, true }, - { 18692, true }, + { 18598, true }, + { 18612, true }, + { 18622, true }, + { 18632, true }, + { 18645, true }, + { 18655, false }, + { 18666, true }, + { 18684, true }, + { 18694, true }, + { 18701, true }, { 18713, true }, - { 18726, true }, - { 18739, true }, - { 18756, true }, - { 18768, true }, - { 18781, false }, - { 18795, true }, - { 18807, true }, - { 18821, true }, - { 18839, true }, - { 18851, true }, - { 18864, true }, - { 18873, true }, - { 18891, true }, - { 18902, true }, - { 18913, true }, + { 18728, true }, + { 18749, true }, + { 18762, true }, + { 18775, true }, + { 18792, true }, + { 18804, true }, + { 18817, false }, + { 18831, true }, + { 18843, true }, + { 18857, true }, + { 18875, true }, + { 18887, true }, + { 18900, true }, + { 18909, true }, + { 18927, true }, { 18938, true }, - { 18952, true }, - { 18965, true }, - { 18979, true }, - { 18992, true }, - { 19006, true }, - { 19018, true }, - { 19034, false }, - { 19045, true }, - { 19060, true }, - { 19073, true }, - { 19086, true }, - { 19102, true }, - { 19124, true }, - { 19136, true }, - { 19149, true }, - { 19164, true }, - { 19176, true }, - { 19192, true }, - { 19205, true }, - { 19215, true }, - { 19243, true }, - { 19258, true }, - { 19274, true }, - { 19285, true }, - { 19296, true }, - { 19306, true }, - { 19319, true }, - { 19329, false }, - { 19343, true }, - { 19352, true }, - { 19364, false }, - { 19383, true }, - { 19410, true }, - { 19431, true }, - { 19447, true }, - { 19458, true }, - { 19476, true }, - { 19491, true }, - { 19502, true }, - { 19517, false }, - { 19532, true }, - { 19542, true }, - { 19553, true }, - { 19567, true }, + { 18949, true }, + { 18974, true }, + { 18988, true }, + { 19001, true }, + { 19015, true }, + { 19028, true }, + { 19042, true }, + { 19054, true }, + { 19070, false }, + { 19081, true }, + { 19096, true }, + { 19109, true }, + { 19122, true }, + { 19138, true }, + { 19160, true }, + { 19172, true }, + { 19185, true }, + { 19200, true }, + { 19212, true }, + { 19228, true }, + { 19241, true }, + { 19251, true }, + { 19279, true }, + { 19294, true }, + { 19310, true }, + { 19321, true }, + { 19332, true }, + { 19342, true }, + { 19355, true }, + { 19365, false }, + { 19379, true }, + { 19388, true }, + { 19400, false }, + { 19419, true }, + { 19446, true }, + { 19467, true }, + { 19483, true }, + { 19494, true }, + { 19512, true }, + { 19527, true }, + { 19538, true }, + { 19553, false }, + { 19568, true }, + { 19578, true }, { 19589, true }, - { 19602, true }, - { 19617, true }, - { 19632, true }, + { 19603, true }, + { 19625, true }, + { 19638, true }, { 19653, true }, - { 19663, true }, - { 19677, true }, - { 19690, true }, - { 19705, true }, + { 19668, true }, + { 19689, true }, + { 19699, true }, + { 19713, true }, { 19726, true }, - { 19744, true }, - { 19756, true }, - { 19774, true }, + { 19741, true }, + { 19762, true }, + { 19780, true }, { 19792, true }, - { 19806, true }, - { 19825, false }, - { 19839, true }, - { 19849, true }, - { 19860, true }, - { 19870, true }, - { 19883, true }, - { 19898, true }, - { 19912, true }, - { 19925, true }, - { 19938, true }, - { 19955, true }, - { 19971, true }, - { 19981, true }, - { 19994, true }, - { 20011, true }, - { 20025, true }, - { 20043, true }, - { 20063, true }, - { 20077, true }, - { 20093, true }, - { 20102, true }, - { 20110, true }, - { 20119, true }, - { 20128, true }, - { 20145, true }, - { 20158, true }, - { 20168, true }, - { 20178, true }, - { 20188, true }, - { 20206, true }, - { 20225, true }, - { 20249, true }, - { 20264, true }, - { 20282, true }, - { 20298, true }, - { 20316, true }, - { 20328, true }, - { 20351, true }, - { 20373, true }, - { 20399, true }, - { 20417, true }, - { 20439, true }, + { 19810, true }, + { 19828, true }, + { 19842, true }, + { 19861, false }, + { 19875, true }, + { 19885, true }, + { 19896, true }, + { 19906, true }, + { 19919, true }, + { 19934, true }, + { 19948, true }, + { 19961, true }, + { 19974, true }, + { 19991, true }, + { 20007, true }, + { 20017, true }, + { 20030, true }, + { 20047, true }, + { 20061, true }, + { 20079, true }, + { 20099, true }, + { 20113, true }, + { 20129, true }, + { 20138, true }, + { 20146, true }, + { 20155, true }, + { 20164, true }, + { 20181, true }, + { 20194, true }, + { 20204, true }, + { 20214, true }, + { 20224, true }, + { 20242, true }, + { 20261, true }, + { 20285, true }, + { 20300, true }, + { 20318, true }, + { 20334, true }, + { 20352, true }, + { 20364, true }, + { 20387, true }, + { 20409, true }, + { 20435, true }, { 20453, true }, - { 20466, true }, - { 20478, true }, - { 20490, false }, - { 20506, true }, - { 20520, true }, - { 20538, true }, - { 20553, true }, - { 20565, true }, - { 20587, true }, - { 20604, true }, - { 20619, true }, - { 20640, true }, - { 20654, true }, - { 20673, true }, - { 20694, true }, - { 20711, true }, - { 20725, true }, - { 20746, true }, - { 20759, true }, - { 20775, true }, - { 20788, true }, - { 20807, true }, - { 20824, true }, - { 20842, true }, - { 20860, true }, - { 20869, true }, - { 20885, true }, - { 20901, true }, - { 20920, true }, - { 20938, true }, - { 20954, true }, - { 20968, true }, - { 20980, true }, - { 20991, true }, - { 21005, true }, - { 21015, true }, - { 21026, true }, - { 21035, false }, - { 21044, true }, - { 21058, true }, - { 21072, true }, - { 21084, true }, - { 21099, true }, - { 21111, true }, - { 21126, true }, - { 21139, true }, - { 21150, true }, - { 21173, true }, - { 21185, true }, - { 21200, true }, - { 21216, true }, - { 21225, true }, - { 21240, true }, - { 21256, true }, - { 21269, true }, - { 21284, true }, - { 21297, true }, - { 21307, true }, + { 20475, true }, + { 20489, true }, + { 20502, true }, + { 20514, true }, + { 20526, true }, + { 20540, true }, + { 20558, true }, + { 20573, true }, + { 20585, true }, + { 20607, true }, + { 20624, true }, + { 20639, true }, + { 20660, true }, + { 20674, true }, + { 20693, true }, + { 20714, true }, + { 20731, true }, + { 20745, true }, + { 20766, true }, + { 20779, true }, + { 20795, true }, + { 20808, true }, + { 20827, true }, + { 20844, true }, + { 20862, true }, + { 20880, true }, + { 20889, true }, + { 20905, true }, + { 20921, true }, + { 20940, true }, + { 20958, true }, + { 20974, true }, + { 20988, true }, + { 21000, true }, + { 21011, true }, + { 21025, true }, + { 21035, true }, + { 21046, true }, + { 21055, false }, + { 21064, true }, + { 21078, true }, + { 21092, true }, + { 21104, true }, + { 21119, true }, + { 21131, true }, + { 21146, true }, + { 21159, true }, + { 21170, true }, + { 21193, true }, + { 21205, true }, + { 21220, true }, + { 21236, true }, + { 21245, true }, + { 21260, true }, + { 21276, true }, + { 21289, true }, + { 21304, true }, + { 21317, true }, { 21327, true }, - { 21340, true }, - { 21359, true }, - { 21369, true }, + { 21347, true }, + { 21360, true }, { 21379, true }, - { 21391, true }, - { 21406, true }, - { 21421, true }, - { 21436, true }, - { 21446, true }, - { 21461, true }, - { 21477, true }, - { 21496, true }, - { 21505, true }, - { 21534, true }, - { 21547, true }, + { 21389, true }, + { 21399, true }, + { 21411, true }, + { 21426, true }, + { 21441, true }, + { 21456, true }, + { 21466, true }, + { 21481, true }, + { 21497, true }, + { 21516, true }, + { 21525, true }, + { 21554, true }, { 21567, true }, - { 21582, true }, - { 21595, true }, - { 21610, true }, - { 21625, true }, - { 21640, true }, - { 21650, true }, + { 21587, true }, + { 21602, true }, + { 21615, true }, + { 21630, true }, + { 21645, true }, { 21660, true }, - { 21675, true }, - { 21697, true }, - { 21712, true }, - { 21725, true }, - { 21752, true }, - { 21766, true }, - { 21778, true }, - { 21793, true }, - { 21807, true }, - { 21817, true }, - { 21838, true }, - { 21855, true }, - { 21877, true }, - { 21895, false }, - { 21914, true }, - { 21928, true }, - { 21940, true }, - { 21955, true }, - { 21972, true }, - { 21987, true }, - { 21998, true }, - { 22008, true }, - { 22024, true }, - { 22042, true }, - { 22054, true }, - { 22066, true }, - { 22096, true }, - { 22110, false }, - { 22123, true }, - { 22141, true }, - { 22154, true }, - { 22166, true }, - { 22189, true }, - { 22208, true }, - { 22221, false }, - { 22232, true }, - { 22250, true }, - { 22274, true }, + { 21670, true }, + { 21680, true }, + { 21695, true }, + { 21717, true }, + { 21732, true }, + { 21745, true }, + { 21772, true }, + { 21786, true }, + { 21798, true }, + { 21813, true }, + { 21827, true }, + { 21837, true }, + { 21858, true }, + { 21875, true }, + { 21897, true }, + { 21915, false }, + { 21934, true }, + { 21948, true }, + { 21960, true }, + { 21975, true }, + { 21992, true }, + { 22007, true }, + { 22018, true }, + { 22028, true }, + { 22044, true }, + { 22062, true }, + { 22074, true }, + { 22086, true }, + { 22116, true }, + { 22130, false }, + { 22143, true }, + { 22161, true }, + { 22174, true }, + { 22186, true }, + { 22209, true }, + { 22228, true }, + { 22241, false }, + { 22252, true }, + { 22270, true }, { 22294, true }, - { 22306, true }, - { 22327, true }, - { 22338, true }, - { 22355, true }, - { 22373, true }, - { 22386, true }, - { 22402, true }, - { 22416, true }, - { 22433, true }, - { 22444, true }, + { 22314, true }, + { 22326, true }, + { 22347, true }, + { 22358, true }, + { 22375, true }, + { 22393, true }, + { 22406, true }, + { 22422, true }, + { 22436, true }, { 22453, true }, - { 22465, true }, - { 22476, true }, - { 22486, true }, - { 22500, true }, - { 22518, true }, - { 22531, true }, - { 22542, true }, - { 22556, true }, - { 22568, true }, - { 22579, true }, - { 22590, true }, - { 22603, true }, - { 22615, true }, - { 22626, true }, - { 22645, true }, - { 22661, true }, - { 22675, true }, - { 22694, true }, - { 22706, true }, - { 22721, true }, - { 22730, true }, - { 22745, true }, - { 22759, true }, - { 22772, true }, - { 22784, true }, - { 22796, true }, - { 22810, true }, - { 22821, true }, - { 22835, true }, - { 22846, true }, - { 22857, true }, - { 22867, true }, + { 22464, true }, + { 22473, true }, + { 22485, true }, + { 22496, true }, + { 22506, true }, + { 22520, true }, + { 22538, true }, + { 22551, true }, + { 22562, true }, + { 22576, true }, + { 22588, true }, + { 22599, true }, + { 22610, true }, + { 22623, true }, + { 22635, true }, + { 22646, true }, + { 22665, true }, + { 22681, true }, + { 22695, true }, + { 22714, true }, + { 22726, true }, + { 22741, true }, + { 22750, true }, + { 22765, true }, + { 22779, true }, + { 22792, true }, + { 22804, true }, + { 22816, true }, + { 22830, true }, + { 22841, true }, + { 22855, true }, + { 22866, true }, { 22877, true }, - { 22890, true }, - { 22901, true }, - { 22912, true }, - { 22923, true }, - { 22936, true }, - { 22950, true }, - { 22962, true }, - { 22976, true }, - { 22988, true }, - { 23001, true }, - { 23026, true }, - { 23038, true }, - { 23055, true }, - { 23066, true }, - { 23077, true }, - { 23096, true }, - { 23112, true }, - { 23122, true }, - { 23133, true }, - { 23145, true }, - { 23160, true }, - { 23179, true }, - { 23196, true }, - { 23214, false }, - { 23222, true }, - { 23238, true }, - { 23252, true }, - { 23269, true }, - { 23286, true }, - { 23299, true }, - { 23312, true }, - { 23325, true }, - { 23338, true }, - { 23351, true }, - { 23364, true }, - { 23377, true }, - { 23390, true }, - { 23403, true }, - { 23416, true }, - { 23429, true }, - { 23442, true }, - { 23455, true }, - { 23468, true }, - { 23485, true }, + { 22887, true }, + { 22897, true }, + { 22910, true }, + { 22921, true }, + { 22932, true }, + { 22943, true }, + { 22956, true }, + { 22970, true }, + { 22982, true }, + { 22996, true }, + { 23008, true }, + { 23021, true }, + { 23046, true }, + { 23058, true }, + { 23075, true }, + { 23086, true }, + { 23097, true }, + { 23116, true }, + { 23132, true }, + { 23142, true }, + { 23153, true }, + { 23165, true }, + { 23180, true }, + { 23199, true }, + { 23216, true }, + { 23234, false }, + { 23242, true }, + { 23255, true }, + { 23267, true }, + { 23279, true }, + { 23293, true }, + { 23306, true }, + { 23319, true }, + { 23335, true }, + { 23349, true }, + { 23366, true }, + { 23383, true }, + { 23396, true }, + { 23409, true }, + { 23422, true }, + { 23435, true }, + { 23448, true }, + { 23461, true }, + { 23474, true }, + { 23487, true }, { 23500, true }, - { 23517, true }, - { 23530, true }, - { 23542, true }, - { 23564, true }, - { 23576, true }, - { 23599, true }, - { 23623, true }, - { 23641, true }, - { 23654, true }, + { 23513, true }, + { 23526, true }, + { 23539, true }, + { 23552, true }, + { 23565, true }, + { 23582, true }, + { 23597, true }, + { 23614, true }, + { 23627, true }, + { 23639, true }, + { 23661, true }, { 23673, true }, - { 23694, true }, - { 23707, true }, - { 23722, true }, - { 23740, true }, - { 23756, true }, - { 23772, true }, - { 23782, true }, - { 23796, true }, - { 23811, true }, - { 23830, true }, - { 23847, true }, - { 23858, true }, - { 23874, true }, - { 23886, true }, - { 23896, true }, - { 23912, true }, - { 23922, true }, - { 23943, true }, - { 23965, true }, - { 23977, true }, - { 23988, true }, - { 24003, true }, - { 24014, true }, - { 24029, true }, - { 24044, true }, - { 24056, true }, - { 24075, true }, - { 24088, true }, - { 24102, true }, - { 24124, true }, - { 24143, true }, - { 24163, true }, - { 24171, true }, - { 24184, true }, - { 24198, true }, - { 24212, true }, - { 24223, true }, - { 24236, true }, - { 24251, true }, - { 24267, true }, - { 24282, true }, - { 24296, true }, - { 24308, true }, - { 24325, false }, - { 24341, false }, - { 24361, true }, - { 24374, true }, - { 24390, true }, - { 24415, true }, - { 24428, true }, - { 24441, true }, - { 24452, true }, - { 24461, true }, - { 24470, true }, - { 24486, true }, - { 24500, true }, - { 24516, true }, - { 24527, true }, - { 24540, true }, - { 24555, true }, - { 24569, true }, - { 24581, true }, - { 24593, true }, - { 24617, true }, - { 24630, true }, - { 24643, true }, - { 24664, true }, - { 24684, true }, - { 24698, true }, - { 24713, true }, - { 24722, true }, - { 24733, true }, - { 24743, true }, - { 24753, true }, - { 24771, true }, - { 24796, true }, + { 23696, true }, + { 23720, true }, + { 23738, true }, + { 23751, true }, + { 23770, true }, + { 23791, true }, + { 23804, true }, + { 23819, true }, + { 23837, true }, + { 23853, true }, + { 23869, true }, + { 23879, true }, + { 23893, true }, + { 23908, true }, + { 23927, true }, + { 23944, true }, + { 23955, true }, + { 23971, true }, + { 23983, true }, + { 23993, true }, + { 24009, true }, + { 24019, true }, + { 24040, true }, + { 24062, true }, + { 24074, true }, + { 24085, true }, + { 24100, true }, + { 24111, true }, + { 24126, true }, + { 24141, true }, + { 24153, true }, + { 24172, true }, + { 24185, true }, + { 24199, true }, + { 24221, true }, + { 24240, true }, + { 24260, true }, + { 24268, true }, + { 24281, true }, + { 24295, true }, + { 24309, true }, + { 24320, true }, + { 24333, true }, + { 24348, true }, + { 24364, true }, + { 24379, true }, + { 24393, true }, + { 24405, true }, + { 24422, false }, + { 24438, false }, + { 24458, true }, + { 24471, true }, + { 24487, true }, + { 24512, true }, + { 24525, true }, + { 24538, true }, + { 24549, true }, + { 24558, true }, + { 24567, true }, + { 24583, true }, + { 24597, true }, + { 24613, true }, + { 24624, true }, + { 24637, true }, + { 24652, true }, + { 24666, true }, + { 24678, true }, + { 24702, true }, + { 24715, true }, + { 24728, true }, + { 24749, true }, + { 24769, true }, + { 24783, true }, + { 24798, true }, + { 24807, true }, { 24818, true }, - { 24830, true }, - { 24843, true }, + { 24828, true }, + { 24838, true }, { 24856, true }, - { 24867, true }, - { 24875, true }, - { 24894, true }, - { 24904, true }, - { 24917, true }, - { 24934, true }, - { 24951, true }, - { 24967, true }, + { 24881, true }, + { 24903, true }, + { 24915, true }, + { 24928, true }, + { 24941, true }, + { 24952, true }, + { 24960, true }, { 24979, true }, - { 24991, true }, + { 24989, true }, { 25002, true }, - { 25016, true }, - { 25040, true }, - { 25055, true }, - { 25070, true }, - { 25092, true }, - { 25102, true }, - { 25118, true }, - { 25129, true }, - { 25150, true }, - { 25163, true }, - { 25183, true }, - { 25194, true }, - { 25202, false }, + { 25019, true }, + { 25036, true }, + { 25052, true }, + { 25064, true }, + { 25076, true }, + { 25087, true }, + { 25101, true }, + { 25125, true }, + { 25140, true }, + { 25155, true }, + { 25177, true }, + { 25187, true }, + { 25203, true }, { 25214, true }, - { 25226, true }, - { 25245, true }, - { 25259, true }, - { 25274, true }, - { 25289, true }, - { 25304, true }, - { 25319, true }, - { 25329, true }, - { 25339, true }, - { 25351, false }, - { 25360, true }, + { 25235, true }, + { 25248, true }, + { 25268, true }, + { 25279, true }, + { 25287, false }, + { 25299, true }, + { 25311, true }, + { 25330, true }, + { 25344, true }, + { 25359, true }, { 25374, true }, - { 25386, true }, - { 25412, true }, - { 25420, true }, - { 25435, true }, - { 25447, true }, + { 25389, true }, + { 25404, true }, + { 25414, true }, + { 25424, true }, + { 25436, false }, + { 25445, true }, { 25459, true }, - { 25477, true }, + { 25471, true }, { 25497, true }, - { 25513, true }, - { 25525, true }, - { 25543, true }, - { 25555, true }, - { 25569, true }, - { 25589, true }, - { 25601, true }, - { 25615, true }, - { 25632, true }, - { 25641, true }, - { 25651, true }, - { 25663, true }, - { 25685, false }, - { 25699, true }, - { 25715, true }, - { 25732, true }, - { 25744, true }, - { 25762, false }, - { 25784, false }, - { 25809, false }, - { 25833, true }, - { 25845, true }, - { 25855, true }, - { 25868, true }, - { 25878, true }, - { 25888, true }, - { 25898, true }, - { 25908, true }, + { 25505, true }, + { 25520, true }, + { 25532, true }, + { 25544, true }, + { 25562, true }, + { 25582, true }, + { 25598, true }, + { 25610, true }, + { 25628, true }, + { 25640, true }, + { 25654, true }, + { 25674, true }, + { 25686, true }, + { 25700, true }, + { 25717, true }, + { 25726, true }, + { 25736, true }, + { 25748, true }, + { 25770, false }, + { 25784, true }, + { 25800, true }, + { 25817, true }, + { 25829, true }, + { 25847, false }, + { 25869, false }, + { 25894, false }, { 25918, true }, - { 25928, true }, - { 25938, true }, - { 25952, true }, - { 25970, true }, - { 25985, true }, - { 25999, true }, - { 26011, true }, + { 25930, true }, + { 25940, true }, + { 25953, true }, + { 25963, true }, + { 25973, true }, + { 25983, true }, + { 25993, true }, + { 26003, true }, + { 26013, true }, { 26023, true }, - { 26034, true }, - { 26048, true }, - { 26063, true }, - { 26077, true }, + { 26037, true }, + { 26055, true }, + { 26070, true }, { 26084, true }, - { 26098, false }, - { 26118, true }, - { 26139, true }, - { 26158, true }, - { 26173, true }, - { 26185, true }, - { 26210, true }, - { 26221, true }, - { 26232, true }, - { 26244, true }, - { 26257, false }, + { 26096, true }, + { 26108, true }, + { 26119, true }, + { 26133, true }, + { 26148, true }, + { 26162, true }, + { 26169, true }, + { 26183, false }, + { 26203, true }, + { 26224, true }, + { 26243, true }, + { 26258, true }, { 26270, true }, - { 26287, true }, - { 26303, true }, - { 26316, true }, - { 26328, true }, - { 26343, true }, - { 26353, true }, - { 26378, true }, - { 26394, true }, - { 26408, true }, - { 26425, true }, - { 26444, true }, - { 26454, true }, - { 26474, true }, - { 26486, true }, - { 26502, true }, - { 26530, false }, - { 26542, true }, - { 26555, true }, - { 26572, true }, - { 26589, true }, - { 26598, true }, - { 26608, true }, - { 26617, true }, - { 26634, true }, - { 26643, true }, - { 26650, true }, - { 26665, true }, - { 26676, false }, - { 26692, true }, - { 26709, true }, - { 26723, true }, - { 26733, true }, - { 26743, true }, - { 26763, true }, - { 26783, true }, + { 26295, true }, + { 26306, true }, + { 26317, true }, + { 26329, true }, + { 26342, false }, + { 26355, true }, + { 26372, true }, + { 26388, true }, + { 26401, true }, + { 26413, true }, + { 26428, true }, + { 26438, true }, + { 26463, true }, + { 26479, true }, + { 26493, true }, + { 26510, true }, + { 26529, true }, + { 26539, true }, + { 26559, true }, + { 26571, true }, + { 26587, true }, + { 26615, false }, + { 26627, true }, + { 26640, true }, + { 26657, true }, + { 26674, true }, + { 26683, true }, + { 26693, true }, + { 26702, true }, + { 26719, true }, + { 26728, true }, + { 26735, true }, + { 26750, true }, + { 26761, false }, + { 26777, true }, { 26794, true }, - { 26812, true }, - { 26827, true }, - { 26840, true }, - { 26855, true }, - { 26871, true }, + { 26808, true }, + { 26818, true }, + { 26828, true }, + { 26848, true }, + { 26868, true }, + { 26879, true }, { 26897, true }, - { 26914, true }, - { 26927, true }, - { 26950, true }, - { 26964, true }, - { 26976, true }, - { 26986, true }, - { 27011, true }, - { 27028, false }, - { 27049, false }, - { 27071, false }, - { 27090, false }, - { 27108, true }, - { 27124, true }, - { 27148, true }, - { 27176, true }, - { 27187, true }, - { 27202, true }, - { 27221, true }, - { 27244, true }, - { 27268, true }, - { 27282, true }, - { 27293, true }, - { 27315, true }, - { 27333, true }, - { 27348, true }, + { 26912, true }, + { 26925, true }, + { 26940, true }, + { 26956, true }, + { 26982, true }, + { 26999, true }, + { 27012, true }, + { 27035, true }, + { 27049, true }, + { 27061, true }, + { 27071, true }, + { 27096, true }, + { 27113, false }, + { 27134, false }, + { 27156, false }, + { 27175, false }, + { 27193, true }, + { 27209, true }, + { 27233, true }, + { 27261, true }, + { 27272, true }, + { 27291, true }, + { 27314, true }, + { 27338, true }, + { 27352, true }, { 27363, true }, - { 27376, true }, - { 27389, true }, - { 27404, true }, - { 27419, true }, - { 27434, true }, - { 27461, true }, - { 27473, true }, - { 27488, true }, - { 27507, true }, - { 27525, true }, - { 27533, true }, - { 27541, true }, - { 27553, true }, - { 27565, true }, - { 27579, true }, - { 27597, true }, - { 27615, true }, - { 27630, true }, - { 27645, true }, - { 27660, true }, - { 27676, true }, - { 27693, true }, - { 27702, true }, - { 27713, true }, - { 27726, true }, - { 27736, true }, - { 27749, false }, + { 27385, true }, + { 27403, true }, + { 27418, true }, + { 27433, true }, + { 27446, true }, + { 27459, true }, + { 27474, true }, + { 27489, true }, + { 27504, true }, + { 27531, true }, + { 27543, true }, + { 27558, true }, + { 27577, true }, + { 27595, true }, + { 27603, true }, + { 27611, true }, + { 27623, true }, + { 27635, true }, + { 27649, true }, + { 27667, true }, + { 27685, true }, + { 27700, true }, + { 27715, true }, + { 27730, true }, + { 27746, true }, { 27763, true }, - { 27775, true }, - { 27785, true }, - { 27801, false }, - { 27808, true }, - { 27818, true }, - { 27832, true }, - { 27847, true }, + { 27772, true }, + { 27783, true }, + { 27796, true }, + { 27806, true }, + { 27819, false }, + { 27833, true }, + { 27845, true }, { 27855, true }, - { 27868, true }, - { 27876, true }, - { 27886, true }, - { 27904, true }, - { 27922, true }, - { 27933, true }, + { 27871, false }, + { 27878, true }, + { 27888, true }, + { 27902, true }, + { 27917, true }, + { 27925, true }, + { 27938, true }, { 27946, true }, - { 27959, true }, - { 27973, true }, - { 27982, true }, - { 27997, true }, - { 28026, true }, + { 27956, true }, + { 27974, true }, + { 27992, true }, + { 28003, true }, + { 28016, true }, + { 28029, true }, { 28043, true }, - { 28061, true }, - { 28071, true }, - { 28085, true }, + { 28052, true }, + { 28067, true }, { 28096, true }, - { 28123, true }, - { 28143, true }, - { 28160, true }, - { 28174, true }, - { 28196, true }, - { 28221, true }, - { 28234, true }, - { 28247, true }, - { 28264, true }, - { 28282, true }, - { 28297, true }, - { 28312, true }, - { 28323, true }, - { 28333, true }, - { 28354, true }, - { 28364, false }, - { 28383, true }, - { 28395, true }, + { 28113, true }, + { 28131, true }, + { 28141, true }, + { 28155, true }, + { 28166, true }, + { 28193, true }, + { 28213, true }, + { 28230, true }, + { 28244, true }, + { 28266, true }, + { 28291, true }, + { 28304, true }, + { 28317, true }, + { 28334, true }, + { 28352, true }, + { 28367, true }, + { 28382, true }, + { 28393, true }, + { 28403, true }, { 28424, true }, - { 28442, true }, - { 28460, true }, - { 28478, true }, - { 28499, true }, - { 28513, true }, - { 28527, true }, - { 28535, true }, - { 28545, true }, - { 28558, true }, - { 28570, true }, - { 28582, true }, - { 28598, true }, - { 28612, true }, - { 28634, true }, - { 28653, true }, - { 28666, true }, - { 28679, true }, - { 28698, true }, - { 28713, true }, - { 28731, true }, - { 28744, false }, - { 28754, true }, - { 28776, true }, - { 28790, true }, - { 28813, true }, - { 28829, true }, - { 28844, true }, + { 28434, false }, + { 28453, true }, + { 28465, true }, + { 28494, true }, + { 28512, true }, + { 28530, true }, + { 28548, true }, + { 28569, true }, + { 28583, true }, + { 28597, true }, + { 28605, true }, + { 28615, true }, + { 28628, true }, + { 28640, true }, + { 28652, true }, + { 28668, true }, + { 28682, true }, + { 28704, true }, + { 28723, true }, + { 28736, true }, + { 28749, true }, + { 28768, true }, + { 28783, true }, + { 28801, true }, + { 28814, false }, + { 28824, true }, + { 28846, true }, { 28860, true }, - { 28877, true }, - { 28888, false }, - { 28896, true }, - { 28912, true }, - { 28932, true }, - { 28946, true }, - { 28961, true }, - { 28969, true }, - { 28984, true }, - { 28997, true }, - { 29009, true }, - { 29022, true }, - { 29035, false }, - { 29057, true }, - { 29081, true }, - { 29104, true }, - { 29122, true }, - { 29137, true }, - { 29164, true }, - { 29190, true }, - { 29217, true }, - { 29233, true }, - { 29251, true }, - { 29280, true }, - { 29296, true }, - { 29312, true }, - { 29324, true }, + { 28883, true }, + { 28899, true }, + { 28914, true }, + { 28930, true }, + { 28947, true }, + { 28958, false }, + { 28966, true }, + { 28982, true }, + { 29002, true }, + { 29016, true }, + { 29031, true }, + { 29039, true }, + { 29054, true }, + { 29067, true }, + { 29079, true }, + { 29092, false }, + { 29114, true }, + { 29138, true }, + { 29161, true }, + { 29179, true }, + { 29194, true }, + { 29221, true }, + { 29247, true }, + { 29274, true }, + { 29290, true }, + { 29308, true }, { 29337, true }, - { 29348, true }, - { 29366, true }, - { 29379, true }, - { 29388, true }, - { 29397, true }, - { 29414, true }, - { 29427, true }, + { 29353, true }, + { 29369, true }, + { 29381, true }, + { 29394, true }, + { 29405, true }, + { 29423, true }, { 29436, true }, - { 29453, true }, - { 29461, true }, - { 29470, true }, - { 29479, false }, - { 29490, true }, - { 29514, true }, - { 29524, true }, - { 29534, true }, - { 29543, true }, - { 29556, true }, - { 29569, true }, + { 29445, true }, + { 29454, true }, + { 29471, true }, + { 29484, true }, + { 29493, true }, + { 29510, true }, + { 29518, true }, + { 29527, true }, + { 29536, false }, + { 29547, true }, + { 29571, true }, { 29581, true }, - { 29595, true }, - { 29609, true }, - { 29627, true }, - { 29642, true }, - { 29656, true }, - { 29668, true }, + { 29591, true }, + { 29600, true }, + { 29613, true }, + { 29626, true }, + { 29638, true }, + { 29652, true }, + { 29666, true }, { 29684, true }, - { 29697, true }, - { 29712, true }, - { 29724, true }, - { 29739, true }, - { 29753, true }, - { 29768, true }, - { 29783, true }, - { 29798, true }, - { 29807, true }, - { 29816, true }, - { 29830, true }, - { 29839, true }, - { 29853, true }, - { 29863, true }, - { 29876, true }, - { 29886, true }, + { 29699, true }, + { 29713, true }, + { 29725, true }, + { 29741, true }, + { 29754, true }, + { 29769, true }, + { 29781, true }, + { 29796, true }, + { 29810, true }, + { 29825, true }, + { 29840, true }, + { 29855, true }, + { 29864, true }, + { 29873, true }, + { 29887, true }, { 29896, true }, - { 29911, true }, - { 29926, true }, - { 29940, true }, - { 29955, true }, - { 29974, true }, - { 29988, true }, - { 30004, true }, - { 30015, true }, - { 30029, true }, - { 30039, true }, - { 30050, true }, - { 30066, true }, - { 30078, true }, - { 30094, true }, - { 30108, true }, - { 30113, true }, - { 30124, true }, - { 30132, true }, - { 30140, true }, - { 30147, true }, - { 30153, true }, - { 30163, true }, - { 30172, true }, - { 30182, true }, - { 30211, true }, - { 30226, false }, - { 30246, true }, - { 30256, true }, - { 30269, true }, - { 30287, true }, - { 30300, true }, - { 30320, true }, - { 30336, true }, - { 30348, true }, + { 29910, true }, + { 29920, true }, + { 29933, true }, + { 29943, true }, + { 29953, true }, + { 29968, true }, + { 29983, true }, + { 29997, true }, + { 30012, true }, + { 30031, true }, + { 30047, true }, + { 30061, true }, + { 30077, true }, + { 30088, true }, + { 30102, true }, + { 30112, true }, + { 30123, true }, + { 30139, true }, + { 30151, true }, + { 30167, true }, + { 30181, true }, + { 30186, true }, + { 30197, true }, + { 30205, true }, + { 30213, true }, + { 30220, true }, + { 30226, true }, + { 30236, true }, + { 30245, true }, + { 30255, true }, + { 30284, true }, + { 30299, false }, + { 30319, true }, + { 30329, true }, + { 30342, true }, { 30360, true }, { 30373, true }, - { 30384, true }, - { 30395, true }, + { 30393, true }, { 30409, true }, - { 30427, true }, - { 30440, true }, - { 30453, true }, - { 30469, true }, - { 30489, true }, - { 30509, true }, - { 30517, true }, - { 30528, false }, - { 30538, true }, - { 30550, true }, - { 30559, true }, - { 30573, true }, - { 30592, true }, - { 30600, true }, - { 30624, true }, - { 30643, true }, - { 30657, false }, + { 30421, true }, + { 30433, true }, + { 30446, true }, + { 30457, true }, + { 30468, true }, + { 30482, true }, + { 30500, true }, + { 30513, true }, + { 30526, true }, + { 30542, true }, + { 30562, true }, + { 30582, true }, + { 30590, true }, + { 30601, false }, + { 30611, true }, + { 30623, true }, + { 30632, true }, + { 30646, true }, + { 30665, true }, { 30673, true }, - { 30684, true }, - { 30696, false }, - { 30711, true }, - { 30723, true }, - { 30742, false }, - { 30750, true }, - { 30762, true }, - { 30776, false }, - { 30788, true }, - { 30800, true }, - { 30811, true }, - { 30825, true }, - { 30838, true }, - { 30850, true }, - { 30863, true }, - { 30883, true }, - { 30893, true }, - { 30912, true }, - { 30924, true }, - { 30935, true }, - { 30947, true }, - { 30964, true }, - { 30987, true }, - { 31010, true }, - { 31021, true }, - { 31033, true }, - { 31048, true }, - { 31059, true }, - { 31075, true }, - { 31091, true }, - { 31109, false }, + { 30697, true }, + { 30716, true }, + { 30730, false }, + { 30746, true }, + { 30757, true }, + { 30769, false }, + { 30784, true }, + { 30796, true }, + { 30815, false }, + { 30823, true }, + { 30835, true }, + { 30849, false }, + { 30861, true }, + { 30873, true }, + { 30884, true }, + { 30898, true }, + { 30911, true }, + { 30923, true }, + { 30936, true }, + { 30956, true }, + { 30966, true }, + { 30985, true }, + { 30997, true }, + { 31008, true }, + { 31020, true }, + { 31037, true }, + { 31060, true }, + { 31083, true }, + { 31094, true }, + { 31106, true }, + { 31121, true }, { 31132, true }, - { 31152, true }, - { 31166, true }, - { 31181, true }, - { 31204, true }, - { 31223, true }, - { 31238, true }, - { 31256, true }, - { 31273, true }, - { 31299, true }, - { 31318, true }, - { 31334, true }, - { 31348, true }, - { 31369, true }, - { 31385, true }, - { 31410, true }, - { 31424, true }, + { 31148, true }, + { 31164, true }, + { 31182, false }, + { 31205, true }, + { 31225, true }, + { 31239, true }, + { 31254, true }, + { 31277, true }, + { 31296, true }, + { 31311, true }, + { 31329, true }, + { 31346, true }, + { 31372, true }, + { 31391, true }, + { 31407, true }, + { 31421, true }, { 31442, true }, - { 31451, true }, - { 31463, false }, - { 31474, true }, - { 31487, true }, - { 31499, true }, - { 31522, true }, - { 31534, true }, - { 31549, true }, - { 31562, true }, - { 31576, true }, - { 31586, true }, - { 31599, true }, + { 31458, true }, + { 31483, true }, + { 31497, true }, + { 31515, true }, + { 31524, true }, + { 31536, false }, + { 31547, true }, + { 31560, true }, + { 31572, true }, + { 31595, true }, { 31607, true }, - { 31614, true }, - { 31639, true }, - { 31665, true }, - { 31677, true }, - { 31689, true }, - { 31704, true }, - { 31730, true }, - { 31752, true }, - { 31766, true }, - { 31778, true }, - { 31788, true }, - { 31801, true }, - { 31809, true }, - { 31823, true }, - { 31847, true }, + { 31622, true }, + { 31635, true }, + { 31649, true }, + { 31659, true }, + { 31672, true }, + { 31680, true }, + { 31687, true }, + { 31712, true }, + { 31738, true }, + { 31750, true }, + { 31762, true }, + { 31777, true }, + { 31803, true }, + { 31825, true }, + { 31839, true }, + { 31851, true }, { 31861, true }, - { 31885, true }, + { 31874, true }, + { 31882, true }, { 31896, true }, - { 31913, true }, - { 31922, true }, - { 31937, true }, - { 31959, true }, - { 31982, true }, - { 32006, true }, - { 32029, true }, - { 32042, true }, - { 32060, false }, - { 32091, false }, - { 32106, true }, - { 32118, true }, - { 32131, true }, - { 32151, true }, - { 32166, true }, - { 32182, true }, - { 32193, true }, - { 32209, true }, - { 32220, true }, - { 32234, true }, - { 32244, true }, - { 32253, false }, + { 31920, true }, + { 31934, true }, + { 31958, true }, + { 31969, true }, + { 31986, true }, + { 31995, true }, + { 32010, true }, + { 32032, true }, + { 32055, true }, + { 32079, true }, + { 32102, true }, + { 32115, true }, + { 32133, false }, + { 32164, false }, + { 32179, true }, + { 32191, true }, + { 32204, true }, + { 32224, true }, + { 32239, true }, + { 32255, true }, { 32266, true }, - { 32283, true }, - { 32302, true }, - { 32316, true }, - { 32330, true }, - { 32342, true }, - { 32361, true }, - { 32374, true }, - { 32391, true }, - { 32400, true }, - { 32420, true }, - { 32442, true }, - { 32455, true }, - { 32476, true }, - { 32487, true }, - { 32501, true }, - { 32517, true }, + { 32282, true }, + { 32293, true }, + { 32307, true }, + { 32317, true }, + { 32326, false }, + { 32339, true }, + { 32356, true }, + { 32375, true }, + { 32389, true }, + { 32403, true }, + { 32415, true }, + { 32434, true }, + { 32447, true }, + { 32464, true }, + { 32473, true }, + { 32493, true }, + { 32515, true }, { 32528, true }, - { 32544, true }, - { 32561, true }, - { 32570, true }, - { 32585, true }, - { 32599, true }, - { 32620, true }, - { 32637, true }, - { 32653, true }, - { 32666, true }, - { 32679, true }, - { 32691, true }, - { 32699, true }, - { 32712, true }, - { 32725, true }, - { 32737, true }, - { 32749, true }, - { 32768, true }, - { 32783, true }, - { 32799, true }, - { 32820, true }, - { 32838, true }, - { 32849, true }, - { 32857, false }, - { 32880, true }, - { 32897, true }, - { 32914, true }, - { 32927, true }, - { 32944, true }, - { 32955, true }, - { 32967, false }, - { 32977, true }, - { 32993, false }, - { 33004, true }, - { 33019, true }, + { 32549, true }, + { 32560, true }, + { 32574, true }, + { 32590, true }, + { 32601, true }, + { 32617, true }, + { 32634, true }, + { 32643, true }, + { 32658, true }, + { 32672, true }, + { 32693, true }, + { 32710, true }, + { 32726, true }, + { 32739, true }, + { 32752, true }, + { 32764, true }, + { 32772, true }, + { 32785, true }, + { 32798, true }, + { 32810, true }, + { 32822, true }, + { 32841, true }, + { 32856, true }, + { 32872, true }, + { 32893, true }, + { 32911, true }, + { 32922, true }, + { 32930, false }, + { 32953, true }, + { 32970, true }, + { 32987, true }, + { 33000, true }, + { 33017, true }, { 33028, true }, - { 33041, true }, - { 33075, true }, - { 33093, true }, - { 33111, true }, - { 33122, true }, - { 33132, true }, - { 33143, true }, - { 33155, true }, - { 33181, true }, - { 33198, true }, - { 33207, true }, - { 33223, true }, - { 33233, true }, - { 33241, false }, - { 33249, true }, - { 33259, true }, - { 33272, true }, - { 33282, true }, - { 33297, true }, - { 33311, true }, - { 33325, true }, - { 33335, true }, - { 33343, true }, - { 33357, true }, - { 33378, true }, - { 33392, true }, + { 33040, false }, + { 33050, true }, + { 33066, false }, + { 33077, true }, + { 33092, true }, + { 33101, true }, + { 33114, true }, + { 33148, true }, + { 33166, true }, + { 33184, true }, + { 33195, true }, + { 33205, true }, + { 33216, true }, + { 33228, true }, + { 33254, true }, + { 33271, true }, + { 33280, true }, + { 33296, true }, + { 33306, true }, + { 33314, false }, + { 33322, true }, + { 33332, true }, + { 33345, true }, + { 33355, true }, + { 33370, true }, + { 33384, true }, + { 33398, true }, { 33408, true }, - { 33415, true }, - { 33425, true }, - { 33440, true }, - { 33451, false }, - { 33464, true }, - { 33480, true }, + { 33416, true }, + { 33430, true }, + { 33451, true }, + { 33465, true }, + { 33481, true }, + { 33488, true }, { 33498, true }, - { 33514, true }, - { 33525, true }, - { 33543, true }, - { 33565, false }, - { 33582, true }, - { 33594, true }, - { 33610, true }, - { 33626, true }, - { 33642, true }, - { 33661, true }, - { 33678, true }, - { 33693, true }, - { 33712, true }, - { 33727, true }, - { 33742, true }, - { 33763, true }, - { 33781, true }, - { 33794, true }, - { 33807, true }, - { 33821, true }, - { 33840, true }, - { 33858, true }, - { 33873, true }, - { 33887, true }, - { 33900, true }, - { 33911, true }, - { 33921, true }, - { 33938, true }, - { 33954, true }, - { 33970, true }, - { 33985, true }, - { 33995, true }, - { 34010, true }, - { 34022, true }, - { 34033, true }, - { 34045, false }, - { 34053, true }, - { 34074, true }, - { 34082, true }, - { 34093, true }, + { 33513, true }, + { 33524, false }, + { 33537, true }, + { 33553, true }, + { 33571, true }, + { 33587, true }, + { 33598, true }, + { 33616, true }, + { 33638, false }, + { 33655, true }, + { 33667, true }, + { 33683, true }, + { 33699, true }, + { 33715, true }, + { 33734, true }, + { 33751, true }, + { 33766, true }, + { 33785, true }, + { 33800, true }, + { 33815, true }, + { 33836, true }, + { 33854, true }, + { 33867, true }, + { 33880, true }, + { 33894, true }, + { 33913, true }, + { 33931, true }, + { 33946, true }, + { 33960, true }, + { 33973, true }, + { 33984, true }, + { 33994, true }, + { 34011, true }, + { 34027, true }, + { 34043, true }, + { 34058, true }, + { 34068, true }, + { 34083, true }, + { 34095, true }, { 34106, true }, - { 34114, true }, - { 34122, true }, - { 34140, true }, - { 34154, true }, - { 34168, true }, - { 34176, true }, - { 34184, true }, - { 34194, true }, - { 34208, true }, - { 34228, true }, - { 34236, true }, - { 34245, false }, - { 34265, true }, - { 34283, true }, - { 34294, true }, - { 34312, true }, - { 34330, true }, - { 34342, true }, - { 34354, true }, - { 34370, true }, - { 34386, true }, - { 34400, true }, - { 34417, true }, - { 34430, true }, - { 34447, true }, - { 34460, true }, - { 34474, true }, - { 34487, true }, - { 34501, true }, + { 34118, false }, + { 34126, true }, + { 34147, true }, + { 34155, true }, + { 34166, true }, + { 34179, true }, + { 34187, true }, + { 34195, true }, + { 34213, true }, + { 34227, true }, + { 34241, true }, + { 34249, true }, + { 34257, true }, + { 34267, true }, + { 34281, true }, + { 34301, true }, + { 34309, true }, + { 34318, false }, + { 34338, true }, + { 34356, true }, + { 34367, true }, + { 34385, true }, + { 34403, true }, + { 34415, true }, + { 34427, true }, + { 34443, true }, + { 34459, true }, + { 34473, true }, + { 34490, true }, + { 34503, true }, { 34520, true }, - { 34530, true }, - { 34550, true }, - { 34559, true }, - { 34579, true }, - { 34596, true }, - { 34616, true }, - { 34630, true }, - { 34650, true }, - { 34668, true }, + { 34533, true }, + { 34547, true }, + { 34560, true }, + { 34574, true }, + { 34593, true }, + { 34603, true }, + { 34623, true }, + { 34632, true }, + { 34652, true }, + { 34669, true }, + { 34689, true }, { 34703, true }, - { 34717, true }, - { 34735, true }, - { 34745, true }, - { 34775, true }, + { 34723, true }, + { 34741, true }, + { 34776, true }, { 34790, true }, - { 34803, true }, - { 34816, true }, - { 34830, true }, - { 34845, true }, - { 34865, true }, - { 34882, true }, - { 34893, true }, - { 34903, false }, - { 34914, true }, - { 34922, true }, - { 34943, true }, - { 34964, true }, - { 34985, false }, - { 35001, true }, - { 35014, true }, - { 35029, true }, - { 35041, false }, - { 35062, true }, - { 35082, true }, - { 35104, true }, - { 35118, true }, - { 35136, true }, - { 35156, true }, - { 35172, true }, - { 35186, true }, - { 35202, true }, - { 35220, true }, - { 35231, true }, - { 35242, true }, - { 35255, true }, - { 35268, true }, - { 35282, true }, - { 35297, true }, - { 35316, true }, - { 35332, true }, - { 35344, true }, - { 35354, true }, - { 35365, false }, - { 35387, true }, - { 35395, true }, - { 35410, true }, + { 34808, true }, + { 34818, true }, + { 34848, true }, + { 34863, true }, + { 34876, true }, + { 34889, true }, + { 34903, true }, + { 34918, true }, + { 34938, true }, + { 34955, true }, + { 34966, true }, + { 34976, false }, + { 34987, true }, + { 34995, true }, + { 35016, true }, + { 35037, true }, + { 35058, false }, + { 35074, true }, + { 35087, true }, + { 35102, true }, + { 35114, false }, + { 35135, true }, + { 35155, true }, + { 35177, true }, + { 35191, true }, + { 35209, true }, + { 35229, true }, + { 35245, true }, + { 35259, true }, + { 35275, true }, + { 35293, true }, + { 35304, true }, + { 35315, true }, + { 35328, true }, + { 35341, true }, + { 35355, true }, + { 35370, true }, + { 35389, true }, + { 35405, true }, + { 35417, true }, { 35427, true }, - { 35441, true }, - { 35458, true }, - { 35473, true }, - { 35491, true }, - { 35502, true }, - { 35526, true }, - { 35542, true }, - { 35558, true }, - { 35573, true }, - { 35594, true }, - { 35603, true }, - { 35618, true }, - { 35631, false }, - { 35641, true }, - { 35660, true }, - { 35674, true }, - { 35694, true }, - { 35709, true }, - { 35718, true }, - { 35736, false }, - { 35758, true }, - { 35777, true }, - { 35789, false }, - { 35805, false }, - { 35819, true }, - { 35835, true }, - { 35854, true }, - { 35866, true }, - { 35881, true }, - { 35899, true }, - { 35914, true }, - { 35926, true }, - { 35944, true }, - { 35964, true }, - { 35986, true }, - { 36004, true }, - { 36021, true }, - { 36036, true }, - { 36051, true }, - { 36068, false }, - { 36084, true }, - { 36098, true }, - { 36112, true }, - { 36131, true }, - { 36148, true }, - { 36167, true }, - { 36182, true }, - { 36209, true }, - { 36229, true }, - { 36251, true }, - { 36272, true }, - { 36295, true }, - { 36315, true }, - { 36333, true }, - { 36351, true }, - { 36370, true }, - { 36392, true }, - { 36411, true }, - { 36431, true }, - { 36454, true }, - { 36477, true }, - { 36491, true }, - { 36508, true }, - { 36522, true }, - { 36536, true }, - { 36549, true }, - { 36586, false }, - { 36597, true }, - { 36615, true }, - { 36635, true }, - { 36658, true }, - { 36683, true }, - { 36714, true }, - { 36728, true }, - { 36739, true }, - { 36751, true }, - { 36763, true }, - { 36772, true }, - { 36784, true }, + { 35438, false }, + { 35460, true }, + { 35468, true }, + { 35483, true }, + { 35500, true }, + { 35514, true }, + { 35531, true }, + { 35546, true }, + { 35564, true }, + { 35575, true }, + { 35599, true }, + { 35615, true }, + { 35631, true }, + { 35646, true }, + { 35667, true }, + { 35676, true }, + { 35691, true }, + { 35704, false }, + { 35714, true }, + { 35733, true }, + { 35747, true }, + { 35767, true }, + { 35782, true }, + { 35791, true }, + { 35809, false }, + { 35831, true }, + { 35850, true }, + { 35862, false }, + { 35878, false }, + { 35892, true }, + { 35908, true }, + { 35927, true }, + { 35939, true }, + { 35954, true }, + { 35972, true }, + { 35987, true }, + { 35999, true }, + { 36017, true }, + { 36037, true }, + { 36059, true }, + { 36077, true }, + { 36094, true }, + { 36109, true }, + { 36124, true }, + { 36141, false }, + { 36157, true }, + { 36171, true }, + { 36185, true }, + { 36204, true }, + { 36221, true }, + { 36240, true }, + { 36255, true }, + { 36282, true }, + { 36302, true }, + { 36324, true }, + { 36345, true }, + { 36368, true }, + { 36388, true }, + { 36406, true }, + { 36424, true }, + { 36443, true }, + { 36465, true }, + { 36484, true }, + { 36504, true }, + { 36527, true }, + { 36550, true }, + { 36564, true }, + { 36581, true }, + { 36595, true }, + { 36609, true }, + { 36622, true }, + { 36659, false }, + { 36670, true }, + { 36688, true }, + { 36708, true }, + { 36731, true }, + { 36756, true }, + { 36787, true }, { 36801, true }, - { 36811, true }, - { 36829, false }, - { 36837, true }, - { 36848, true }, - { 36862, true }, - { 36881, true }, - { 36892, false }, + { 36812, true }, + { 36824, true }, + { 36836, true }, + { 36845, true }, + { 36857, true }, + { 36874, true }, + { 36884, true }, + { 36902, false }, { 36910, true }, - { 36923, true }, - { 36936, true }, - { 36953, true }, - { 36967, true }, - { 36978, true }, - { 36992, true }, - { 37004, true }, - { 37019, true }, - { 37027, true }, - { 37041, true }, - { 37053, true }, + { 36921, true }, + { 36935, true }, + { 36954, true }, + { 36965, false }, + { 36983, true }, + { 36996, true }, + { 37009, true }, + { 37026, true }, + { 37040, true }, + { 37051, true }, { 37065, true }, - { 37075, true }, - { 37086, true }, - { 37097, true }, - { 37111, true }, - { 37134, true }, - { 37142, true }, - { 37160, true }, - { 37175, true }, - { 37194, false }, - { 37213, true }, - { 37225, true }, - { 37241, true }, - { 37251, true }, - { 37270, true }, - { 37283, true }, + { 37077, true }, + { 37092, true }, + { 37100, true }, + { 37114, true }, + { 37126, true }, + { 37138, true }, + { 37148, true }, + { 37159, true }, + { 37170, true }, + { 37184, true }, + { 37207, true }, + { 37215, true }, + { 37233, true }, + { 37248, true }, + { 37267, false }, + { 37286, true }, { 37298, true }, - { 37306, true }, - { 37321, true }, - { 37333, true }, - { 37341, true }, - { 37347, true }, - { 37360, true }, - { 37369, true }, - { 37383, true }, - { 37397, true }, - { 37410, false }, - { 37430, true }, - { 37446, true }, - { 37457, true }, - { 37469, true }, - { 37485, true }, - { 37498, true }, - { 37518, true }, - { 37532, true }, - { 37548, true }, - { 37562, true }, - { 37582, true }, - { 37596, true }, - { 37611, true }, - { 37631, true }, - { 37645, true }, - { 37658, true }, - { 37667, true }, - { 37677, true }, - { 37696, true }, - { 37712, true }, - { 37734, true }, - { 37766, true }, + { 37314, true }, + { 37324, true }, + { 37343, true }, + { 37356, true }, + { 37371, true }, + { 37379, true }, + { 37394, true }, + { 37406, true }, + { 37414, true }, + { 37420, true }, + { 37433, true }, + { 37442, true }, + { 37456, true }, + { 37470, true }, + { 37483, false }, + { 37503, true }, + { 37519, true }, + { 37530, true }, + { 37542, true }, + { 37558, true }, + { 37571, true }, + { 37591, true }, + { 37605, true }, + { 37621, true }, + { 37635, true }, + { 37655, true }, + { 37669, true }, + { 37684, true }, + { 37704, true }, + { 37718, true }, + { 37731, true }, + { 37740, true }, + { 37750, true }, + { 37769, true }, { 37785, true }, - { 37801, true }, - { 37822, true }, - { 37842, true }, - { 37855, true }, - { 37875, true }, - { 37889, true }, - { 37908, true }, - { 37927, true }, - { 37941, true }, - { 37956, true }, - { 37969, true }, - { 37979, true }, - { 37992, true }, - { 38007, true }, - { 38019, true }, - { 38034, true }, - { 38057, true }, - { 38073, true }, + { 37807, true }, + { 37839, true }, + { 37858, true }, + { 37874, true }, + { 37895, true }, + { 37915, true }, + { 37928, true }, + { 37948, true }, + { 37962, true }, + { 37981, true }, + { 38000, true }, + { 38014, true }, + { 38029, true }, + { 38042, true }, + { 38052, true }, + { 38065, true }, + { 38080, true }, { 38092, true }, - { 38104, false }, - { 38125, true }, - { 38133, true }, - { 38142, true }, - { 38155, true }, - { 38169, true }, - { 38178, true }, - { 38190, true }, + { 38107, true }, + { 38130, true }, + { 38146, true }, + { 38165, true }, + { 38177, false }, + { 38198, true }, { 38206, true }, - { 38223, false }, - { 38233, true }, - { 38244, true }, - { 38256, true }, - { 38269, true }, - { 38288, true }, + { 38215, true }, + { 38228, true }, + { 38242, true }, + { 38251, true }, + { 38263, true }, + { 38279, true }, + { 38296, false }, { 38306, true }, - { 38323, true }, - { 38340, false }, - { 38350, true }, - { 38368, true }, - { 38387, true }, - { 38401, true }, - { 38418, true }, - { 38440, true }, - { 38452, true }, - { 38465, true }, - { 38486, true }, - { 38503, true }, + { 38317, true }, + { 38329, true }, + { 38342, true }, + { 38361, true }, + { 38379, true }, + { 38396, true }, + { 38413, false }, + { 38423, true }, + { 38441, true }, + { 38460, true }, + { 38474, true }, + { 38491, true }, + { 38513, true }, { 38525, true }, - { 38541, true }, - { 38556, true }, - { 38570, true }, - { 38596, true }, - { 38621, true }, - { 38636, true }, - { 38649, true }, - { 38661, true }, - { 38671, true }, - { 38686, true }, - { 38696, true }, - { 38705, true }, - { 38719, true }, - { 38730, true }, - { 38741, true }, - { 38756, true }, - { 38771, true }, - { 38783, true }, - { 38797, true }, - { 38810, true }, - { 38821, true }, - { 38837, true }, - { 38847, true }, + { 38538, true }, + { 38559, true }, + { 38576, true }, + { 38598, true }, + { 38614, true }, + { 38629, true }, + { 38643, true }, + { 38669, true }, + { 38694, true }, + { 38709, true }, + { 38722, true }, + { 38734, true }, + { 38744, true }, + { 38759, true }, + { 38769, true }, + { 38778, true }, + { 38792, true }, + { 38803, true }, + { 38814, true }, + { 38829, true }, + { 38844, true }, { 38856, true }, - { 38868, true }, - { 38879, true }, - { 38888, true }, - { 38904, true }, - { 38912, true }, - { 38922, true }, - { 38933, false }, - { 38953, true }, + { 38870, true }, + { 38883, true }, + { 38894, true }, + { 38910, true }, + { 38920, true }, + { 38929, true }, + { 38941, true }, + { 38952, true }, + { 38961, true }, { 38977, true }, - { 38998, true }, + { 38985, true }, + { 38995, true }, { 39006, true }, - { 39027, true }, + { 39017, false }, { 39037, true }, - { 39053, true }, - { 39067, true }, - { 39087, true }, - { 39099, false }, - { 39109, true }, - { 39139, true }, - { 39166, false }, - { 39180, true }, + { 39061, true }, + { 39082, true }, + { 39090, true }, + { 39111, true }, + { 39121, true }, + { 39137, true }, + { 39151, true }, + { 39171, true }, + { 39183, false }, { 39193, true }, - { 39212, true }, - { 39229, true }, - { 39243, false }, - { 39261, true }, - { 39269, true }, - { 39285, true }, + { 39223, true }, + { 39250, false }, + { 39264, true }, + { 39277, true }, { 39296, true }, - { 39311, true }, - { 39330, true }, - { 39343, true }, - { 39356, true }, - { 39371, true }, - { 39391, false }, - { 39406, true }, - { 39418, true }, - { 39430, true }, - { 39450, true }, - { 39462, true }, - { 39475, true }, + { 39313, true }, + { 39327, false }, + { 39345, true }, + { 39353, true }, + { 39369, true }, + { 39380, true }, + { 39395, true }, + { 39414, true }, + { 39427, true }, + { 39440, true }, + { 39455, true }, + { 39475, false }, { 39490, true }, - { 39503, true }, - { 39516, true }, - { 39539, false }, - { 39563, true }, - { 39580, true }, - { 39593, true }, - { 39604, true }, - { 39616, true }, + { 39502, true }, + { 39514, true }, + { 39534, true }, + { 39546, true }, + { 39559, true }, + { 39574, true }, + { 39587, true }, + { 39600, true }, + { 39613, true }, { 39636, true }, - { 39648, true }, - { 39662, true }, - { 39680, true }, - { 39691, true }, - { 39710, true }, - { 39727, true }, - { 39749, true }, - { 39763, true }, - { 39782, true }, - { 39792, true }, - { 39806, true }, - { 39839, true }, + { 39660, true }, + { 39677, true }, + { 39690, true }, + { 39701, true }, + { 39713, true }, + { 39733, true }, + { 39745, true }, + { 39759, true }, + { 39777, true }, + { 39788, true }, + { 39807, true }, + { 39824, true }, + { 39846, true }, { 39860, true }, - { 39872, true }, - { 39887, true }, - { 39901, true }, - { 39912, true }, - { 39926, true }, - { 39939, true }, - { 39955, true }, - { 39968, true }, - { 39988, true }, - { 39996, true }, - { 40008, false }, - { 40020, true }, - { 40031, true }, - { 40048, true }, - { 40070, true }, - { 40083, true }, - { 40103, true }, - { 40115, true }, - { 40127, true }, + { 39879, true }, + { 39889, true }, + { 39903, true }, + { 39936, true }, + { 39957, true }, + { 39969, true }, + { 39984, true }, + { 39998, true }, + { 40009, true }, + { 40023, true }, + { 40036, true }, + { 40052, true }, + { 40065, true }, + { 40085, true }, + { 40093, true }, + { 40105, false }, + { 40117, true }, + { 40128, true }, { 40145, true }, - { 40159, true }, - { 40174, true }, - { 40193, true }, - { 40208, true }, - { 40222, true }, - { 40234, true }, - { 40250, true }, - { 40266, true }, - { 40287, true }, - { 40306, true }, - { 40333, true }, - { 40352, true }, - { 40372, true }, - { 40386, true }, - { 40403, true }, - { 40423, true }, - { 40436, true }, - { 40450, true }, - { 40471, true }, - { 40492, true }, + { 40167, true }, + { 40180, true }, + { 40200, true }, + { 40212, true }, + { 40224, true }, + { 40242, true }, + { 40256, true }, + { 40275, true }, + { 40290, true }, + { 40304, true }, + { 40316, true }, + { 40332, true }, + { 40348, true }, + { 40369, true }, + { 40388, true }, + { 40415, true }, + { 40434, true }, + { 40454, true }, + { 40468, true }, + { 40485, true }, { 40505, true }, - { 40512, true }, - { 40524, true }, - { 40546, true }, - { 40562, true }, - { 40573, true }, - { 40589, true }, - { 40604, true }, - { 40617, true }, - { 40637, true }, - { 40651, true }, - { 40666, true }, - { 40676, true }, - { 40688, true }, - { 40700, true }, - { 40718, true }, - { 40737, true }, - { 40752, true }, - { 40773, false }, - { 40794, true }, - { 40814, true }, + { 40518, true }, + { 40532, true }, + { 40553, true }, + { 40574, true }, + { 40587, true }, + { 40594, true }, + { 40606, true }, + { 40628, true }, + { 40644, true }, + { 40655, true }, + { 40671, true }, + { 40686, true }, + { 40699, true }, + { 40719, true }, + { 40733, true }, + { 40748, true }, + { 40758, true }, + { 40770, true }, + { 40782, true }, + { 40800, true }, + { 40819, true }, { 40834, true }, - { 40866, true }, + { 40855, false }, { 40876, true }, - { 40889, true }, - { 40908, true }, - { 40925, false }, - { 40949, false }, + { 40896, true }, + { 40916, true }, + { 40948, true }, + { 40958, true }, { 40971, true }, - { 40995, true }, - { 41025, true }, - { 41049, true }, - { 41065, true }, - { 41082, true }, - { 41094, true }, - { 41112, true }, - { 41127, true }, - { 41144, true }, - { 41158, true }, - { 41180, true }, - { 41205, true }, - { 41218, true }, - { 41233, true }, - { 41248, true }, - { 41270, true }, - { 41286, false }, - { 41311, true }, - { 41335, true }, - { 41359, true }, - { 41380, true }, - { 41395, true }, - { 41411, true }, - { 41430, true }, - { 41447, true }, - { 41465, true }, - { 41489, false }, - { 41511, true }, - { 41524, true }, - { 41535, true }, + { 40990, true }, + { 41007, false }, + { 41031, false }, + { 41053, true }, + { 41077, true }, + { 41107, true }, + { 41131, true }, + { 41147, true }, + { 41164, true }, + { 41176, true }, + { 41194, true }, + { 41209, true }, + { 41226, true }, + { 41240, true }, + { 41262, true }, + { 41287, true }, + { 41300, true }, + { 41315, true }, + { 41330, true }, + { 41352, true }, + { 41368, false }, + { 41393, true }, + { 41417, true }, + { 41441, true }, + { 41462, true }, + { 41477, true }, + { 41493, true }, + { 41512, true }, + { 41529, true }, { 41547, true }, - { 41561, true }, - { 41579, true }, - { 41598, true }, - { 41613, true }, - { 41641, true }, - { 41656, true }, - { 41679, true }, - { 41692, true }, - { 41703, true }, - { 41716, true }, - { 41734, true }, - { 41756, true }, - { 41781, true }, - { 41804, true }, - { 41818, true }, - { 41831, true }, - { 41847, true }, - { 41860, true }, - { 41878, true }, - { 41888, true }, - { 41901, true }, - { 41928, true }, - { 41946, true }, - { 41967, true }, - { 41982, true }, - { 42006, true }, - { 42024, true }, - { 42049, true }, - { 42064, false }, - { 42087, true }, - { 42096, true }, - { 42117, true }, - { 42134, true }, - { 42145, true }, - { 42158, false }, + { 41571, false }, + { 41593, true }, + { 41606, true }, + { 41617, true }, + { 41629, true }, + { 41643, true }, + { 41661, true }, + { 41680, true }, + { 41695, true }, + { 41723, true }, + { 41738, true }, + { 41761, true }, + { 41774, true }, + { 41785, true }, + { 41798, true }, + { 41817, true }, + { 41835, true }, + { 41857, true }, + { 41882, true }, + { 41905, true }, + { 41919, true }, + { 41932, true }, + { 41948, true }, + { 41961, true }, + { 41979, true }, + { 41989, true }, + { 42002, true }, + { 42029, true }, + { 42047, true }, + { 42068, true }, + { 42083, true }, + { 42107, true }, + { 42125, true }, + { 42150, true }, + { 42165, false }, + { 42188, true }, { 42197, true }, - { 42208, true }, - { 42221, true }, - { 42233, true }, - { 42249, true }, - { 42263, false }, - { 42278, true }, - { 42298, false }, - { 42314, true }, - { 42333, true }, - { 42344, true }, - { 42357, true }, - { 42369, true }, - { 42392, true }, - { 42404, true }, - { 42413, true }, - { 42423, true }, - { 42437, true }, - { 42452, true }, - { 42466, true }, - { 42482, true }, - { 42498, true }, - { 42515, true }, - { 42527, true }, + { 42218, true }, + { 42235, true }, + { 42246, true }, + { 42259, false }, + { 42298, true }, + { 42309, true }, + { 42322, true }, + { 42334, true }, + { 42350, true }, + { 42364, false }, + { 42379, true }, + { 42399, false }, + { 42415, true }, + { 42434, true }, + { 42445, true }, + { 42458, true }, + { 42470, true }, + { 42493, true }, + { 42502, true }, + { 42512, true }, + { 42526, true }, { 42541, true }, - { 42553, true }, - { 42576, true }, - { 42601, true }, - { 42621, true }, - { 42638, true }, - { 42647, true }, - { 42664, true }, - { 42676, true }, - { 42691, true }, - { 42708, true }, + { 42555, true }, + { 42571, true }, + { 42587, true }, + { 42604, true }, + { 42616, true }, + { 42630, true }, + { 42642, true }, + { 42665, true }, + { 42690, true }, + { 42710, true }, { 42727, true }, - { 42740, true }, - { 42758, true }, - { 42770, true }, - { 42789, true }, - { 42801, true }, - { 42831, true }, - { 42845, true }, - { 42869, true }, - { 42892, true }, - { 42906, true }, - { 42919, true }, - { 42931, true }, - { 42953, true }, - { 42973, true }, - { 42998, true }, - { 43010, true }, - { 43033, true }, - { 43052, true }, - { 43063, true }, - { 43077, true }, - { 43089, true }, - { 43105, true }, - { 43123, true }, + { 42736, true }, + { 42753, true }, + { 42765, true }, + { 42780, true }, + { 42797, true }, + { 42816, true }, + { 42829, true }, + { 42847, true }, + { 42859, true }, + { 42878, true }, + { 42890, true }, + { 42920, true }, + { 42934, true }, + { 42958, true }, + { 42981, true }, + { 42995, true }, + { 43008, true }, + { 43020, true }, + { 43042, true }, + { 43062, true }, + { 43087, true }, + { 43099, true }, + { 43122, true }, { 43141, true }, - { 43159, true }, - { 43175, true }, - { 43192, true }, - { 43221, true }, - { 43234, true }, - { 43245, true }, - { 43263, true }, + { 43152, true }, + { 43166, true }, + { 43178, true }, + { 43194, true }, + { 43212, true }, + { 43230, true }, + { 43248, true }, + { 43264, true }, { 43281, true }, - { 43304, true }, - { 43321, false }, - { 43336, true }, - { 43348, true }, - { 43360, true }, - { 43373, true }, - { 43382, true }, - { 43397, true }, - { 43416, true }, - { 43430, true }, - { 43442, true }, - { 43454, true }, - { 43468, false }, - { 43485, true }, - { 43496, true }, - { 43509, true }, - { 43526, true }, - { 43545, false }, - { 43558, true }, - { 43576, true }, - { 43602, true }, - { 43619, true }, - { 43638, true }, - { 43653, true }, - { 43668, true }, - { 43682, true }, - { 43699, true }, - { 43715, true }, - { 43734, true }, - { 43753, true }, - { 43773, true }, - { 43789, true }, - { 43805, true }, - { 43819, true }, - { 43829, true }, - { 43837, true }, - { 43863, true }, - { 43880, true }, - { 43901, true }, - { 43919, true }, - { 43938, true }, + { 43310, true }, + { 43323, true }, + { 43334, true }, + { 43352, true }, + { 43370, true }, + { 43393, true }, + { 43410, false }, + { 43425, true }, + { 43437, true }, + { 43449, true }, + { 43462, true }, + { 43471, true }, + { 43486, true }, + { 43505, true }, + { 43519, true }, + { 43531, true }, + { 43543, true }, + { 43557, false }, + { 43574, true }, + { 43585, true }, + { 43598, true }, + { 43615, true }, + { 43634, false }, + { 43647, true }, + { 43665, true }, + { 43691, true }, + { 43708, true }, + { 43727, true }, + { 43742, true }, + { 43757, true }, + { 43771, true }, + { 43788, true }, + { 43804, true }, + { 43823, true }, + { 43842, true }, + { 43862, true }, + { 43878, true }, + { 43894, true }, + { 43908, true }, + { 43918, true }, + { 43926, true }, { 43952, true }, - { 43971, true }, - { 43983, true }, - { 43999, false }, - { 44018, true }, - { 44032, true }, + { 43969, true }, + { 43990, true }, + { 44008, true }, + { 44027, true }, { 44041, true }, - { 44058, true }, + { 44060, true }, { 44072, true }, - { 44087, true }, - { 44102, true }, - { 44119, true }, + { 44088, false }, + { 44107, true }, + { 44121, true }, { 44130, true }, - { 44148, true }, - { 44169, true }, - { 44180, true }, - { 44189, true }, + { 44147, true }, + { 44161, true }, + { 44176, true }, + { 44191, true }, { 44208, true }, - { 44221, true }, - { 44236, true }, + { 44219, true }, + { 44237, true }, { 44258, true }, - { 44272, false }, - { 44286, true }, - { 44302, true }, - { 44314, true }, - { 44331, true }, - { 44343, true }, - { 44358, true }, - { 44370, true }, - { 44393, true }, - { 44405, true }, - { 44428, true }, + { 44269, true }, + { 44278, true }, + { 44297, true }, + { 44310, true }, + { 44325, true }, + { 44347, true }, + { 44361, false }, + { 44375, true }, + { 44391, true }, + { 44403, true }, + { 44420, true }, + { 44432, true }, { 44447, true }, - { 44463, true }, - { 44478, true }, - { 44488, true }, - { 44498, true }, - { 44505, true }, - { 44516, true }, - { 44533, true }, - { 44547, true }, - { 44568, true }, - { 44577, true }, + { 44459, true }, + { 44482, true }, + { 44494, true }, + { 44517, true }, + { 44536, true }, + { 44544, true }, + { 44560, true }, + { 44575, true }, { 44585, true }, - { 44599, false }, - { 44610, true }, - { 44626, false }, - { 44636, false }, - { 44652, true }, + { 44595, true }, + { 44602, true }, + { 44613, true }, + { 44630, true }, + { 44644, true }, { 44665, true }, - { 44679, true }, - { 44694, true }, - { 44710, true }, - { 44732, true }, - { 44746, true }, - { 44760, true }, - { 44775, true }, - { 44790, true }, - { 44815, true }, - { 44835, true }, - { 44851, true }, - { 44864, true }, - { 44878, true }, - { 44891, true }, - { 44921, true }, - { 44933, true }, + { 44674, true }, + { 44682, true }, + { 44696, false }, + { 44707, true }, + { 44723, false }, + { 44733, false }, + { 44749, true }, + { 44762, true }, + { 44776, true }, + { 44791, true }, + { 44807, true }, + { 44829, true }, + { 44843, true }, + { 44857, true }, + { 44872, true }, + { 44887, true }, + { 44912, true }, + { 44932, true }, { 44948, true }, - { 44958, true }, - { 44974, true }, - { 44982, false }, - { 44994, true }, - { 45005, true }, - { 45014, true }, - { 45024, true }, - { 45039, true }, - { 45056, true }, - { 45072, true }, - { 45085, true }, - { 45101, true }, - { 45114, true }, - { 45131, true }, - { 45140, true }, - { 45148, true }, - { 45156, true }, - { 45167, true }, - { 45176, true }, - { 45190, true }, - { 45203, true }, + { 44961, true }, + { 44975, true }, + { 44988, true }, + { 45018, true }, + { 45030, true }, + { 45045, true }, + { 45055, true }, + { 45071, true }, + { 45079, false }, + { 45091, true }, + { 45102, true }, + { 45111, true }, + { 45121, true }, + { 45136, true }, + { 45153, true }, + { 45169, true }, + { 45182, true }, + { 45198, true }, { 45211, true }, - { 45229, true }, - { 45238, true }, - { 45247, true }, - { 45255, true }, - { 45270, true }, - { 45278, true }, - { 45298, true }, - { 45321, true }, - { 45334, true }, - { 45348, true }, + { 45228, true }, + { 45237, true }, + { 45245, true }, + { 45253, true }, + { 45264, true }, + { 45273, true }, + { 45287, true }, + { 45300, true }, + { 45308, true }, + { 45326, true }, + { 45335, true }, + { 45344, true }, + { 45352, true }, { 45367, true }, - { 45386, true }, - { 45400, true }, - { 45409, true }, - { 45429, true }, - { 45452, true }, - { 45462, true }, - { 45472, true }, - { 45490, true }, - { 45510, true }, - { 45523, true }, - { 45537, true }, - { 45553, true }, - { 45563, true }, - { 45574, true }, - { 45584, true }, - { 45601, true }, - { 45617, true }, - { 45624, true }, - { 45633, true }, - { 45652, true }, - { 45665, true }, - { 45678, true }, - { 45689, true }, - { 45696, true }, - { 45707, true }, - { 45718, true }, - { 45726, true }, - { 45740, true }, - { 45760, true }, - { 45781, true }, - { 45800, true }, + { 45375, true }, + { 45395, true }, + { 45418, true }, + { 45431, true }, + { 45445, true }, + { 45464, true }, + { 45483, true }, + { 45497, true }, + { 45506, true }, + { 45526, true }, + { 45549, true }, + { 45559, true }, + { 45569, true }, + { 45587, true }, + { 45607, true }, + { 45620, true }, + { 45634, true }, + { 45650, true }, + { 45660, true }, + { 45671, true }, + { 45681, true }, + { 45698, true }, + { 45714, true }, + { 45721, true }, + { 45730, true }, + { 45749, true }, + { 45762, true }, + { 45775, true }, + { 45786, true }, + { 45793, true }, + { 45804, true }, { 45815, true }, + { 45823, true }, { 45837, true }, - { 45849, false }, - { 45871, true }, - { 45890, true }, - { 45906, true }, - { 45924, true }, - { 45939, true }, - { 45956, true }, - { 45971, true }, - { 45990, true }, - { 46002, true }, - { 46022, true }, - { 46039, true }, + { 45857, true }, + { 45878, true }, + { 45897, true }, + { 45912, true }, + { 45934, true }, + { 45946, false }, + { 45968, true }, + { 45987, true }, + { 46003, true }, + { 46021, true }, + { 46036, true }, { 46053, true }, - { 46062, true }, - { 46074, true }, - { 46084, true }, - { 46093, true }, - { 46102, true }, - { 46111, true }, - { 46120, true }, - { 46130, true }, - { 46140, true }, - { 46149, true }, - { 46158, true }, - { 46176, true }, - { 46192, true }, - { 46200, true }, - { 46207, true }, - { 46220, true }, + { 46068, true }, + { 46087, true }, + { 46099, true }, + { 46119, true }, + { 46136, true }, + { 46150, true }, + { 46159, true }, + { 46171, true }, + { 46181, true }, + { 46190, true }, + { 46199, true }, + { 46208, true }, + { 46217, true }, + { 46227, true }, { 46237, true }, - { 46251, true }, - { 46258, true }, - { 46268, true }, - { 46279, true }, - { 46296, true }, - { 46313, true }, - { 46333, true }, - { 46352, false }, + { 46246, true }, + { 46255, true }, + { 46273, true }, + { 46289, true }, + { 46297, true }, + { 46304, true }, + { 46317, true }, + { 46334, true }, + { 46348, true }, + { 46355, true }, { 46366, true }, - { 46384, true }, - { 46397, true }, - { 46414, true }, - { 46428, true }, - { 46442, true }, - { 46459, true }, - { 46485, true }, - { 46499, true }, - { 46516, true }, - { 46531, true }, - { 46545, true }, - { 46560, true }, - { 46571, true }, - { 46584, true }, - { 46598, true }, - { 46608, true }, - { 46619, true }, - { 46638, true }, + { 46383, true }, + { 46400, true }, + { 46420, true }, + { 46439, false }, + { 46453, true }, + { 46466, true }, + { 46483, true }, + { 46497, true }, + { 46511, true }, + { 46528, true }, + { 46554, true }, + { 46568, true }, + { 46585, true }, + { 46600, true }, + { 46614, true }, + { 46629, true }, + { 46640, true }, { 46653, true }, - { 46668, true }, - { 46695, true }, - { 46705, true }, - { 46717, true }, - { 46728, true }, - { 46740, true }, - { 46748, true }, - { 46759, true }, - { 46767, true }, - { 46778, true }, - { 46805, true }, - { 46815, true }, - { 46826, true }, - { 46837, true }, + { 46667, true }, + { 46677, true }, + { 46688, true }, + { 46707, true }, + { 46722, true }, + { 46737, true }, + { 46764, true }, + { 46774, true }, + { 46786, true }, + { 46797, true }, + { 46809, true }, + { 46817, true }, + { 46828, true }, + { 46836, true }, { 46847, true }, - { 46861, true }, - { 46875, true }, - { 46886, true }, - { 46893, true }, - { 46901, true }, - { 46917, true }, - { 46931, true }, - { 46947, true }, - { 46961, true }, + { 46874, true }, + { 46884, true }, + { 46895, true }, + { 46906, true }, + { 46916, true }, + { 46930, true }, + { 46944, true }, + { 46955, true }, + { 46962, true }, { 46970, true }, - { 46982, true }, - { 46989, true }, - { 46996, true }, - { 47012, true }, - { 47024, true }, - { 47038, true }, - { 47060, true }, - { 47071, true }, - { 47082, true }, + { 46986, true }, + { 47000, true }, + { 47016, true }, + { 47030, true }, + { 47039, true }, + { 47051, true }, + { 47058, true }, + { 47065, true }, + { 47081, true }, { 47093, true }, - { 47104, true }, - { 47120, true }, - { 47137, true }, - { 47150, true }, - { 47176, false }, - { 47199, true }, - { 47215, true }, - { 47225, true }, - { 47238, true }, - { 47257, true }, - { 47270, true }, - { 47281, true }, - { 47296, true }, - { 47314, true }, - { 47326, false }, - { 47338, true }, - { 47352, true }, - { 47364, true }, - { 47378, true }, - { 47391, true }, - { 47409, true }, - { 47422, true }, - { 47441, true }, - { 47451, true }, - { 47462, true }, - { 47475, true }, - { 47492, true }, + { 47107, true }, + { 47129, true }, + { 47140, true }, + { 47151, true }, + { 47162, true }, + { 47173, true }, + { 47189, true }, + { 47206, true }, + { 47219, true }, + { 47245, false }, + { 47268, true }, + { 47284, true }, + { 47294, true }, + { 47307, true }, + { 47326, true }, + { 47339, true }, + { 47350, true }, + { 47365, true }, + { 47383, true }, + { 47395, false }, + { 47407, true }, + { 47421, true }, + { 47433, true }, + { 47447, true }, + { 47460, true }, + { 47478, true }, + { 47491, true }, { 47510, true }, - { 47526, true }, - { 47539, true }, - { 47557, true }, - { 47571, true }, - { 47590, true }, - { 47607, true }, - { 47625, true }, + { 47520, true }, + { 47531, true }, + { 47544, true }, + { 47561, true }, + { 47579, true }, + { 47595, true }, + { 47608, true }, + { 47626, true }, { 47640, true }, - { 47661, true }, - { 47682, true }, - { 47698, true }, - { 47714, true }, - { 47733, false }, - { 47754, false }, - { 47774, true }, - { 47794, true }, - { 47814, true }, - { 47830, true }, - { 47847, true }, + { 47659, true }, + { 47677, true }, + { 47692, true }, + { 47713, true }, + { 47734, true }, + { 47750, true }, + { 47766, true }, + { 47785, false }, + { 47806, false }, + { 47826, true }, + { 47846, true }, { 47866, true }, - { 47884, true }, - { 47904, true }, - { 47920, true }, - { 47931, false }, - { 47941, true }, - { 47950, true }, - { 47968, true }, - { 47982, true }, - { 48000, false }, - { 48012, true }, - { 48025, true }, - { 48040, true }, - { 48055, true }, - { 48070, true }, - { 48078, true }, - { 48096, true }, + { 47882, true }, + { 47899, true }, + { 47918, true }, + { 47936, true }, + { 47956, true }, + { 47972, true }, + { 47983, false }, + { 47993, true }, + { 48002, true }, + { 48020, true }, + { 48034, true }, + { 48052, false }, + { 48064, true }, + { 48077, true }, + { 48092, true }, + { 48107, true }, + { 48122, true }, { 48130, true }, - { 48141, true }, - { 48154, false }, - { 48168, true }, - { 48186, true }, - { 48204, true }, - { 48215, true }, - { 48230, true }, - { 48241, true }, - { 48255, true }, - { 48270, true }, - { 48287, true }, - { 48299, true }, - { 48328, true }, - { 48361, true }, - { 48373, true }, - { 48385, true }, - { 48402, true }, - { 48417, true }, - { 48429, true }, - { 48441, true }, - { 48456, false }, - { 48468, true }, - { 48477, true }, - { 48489, true }, - { 48506, true }, - { 48521, false }, - { 48535, true }, - { 48555, true }, + { 48148, true }, + { 48182, true }, + { 48193, true }, + { 48206, false }, + { 48220, true }, + { 48238, true }, + { 48256, true }, + { 48267, true }, + { 48282, true }, + { 48293, true }, + { 48307, true }, + { 48322, true }, + { 48339, true }, + { 48351, true }, + { 48380, true }, + { 48413, true }, + { 48425, true }, + { 48437, true }, + { 48454, true }, + { 48469, true }, + { 48481, true }, + { 48493, true }, + { 48508, false }, + { 48520, true }, + { 48529, true }, + { 48541, true }, + { 48558, true }, { 48573, false }, { 48587, true }, - { 48598, true }, - { 48611, true }, - { 48621, false }, - { 48637, true }, - { 48651, true }, - { 48665, true }, - { 48676, true }, - { 48696, true }, - { 48709, true }, - { 48725, true }, - { 48738, true }, - { 48749, true }, - { 48766, true }, - { 48792, true }, - { 48812, true }, - { 48826, true }, - { 48843, false }, - { 48857, true }, - { 48871, false }, - { 48888, true }, - { 48904, true }, - { 48917, true }, - { 48944, true }, - { 48963, true }, - { 48974, true }, - { 48989, true }, - { 49001, true }, - { 49016, true }, - { 49031, true }, - { 49046, true }, + { 48607, true }, + { 48625, false }, + { 48639, true }, + { 48650, true }, + { 48663, true }, + { 48673, false }, + { 48689, true }, + { 48703, true }, + { 48717, true }, + { 48728, true }, + { 48748, true }, + { 48761, true }, + { 48777, true }, + { 48790, true }, + { 48801, true }, + { 48818, true }, + { 48844, true }, + { 48864, true }, + { 48878, true }, + { 48895, false }, + { 48909, true }, + { 48923, false }, + { 48940, true }, + { 48956, true }, + { 48969, true }, + { 48996, true }, + { 49015, true }, + { 49026, true }, + { 49041, true }, + { 49053, true }, { 49068, true }, - { 49086, true }, - { 49102, true }, - { 49119, true }, - { 49139, true }, - { 49153, true }, - { 49169, true }, - { 49187, true }, - { 49206, true }, - { 49219, true }, - { 49236, true }, - { 49249, true }, - { 49264, true }, - { 49280, true }, - { 49299, true }, - { 49320, true }, - { 49337, true }, - { 49353, true }, - { 49365, true }, - { 49378, true }, - { 49404, true }, - { 49424, true }, - { 49442, true }, + { 49083, true }, + { 49098, true }, + { 49120, true }, + { 49138, true }, + { 49154, true }, + { 49171, true }, + { 49191, true }, + { 49205, true }, + { 49221, true }, + { 49239, true }, + { 49258, true }, + { 49271, true }, + { 49288, true }, + { 49301, true }, + { 49316, true }, + { 49332, true }, + { 49351, true }, + { 49372, true }, + { 49389, true }, + { 49405, true }, + { 49417, true }, + { 49430, true }, { 49456, true }, - { 49468, true }, - { 49476, true }, - { 49485, true }, - { 49502, true }, - { 49513, true }, - { 49525, true }, - { 49533, true }, - { 49543, true }, - { 49554, true }, - { 49575, true }, - { 49587, true }, - { 49598, true }, + { 49476, false }, + { 49487, true }, + { 49505, true }, + { 49519, true }, + { 49531, true }, + { 49539, true }, + { 49548, true }, + { 49565, true }, + { 49576, true }, + { 49588, true }, + { 49596, true }, { 49606, true }, - { 49613, true }, - { 49621, true }, - { 49632, true }, - { 49648, true }, - { 49658, true }, + { 49617, true }, + { 49638, true }, + { 49650, true }, + { 49661, true }, { 49669, true }, - { 49685, true }, - { 49698, true }, - { 49713, true }, - { 49730, true }, - { 49752, true }, - { 49773, true }, - { 49781, true }, - { 49794, true }, - { 49804, true }, - { 49818, true }, - { 49829, false }, - { 49849, true }, - { 49864, true }, - { 49877, true }, - { 49889, true }, - { 49910, true }, - { 49924, true }, - { 49938, true }, - { 49955, true }, - { 49970, true }, - { 49984, true }, - { 49998, true }, - { 50012, true }, - { 50026, true }, - { 50040, true }, - { 50055, true }, - { 50067, true }, - { 50081, true }, - { 50099, true }, - { 50114, true }, - { 50124, true }, - { 50137, true }, - { 50150, true }, - { 50171, true }, - { 50183, true }, - { 50198, true }, - { 50215, true }, - { 50228, true }, - { 50243, true }, - { 50255, true }, - { 50270, true }, - { 50287, true }, - { 50304, true }, - { 50312, true }, - { 50324, true }, + { 49676, true }, + { 49684, true }, + { 49695, true }, + { 49711, true }, + { 49721, true }, + { 49732, true }, + { 49748, true }, + { 49761, true }, + { 49776, true }, + { 49793, true }, + { 49815, true }, + { 49836, true }, + { 49844, true }, + { 49857, true }, + { 49867, true }, + { 49881, true }, + { 49892, false }, + { 49912, true }, + { 49927, true }, + { 49940, true }, + { 49952, true }, + { 49973, true }, + { 49987, true }, + { 50001, true }, + { 50018, true }, + { 50033, true }, + { 50047, true }, + { 50061, true }, + { 50075, true }, + { 50089, true }, + { 50103, true }, + { 50118, true }, + { 50130, true }, + { 50144, true }, + { 50162, true }, + { 50177, true }, + { 50187, true }, + { 50200, true }, + { 50213, true }, + { 50234, true }, + { 50246, true }, + { 50261, true }, + { 50278, true }, + { 50291, true }, + { 50306, true }, + { 50318, true }, { 50333, true }, - { 50353, true }, - { 50364, true }, - { 50379, true }, - { 50395, true }, - { 50402, true }, - { 50425, true }, - { 50439, true }, - { 50454, true }, - { 50469, true }, - { 50484, true }, - { 50495, true }, - { 50505, true }, - { 50514, true }, - { 50526, true }, - { 50537, true }, - { 50548, true }, - { 50561, true }, - { 50571, true }, - { 50587, true }, - { 50602, true }, - { 50618, true }, - { 50635, true }, - { 50652, true }, - { 50666, true }, + { 50350, true }, + { 50367, true }, + { 50375, true }, + { 50387, true }, + { 50396, true }, + { 50416, true }, + { 50427, true }, + { 50442, true }, + { 50458, true }, + { 50465, true }, + { 50488, true }, + { 50502, true }, + { 50517, true }, + { 50532, true }, + { 50547, true }, + { 50558, true }, + { 50568, true }, + { 50577, true }, + { 50589, true }, + { 50600, true }, + { 50611, true }, + { 50624, true }, + { 50634, true }, + { 50650, true }, + { 50665, true }, { 50681, true }, - { 50697, true }, - { 50712, true }, - { 50722, true }, - { 50735, true }, - { 50747, true }, + { 50698, true }, + { 50715, true }, + { 50729, true }, + { 50744, true }, + { 50760, true }, { 50775, true }, - { 50787, true }, - { 50801, true }, - { 50815, true }, - { 50826, true }, - { 50842, true }, - { 50853, true }, - { 50866, true }, - { 50877, true }, - { 50899, true }, - { 50919, true }, + { 50785, true }, + { 50798, true }, + { 50810, true }, + { 50838, true }, + { 50850, true }, + { 50864, true }, + { 50878, true }, + { 50889, true }, + { 50905, true }, + { 50916, true }, + { 50929, true }, { 50940, true }, - { 50955, true }, - { 50969, true }, - { 50984, true }, - { 50998, true }, - { 51010, true }, - { 51029, true }, - { 51046, true }, - { 51059, true }, + { 50962, true }, + { 50982, true }, + { 51003, true }, + { 51018, true }, + { 51032, true }, + { 51047, true }, + { 51061, true }, { 51073, true }, - { 51085, true }, - { 51098, true }, - { 51110, true }, - { 51123, true }, + { 51092, true }, + { 51109, true }, + { 51122, true }, { 51136, true }, - { 51147, true }, - { 51165, true }, - { 51183, true }, - { 51196, true }, - { 51208, true }, - { 51222, true }, - { 51236, true }, - { 51244, true }, - { 51273, true }, - { 51292, true }, - { 51305, true }, - { 51330, true }, - { 51347, true }, + { 51148, true }, + { 51161, true }, + { 51173, true }, + { 51186, true }, + { 51199, true }, + { 51210, true }, + { 51228, true }, + { 51246, true }, + { 51259, true }, + { 51271, true }, + { 51285, true }, + { 51299, true }, + { 51307, true }, + { 51336, true }, + { 51355, true }, { 51368, true }, - { 51380, true }, - { 51397, true }, - { 51421, true }, - { 51454, true }, - { 51466, true }, - { 51488, true }, - { 51505, true }, - { 51520, true }, - { 51534, true }, - { 51560, true }, - { 51579, true }, - { 51592, true }, - { 51602, true }, - { 51612, true }, - { 51633, true }, + { 51393, true }, + { 51410, true }, + { 51431, true }, + { 51443, true }, + { 51460, true }, + { 51484, true }, + { 51517, true }, + { 51529, true }, + { 51551, true }, + { 51568, true }, + { 51583, true }, + { 51597, true }, + { 51623, true }, { 51642, true }, - { 51660, true }, - { 51678, true }, + { 51655, true }, + { 51665, true }, + { 51675, true }, + { 51696, true }, { 51705, true }, - { 51721, true }, - { 51746, true }, - { 51761, true }, - { 51781, true }, - { 51796, true }, - { 51811, true }, - { 51832, true }, - { 51856, true }, - { 51869, true }, - { 51898, true }, - { 51909, false }, - { 51923, true }, - { 51934, true }, - { 51948, true }, - { 51967, true }, + { 51723, true }, + { 51741, true }, + { 51768, true }, + { 51793, true }, + { 51808, true }, + { 51828, true }, + { 51843, true }, + { 51858, true }, + { 51879, true }, + { 51903, true }, + { 51916, true }, + { 51945, true }, + { 51956, false }, + { 51970, true }, { 51981, true }, - { 51996, false }, - { 52011, true }, + { 51995, true }, + { 52014, true }, { 52028, true }, - { 52037, true }, - { 52047, true }, - { 52085, true }, - { 52100, true }, - { 52111, true }, - { 52123, true }, - { 52141, true }, - { 52153, true }, - { 52164, true }, - { 52181, true }, - { 52189, true }, - { 52198, true }, - { 52208, true }, - { 52221, true }, - { 52231, true }, - { 52245, false }, - { 52270, true }, - { 52288, false }, - { 52312, true }, - { 52326, true }, + { 52043, false }, + { 52058, true }, + { 52075, true }, + { 52084, true }, + { 52094, true }, + { 52132, true }, + { 52147, true }, + { 52158, true }, + { 52170, true }, + { 52188, true }, + { 52200, true }, + { 52211, true }, + { 52228, true }, + { 52236, true }, + { 52245, true }, + { 52255, true }, + { 52268, true }, + { 52278, false }, + { 52303, true }, + { 52321, false }, { 52345, true }, - { 52372, true }, - { 52384, true }, - { 52396, true }, - { 52404, true }, - { 52413, true }, - { 52427, true }, - { 52444, true }, - { 52459, false }, - { 52471, true }, - { 52483, true }, - { 52500, true }, - { 52512, true }, - { 52524, true }, - { 52534, true }, + { 52359, true }, + { 52378, true }, + { 52405, true }, + { 52417, true }, + { 52429, true }, + { 52437, true }, + { 52446, true }, + { 52460, true }, + { 52477, true }, + { 52492, false }, + { 52504, true }, + { 52516, true }, + { 52533, true }, { 52545, true }, { 52557, true }, - { 52570, true }, - { 52584, true }, - { 52601, true }, - { 52612, true }, - { 52630, false }, - { 52650, true }, - { 52662, true }, - { 52674, true }, - { 52685, true }, - { 52697, true }, - { 52706, true }, - { 52716, true }, - { 52729, true }, - { 52751, true }, - { 52765, true }, - { 52774, true }, - { 52786, true }, - { 52793, true }, - { 52805, true }, - { 52814, true }, - { 52823, true }, - { 52833, true }, + { 52567, true }, + { 52578, true }, + { 52590, true }, + { 52603, true }, + { 52617, true }, + { 52634, true }, + { 52645, true }, + { 52663, false }, + { 52683, true }, + { 52695, true }, + { 52707, true }, + { 52718, true }, + { 52730, true }, + { 52739, true }, + { 52749, true }, + { 52762, true }, + { 52784, true }, + { 52798, true }, + { 52807, true }, + { 52819, true }, + { 52826, true }, + { 52838, true }, { 52847, true }, - { 52864, true }, - { 52875, true }, - { 52889, true }, - { 52898, true }, - { 52907, true }, - { 52917, true }, + { 52856, true }, + { 52866, true }, + { 52880, true }, + { 52897, true }, + { 52908, true }, + { 52922, true }, { 52931, true }, { 52940, true }, - { 52955, true }, - { 52967, true }, - { 52983, true }, - { 52999, true }, + { 52950, true }, + { 52964, true }, + { 52973, true }, + { 52988, true }, + { 53000, true }, { 53016, true }, - { 53033, true }, - { 53043, true }, - { 53065, true }, - { 53074, true }, - { 53086, true }, - { 53100, true }, - { 53114, true }, - { 53129, true }, + { 53032, true }, + { 53049, true }, + { 53066, true }, + { 53076, true }, + { 53098, true }, + { 53107, true }, + { 53119, true }, + { 53133, true }, + { 53147, true }, { 53162, true }, - { 53190, true }, - { 53215, true }, - { 53224, true }, - { 53240, true }, - { 53252, true }, - { 53263, true }, - { 53288, true }, - { 53303, true }, - { 53325, true }, - { 53350, true }, - { 53381, true }, - { 53392, true }, - { 53408, true }, - { 53422, true }, - { 53431, true }, - { 53449, true }, - { 53463, true }, - { 53478, false }, - { 53495, true }, - { 53513, true }, - { 53526, true }, - { 53536, true }, + { 53195, true }, + { 53223, true }, + { 53248, true }, + { 53257, true }, + { 53273, true }, + { 53285, true }, + { 53296, true }, + { 53321, true }, + { 53336, true }, + { 53358, true }, + { 53383, true }, + { 53414, true }, + { 53425, true }, + { 53441, true }, + { 53455, true }, + { 53464, true }, + { 53482, true }, + { 53496, true }, + { 53511, false }, + { 53528, true }, + { 53546, true }, { 53559, true }, - { 53571, true }, - { 53586, true }, - { 53601, true }, - { 53612, true }, - { 53626, true }, - { 53640, true }, - { 53653, true }, - { 53665, true }, - { 53677, true }, - { 53689, true }, - { 53702, true }, - { 53713, true }, - { 53729, true }, - { 53742, true }, - { 53754, false }, - { 53771, true }, - { 53791, true }, - { 53808, true }, - { 53826, true }, - { 53842, true }, - { 53857, true }, - { 53872, true }, - { 53895, true }, - { 53921, true }, - { 53941, true }, - { 53956, true }, - { 53976, false }, - { 53994, true }, - { 54013, true }, - { 54030, true }, - { 54049, true }, - { 54062, true }, - { 54079, true }, - { 54089, false }, - { 54106, true }, - { 54125, true }, - { 54142, true }, - { 54156, true }, - { 54173, true }, - { 54181, true }, - { 54193, true }, - { 54203, true }, + { 53569, true }, + { 53592, true }, + { 53604, true }, + { 53619, true }, + { 53634, true }, + { 53645, true }, + { 53659, true }, + { 53673, true }, + { 53686, true }, + { 53698, true }, + { 53710, true }, + { 53722, true }, + { 53735, true }, + { 53746, true }, + { 53762, true }, + { 53775, true }, + { 53787, false }, + { 53804, true }, + { 53824, true }, + { 53841, true }, + { 53859, true }, + { 53875, true }, + { 53890, true }, + { 53905, true }, + { 53928, true }, + { 53954, true }, + { 53974, true }, + { 53989, true }, + { 54009, false }, + { 54027, true }, + { 54046, true }, + { 54063, true }, + { 54082, true }, + { 54095, true }, + { 54112, true }, + { 54122, false }, + { 54139, true }, + { 54158, true }, + { 54175, true }, + { 54189, true }, + { 54206, true }, { 54214, true }, - { 54224, true }, - { 54234, true }, + { 54225, true }, + { 54237, true }, { 54247, true }, - { 54261, true }, - { 54272, true }, - { 54285, true }, - { 54304, false }, - { 54312, true }, - { 54323, true }, - { 54336, true }, - { 54349, true }, - { 54368, true }, - { 54384, true }, - { 54408, true }, - { 54420, true }, - { 54434, true }, - { 54448, true }, - { 54459, true }, - { 54473, true }, - { 54485, true }, - { 54500, true }, - { 54516, true }, - { 54528, true }, - { 54543, true }, - { 54561, true }, - { 54576, true }, - { 54590, true }, - { 54612, true }, - { 54627, true }, - { 54643, true }, - { 54657, true }, - { 54678, true }, - { 54694, true }, - { 54713, true }, - { 54732, true }, - { 54749, false }, - { 54769, true }, - { 54799, true }, - { 54825, true }, - { 54842, true }, - { 54864, true }, - { 54880, true }, - { 54900, true }, - { 54914, true }, - { 54937, true }, - { 54956, true }, - { 54974, true }, - { 54989, true }, + { 54258, true }, + { 54268, true }, + { 54278, true }, + { 54291, true }, + { 54305, true }, + { 54316, true }, + { 54329, true }, + { 54348, false }, + { 54356, true }, + { 54367, true }, + { 54380, true }, + { 54393, true }, + { 54412, true }, + { 54428, true }, + { 54452, true }, + { 54464, true }, + { 54478, true }, + { 54492, true }, + { 54503, true }, + { 54517, true }, + { 54529, true }, + { 54544, true }, + { 54560, true }, + { 54572, true }, + { 54587, true }, + { 54605, true }, + { 54620, true }, + { 54634, true }, + { 54656, true }, + { 54671, true }, + { 54687, true }, + { 54701, true }, + { 54722, true }, + { 54738, true }, + { 54757, true }, + { 54776, true }, + { 54793, false }, + { 54813, true }, + { 54843, true }, + { 54869, true }, + { 54886, true }, + { 54908, true }, + { 54924, true }, + { 54944, true }, + { 54958, true }, + { 54981, true }, { 55000, true }, - { 55011, true }, - { 55021, true }, - { 55039, true }, - { 55058, true }, - { 55068, true }, - { 55086, true }, - { 55095, false }, - { 55106, false }, - { 55126, true }, - { 55134, true }, - { 55149, true }, - { 55163, true }, - { 55176, true }, - { 55186, true }, - { 55195, true }, - { 55215, true }, - { 55224, false }, + { 55018, true }, + { 55033, true }, + { 55044, true }, + { 55055, true }, + { 55065, true }, + { 55083, true }, + { 55102, true }, + { 55112, true }, + { 55130, true }, + { 55139, false }, + { 55150, false }, + { 55170, true }, + { 55178, true }, + { 55193, true }, + { 55207, true }, + { 55220, true }, + { 55230, true }, { 55239, true }, - { 55248, false }, - { 55257, true }, - { 55273, true }, - { 55290, true }, - { 55299, true }, - { 55306, true }, - { 55314, true }, - { 55326, true }, - { 55335, true }, - { 55345, true }, - { 55362, true }, - { 55372, true }, - { 55380, true }, - { 55388, true }, - { 55395, true }, + { 55259, true }, + { 55268, false }, + { 55283, true }, + { 55292, false }, + { 55301, true }, + { 55317, true }, + { 55334, true }, + { 55343, true }, + { 55350, true }, + { 55358, true }, + { 55370, true }, + { 55379, true }, + { 55389, true }, { 55406, true }, - { 55419, true }, - { 55426, true }, - { 55436, true }, - { 55451, true }, - { 55466, true }, - { 55479, true }, - { 55491, true }, - { 55506, true }, - { 55517, true }, - { 55527, true }, + { 55416, true }, + { 55424, true }, + { 55432, true }, + { 55439, true }, + { 55450, true }, + { 55463, true }, + { 55470, true }, + { 55480, true }, + { 55495, true }, + { 55510, true }, + { 55523, true }, { 55535, true }, - { 55544, true }, - { 55552, true }, - { 55566, true }, - { 55578, true }, - { 55593, true }, - { 55600, true }, + { 55550, true }, + { 55561, true }, + { 55571, true }, + { 55579, true }, + { 55588, true }, + { 55596, true }, { 55610, true }, - { 55627, true }, + { 55622, true }, { 55637, true }, - { 55653, true }, - { 55669, true }, - { 55688, true }, - { 55702, true }, - { 55718, true }, - { 55731, true }, + { 55644, true }, + { 55654, true }, + { 55671, true }, + { 55681, true }, + { 55697, true }, + { 55713, true }, + { 55732, true }, { 55746, true }, - { 55757, true }, - { 55769, true }, - { 55794, false }, - { 55803, true }, - { 55816, true }, - { 55825, true }, - { 55841, true }, - { 55851, true }, - { 55864, true }, + { 55762, true }, + { 55775, true }, + { 55790, true }, + { 55801, true }, + { 55813, true }, + { 55838, false }, + { 55847, true }, + { 55860, true }, + { 55869, true }, { 55885, true }, - { 55894, true }, - { 55909, true }, - { 55923, true }, - { 55937, true }, - { 55949, true }, - { 55971, true }, - { 55982, true }, - { 55994, true }, - { 56005, true }, - { 56019, true }, - { 56039, true }, - { 56053, true }, - { 56076, true }, - { 56092, true }, - { 56100, true }, - { 56114, true }, - { 56129, true }, - { 56146, true }, - { 56160, true }, - { 56179, true }, - { 56195, true }, - { 56206, true }, - { 56217, true }, - { 56229, true }, - { 56250, false }, - { 56266, true }, - { 56283, true }, - { 56301, true }, - { 56322, true }, - { 56337, true }, - { 56355, true }, - { 56370, true }, - { 56398, true }, - { 56408, true }, - { 56418, true }, - { 56437, false }, - { 56449, true }, - { 56463, true }, - { 56476, true }, - { 56495, true }, - { 56511, true }, - { 56525, true }, - { 56540, true }, - { 56563, true }, - { 56576, true }, - { 56593, true }, - { 56602, true }, - { 56617, true }, - { 56638, true }, - { 56653, true }, - { 56669, true }, + { 55895, true }, + { 55908, true }, + { 55929, true }, + { 55938, true }, + { 55953, true }, + { 55967, true }, + { 55981, true }, + { 55993, true }, + { 56015, true }, + { 56026, true }, + { 56038, true }, + { 56049, true }, + { 56063, true }, + { 56083, true }, + { 56097, true }, + { 56120, true }, + { 56136, true }, + { 56144, true }, + { 56158, true }, + { 56173, true }, + { 56190, true }, + { 56204, true }, + { 56223, true }, + { 56239, true }, + { 56250, true }, + { 56261, true }, + { 56273, true }, + { 56294, false }, + { 56310, true }, + { 56327, true }, + { 56345, true }, + { 56366, true }, + { 56381, true }, + { 56399, true }, + { 56414, true }, + { 56442, true }, + { 56452, true }, + { 56462, true }, + { 56481, false }, + { 56493, true }, + { 56507, true }, + { 56520, true }, + { 56539, true }, + { 56555, true }, + { 56569, true }, + { 56584, true }, + { 56607, true }, + { 56620, true }, + { 56637, true }, + { 56646, true }, + { 56661, true }, { 56682, true }, - { 56695, true }, - { 56707, true }, - { 56732, true }, - { 56746, true }, - { 56757, true }, - { 56774, true }, - { 56791, true }, - { 56802, true }, - { 56816, true }, - { 56823, true }, - { 56832, true }, - { 56851, true }, - { 56866, true }, - { 56877, true }, - { 56901, true }, - { 56912, true }, - { 56922, true }, - { 56935, true }, - { 56947, true }, - { 56958, true }, - { 56969, true }, - { 56981, true }, - { 57002, true }, - { 57016, true }, - { 57031, true }, - { 57048, true }, - { 57063, true }, - { 57075, true }, - { 57092, true }, - { 57108, true }, - { 57129, true }, - { 57146, true }, - { 57175, true }, - { 57189, true }, - { 57200, false }, - { 57223, false }, - { 57237, true }, - { 57246, true }, - { 57260, true }, - { 57278, true }, - { 57293, true }, - { 57309, true }, - { 57326, true }, - { 57343, true }, - { 57360, true }, - { 57371, true }, - { 57389, true }, - { 57408, true }, - { 57431, true }, - { 57445, true }, - { 57464, true }, - { 57483, true }, - { 57497, true }, - { 57508, true }, - { 57518, true }, - { 57531, true }, - { 57547, true }, + { 56697, true }, + { 56713, true }, + { 56726, true }, + { 56739, true }, + { 56751, true }, + { 56776, true }, + { 56790, true }, + { 56801, true }, + { 56818, true }, + { 56835, true }, + { 56846, true }, + { 56860, true }, + { 56867, true }, + { 56876, true }, + { 56895, true }, + { 56910, true }, + { 56921, true }, + { 56932, true }, + { 56942, true }, + { 56955, true }, + { 56967, true }, + { 56978, true }, + { 56989, true }, + { 57001, true }, + { 57022, true }, + { 57036, true }, + { 57051, true }, + { 57068, true }, + { 57083, true }, + { 57095, true }, + { 57112, true }, + { 57128, true }, + { 57149, true }, + { 57166, true }, + { 57195, true }, + { 57209, true }, + { 57220, false }, + { 57243, false }, + { 57257, true }, + { 57266, true }, + { 57280, true }, + { 57298, true }, + { 57313, true }, + { 57329, true }, + { 57346, true }, + { 57363, true }, + { 57380, true }, + { 57391, true }, + { 57409, true }, + { 57428, true }, + { 57451, true }, + { 57465, true }, + { 57484, true }, + { 57503, true }, + { 57517, true }, + { 57528, true }, + { 57538, true }, + { 57551, true }, { 57567, true }, { 57587, true }, - { 57607, false }, - { 57625, true }, - { 57654, true }, - { 57670, true }, - { 57686, true }, - { 57696, true }, - { 57712, true }, - { 57727, true }, - { 57736, true }, - { 57751, true }, - { 57763, true }, - { 57771, true }, - { 57785, true }, - { 57800, true }, - { 57813, true }, - { 57825, true }, - { 57840, true }, - { 57856, false }, - { 57866, true }, - { 57883, true }, - { 57896, true }, - { 57914, true }, - { 57936, true }, - { 57958, true }, - { 57976, true }, - { 57987, true }, - { 57996, true }, - { 58017, true }, - { 58029, true }, - { 58050, true }, - { 58062, true }, - { 58075, true }, - { 58090, true }, - { 58102, true }, - { 58119, true }, - { 58128, true }, - { 58143, true }, - { 58173, true }, - { 58211, true }, - { 58242, true }, - { 58274, true }, - { 58302, true }, - { 58336, true }, - { 58366, true }, - { 58396, true }, - { 58431, true }, - { 58460, true }, - { 58496, true }, - { 58508, true }, - { 58522, true }, - { 58538, true }, - { 58548, true }, - { 58558, true }, - { 58573, true }, - { 58595, true }, - { 58609, true }, - { 58619, true }, - { 58639, true }, - { 58650, true }, - { 58666, true }, - { 58684, true }, - { 58692, true }, - { 58706, true }, - { 58721, true }, - { 58729, true }, - { 58738, true }, - { 58761, true }, - { 58772, true }, - { 58787, true }, - { 58805, true }, - { 58817, true }, - { 58833, true }, - { 58848, false }, - { 58861, true }, - { 58872, true }, - { 58887, true }, - { 58904, true }, - { 58915, true }, - { 58924, true }, - { 58933, true }, - { 58949, true }, - { 58959, false }, - { 58978, true }, - { 58992, true }, - { 59010, true }, - { 59018, true }, - { 59027, true }, - { 59037, true }, - { 59047, true }, - { 59062, true }, - { 59072, true }, - { 59093, true }, - { 59102, true }, - { 59118, true }, - { 59128, true }, - { 59147, true }, - { 59160, true }, - { 59178, true }, - { 59198, true }, - { 59218, true }, - { 59226, true }, - { 59239, true }, - { 59250, true }, - { 59268, true }, - { 59278, true }, - { 59287, true }, - { 59296, true }, - { 59304, true }, - { 59314, true }, - { 59326, true }, - { 59336, true }, - { 59351, true }, - { 59358, true }, - { 59371, true }, - { 59395, false }, - { 59410, true }, - { 59430, true }, - { 59450, true }, - { 59469, true }, - { 59486, true }, - { 59497, true }, - { 59512, true }, - { 59522, true }, - { 59538, true }, - { 59548, true }, - { 59565, true }, - { 59575, true }, - { 59589, true }, - { 59606, true }, - { 59627, true }, - { 59636, true }, - { 59652, true }, - { 59672, true }, - { 59685, true }, - { 59695, true }, - { 59707, true }, - { 59716, true }, - { 59726, true }, - { 59737, true }, - { 59745, true }, - { 59752, true }, - { 59766, true }, - { 59791, true }, - { 59809, true }, - { 59827, true }, - { 59841, true }, - { 59850, true }, - { 59863, true }, - { 59880, true }, - { 59889, true }, - { 59902, true }, - { 59919, true }, - { 59935, true }, - { 59952, true }, - { 59967, true }, - { 59996, true }, - { 60014, false }, - { 60027, true }, - { 60043, true }, - { 60059, true }, - { 60072, true }, - { 60085, true }, - { 60096, true }, - { 60109, true }, - { 60119, false }, - { 60137, true }, - { 60150, true }, - { 60163, true }, - { 60179, true }, - { 60198, true }, - { 60213, true }, - { 60220, true }, - { 60249, true }, - { 60271, true }, - { 60292, true }, - { 60319, true }, - { 60339, true }, - { 60347, true }, - { 60358, true }, - { 60378, true }, - { 60397, true }, - { 60412, true }, - { 60431, true }, - { 60442, true }, - { 60453, true }, - { 60471, true }, - { 60487, false }, - { 60502, true }, - { 60517, true }, - { 60534, true }, - { 60549, true }, - { 60568, true }, - { 60582, true }, - { 60600, true }, - { 60609, true }, - { 60619, true }, - { 60630, true }, - { 60646, true }, - { 60660, true }, - { 60674, true }, - { 60687, true }, - { 60700, true }, - { 60714, true }, - { 60728, true }, - { 60737, true }, - { 60748, true }, - { 60772, true }, - { 60793, true }, - { 60805, true }, - { 60816, false }, - { 60829, true }, + { 57607, true }, + { 57627, false }, + { 57645, true }, + { 57674, true }, + { 57690, true }, + { 57700, true }, + { 57716, true }, + { 57731, true }, + { 57740, true }, + { 57755, true }, + { 57767, true }, + { 57775, true }, + { 57789, true }, + { 57804, true }, + { 57817, true }, + { 57829, true }, + { 57844, true }, + { 57860, false }, + { 57870, true }, + { 57887, true }, + { 57900, true }, + { 57918, true }, + { 57940, true }, + { 57962, true }, + { 57980, true }, + { 57991, true }, + { 58000, true }, + { 58021, true }, + { 58033, true }, + { 58054, true }, + { 58066, true }, + { 58079, true }, + { 58094, true }, + { 58106, true }, + { 58123, true }, + { 58132, true }, + { 58147, true }, + { 58177, true }, + { 58215, true }, + { 58246, true }, + { 58278, true }, + { 58306, true }, + { 58340, true }, + { 58370, true }, + { 58400, true }, + { 58435, true }, + { 58464, true }, + { 58500, true }, + { 58512, true }, + { 58526, true }, + { 58542, true }, + { 58552, true }, + { 58562, true }, + { 58577, true }, + { 58599, true }, + { 58613, true }, + { 58623, true }, + { 58643, true }, + { 58654, true }, + { 58670, true }, + { 58688, true }, + { 58696, true }, + { 58710, true }, + { 58725, true }, + { 58733, true }, + { 58742, true }, + { 58765, true }, + { 58776, true }, + { 58791, true }, + { 58809, true }, + { 58821, true }, + { 58837, true }, + { 58852, false }, + { 58865, true }, + { 58876, true }, + { 58891, true }, + { 58908, true }, + { 58919, true }, + { 58928, true }, + { 58937, true }, + { 58953, true }, + { 58963, false }, + { 58982, true }, + { 58996, true }, + { 59014, true }, + { 59022, true }, + { 59031, true }, + { 59041, true }, + { 59056, true }, + { 59066, true }, + { 59087, true }, + { 59096, true }, + { 59112, true }, + { 59122, true }, + { 59141, true }, + { 59154, true }, + { 59172, true }, + { 59192, true }, + { 59212, true }, + { 59220, true }, + { 59233, true }, + { 59244, true }, + { 59262, true }, + { 59272, true }, + { 59281, true }, + { 59290, true }, + { 59298, true }, + { 59308, true }, + { 59320, true }, + { 59330, true }, + { 59345, true }, + { 59352, true }, + { 59365, true }, + { 59389, false }, + { 59404, true }, + { 59424, true }, + { 59444, true }, + { 59463, true }, + { 59480, true }, + { 59491, true }, + { 59506, true }, + { 59516, true }, + { 59532, true }, + { 59542, true }, + { 59559, true }, + { 59569, true }, + { 59583, true }, + { 59600, true }, + { 59621, true }, + { 59630, true }, + { 59646, true }, + { 59666, true }, + { 59679, true }, + { 59689, true }, + { 59701, true }, + { 59710, true }, + { 59720, true }, + { 59731, true }, + { 59739, true }, + { 59746, true }, + { 59760, true }, + { 59785, true }, + { 59803, true }, + { 59821, true }, + { 59835, true }, + { 59844, true }, + { 59857, true }, + { 59874, true }, + { 59883, true }, + { 59896, true }, + { 59913, true }, + { 59929, true }, + { 59946, true }, + { 59961, true }, + { 59990, true }, + { 60008, false }, + { 60021, true }, + { 60037, true }, + { 60053, true }, + { 60066, true }, + { 60079, true }, + { 60090, true }, + { 60103, true }, + { 60113, false }, + { 60131, true }, + { 60144, true }, + { 60157, true }, + { 60173, true }, + { 60192, true }, + { 60207, true }, + { 60214, true }, + { 60243, true }, + { 60265, true }, + { 60286, true }, + { 60313, true }, + { 60333, true }, + { 60341, true }, + { 60352, true }, + { 60372, true }, + { 60391, true }, + { 60406, true }, + { 60425, true }, + { 60436, true }, + { 60447, true }, + { 60465, true }, + { 60481, false }, + { 60496, true }, + { 60511, true }, + { 60528, true }, + { 60543, true }, + { 60562, true }, + { 60576, true }, + { 60594, true }, + { 60603, true }, + { 60613, true }, + { 60624, true }, + { 60640, true }, + { 60654, true }, + { 60668, true }, + { 60681, true }, + { 60694, true }, + { 60708, true }, + { 60722, true }, + { 60731, true }, + { 60742, true }, + { 60766, true }, + { 60787, true }, + { 60799, true }, + { 60810, true }, + { 60816, true }, + { 60826, true }, { 60835, true }, - { 60845, true }, - { 60854, true }, - { 60868, true }, - { 60878, true }, - { 60894, true }, - { 60904, true }, - { 60917, true }, - { 60930, true }, - { 60942, true }, - { 60958, true }, - { 60969, true }, - { 60981, true }, - { 60996, true }, - { 61013, true }, - { 61024, true }, - { 61036, true }, - { 61052, false }, - { 61067, true }, + { 60849, true }, + { 60859, true }, + { 60875, true }, + { 60885, true }, + { 60898, true }, + { 60911, true }, + { 60923, true }, + { 60939, true }, + { 60950, true }, + { 60962, true }, + { 60977, true }, + { 60994, true }, + { 61005, true }, + { 61017, true }, + { 61033, false }, + { 61048, true }, + { 61058, true }, { 61077, true }, - { 61096, true }, - { 61112, true }, - { 61124, true }, - { 61135, true }, + { 61093, true }, + { 61105, true }, + { 61116, true }, + { 61133, true }, { 61152, true }, - { 61171, true }, - { 61194, true }, - { 61211, true }, - { 61224, true }, - { 61233, false }, - { 61242, true }, - { 61253, true }, - { 61270, true }, - { 61286, true }, - { 61300, true }, - { 61314, true }, - { 61332, true }, - { 61341, true }, - { 61354, true }, - { 61371, true }, - { 61381, true }, - { 61393, true }, - { 61403, true }, - { 61451, true }, - { 61495, true }, - { 61533, true }, - { 61572, true }, - { 61612, true }, - { 61656, true }, - { 61692, true }, - { 61733, true }, - { 61770, true }, - { 61814, true }, - { 61841, true }, - { 61853, true }, - { 61862, true }, - { 61870, true }, - { 61876, true }, - { 61884, true }, + { 61175, true }, + { 61192, true }, + { 61205, true }, + { 61214, false }, + { 61223, true }, + { 61234, true }, + { 61251, true }, + { 61267, true }, + { 61281, true }, + { 61295, true }, + { 61313, true }, + { 61322, true }, + { 61335, true }, + { 61352, true }, + { 61362, true }, + { 61374, true }, + { 61384, true }, + { 61432, true }, + { 61476, true }, + { 61514, true }, + { 61553, true }, + { 61593, true }, + { 61637, true }, + { 61673, true }, + { 61714, true }, + { 61751, true }, + { 61795, true }, + { 61822, true }, + { 61834, true }, + { 61843, true }, + { 61851, false }, + { 61861, true }, + { 61867, true }, + { 61875, true }, + { 61893, true }, { 61902, true }, - { 61911, true }, - { 61933, true }, - { 61940, true }, - { 61951, true }, + { 61924, true }, + { 61931, true }, + { 61942, true }, + { 61954, true }, { 61963, true }, - { 61972, true }, - { 61987, true }, + { 61978, true }, + { 61988, true }, { 61997, true }, - { 62006, true }, - { 62017, true }, - { 62029, true }, - { 62042, true }, - { 62058, true }, - { 62079, true }, - { 62090, true }, - { 62104, true }, - { 62114, true }, - { 62131, true }, - { 62148, true }, - { 62160, true }, - { 62183, true }, - { 62197, true }, - { 62212, true }, - { 62223, true }, - { 62239, true }, - { 62250, true }, - { 62279, true }, - { 62295, true }, - { 62323, true }, - { 62339, true }, - { 62351, false }, - { 62369, false }, - { 62377, false }, - { 62388, true }, - { 62398, true }, - { 62419, true }, - { 62429, true }, - { 62439, true }, - { 62454, true }, - { 62468, true }, - { 62478, true }, - { 62493, true }, - { 62504, true }, - { 62516, true }, - { 62528, true }, - { 62541, true }, - { 62554, true }, - { 62563, true }, - { 62572, false }, - { 62584, true }, - { 62600, true }, - { 62611, true }, - { 62627, true }, - { 62646, true }, - { 62662, true }, - { 62677, true }, - { 62698, true }, - { 62729, true }, - { 62753, true }, - { 62772, true }, - { 62792, true }, - { 62809, true }, - { 62825, true }, - { 62840, true }, - { 62859, true }, - { 62881, true }, - { 62903, true }, - { 62925, true }, - { 62942, true }, - { 62957, true }, - { 62976, true }, - { 62989, true }, - { 63004, true }, - { 63019, true }, - { 63032, true }, - { 63048, true }, - { 63060, true }, - { 63073, false }, - { 63083, false }, - { 63092, true }, - { 63112, true }, - { 63127, true }, - { 63138, true }, - { 63159, true }, - { 63175, true }, - { 63199, false }, - { 63216, true }, - { 63229, true }, - { 63242, true }, - { 63255, true }, - { 63268, true }, - { 63287, true }, - { 63298, true }, - { 63307, true }, - { 63316, true }, - { 63326, true }, - { 63339, true }, - { 63349, true }, - { 63358, true }, - { 63374, true }, + { 62008, true }, + { 62020, true }, + { 62033, true }, + { 62049, true }, + { 62070, true }, + { 62081, true }, + { 62095, true }, + { 62105, true }, + { 62122, true }, + { 62139, true }, + { 62151, true }, + { 62174, true }, + { 62188, true }, + { 62203, true }, + { 62214, true }, + { 62230, true }, + { 62241, true }, + { 62270, true }, + { 62286, true }, + { 62314, true }, + { 62330, true }, + { 62342, false }, + { 62360, false }, + { 62368, false }, + { 62379, true }, + { 62389, true }, + { 62410, true }, + { 62420, true }, + { 62430, true }, + { 62445, true }, + { 62459, true }, + { 62472, true }, + { 62482, true }, + { 62497, true }, + { 62508, true }, + { 62520, true }, + { 62532, true }, + { 62545, true }, + { 62558, true }, + { 62567, true }, + { 62576, false }, + { 62588, true }, + { 62604, true }, + { 62615, true }, + { 62631, true }, + { 62650, true }, + { 62666, true }, + { 62681, true }, + { 62702, true }, + { 62733, true }, + { 62757, true }, + { 62776, true }, + { 62796, true }, + { 62813, true }, + { 62830, true }, + { 62846, true }, + { 62861, true }, + { 62880, true }, + { 62902, true }, + { 62924, true }, + { 62946, true }, + { 62963, true }, + { 62978, true }, + { 62997, true }, + { 63010, true }, + { 63025, true }, + { 63040, true }, + { 63053, true }, + { 63069, true }, + { 63081, true }, + { 63094, false }, + { 63104, false }, + { 63113, true }, + { 63135, true }, + { 63155, true }, + { 63176, true }, + { 63191, true }, + { 63202, true }, + { 63223, true }, + { 63239, true }, + { 63263, false }, + { 63280, true }, + { 63293, true }, + { 63306, true }, + { 63319, true }, + { 63332, true }, + { 63351, true }, + { 63362, true }, + { 63371, true }, + { 63380, true }, { 63390, true }, - { 63417, true }, - { 63428, true }, - { 63445, true }, - { 63458, true }, - { 63472, true }, - { 63489, true }, - { 63504, true }, - { 63527, true }, - { 63537, true }, - { 63552, true }, - { 63562, true }, - { 63582, true }, - { 63607, true }, - { 63631, true }, - { 63640, true }, - { 63657, true }, - { 63678, true }, - { 63698, true }, - { 63710, true }, - { 63723, true }, - { 63737, true }, - { 63754, false }, - { 63767, true }, - { 63784, true }, - { 63793, true }, - { 63804, true }, - { 63818, true }, - { 63829, true }, - { 63843, true }, - { 63860, true }, - { 63869, true }, - { 63883, false }, - { 63911, true }, - { 63920, true }, - { 63929, true }, - { 63939, true }, - { 63955, true }, - { 63965, true }, - { 63977, true }, - { 63991, false }, - { 64005, false }, - { 64020, true }, - { 64044, true }, - { 64065, true }, - { 64087, true }, - { 64101, true }, - { 64111, true }, - { 64123, true }, - { 64142, true }, - { 64159, true }, - { 64172, true }, - { 64184, true }, - { 64197, true }, - { 64209, true }, - { 64221, false }, - { 64245, true }, - { 64258, true }, - { 64268, true }, - { 64287, true }, - { 64311, true }, - { 64327, true }, - { 64337, true }, - { 64353, true }, - { 64369, true }, - { 64388, true }, - { 64406, true }, - { 64423, true }, - { 64440, true }, - { 64448, false }, - { 64474, true }, - { 64491, true }, - { 64505, true }, - { 64516, true }, - { 64528, true }, - { 64548, true }, - { 64564, true }, - { 64582, true }, + { 63403, true }, + { 63413, true }, + { 63422, true }, + { 63438, true }, + { 63454, true }, + { 63481, true }, + { 63492, true }, + { 63509, true }, + { 63522, true }, + { 63536, true }, + { 63553, true }, + { 63568, true }, + { 63591, true }, + { 63601, true }, + { 63616, true }, + { 63626, true }, + { 63646, true }, + { 63671, true }, + { 63695, true }, + { 63704, true }, + { 63721, true }, + { 63742, true }, + { 63762, true }, + { 63774, true }, + { 63787, true }, + { 63801, true }, + { 63818, false }, + { 63831, true }, + { 63848, true }, + { 63857, true }, + { 63868, true }, + { 63882, true }, + { 63893, true }, + { 63907, true }, + { 63924, true }, + { 63933, true }, + { 63947, false }, + { 63975, true }, + { 63984, true }, + { 63993, true }, + { 64003, true }, + { 64019, true }, + { 64029, true }, + { 64041, true }, + { 64055, false }, + { 64069, false }, + { 64084, true }, + { 64108, true }, + { 64129, true }, + { 64151, true }, + { 64165, true }, + { 64175, true }, + { 64187, true }, + { 64206, true }, + { 64223, true }, + { 64236, true }, + { 64248, true }, + { 64261, true }, + { 64273, true }, + { 64285, false }, + { 64309, true }, + { 64322, true }, + { 64332, true }, + { 64351, true }, + { 64375, true }, + { 64391, true }, + { 64401, true }, + { 64417, true }, + { 64433, true }, + { 64452, true }, + { 64470, true }, + { 64487, true }, + { 64504, true }, + { 64512, false }, + { 64538, true }, + { 64555, true }, + { 64569, true }, + { 64580, true }, { 64592, true }, - { 64604, true }, - { 64619, true }, - { 64637, true }, - { 64655, true }, - { 64674, true }, - { 64684, true }, - { 64698, true }, - { 64708, true }, + { 64612, true }, + { 64628, true }, + { 64646, true }, + { 64656, true }, + { 64668, true }, + { 64683, true }, + { 64701, true }, { 64719, true }, { 64738, true }, - { 64754, true }, - { 64773, true }, - { 64785, true }, - { 64796, true }, - { 64806, true }, - { 64822, true }, - { 64835, true }, - { 64859, true }, - { 64883, true }, - { 64898, true }, - { 64918, true }, - { 64931, false }, - { 64943, true }, - { 64953, true }, - { 64968, true }, - { 64988, true }, - { 64998, true }, - { 65008, false }, - { 65025, true }, - { 65033, true }, - { 65049, true }, - { 65064, true }, - { 65080, true }, - { 65096, true }, - { 65110, true }, - { 65124, true }, - { 65138, true }, - { 65150, true }, - { 65170, true }, - { 65186, true }, - { 65203, true }, - { 65213, true }, - { 65226, true }, - { 65237, true }, - { 65251, true }, - { 65264, true }, - { 65272, true }, - { 65282, true }, - { 65296, true }, - { 65308, true }, - { 65324, true }, - { 65335, true }, - { 65359, true }, - { 65384, true }, - { 65397, true }, - { 65410, true }, - { 65422, true }, - { 65441, true }, - { 65456, true }, - { 65469, true }, - { 65482, true }, - { 65495, true }, - { 65515, true }, - { 65530, true }, - { 65541, true }, + { 64748, true }, + { 64762, true }, + { 64772, true }, + { 64783, true }, + { 64802, true }, + { 64818, true }, + { 64837, true }, + { 64849, true }, + { 64860, true }, + { 64870, true }, + { 64886, true }, + { 64899, true }, + { 64923, true }, + { 64947, true }, + { 64962, true }, + { 64982, true }, + { 64995, false }, + { 65007, true }, + { 65017, true }, + { 65032, true }, + { 65052, true }, + { 65062, true }, + { 65072, false }, + { 65089, true }, + { 65097, true }, + { 65113, true }, + { 65128, true }, + { 65144, true }, + { 65160, true }, + { 65174, true }, + { 65188, true }, + { 65202, true }, + { 65214, true }, + { 65234, true }, + { 65250, true }, + { 65267, false }, + { 65277, true }, + { 65290, true }, + { 65301, true }, + { 65315, true }, + { 65328, true }, + { 65336, true }, + { 65346, true }, + { 65360, true }, + { 65372, true }, + { 65388, true }, + { 65399, true }, + { 65423, true }, + { 65448, true }, + { 65461, true }, + { 65474, true }, + { 65486, true }, + { 65505, true }, + { 65520, true }, + { 65533, true }, + { 65546, true }, { 65559, true }, - { 65568, true }, { 65579, true }, - { 65590, true }, - { 65601, true }, - { 65612, true }, - { 65622, true }, - { 65636, true }, - { 65648, true }, - { 65658, true }, - { 65672, true }, - { 65682, true }, - { 65694, true }, - { 65703, true }, - { 65714, false }, - { 65727, true }, - { 65749, true }, - { 65756, true }, - { 65768, true }, - { 65784, true }, - { 65801, true }, - { 65823, true }, - { 65836, false }, - { 65856, true }, - { 65869, true }, - { 65881, true }, - { 65894, true }, - { 65909, true }, - { 65928, true }, - { 65939, true }, - { 65963, false }, - { 65984, true }, - { 65994, true }, + { 65594, true }, + { 65605, true }, + { 65623, true }, + { 65632, true }, + { 65643, true }, + { 65654, true }, + { 65665, true }, + { 65676, true }, + { 65686, true }, + { 65700, true }, + { 65712, true }, + { 65722, true }, + { 65736, true }, + { 65746, true }, + { 65758, true }, + { 65767, true }, + { 65778, false }, + { 65791, true }, + { 65813, true }, + { 65820, true }, + { 65832, true }, + { 65848, true }, + { 65865, true }, + { 65887, true }, + { 65900, false }, + { 65920, true }, + { 65933, true }, + { 65945, true }, + { 65958, true }, + { 65973, true }, + { 65992, true }, { 66003, true }, - { 66018, true }, - { 66031, true }, - { 66042, true }, - { 66055, true }, - { 66068, true }, - { 66077, true }, - { 66089, true }, - { 66098, true }, - { 66107, true }, - { 66121, true }, - { 66139, true }, - { 66161, true }, - { 66181, false }, - { 66206, true }, - { 66219, true }, - { 66228, true }, - { 66249, true }, + { 66027, false }, + { 66048, true }, + { 66058, true }, + { 66067, true }, + { 66082, true }, + { 66095, true }, + { 66106, true }, + { 66119, true }, + { 66132, true }, + { 66141, true }, + { 66153, true }, + { 66162, true }, + { 66171, true }, + { 66185, true }, + { 66203, true }, + { 66225, true }, + { 66245, false }, { 66270, true }, - { 66280, true }, + { 66283, true }, { 66292, true }, - { 66317, true }, - { 66333, true }, + { 66313, true }, + { 66334, true }, { 66344, true }, - { 66357, true }, - { 66372, true }, - { 66386, true }, - { 66395, true }, - { 66413, true }, - { 66447, true }, - { 66457, true }, - { 66475, true }, - { 66486, true }, - { 66512, false }, - { 66527, true }, - { 66542, true }, - { 66552, true }, - { 66561, true }, - { 66573, true }, - { 66583, true }, - { 66592, true }, - { 66606, false }, - { 66617, true }, + { 66356, true }, + { 66381, true }, + { 66397, true }, + { 66408, true }, + { 66421, true }, + { 66436, true }, + { 66450, true }, + { 66459, true }, + { 66477, true }, + { 66511, true }, + { 66521, true }, + { 66539, true }, + { 66550, true }, + { 66576, false }, + { 66591, true }, + { 66606, true }, + { 66616, true }, { 66625, true }, - { 66634, true }, - { 66642, true }, - { 66653, true }, - { 66662, true }, - { 66674, true }, - { 66688, true }, - { 66702, true }, - { 66722, true }, - { 66734, true }, + { 66637, true }, + { 66647, true }, + { 66656, true }, + { 66670, false }, + { 66681, true }, + { 66689, true }, + { 66698, true }, + { 66706, true }, + { 66717, true }, + { 66726, true }, + { 66738, true }, { 66752, true }, - { 66768, true }, - { 66782, true }, - { 66799, true }, - { 66812, true }, - { 66822, true }, - { 66836, true }, - { 66848, true }, - { 66862, true }, - { 66875, true }, - { 66888, true }, - { 66901, true }, + { 66766, true }, + { 66786, true }, + { 66798, true }, + { 66816, true }, + { 66832, true }, + { 66846, true }, + { 66863, true }, + { 66876, true }, + { 66886, true }, + { 66900, true }, { 66912, true }, - { 66922, true }, - { 66929, true }, - { 66938, true }, - { 66962, true }, - { 66981, true }, - { 66995, true }, - { 67009, true }, - { 67022, true }, - { 67038, true }, - { 67061, true }, - { 67070, true }, - { 67084, true }, - { 67099, true }, - { 67113, true }, - { 67127, true }, - { 67141, true }, - { 67155, true }, - { 67169, true }, - { 67183, true }, - { 67197, true }, - { 67214, true }, - { 67234, true }, - { 67246, true }, + { 66926, true }, + { 66939, true }, + { 66952, true }, + { 66965, true }, + { 66976, true }, + { 66986, true }, + { 66993, true }, + { 67002, true }, + { 67026, true }, + { 67045, true }, + { 67059, true }, + { 67073, true }, + { 67086, true }, + { 67102, true }, + { 67125, true }, + { 67134, true }, + { 67148, true }, + { 67163, true }, + { 67177, true }, + { 67191, true }, + { 67205, true }, + { 67219, true }, + { 67233, true }, + { 67247, true }, { 67261, true }, - { 67280, true }, - { 67294, true }, - { 67312, true }, - { 67330, true }, - { 67337, true }, - { 67351, true }, - { 67363, true }, - { 67380, true }, - { 67398, true }, - { 67417, true }, + { 67278, true }, + { 67298, true }, + { 67310, true }, + { 67325, true }, + { 67344, true }, + { 67358, true }, + { 67376, true }, + { 67394, true }, + { 67401, true }, + { 67415, true }, { 67427, true }, - { 67447, true }, - { 67460, true }, - { 67470, true }, - { 67484, false }, - { 67501, true }, - { 67514, true }, - { 67527, true }, - { 67540, true }, - { 67550, true }, - { 67562, true }, - { 67574, true }, - { 67587, false }, - { 67602, true }, - { 67615, true }, - { 67628, true }, - { 67642, true }, - { 67659, true }, - { 67671, true }, - { 67690, true }, - { 67697, true }, - { 67709, true }, - { 67721, true }, - { 67730, true }, - { 67741, true }, - { 67755, true }, - { 67768, true }, - { 67793, true }, - { 67816, false }, - { 67826, true }, - { 67837, true }, - { 67850, true }, - { 67861, true }, - { 67870, true }, - { 67880, true }, - { 67891, true }, - { 67911, true }, - { 67931, true }, - { 67949, true }, - { 67968, true }, - { 67991, true }, - { 68009, true }, - { 68026, true }, - { 68038, true }, - { 68052, true }, - { 68075, true }, - { 68085, true }, - { 68100, true }, - { 68114, true }, - { 68130, true }, - { 68143, true }, - { 68151, true }, - { 68163, true }, - { 68177, true }, - { 68199, true }, - { 68206, true }, - { 68219, true }, - { 68232, true }, - { 68252, true }, + { 67444, true }, + { 67462, true }, + { 67481, true }, + { 67491, true }, + { 67511, true }, + { 67524, true }, + { 67534, true }, + { 67548, false }, + { 67565, true }, + { 67578, true }, + { 67591, true }, + { 67604, true }, + { 67614, true }, + { 67626, true }, + { 67638, true }, + { 67651, false }, + { 67666, true }, + { 67679, true }, + { 67692, true }, + { 67706, true }, + { 67723, true }, + { 67735, true }, + { 67754, true }, + { 67761, true }, + { 67773, true }, + { 67785, true }, + { 67794, true }, + { 67805, true }, + { 67819, true }, + { 67832, true }, + { 67857, true }, + { 67880, false }, + { 67890, true }, + { 67901, true }, + { 67914, true }, + { 67925, true }, + { 67934, true }, + { 67944, true }, + { 67955, true }, + { 67975, true }, + { 67995, true }, + { 68013, true }, + { 68032, true }, + { 68055, true }, + { 68073, true }, + { 68090, true }, + { 68102, true }, + { 68116, true }, + { 68139, true }, + { 68149, true }, + { 68164, true }, + { 68178, true }, + { 68194, true }, + { 68207, true }, + { 68215, true }, + { 68227, true }, + { 68241, true }, + { 68263, true }, { 68270, true }, - { 68292, true }, - { 68305, true }, - { 68320, true }, - { 68331, true }, - { 68345, true }, - { 68358, true }, - { 68371, true }, - { 68390, true }, - { 68406, true }, - { 68425, true }, - { 68444, true }, - { 68459, true }, - { 68471, true }, - { 68478, true }, - { 68494, true }, - { 68521, true }, - { 68549, true }, - { 68573, true }, - { 68592, true }, - { 68609, true }, - { 68630, true }, - { 68649, true }, - { 68667, true }, - { 68685, true }, - { 68697, true }, - { 68706, true }, - { 68729, true }, - { 68743, true }, - { 68756, true }, - { 68768, true }, - { 68778, true }, - { 68789, false }, - { 68799, true }, - { 68819, true }, + { 68283, true }, + { 68296, true }, + { 68316, true }, + { 68334, true }, + { 68356, true }, + { 68369, true }, + { 68384, true }, + { 68395, true }, + { 68409, true }, + { 68422, true }, + { 68435, true }, + { 68454, true }, + { 68470, true }, + { 68489, true }, + { 68508, true }, + { 68523, true }, + { 68535, true }, + { 68542, true }, + { 68558, true }, + { 68585, true }, + { 68613, true }, + { 68637, true }, + { 68656, true }, + { 68673, true }, + { 68694, true }, + { 68713, true }, + { 68731, true }, + { 68749, true }, + { 68761, true }, + { 68770, true }, + { 68793, true }, + { 68807, true }, + { 68820, true }, { 68832, true }, - { 68841, true }, - { 68853, true }, - { 68869, true }, - { 68879, true }, - { 68886, true }, - { 68903, true }, - { 68916, true }, - { 68925, true }, - { 68938, true }, - { 68951, true }, - { 68969, true }, - { 68985, true }, - { 69001, true }, - { 69012, true }, - { 69026, true }, - { 69043, true }, - { 69053, true }, - { 69080, true }, - { 69115, true }, - { 69127, false }, - { 69140, true }, - { 69153, true }, - { 69172, true }, - { 69197, true }, - { 69219, true }, - { 69234, true }, - { 69254, false }, - { 69264, true }, + { 68842, true }, + { 68853, false }, + { 68863, true }, + { 68883, true }, + { 68896, true }, + { 68905, true }, + { 68917, true }, + { 68933, true }, + { 68943, true }, + { 68950, true }, + { 68967, true }, + { 68980, true }, + { 68989, true }, + { 69002, true }, + { 69015, true }, + { 69033, true }, + { 69049, true }, + { 69065, true }, + { 69076, true }, + { 69090, true }, + { 69107, true }, + { 69117, true }, + { 69144, true }, + { 69179, true }, + { 69191, false }, + { 69204, true }, + { 69217, true }, + { 69236, true }, + { 69261, true }, { 69283, true }, - { 69300, true }, - { 69317, true }, - { 69327, true }, - { 69337, true }, - { 69350, true }, - { 69365, true }, - { 69378, true }, - { 69393, true }, - { 69409, true }, - { 69422, true }, - { 69435, true }, - { 69449, true }, - { 69464, true }, - { 69476, true }, - { 69489, true }, - { 69508, true }, - { 69532, true }, - { 69554, true }, - { 69575, true }, - { 69600, true }, - { 69623, true }, - { 69643, true }, - { 69654, true }, - { 69666, true }, - { 69678, true }, - { 69698, true }, - { 69715, true }, - { 69736, true }, - { 69759, true }, - { 69775, true }, - { 69795, true }, - { 69808, true }, + { 69298, true }, + { 69318, false }, + { 69328, true }, + { 69347, true }, + { 69364, true }, + { 69381, true }, + { 69391, true }, + { 69401, true }, + { 69414, true }, + { 69429, true }, + { 69442, true }, + { 69457, true }, + { 69473, true }, + { 69486, true }, + { 69499, true }, + { 69513, true }, + { 69528, true }, + { 69540, true }, + { 69553, true }, + { 69572, true }, + { 69596, true }, + { 69618, true }, + { 69639, true }, + { 69664, true }, + { 69687, true }, + { 69707, true }, + { 69718, true }, + { 69730, true }, + { 69742, true }, + { 69762, true }, + { 69779, true }, + { 69800, true }, { 69823, true }, - { 69833, true }, - { 69850, true }, - { 69861, true }, - { 69880, true }, - { 69890, true }, - { 69900, true }, - { 69908, true }, - { 69922, true }, - { 69935, true }, - { 69948, true }, - { 69957, true }, + { 69839, true }, + { 69859, true }, + { 69872, true }, + { 69887, true }, + { 69897, true }, + { 69914, true }, + { 69925, true }, + { 69944, true }, + { 69954, true }, { 69964, true }, - { 69971, false }, - { 69987, true }, - { 69996, true }, - { 70013, true }, + { 69972, true }, + { 69986, true }, + { 69999, true }, + { 70012, true }, + { 70021, true }, { 70028, true }, - { 70042, true }, - { 70061, true }, - { 70073, true }, - { 70085, true }, - { 70108, true }, - { 70122, true }, - { 70137, true }, - { 70153, true }, - { 70165, true }, - { 70181, true }, + { 70035, false }, + { 70051, true }, + { 70060, true }, + { 70077, true }, + { 70092, true }, + { 70106, true }, + { 70118, true }, + { 70141, true }, + { 70155, true }, + { 70170, true }, + { 70186, true }, { 70198, true }, - { 70216, true }, - { 70237, true }, - { 70254, true }, - { 70271, true }, - { 70288, true }, - { 70305, true }, - { 70322, true }, - { 70339, true }, + { 70214, true }, + { 70231, true }, + { 70249, true }, + { 70270, true }, + { 70287, true }, + { 70304, true }, + { 70321, true }, + { 70338, true }, { 70355, true }, - { 70369, true }, - { 70394, true }, - { 70405, true }, - { 70421, true }, - { 70437, true }, - { 70453, true }, - { 70472, false }, - { 70485, true }, - { 70495, false }, - { 70511, true }, - { 70525, true }, - { 70538, true }, - { 70548, true }, - { 70559, true }, - { 70573, true }, - { 70585, true }, - { 70599, true }, - { 70609, false }, - { 70619, true }, - { 70628, true }, - { 70638, true }, - { 70657, true }, - { 70666, true }, - { 70682, false }, - { 70702, true }, - { 70725, true }, - { 70737, true }, - { 70754, true }, - { 70773, true }, - { 70790, false }, - { 70802, true }, - { 70813, false }, - { 70825, true }, - { 70836, true }, - { 70850, true }, - { 70865, true }, + { 70372, true }, + { 70388, true }, + { 70402, true }, + { 70427, true }, + { 70438, true }, + { 70454, true }, + { 70470, true }, + { 70486, true }, + { 70505, false }, + { 70518, true }, + { 70528, false }, + { 70544, true }, + { 70558, true }, + { 70571, true }, + { 70581, true }, + { 70592, true }, + { 70606, true }, + { 70618, true }, + { 70632, true }, + { 70642, false }, + { 70652, true }, + { 70661, true }, + { 70671, true }, + { 70690, true }, + { 70699, true }, + { 70715, false }, + { 70735, true }, + { 70758, true }, + { 70770, true }, + { 70787, true }, + { 70806, true }, + { 70823, false }, + { 70835, true }, + { 70846, false }, + { 70858, true }, + { 70869, true }, { 70883, true }, - { 70893, true }, - { 70901, true }, - { 70915, true }, - { 70928, false }, - { 70941, true }, - { 70956, true }, - { 70970, true }, - { 70985, false }, - { 70999, true }, - { 71011, true }, - { 71025, true }, - { 71039, true }, - { 71049, true }, - { 71065, true }, - { 71081, true }, - { 71100, true }, - { 71119, false }, - { 71148, true }, - { 71162, true }, - { 71176, true }, - { 71197, true }, - { 71215, true }, + { 70898, true }, + { 70916, true }, + { 70926, true }, + { 70934, true }, + { 70948, true }, + { 70961, false }, + { 70974, true }, + { 70989, true }, + { 71003, true }, + { 71018, false }, + { 71032, true }, + { 71044, true }, + { 71058, true }, + { 71072, true }, + { 71082, true }, + { 71098, true }, + { 71114, true }, + { 71133, true }, + { 71152, false }, + { 71181, true }, + { 71195, true }, + { 71209, true }, { 71230, true }, - { 71243, true }, - { 71261, true }, - { 71281, true }, - { 71293, true }, - { 71308, true }, - { 71331, true }, - { 71355, true }, - { 71379, true }, - { 71403, true }, - { 71413, true }, - { 71427, true }, - { 71449, true }, - { 71481, true }, - { 71492, true }, - { 71500, true }, - { 71510, true }, - { 71522, true }, - { 71537, true }, - { 71551, false }, - { 71571, true }, - { 71582, true }, - { 71600, true }, - { 71609, true }, - { 71616, true }, - { 71627, true }, - { 71636, true }, + { 71248, true }, + { 71263, true }, + { 71276, true }, + { 71294, true }, + { 71314, true }, + { 71326, true }, + { 71341, true }, + { 71364, true }, + { 71388, true }, + { 71412, true }, + { 71436, true }, + { 71446, true }, + { 71460, true }, + { 71482, true }, + { 71514, true }, + { 71525, true }, + { 71533, true }, + { 71543, true }, + { 71555, true }, + { 71570, true }, + { 71584, false }, + { 71604, true }, + { 71615, true }, + { 71633, true }, + { 71642, true }, { 71649, true }, - { 71667, true }, - { 71690, true }, - { 71705, false }, - { 71716, false }, - { 71728, false }, - { 71739, true }, - { 71755, true }, - { 71781, false }, - { 71797, true }, - { 71807, true }, - { 71815, true }, - { 71824, true }, - { 71836, true }, - { 71848, false }, - { 71860, true }, - { 71873, true }, - { 71887, true }, - { 71899, true }, - { 71916, true }, - { 71936, true }, - { 71947, true }, - { 71963, true }, - { 71975, true }, - { 71992, true }, - { 72001, true }, - { 72014, true }, - { 72027, true }, - { 72045, true }, - { 72058, true }, - { 72082, true }, - { 72096, true }, - { 72113, true }, - { 72128, true }, - { 72140, true }, - { 72152, true }, - { 72167, true }, - { 72184, true }, - { 72192, true }, - { 72211, true }, - { 72228, true }, - { 72245, true }, - { 72260, true }, - { 72272, true }, - { 72297, true }, - { 72312, false }, - { 72325, false }, - { 72337, true }, - { 72357, true }, + { 71660, true }, + { 71669, true }, + { 71682, true }, + { 71700, true }, + { 71723, true }, + { 71738, false }, + { 71749, false }, + { 71761, false }, + { 71772, true }, + { 71788, true }, + { 71814, false }, + { 71830, true }, + { 71840, true }, + { 71848, true }, + { 71857, true }, + { 71869, true }, + { 71881, false }, + { 71893, true }, + { 71906, true }, + { 71920, true }, + { 71932, true }, + { 71949, true }, + { 71969, true }, + { 71980, true }, + { 71996, true }, + { 72008, true }, + { 72025, true }, + { 72034, true }, + { 72047, true }, + { 72060, true }, + { 72078, true }, + { 72091, true }, + { 72115, true }, + { 72129, true }, + { 72146, true }, + { 72161, true }, + { 72173, true }, + { 72185, true }, + { 72200, true }, + { 72217, true }, + { 72225, true }, + { 72244, true }, + { 72261, true }, + { 72278, true }, + { 72293, true }, + { 72305, true }, + { 72330, true }, + { 72345, false }, + { 72358, false }, { 72370, true }, - { 72388, true }, - { 72400, true }, - { 72424, true }, - { 72437, true }, - { 72456, true }, - { 72468, true }, - { 72480, true }, - { 72504, true }, - { 72525, true }, - { 72539, true }, - { 72553, true }, - { 72566, false }, - { 72582, true }, - { 72594, true }, - { 72607, true }, - { 72625, true }, - { 72634, true }, - { 72644, true }, - { 72655, true }, + { 72390, true }, + { 72403, true }, + { 72421, true }, + { 72433, true }, + { 72457, true }, + { 72470, true }, + { 72489, true }, + { 72501, true }, + { 72513, true }, + { 72537, true }, + { 72558, true }, + { 72572, true }, + { 72586, true }, + { 72599, false }, + { 72615, true }, + { 72627, true }, + { 72640, true }, + { 72658, true }, { 72667, true }, { 72677, true }, { 72688, true }, { 72700, true }, - { 72709, true }, - { 72730, true }, - { 72751, true }, - { 72761, true }, - { 72775, true }, - { 72787, true }, - { 72803, true }, - { 72825, true }, - { 72844, true }, - { 72863, true }, - { 72873, false }, - { 72887, true }, - { 72900, true }, - { 72921, true }, - { 72934, true }, - { 72947, true }, - { 72955, false }, - { 72972, true }, - { 72988, true }, - { 73007, true }, - { 73026, true }, - { 73036, true }, - { 73050, true }, - { 73058, true }, - { 73072, true }, - { 73091, false }, - { 73109, true }, - { 73118, true }, - { 73131, true }, - { 73146, true }, - { 73166, false }, + { 72710, true }, + { 72721, true }, + { 72733, true }, + { 72742, true }, + { 72763, true }, + { 72784, true }, + { 72794, true }, + { 72808, true }, + { 72820, true }, + { 72836, true }, + { 72858, true }, + { 72877, true }, + { 72896, true }, + { 72906, false }, + { 72920, true }, + { 72933, true }, + { 72954, true }, + { 72967, true }, + { 72980, true }, + { 72988, false }, + { 73005, true }, + { 73021, true }, + { 73040, true }, + { 73059, true }, + { 73069, true }, + { 73083, true }, + { 73091, true }, + { 73105, true }, + { 73124, false }, + { 73142, true }, + { 73151, true }, + { 73164, true }, { 73179, true }, - { 73196, true }, - { 73209, true }, - { 73222, true }, - { 73246, true }, - { 73273, true }, - { 73286, false }, - { 73300, true }, - { 73312, true }, - { 73325, true }, - { 73337, true }, - { 73352, true }, + { 73199, false }, + { 73212, true }, + { 73229, true }, + { 73242, true }, + { 73255, true }, + { 73279, true }, + { 73306, true }, + { 73319, false }, + { 73333, true }, + { 73345, true }, + { 73358, true }, { 73370, true }, - { 73383, true }, - { 73406, true }, - { 73429, false }, - { 73440, true }, - { 73456, true }, - { 73474, true }, - { 73494, true }, - { 73516, true }, - { 73532, true }, + { 73385, true }, + { 73403, true }, + { 73416, true }, + { 73439, true }, + { 73462, false }, + { 73473, true }, + { 73489, true }, + { 73507, true }, + { 73527, true }, { 73549, true }, - { 73566, true }, - { 73583, true }, - { 73601, true }, - { 73614, true }, - { 73631, true }, - { 73646, true }, - { 73660, true }, - { 73671, true }, - { 73687, true }, - { 73696, true }, - { 73715, true }, - { 73725, true }, - { 73733, true }, - { 73742, true }, - { 73753, true }, - { 73768, true }, - { 73783, true }, - { 73801, true }, - { 73818, false }, - { 73829, true }, - { 73845, true }, - { 73859, true }, - { 73871, true }, - { 73879, true }, - { 73899, true }, - { 73909, true }, - { 73918, true }, - { 73934, true }, - { 73944, true }, - { 73950, true }, - { 73962, true }, - { 73984, true }, - { 73998, true }, - { 74013, true }, - { 74024, true }, - { 74037, true }, - { 74053, true }, - { 74071, false }, - { 74084, true }, - { 74098, true }, + { 73565, true }, + { 73582, true }, + { 73599, true }, + { 73616, true }, + { 73634, true }, + { 73647, true }, + { 73664, true }, + { 73679, true }, + { 73693, true }, + { 73704, true }, + { 73720, true }, + { 73729, true }, + { 73748, true }, + { 73756, true }, + { 73765, true }, + { 73776, true }, + { 73791, true }, + { 73806, true }, + { 73824, true }, + { 73841, false }, + { 73852, true }, + { 73868, true }, + { 73882, true }, + { 73894, true }, + { 73902, true }, + { 73922, true }, + { 73932, true }, + { 73941, true }, + { 73957, true }, + { 73967, true }, + { 73973, true }, + { 73985, true }, + { 74007, true }, + { 74021, true }, + { 74036, true }, + { 74047, true }, + { 74060, true }, + { 74076, true }, + { 74094, false }, { 74107, true }, - { 74118, true }, - { 74129, true }, - { 74140, true }, + { 74121, true }, + { 74130, true }, + { 74141, true }, { 74152, true }, - { 74171, true }, - { 74179, true }, - { 74196, true }, - { 74205, true }, - { 74214, true }, - { 74233, true }, - { 74244, true }, - { 74260, true }, + { 74163, true }, + { 74175, true }, + { 74194, true }, + { 74202, true }, + { 74219, true }, + { 74228, true }, + { 74237, true }, + { 74256, true }, { 74267, true }, - { 74279, true }, - { 74300, true }, - { 74317, true }, - { 74330, true }, - { 74341, true }, - { 74366, true }, - { 74381, true }, - { 74400, false }, - { 74414, true }, - { 74425, true }, - { 74440, true }, - { 74452, true }, + { 74283, true }, + { 74290, true }, + { 74302, true }, + { 74323, true }, + { 74340, true }, + { 74353, true }, + { 74364, true }, + { 74389, true }, + { 74404, true }, + { 74423, false }, + { 74437, true }, + { 74448, true }, { 74463, true }, - { 74478, true }, - { 74494, true }, - { 74508, true }, - { 74522, true }, - { 74539, true }, - { 74559, true }, - { 74568, true }, + { 74475, true }, + { 74486, true }, + { 74501, true }, + { 74517, true }, + { 74531, true }, + { 74545, true }, + { 74562, true }, { 74582, true }, - { 74593, true }, - { 74613, false }, - { 74637, true }, - { 74648, false }, - { 74656, true }, - { 74674, true }, - { 74692, true }, - { 74714, true }, - { 74736, true }, - { 74761, true }, - { 74777, true }, - { 74789, true }, - { 74801, true }, - { 74822, true }, - { 74836, true }, - { 74849, false }, - { 74866, true }, - { 74875, true }, - { 74897, true }, - { 74917, true }, - { 74944, true }, - { 74963, true }, - { 74975, true }, - { 74995, true }, - { 75003, true }, - { 75012, true }, - { 75029, true }, - { 75044, true }, - { 75059, true }, - { 75088, true }, - { 75110, true }, - { 75128, true }, - { 75142, true }, - { 75157, true }, - { 75170, true }, + { 74591, true }, + { 74605, true }, + { 74616, true }, + { 74636, false }, + { 74660, true }, + { 74671, false }, + { 74679, true }, + { 74697, true }, + { 74715, true }, + { 74737, true }, + { 74759, true }, + { 74784, true }, + { 74800, true }, + { 74812, true }, + { 74824, true }, + { 74845, true }, + { 74859, true }, + { 74872, false }, + { 74889, true }, + { 74898, true }, + { 74920, true }, + { 74940, true }, + { 74967, true }, + { 74986, true }, + { 74998, true }, + { 75018, true }, + { 75026, true }, + { 75035, true }, + { 75052, true }, + { 75067, true }, + { 75082, true }, + { 75111, true }, + { 75133, true }, + { 75151, true }, + { 75165, true }, { 75180, true }, - { 75196, true }, - { 75214, true }, - { 75233, true }, - { 75251, true }, - { 75269, true }, - { 75287, false }, - { 75295, true }, - { 75302, false }, - { 75322, true }, - { 75331, true }, - { 75346, true }, - { 75364, true }, - { 75376, true }, - { 75385, false }, - { 75395, true }, - { 75403, true }, - { 75417, true }, - { 75434, true }, - { 75445, true }, - { 75455, true }, - { 75472, true }, + { 75193, true }, + { 75203, true }, + { 75219, true }, + { 75237, true }, + { 75255, false }, + { 75263, true }, + { 75270, false }, + { 75290, true }, + { 75299, true }, + { 75314, true }, + { 75332, true }, + { 75344, true }, + { 75353, false }, + { 75363, true }, + { 75371, true }, + { 75385, true }, + { 75402, true }, + { 75413, true }, + { 75423, true }, + { 75440, true }, + { 75462, true }, + { 75477, true }, { 75494, true }, - { 75509, true }, - { 75526, true }, - { 75536, true }, - { 75549, true }, - { 75564, true }, - { 75580, true }, - { 75591, true }, - { 75603, true }, - { 75625, true }, - { 75638, true }, + { 75504, true }, + { 75517, true }, + { 75532, true }, + { 75548, true }, + { 75559, true }, + { 75571, true }, + { 75593, true }, + { 75606, true }, + { 75617, true }, + { 75633, true }, { 75649, true }, - { 75665, true }, - { 75681, true }, - { 75691, true }, - { 75703, true }, - { 75711, true }, + { 75659, true }, + { 75671, true }, + { 75679, true }, + { 75698, true }, + { 75717, true }, { 75730, true }, - { 75749, true }, - { 75762, true }, - { 75779, true }, - { 75791, true }, - { 75805, true }, - { 75819, true }, - { 75831, true }, - { 75844, true }, - { 75858, true }, - { 75883, true }, - { 75897, true }, - { 75919, true }, + { 75747, true }, + { 75759, true }, + { 75773, true }, + { 75787, true }, + { 75799, true }, + { 75812, true }, + { 75826, true }, + { 75851, true }, + { 75865, true }, + { 75887, true }, + { 75903, true }, + { 75922, true }, { 75935, true }, - { 75954, true }, - { 75967, true }, - { 75984, true }, - { 76002, true }, - { 76017, true }, + { 75952, true }, + { 75970, true }, + { 75985, true }, + { 76000, true }, + { 76019, true }, { 76032, true }, - { 76051, true }, - { 76064, true }, - { 76089, true }, - { 76102, true }, - { 76113, true }, - { 76127, true }, - { 76140, true }, - { 76158, true }, - { 76177, true }, - { 76191, true }, - { 76207, true }, - { 76219, true }, - { 76231, true }, - { 76247, true }, - { 76263, true }, - { 76276, true }, - { 76292, true }, - { 76307, true }, - { 76322, true }, - { 76336, true }, - { 76354, true }, - { 76379, true }, - { 76398, true }, + { 76057, true }, + { 76070, true }, + { 76081, true }, + { 76095, true }, + { 76108, true }, + { 76126, true }, + { 76145, true }, + { 76159, true }, + { 76175, true }, + { 76187, true }, + { 76199, true }, + { 76215, true }, + { 76228, true }, + { 76244, true }, + { 76259, true }, + { 76274, true }, + { 76288, true }, + { 76306, true }, + { 76331, true }, + { 76350, true }, + { 76363, true }, + { 76373, true }, + { 76385, true }, + { 76395, true }, { 76411, true }, - { 76421, true }, - { 76433, true }, - { 76443, true }, - { 76459, true }, - { 76467, true }, - { 76475, true }, - { 76488, true }, - { 76499, true }, - { 76510, true }, - { 76526, true }, - { 76537, true }, - { 76549, true }, + { 76419, true }, + { 76427, true }, + { 76440, true }, + { 76451, true }, + { 76462, true }, + { 76478, true }, + { 76489, true }, + { 76501, true }, + { 76511, true }, + { 76528, true }, + { 76546, false }, { 76559, true }, - { 76576, true }, - { 76594, false }, - { 76607, true }, - { 76620, true }, - { 76629, true }, - { 76644, true }, + { 76572, true }, + { 76581, true }, + { 76596, true }, + { 76613, true }, + { 76627, true }, + { 76645, true }, { 76661, true }, - { 76675, true }, - { 76693, true }, - { 76709, true }, - { 76718, true }, - { 76727, true }, - { 76742, true }, - { 76752, true }, - { 76762, true }, - { 76776, true }, - { 76788, true }, - { 76805, true }, - { 76819, true }, - { 76827, true }, - { 76835, true }, - { 76844, true }, - { 76856, false }, - { 76864, true }, - { 76890, true }, - { 76903, true }, - { 76917, true }, - { 76927, true }, - { 76942, true }, - { 76951, true }, - { 76962, true }, - { 76973, true }, - { 76984, true }, - { 76999, true }, - { 77012, true }, - { 77024, true }, - { 77037, true }, - { 77045, true }, - { 77059, true }, - { 77074, false }, - { 77088, true }, - { 77109, true }, - { 77120, true }, - { 77134, true }, - { 77152, true }, + { 76670, true }, + { 76679, true }, + { 76694, true }, + { 76704, true }, + { 76714, true }, + { 76728, true }, + { 76740, true }, + { 76757, true }, + { 76771, true }, + { 76779, true }, + { 76787, true }, + { 76796, true }, + { 76808, false }, + { 76816, true }, + { 76842, true }, + { 76855, true }, + { 76869, true }, + { 76884, true }, + { 76893, true }, + { 76904, true }, + { 76915, true }, + { 76926, true }, + { 76941, true }, + { 76954, true }, + { 76966, true }, + { 76979, true }, + { 76987, true }, + { 77001, true }, + { 77016, false }, + { 77030, true }, + { 77051, true }, + { 77062, true }, + { 77076, true }, + { 77094, true }, + { 77105, true }, + { 77119, true }, + { 77135, true }, + { 77148, true }, { 77163, true }, - { 77177, true }, - { 77193, true }, + { 77176, true }, + { 77190, false }, { 77206, true }, - { 77221, true }, - { 77234, true }, - { 77248, false }, - { 77264, true }, - { 77275, true }, - { 77294, true }, - { 77308, true }, - { 77331, true }, - { 77340, true }, - { 77354, true }, - { 77365, true }, - { 77376, true }, - { 77385, true }, - { 77403, true }, - { 77421, true }, - { 77440, true }, - { 77450, true }, - { 77463, true }, - { 77474, true }, - { 77483, true }, - { 77500, true }, - { 77520, true }, - { 77534, true }, - { 77542, true }, - { 77550, true }, - { 77560, true }, - { 77567, true }, - { 77580, true }, - { 77591, true }, - { 77605, true }, - { 77619, true }, - { 77633, true }, - { 77643, true }, - { 77653, true }, - { 77666, true }, - { 77676, true }, - { 77688, true }, - { 77695, true }, - { 77705, true }, - { 77714, true }, - { 77729, true }, - { 77736, true }, - { 77752, true }, - { 77762, true }, - { 77774, true }, + { 77217, true }, + { 77236, true }, + { 77250, true }, + { 77273, true }, + { 77282, true }, + { 77296, true }, + { 77307, true }, + { 77318, true }, + { 77327, true }, + { 77345, true }, + { 77363, true }, + { 77382, true }, + { 77392, true }, + { 77405, true }, + { 77416, true }, + { 77425, true }, + { 77442, true }, + { 77462, true }, + { 77476, true }, + { 77484, true }, + { 77492, true }, + { 77502, true }, + { 77509, true }, + { 77522, true }, + { 77533, true }, + { 77547, true }, + { 77561, true }, + { 77575, true }, + { 77585, true }, + { 77595, true }, + { 77608, true }, + { 77618, true }, + { 77630, true }, + { 77637, true }, + { 77647, true }, + { 77656, true }, + { 77671, true }, + { 77678, true }, + { 77694, true }, + { 77704, true }, + { 77716, true }, + { 77726, true }, + { 77737, true }, + { 77747, true }, + { 77754, true }, + { 77766, true }, + { 77775, true }, { 77784, true }, - { 77795, true }, - { 77805, true }, - { 77812, true }, - { 77824, true }, - { 77833, true }, - { 77842, true }, - { 77856, true }, + { 77798, true }, + { 77816, true }, + { 77838, true }, + { 77851, true }, + { 77860, true }, { 77874, true }, - { 77896, true }, + { 77886, true }, + { 77896, false }, { 77909, true }, { 77918, true }, - { 77932, true }, - { 77944, true }, - { 77954, false }, - { 77967, true }, - { 77976, true }, - { 77998, true }, - { 78021, true }, - { 78035, true }, - { 78050, true }, - { 78065, true }, - { 78081, true }, + { 77940, true }, + { 77963, true }, + { 77977, true }, + { 77992, true }, + { 78007, true }, + { 78023, true }, + { 78041, true }, + { 78051, true }, + { 78069, true }, + { 78089, true }, { 78099, true }, - { 78109, true }, - { 78127, true }, - { 78147, true }, - { 78157, true }, - { 78168, true }, - { 78186, true }, - { 78198, true }, - { 78209, true }, - { 78225, true }, - { 78242, true }, - { 78257, true }, - { 78273, true }, - { 78288, true }, - { 78304, true }, - { 78313, true }, - { 78330, true }, - { 78342, true }, - { 78359, true }, - { 78377, true }, - { 78389, true }, - { 78406, true }, - { 78420, true }, - { 78429, true }, - { 78443, true }, - { 78458, true }, - { 78473, true }, - { 78484, true }, - { 78498, true }, - { 78513, true }, + { 78110, true }, + { 78128, true }, + { 78140, true }, + { 78151, true }, + { 78167, true }, + { 78184, true }, + { 78199, true }, + { 78215, true }, + { 78230, true }, + { 78246, true }, + { 78255, true }, + { 78272, true }, + { 78284, true }, + { 78301, true }, + { 78319, true }, + { 78331, true }, + { 78348, true }, + { 78362, true }, + { 78371, true }, + { 78385, true }, + { 78400, true }, + { 78415, true }, + { 78426, true }, + { 78440, true }, + { 78455, true }, + { 78470, true }, + { 78485, true }, + { 78503, true }, + { 78516, true }, { 78528, true }, - { 78543, true }, - { 78561, true }, - { 78574, true }, - { 78586, true }, - { 78603, true }, + { 78545, true }, + { 78566, true }, + { 78590, true }, + { 78612, true }, { 78624, true }, - { 78648, true }, - { 78670, true }, + { 78637, true }, + { 78652, true }, + { 78668, true }, { 78682, true }, { 78695, true }, - { 78710, true }, - { 78726, true }, - { 78740, true }, - { 78753, true }, - { 78771, true }, - { 78792, true }, - { 78805, false }, - { 78826, true }, - { 78839, true }, - { 78854, true }, - { 78868, true }, + { 78713, true }, + { 78734, true }, + { 78747, false }, + { 78768, true }, + { 78781, true }, + { 78796, true }, + { 78810, true }, + { 78821, true }, + { 78846, true }, + { 78862, true }, { 78879, true }, - { 78904, true }, - { 78920, true }, - { 78937, true }, - { 78954, true }, - { 78966, false }, - { 78983, true }, - { 78996, false }, - { 79007, true }, - { 79022, true }, - { 79034, false }, - { 79045, true }, - { 79059, true }, - { 79069, true }, - { 79088, true }, - { 79097, true }, - { 79104, true }, - { 79115, true }, - { 79132, true }, - { 79144, true }, + { 78896, true }, + { 78908, false }, + { 78925, true }, + { 78938, false }, + { 78949, true }, + { 78964, true }, + { 78976, false }, + { 78987, true }, + { 79001, true }, + { 79011, true }, + { 79030, true }, + { 79039, true }, + { 79046, true }, + { 79057, true }, + { 79074, true }, + { 79086, true }, + { 79095, true }, + { 79106, true }, + { 79118, true }, + { 79125, false }, + { 79132, false }, + { 79141, true }, { 79153, true }, - { 79164, true }, + { 79165, true }, { 79176, true }, - { 79183, false }, - { 79190, false }, - { 79199, true }, - { 79211, true }, + { 79197, true }, { 79223, true }, - { 79234, true }, - { 79255, true }, - { 79281, true }, - { 79291, true }, - { 79300, true }, - { 79309, true }, - { 79316, true }, - { 79328, false }, - { 79340, false }, - { 79348, true }, - { 79360, true }, - { 79373, true }, - { 79387, false }, - { 79402, true }, - { 79416, true }, - { 79429, true }, - { 79441, true }, - { 79455, true }, - { 79475, true }, - { 79486, true }, - { 79496, true }, - { 79504, true }, - { 79517, true }, - { 79529, true }, + { 79233, true }, + { 79242, true }, + { 79251, true }, + { 79258, true }, + { 79270, false }, + { 79282, false }, + { 79290, true }, + { 79302, true }, + { 79315, true }, + { 79329, false }, + { 79344, true }, + { 79358, true }, + { 79371, true }, + { 79383, true }, + { 79397, true }, + { 79417, true }, + { 79428, true }, + { 79438, true }, + { 79446, true }, + { 79459, true }, + { 79471, true }, + { 79482, true }, + { 79494, true }, + { 79504, false }, + { 79522, true }, { 79540, true }, - { 79552, true }, - { 79562, false }, - { 79580, true }, - { 79598, true }, - { 79620, true }, - { 79642, true }, + { 79562, true }, + { 79584, true }, + { 79595, true }, + { 79610, true }, + { 79626, true }, + { 79637, true }, { 79653, true }, - { 79668, true }, - { 79684, true }, - { 79695, true }, - { 79711, true }, - { 79735, true }, - { 79758, true }, - { 79776, true }, - { 79794, true }, - { 79821, true }, - { 79841, true }, - { 79853, true }, - { 79871, true }, - { 79885, true }, - { 79901, true }, - { 79917, true }, - { 79930, true }, - { 79944, true }, - { 79958, true }, - { 79972, true }, - { 79996, true }, - { 80024, false }, - { 80035, true }, - { 80046, true }, - { 80064, true }, - { 80082, true }, - { 80103, true }, - { 80124, true }, - { 80145, true }, - { 80159, true }, - { 80172, true }, - { 80191, true }, - { 80209, true }, - { 80219, true }, - { 80237, true }, - { 80255, true }, - { 80276, true }, - { 80296, true }, - { 80306, true }, - { 80328, true }, - { 80344, true }, + { 79677, true }, + { 79700, true }, + { 79718, true }, + { 79736, true }, + { 79763, true }, + { 79783, true }, + { 79795, true }, + { 79813, true }, + { 79827, true }, + { 79843, true }, + { 79859, true }, + { 79872, true }, + { 79886, true }, + { 79900, true }, + { 79914, true }, + { 79938, true }, + { 79966, false }, + { 79977, true }, + { 79988, true }, + { 80006, true }, + { 80024, true }, + { 80045, true }, + { 80066, true }, + { 80087, true }, + { 80101, true }, + { 80114, true }, + { 80133, true }, + { 80151, true }, + { 80161, true }, + { 80179, true }, + { 80197, true }, + { 80218, true }, + { 80238, true }, + { 80248, true }, + { 80270, true }, + { 80286, true }, + { 80307, true }, + { 80323, true }, + { 80334, true }, + { 80345, true }, + { 80355, true }, { 80365, true }, - { 80381, true }, - { 80392, true }, - { 80403, true }, - { 80413, true }, - { 80423, true }, - { 80440, true }, - { 80454, false }, - { 80467, true }, - { 80479, true }, - { 80490, true }, + { 80382, true }, + { 80396, false }, + { 80409, true }, + { 80421, true }, + { 80432, true }, + { 80449, true }, + { 80459, true }, + { 80473, true }, + { 80488, true }, { 80507, true }, - { 80517, true }, - { 80531, true }, - { 80546, true }, - { 80563, true }, + { 80525, true }, + { 80545, true }, + { 80556, true }, + { 80569, true }, { 80582, true }, - { 80600, true }, - { 80620, true }, - { 80631, true }, - { 80644, true }, - { 80657, true }, - { 80672, true }, - { 80686, true }, - { 80698, true }, - { 80712, true }, - { 80727, true }, + { 80597, true }, + { 80611, true }, + { 80623, true }, + { 80637, true }, + { 80652, true }, + { 80665, true }, + { 80682, true }, + { 80699, true }, + { 80713, true }, + { 80726, true }, { 80740, true }, - { 80757, true }, - { 80774, true }, - { 80788, true }, - { 80801, true }, - { 80815, true }, - { 80824, true }, - { 80843, false }, - { 80854, true }, - { 80865, true }, - { 80882, true }, - { 80891, true }, - { 80905, true }, - { 80913, true }, - { 80921, true }, - { 80928, true }, - { 80935, true }, - { 80944, true }, - { 80963, true }, - { 80978, true }, - { 80991, true }, - { 81012, true }, - { 81032, true }, - { 81049, true }, - { 81065, true }, - { 81085, true }, - { 81104, true }, - { 81125, true }, - { 81142, true }, - { 81155, true }, - { 81168, true }, - { 81182, true }, - { 81197, true }, - { 81209, true }, - { 81225, false }, - { 81239, false }, - { 81252, false }, - { 81259, true }, - { 81267, true }, + { 80749, true }, + { 80768, false }, + { 80779, true }, + { 80790, true }, + { 80807, true }, + { 80816, true }, + { 80830, true }, + { 80838, true }, + { 80846, true }, + { 80853, true }, + { 80860, true }, + { 80869, true }, + { 80888, true }, + { 80903, true }, + { 80916, true }, + { 80937, true }, + { 80957, true }, + { 80974, true }, + { 80990, true }, + { 81010, true }, + { 81029, true }, + { 81050, true }, + { 81067, true }, + { 81080, true }, + { 81093, true }, + { 81107, true }, + { 81122, true }, + { 81134, true }, + { 81150, false }, + { 81164, false }, + { 81177, false }, + { 81184, true }, + { 81192, true }, + { 81204, true }, + { 81214, true }, + { 81229, true }, + { 81242, true }, + { 81257, true }, { 81279, true }, - { 81289, true }, - { 81304, true }, - { 81317, true }, - { 81328, true }, - { 81343, true }, - { 81365, true }, - { 81384, true }, - { 81396, true }, + { 81298, true }, + { 81310, true }, + { 81322, true }, + { 81333, true }, + { 81348, true }, + { 81364, true }, + { 81382, true }, + { 81400, true }, { 81408, true }, - { 81419, true }, - { 81434, true }, - { 81450, true }, - { 81468, true }, - { 81486, true }, - { 81494, true }, - { 81508, true }, - { 81518, true }, - { 81531, true }, - { 81538, true }, - { 81549, true }, - { 81561, false }, - { 81581, false }, - { 81597, true }, - { 81608, true }, - { 81623, true }, - { 81636, true }, - { 81649, true }, - { 81661, true }, - { 81674, true }, - { 81691, false }, - { 81702, false }, - { 81712, true }, - { 81727, true }, - { 81742, true }, - { 81758, true }, - { 81787, true }, - { 81806, true }, - { 81820, true }, - { 81837, true }, - { 81863, true }, + { 81422, true }, + { 81432, true }, + { 81445, true }, + { 81452, true }, + { 81463, true }, + { 81475, false }, + { 81495, false }, + { 81511, true }, + { 81522, true }, + { 81537, true }, + { 81550, true }, + { 81563, true }, + { 81575, true }, + { 81588, true }, + { 81605, false }, + { 81616, true }, + { 81631, true }, + { 81646, true }, + { 81662, true }, + { 81691, true }, + { 81710, true }, + { 81724, true }, + { 81741, true }, + { 81767, true }, + { 81782, true }, + { 81797, true }, + { 81812, true }, + { 81826, true }, + { 81845, true }, + { 81862, true }, { 81878, true }, - { 81893, true }, - { 81908, true }, - { 81922, true }, - { 81941, true }, - { 81958, true }, + { 81899, true }, + { 81916, true }, + { 81950, true }, { 81974, true }, - { 81995, true }, - { 82012, true }, - { 82046, true }, - { 82070, true }, - { 82099, false }, - { 82114, true }, - { 82130, true }, - { 82155, true }, - { 82167, true }, - { 82181, true }, - { 82190, true }, - { 82210, false }, - { 82220, true }, - { 82235, true }, - { 82243, true }, - { 82252, true }, - { 82260, true }, - { 82268, true }, - { 82284, true }, - { 82306, true }, - { 82318, true }, - { 82330, true }, - { 82341, true }, - { 82351, true }, - { 82361, false }, - { 82373, true }, - { 82389, true }, - { 82405, true }, - { 82419, true }, - { 82435, true }, - { 82450, true }, - { 82464, true }, - { 82475, true }, - { 82490, true }, - { 82501, false }, - { 82513, true }, - { 82527, true }, - { 82538, true }, - { 82548, true }, - { 82565, true }, - { 82583, true }, - { 82593, true }, - { 82616, true }, - { 82630, true }, - { 82646, true }, - { 82659, true }, + { 82003, false }, + { 82018, true }, + { 82034, true }, + { 82059, true }, + { 82071, true }, + { 82085, true }, + { 82094, true }, + { 82114, false }, + { 82124, true }, + { 82139, true }, + { 82147, true }, + { 82156, true }, + { 82164, true }, + { 82172, true }, + { 82188, true }, + { 82210, true }, + { 82222, true }, + { 82234, true }, + { 82245, true }, + { 82255, true }, + { 82265, false }, + { 82277, true }, + { 82293, true }, + { 82309, true }, + { 82323, true }, + { 82339, true }, + { 82354, true }, + { 82368, true }, + { 82379, true }, + { 82394, true }, + { 82405, false }, + { 82417, true }, + { 82431, true }, + { 82442, true }, + { 82452, true }, + { 82469, true }, + { 82487, true }, + { 82497, true }, + { 82520, true }, + { 82534, true }, + { 82550, true }, + { 82563, true }, + { 82582, true }, + { 82595, true }, + { 82612, true }, + { 82630, false }, + { 82643, true }, + { 82664, true }, { 82678, true }, - { 82691, true }, - { 82708, true }, - { 82726, false }, - { 82739, true }, - { 82760, true }, - { 82774, true }, - { 82784, true }, - { 82795, true }, - { 82802, false }, - { 82811, true }, - { 82827, true }, - { 82843, true }, - { 82850, true }, - { 82871, true }, - { 82881, false }, - { 82896, true }, - { 82911, true }, - { 82928, true }, - { 82938, true }, - { 82947, true }, - { 82956, true }, - { 82968, true }, - { 82986, true }, - { 82996, true }, - { 83006, true }, - { 83019, true }, - { 83030, true }, - { 83045, true }, + { 82688, true }, + { 82699, true }, + { 82706, false }, + { 82715, true }, + { 82731, true }, + { 82747, true }, + { 82754, true }, + { 82775, true }, + { 82785, false }, + { 82800, true }, + { 82815, true }, + { 82832, true }, + { 82842, true }, + { 82851, true }, + { 82860, true }, + { 82872, true }, + { 82890, true }, + { 82900, true }, + { 82910, true }, + { 82923, true }, + { 82934, true }, + { 82949, true }, + { 82960, true }, + { 82976, true }, + { 82989, true }, + { 82999, true }, + { 83018, true }, + { 83034, true }, { 83056, true }, - { 83072, true }, - { 83085, true }, - { 83095, true }, - { 83114, true }, - { 83130, true }, - { 83152, true }, - { 83164, true }, - { 83177, true }, - { 83190, true }, - { 83205, true }, - { 83219, true }, - { 83234, true }, - { 83250, false }, - { 83263, true }, - { 83275, true }, - { 83292, true }, - { 83305, true }, - { 83324, true }, - { 83340, true }, + { 83068, true }, + { 83081, true }, + { 83094, true }, + { 83109, true }, + { 83123, true }, + { 83138, true }, + { 83154, false }, + { 83167, true }, + { 83179, true }, + { 83196, true }, + { 83209, true }, + { 83228, true }, + { 83244, true }, + { 83256, false }, + { 83266, true }, + { 83282, true }, + { 83293, true }, + { 83313, false }, + { 83321, true }, + { 83333, true }, { 83352, false }, - { 83362, true }, - { 83378, true }, - { 83389, true }, - { 83409, false }, - { 83417, true }, - { 83429, true }, - { 83440, true }, - { 83459, false }, - { 83479, true }, - { 83488, true }, + { 83372, true }, + { 83381, true }, + { 83392, true }, + { 83423, true }, + { 83432, true }, + { 83446, true }, + { 83460, true }, + { 83480, true }, { 83499, true }, - { 83530, true }, - { 83539, true }, - { 83553, true }, - { 83567, true }, - { 83587, true }, - { 83606, true }, - { 83620, true }, - { 83636, true }, - { 83651, true }, - { 83665, true }, - { 83679, true }, - { 83687, true }, - { 83700, true }, - { 83711, true }, - { 83723, true }, - { 83735, true }, - { 83751, true }, - { 83762, true }, - { 83777, true }, - { 83793, true }, - { 83809, true }, - { 83831, true }, - { 83847, true }, - { 83866, true }, - { 83890, true }, - { 83906, true }, - { 83922, true }, - { 83932, true }, + { 83513, true }, + { 83529, true }, + { 83544, true }, + { 83558, true }, + { 83572, true }, + { 83580, true }, + { 83593, true }, + { 83604, true }, + { 83616, true }, + { 83628, true }, + { 83644, true }, + { 83655, true }, + { 83670, true }, + { 83686, true }, + { 83702, true }, + { 83724, true }, + { 83740, true }, + { 83759, true }, + { 83783, true }, + { 83799, true }, + { 83815, true }, + { 83825, true }, + { 83837, true }, + { 83855, true }, + { 83867, true }, + { 83889, true }, + { 83904, true }, + { 83924, true }, { 83944, true }, - { 83962, true }, - { 83974, true }, - { 83996, true }, - { 84011, true }, - { 84031, true }, - { 84051, true }, - { 84071, true }, - { 84092, false }, + { 83964, true }, + { 83985, false }, + { 84001, true }, + { 84019, true }, + { 84034, true }, + { 84046, false }, + { 84054, true }, + { 84068, true }, + { 84082, true }, + { 84096, true }, { 84108, true }, - { 84126, true }, - { 84141, true }, - { 84153, false }, - { 84161, true }, - { 84175, true }, - { 84189, true }, + { 84122, true }, + { 84135, true }, + { 84153, true }, + { 84167, true }, + { 84183, true }, { 84203, true }, - { 84215, true }, - { 84229, true }, - { 84242, true }, - { 84260, true }, - { 84274, true }, - { 84290, true }, - { 84310, true }, + { 84234, true }, + { 84265, true }, + { 84287, true }, + { 84305, true }, + { 84319, true }, { 84341, true }, - { 84372, true }, - { 84394, true }, - { 84412, true }, - { 84426, true }, - { 84448, true }, - { 84463, true }, - { 84482, true }, - { 84492, true }, - { 84507, true }, - { 84522, true }, - { 84537, true }, - { 84554, true }, - { 84567, true }, - { 84580, true }, - { 84593, true }, - { 84603, true }, - { 84626, true }, - { 84637, true }, - { 84649, true }, - { 84666, true }, - { 84683, true }, - { 84698, true }, + { 84356, true }, + { 84375, true }, + { 84385, true }, + { 84400, true }, + { 84417, true }, + { 84430, true }, + { 84443, true }, + { 84456, true }, + { 84466, true }, + { 84489, true }, + { 84500, true }, + { 84512, true }, + { 84529, true }, + { 84546, true }, + { 84561, true }, + { 84568, true }, + { 84581, true }, + { 84598, true }, + { 84608, true }, + { 84618, true }, + { 84627, true }, + { 84646, true }, + { 84664, true }, + { 84685, true }, { 84705, true }, { 84718, true }, { 84735, true }, - { 84745, true }, - { 84755, true }, - { 84764, true }, - { 84783, true }, - { 84801, true }, - { 84822, true }, - { 84842, true }, - { 84855, true }, - { 84872, true }, - { 84885, true }, - { 84907, true }, - { 84919, true }, - { 84935, true }, + { 84748, true }, + { 84770, true }, + { 84782, true }, + { 84798, true }, + { 84808, true }, + { 84821, true }, + { 84843, true }, + { 84857, true }, + { 84879, true }, + { 84896, true }, + { 84910, true }, + { 84918, true }, + { 84930, true }, { 84945, true }, - { 84958, true }, - { 84980, true }, - { 84994, true }, - { 85016, true }, - { 85033, true }, - { 85047, true }, - { 85055, true }, - { 85067, true }, - { 85082, true }, - { 85092, true }, - { 85103, true }, - { 85115, true }, - { 85126, true }, + { 84955, true }, + { 84966, true }, + { 84978, true }, + { 84989, true }, + { 84998, true }, + { 85008, true }, + { 85025, true }, + { 85044, true }, + { 85066, true }, + { 85078, true }, + { 85096, true }, + { 85109, true }, + { 85120, true }, { 85135, true }, - { 85145, true }, - { 85162, true }, - { 85181, true }, - { 85203, true }, - { 85215, true }, - { 85233, true }, - { 85246, true }, - { 85257, true }, - { 85272, true }, - { 85285, true }, - { 85308, true }, - { 85322, true }, - { 85332, true }, - { 85346, true }, - { 85362, true }, + { 85148, true }, + { 85171, true }, + { 85185, true }, + { 85195, true }, + { 85209, true }, + { 85225, true }, + { 85240, true }, + { 85252, true }, + { 85262, true }, + { 85278, true }, + { 85296, true }, + { 85310, true }, + { 85318, true }, + { 85329, true }, + { 85343, true }, + { 85356, true }, + { 85366, true }, { 85377, true }, - { 85389, true }, - { 85399, true }, - { 85415, true }, - { 85433, true }, - { 85447, true }, - { 85455, true }, - { 85466, true }, - { 85480, true }, - { 85493, true }, - { 85503, true }, - { 85514, true }, - { 85525, false }, - { 85541, true }, - { 85554, true }, - { 85569, true }, - { 85580, true }, - { 85596, true }, - { 85614, true }, - { 85631, true }, - { 85652, true }, + { 85388, false }, + { 85404, true }, + { 85417, true }, + { 85432, true }, + { 85443, true }, + { 85459, true }, + { 85477, true }, + { 85494, true }, + { 85515, true }, + { 85527, true }, + { 85536, true }, + { 85549, false }, + { 85567, true }, + { 85576, true }, + { 85587, true }, + { 85599, true }, + { 85609, false }, + { 85627, true }, + { 85645, true }, { 85664, true }, - { 85673, true }, - { 85686, false }, - { 85704, true }, - { 85713, true }, - { 85724, true }, - { 85736, true }, - { 85746, false }, - { 85764, true }, - { 85782, true }, - { 85801, true }, - { 85820, true }, - { 85834, true }, - { 85854, false }, - { 85874, true }, - { 85886, true }, - { 85899, true }, - { 85918, true }, - { 85930, true }, - { 85943, true }, - { 85958, true }, - { 85972, true }, - { 85982, true }, - { 85992, true }, - { 86002, true }, - { 86014, true }, + { 85683, true }, + { 85697, true }, + { 85717, false }, + { 85737, true }, + { 85749, true }, + { 85762, true }, + { 85781, true }, + { 85793, true }, + { 85806, true }, + { 85821, true }, + { 85835, true }, + { 85845, true }, + { 85855, true }, + { 85865, true }, + { 85877, true }, + { 85892, true }, + { 85907, true }, + { 85916, true }, + { 85924, true }, + { 85937, true }, + { 85945, true }, + { 85953, true }, + { 85963, true }, + { 85973, true }, + { 86000, true }, + { 86008, true }, { 86029, true }, - { 86044, true }, + { 86043, true }, { 86053, true }, { 86061, true }, - { 86074, true }, - { 86101, true }, - { 86109, true }, - { 86130, true }, - { 86144, true }, - { 86154, true }, - { 86162, true }, - { 86171, true }, - { 86180, true }, - { 86197, true }, + { 86070, true }, + { 86079, true }, + { 86096, true }, + { 86108, true }, + { 86116, true }, + { 86137, true }, + { 86156, true }, + { 86168, true }, + { 86186, true }, + { 86198, true }, { 86209, true }, - { 86217, true }, - { 86238, true }, - { 86257, true }, + { 86216, true }, + { 86228, true }, + { 86237, true }, + { 86246, true }, + { 86262, true }, { 86269, true }, - { 86287, true }, - { 86299, true }, - { 86310, true }, - { 86317, true }, - { 86329, true }, + { 86277, true }, + { 86291, false }, + { 86302, true }, + { 86313, true }, + { 86328, true }, { 86338, true }, - { 86347, true }, + { 86351, true }, { 86363, true }, - { 86370, true }, - { 86378, true }, - { 86392, false }, - { 86403, true }, - { 86414, true }, - { 86429, true }, - { 86439, true }, - { 86452, true }, - { 86464, true }, - { 86475, true }, - { 86485, false }, - { 86495, true }, - { 86509, true }, - { 86529, true }, - { 86544, true }, - { 86557, true }, - { 86569, true }, - { 86584, true }, - { 86611, true }, - { 86625, true }, - { 86639, true }, + { 86374, true }, + { 86384, false }, + { 86394, true }, + { 86408, true }, + { 86428, true }, + { 86443, true }, + { 86456, true }, + { 86468, true }, + { 86483, true }, + { 86496, true }, + { 86523, true }, + { 86537, true }, + { 86551, true }, + { 86568, true }, + { 86588, true }, + { 86603, true }, + { 86613, true }, + { 86626, true }, + { 86643, true }, { 86656, true }, - { 86676, true }, - { 86691, true }, - { 86701, true }, - { 86714, true }, - { 86731, true }, - { 86744, true }, - { 86754, true }, - { 86781, true }, - { 86791, true }, - { 86800, true }, - { 86807, true }, - { 86823, true }, - { 86834, true }, - { 86845, true }, - { 86859, true }, - { 86870, true }, - { 86880, true }, - { 86901, true }, - { 86909, true }, - { 86919, true }, + { 86666, true }, + { 86693, true }, + { 86703, true }, + { 86712, true }, + { 86719, true }, + { 86735, true }, + { 86746, true }, + { 86757, true }, + { 86771, true }, + { 86782, true }, + { 86792, true }, + { 86813, true }, + { 86821, true }, + { 86831, true }, + { 86842, true }, + { 86862, true }, + { 86874, true }, + { 86897, true }, + { 86911, true }, { 86930, true }, - { 86950, true }, - { 86962, true }, - { 86985, true }, - { 86999, true }, - { 87018, true }, - { 87035, true }, - { 87043, true }, - { 87071, true }, - { 87089, true }, - { 87099, true }, - { 87108, true }, - { 87124, true }, - { 87142, true }, + { 86947, true }, + { 86955, true }, + { 86983, true }, + { 87001, true }, + { 87011, true }, + { 87020, true }, + { 87036, true }, + { 87054, true }, + { 87086, true }, + { 87102, true }, + { 87123, true }, + { 87140, true }, + { 87154, true }, { 87174, true }, - { 87190, true }, - { 87211, true }, - { 87228, true }, - { 87242, true }, - { 87262, true }, - { 87275, true }, - { 87287, true }, - { 87301, true }, - { 87320, true }, - { 87338, true }, - { 87349, true }, - { 87357, true }, - { 87369, true }, + { 87187, true }, + { 87199, true }, + { 87220, true }, + { 87234, true }, + { 87253, true }, + { 87271, true }, + { 87282, true }, + { 87290, true }, + { 87302, true }, + { 87316, true }, + { 87328, true }, + { 87341, true }, + { 87350, true }, + { 87360, true }, + { 87371, true }, { 87383, true }, - { 87395, true }, - { 87408, true }, - { 87417, true }, - { 87427, true }, - { 87438, true }, - { 87450, true }, - { 87460, true }, - { 87483, false }, - { 87498, true }, - { 87513, true }, - { 87532, true }, - { 87550, true }, - { 87564, true }, - { 87578, true }, - { 87588, true }, - { 87601, true }, - { 87614, true }, - { 87626, true }, - { 87640, true }, + { 87393, true }, + { 87416, false }, + { 87431, true }, + { 87446, true }, + { 87465, true }, + { 87483, true }, + { 87497, true }, + { 87511, true }, + { 87521, true }, + { 87534, true }, + { 87547, true }, + { 87559, true }, + { 87573, true }, + { 87589, true }, + { 87604, true }, + { 87613, true }, + { 87629, true }, { 87656, true }, { 87671, true }, - { 87680, true }, - { 87696, true }, - { 87723, true }, - { 87738, true }, - { 87751, true }, - { 87767, true }, - { 87784, false }, - { 87801, true }, - { 87823, true }, - { 87845, true }, - { 87867, true }, - { 87879, true }, - { 87893, true }, - { 87906, true }, - { 87915, true }, - { 87931, true }, - { 87948, true }, - { 87962, true }, - { 87975, true }, - { 87989, true }, - { 88001, true }, - { 88014, true }, - { 88027, true }, - { 88037, true }, - { 88051, false }, - { 88063, true }, - { 88076, true }, - { 88098, true }, - { 88120, true }, - { 88131, false }, + { 87684, true }, + { 87700, true }, + { 87717, false }, + { 87734, true }, + { 87756, true }, + { 87778, true }, + { 87800, true }, + { 87812, true }, + { 87826, true }, + { 87839, true }, + { 87848, true }, + { 87864, true }, + { 87881, true }, + { 87895, true }, + { 87908, true }, + { 87922, true }, + { 87934, true }, + { 87947, true }, + { 87960, true }, + { 87970, true }, + { 87984, false }, + { 87996, true }, + { 88009, true }, + { 88031, true }, + { 88053, true }, + { 88064, false }, + { 88079, true }, + { 88090, false }, + { 88110, true }, + { 88127, true }, { 88146, true }, - { 88157, false }, - { 88177, true }, - { 88194, true }, - { 88213, true }, - { 88240, true }, - { 88259, true }, - { 88271, true }, - { 88292, true }, - { 88317, true }, + { 88173, true }, + { 88192, true }, + { 88204, true }, + { 88225, true }, + { 88250, true }, + { 88269, true }, + { 88284, true }, + { 88304, false }, + { 88312, true }, + { 88324, true }, { 88336, true }, - { 88351, true }, - { 88371, false }, - { 88379, true }, + { 88350, true }, + { 88360, true }, + { 88373, true }, { 88391, true }, { 88405, true }, - { 88415, true }, - { 88428, true }, - { 88446, true }, - { 88460, true }, - { 88467, true }, - { 88474, true }, + { 88412, true }, + { 88419, true }, + { 88431, true }, + { 88442, true }, + { 88455, true }, + { 88469, true }, { 88486, true }, - { 88497, true }, - { 88510, true }, - { 88524, true }, - { 88541, true }, - { 88555, true }, - { 88571, true }, - { 88582, true }, - { 88589, true }, - { 88602, true }, - { 88615, true }, - { 88624, true }, - { 88638, true }, - { 88654, false }, - { 88669, true }, - { 88697, true }, - { 88712, true }, - { 88733, true }, - { 88747, true }, - { 88761, true }, - { 88782, true }, - { 88794, true }, - { 88804, true }, - { 88815, true }, - { 88825, true }, - { 88838, true }, - { 88848, true }, + { 88500, true }, + { 88516, true }, + { 88527, true }, + { 88534, true }, + { 88547, true }, + { 88560, true }, + { 88569, true }, + { 88583, true }, + { 88599, false }, + { 88614, true }, + { 88642, true }, + { 88657, true }, + { 88678, true }, + { 88692, true }, + { 88706, true }, + { 88727, true }, + { 88739, true }, + { 88749, true }, + { 88760, true }, + { 88770, true }, + { 88783, true }, + { 88793, true }, + { 88806, true }, + { 88823, true }, + { 88842, true }, { 88861, true }, - { 88878, true }, - { 88897, true }, - { 88916, true }, - { 88934, true }, - { 88945, true }, - { 88957, true }, - { 88969, true }, - { 88980, true }, - { 88992, true }, - { 89007, true }, - { 89033, true }, - { 89044, true }, - { 89055, true }, - { 89066, true }, + { 88879, true }, + { 88890, true }, + { 88902, true }, + { 88914, true }, + { 88925, true }, + { 88937, true }, + { 88952, true }, + { 88978, true }, + { 88989, true }, + { 89000, true }, + { 89011, true }, + { 89023, true }, + { 89034, true }, + { 89047, true }, + { 89056, true }, + { 89065, true }, { 89078, true }, - { 89089, true }, - { 89102, true }, - { 89111, true }, - { 89120, true }, - { 89133, true }, - { 89140, false }, - { 89148, true }, - { 89156, true }, - { 89171, true }, - { 89184, true }, - { 89195, true }, - { 89209, false }, - { 89221, true }, - { 89245, true }, - { 89260, true }, - { 89273, true }, - { 89287, true }, - { 89305, true }, - { 89313, true }, - { 89330, true }, - { 89355, true }, - { 89375, true }, - { 89399, true }, - { 89411, true }, - { 89424, true }, - { 89440, true }, - { 89449, true }, - { 89465, true }, - { 89483, true }, - { 89498, true }, - { 89518, true }, - { 89531, true }, - { 89547, true }, - { 89561, true }, - { 89577, true }, - { 89597, true }, - { 89615, true }, - { 89634, true }, + { 89085, false }, + { 89093, true }, + { 89101, true }, + { 89116, true }, + { 89129, true }, + { 89140, true }, + { 89154, false }, + { 89166, true }, + { 89190, true }, + { 89205, true }, + { 89218, true }, + { 89232, true }, + { 89250, true }, + { 89258, true }, + { 89275, true }, + { 89300, true }, + { 89320, true }, + { 89344, true }, + { 89356, true }, + { 89369, true }, + { 89385, true }, + { 89394, true }, + { 89410, true }, + { 89428, true }, + { 89443, true }, + { 89463, true }, + { 89476, true }, + { 89492, true }, + { 89506, true }, + { 89522, true }, + { 89542, true }, + { 89560, true }, + { 89579, true }, + { 89596, true }, + { 89612, true }, + { 89622, true }, { 89651, true }, - { 89667, true }, - { 89677, true }, - { 89706, true }, + { 89671, true }, + { 89688, true }, + { 89704, true }, + { 89713, true }, { 89726, true }, - { 89743, true }, - { 89759, true }, - { 89768, true }, - { 89781, true }, - { 89793, true }, - { 89802, false }, - { 89816, true }, - { 89833, true }, - { 89866, true }, - { 89886, true }, - { 89898, true }, + { 89738, true }, + { 89747, false }, + { 89761, true }, + { 89778, true }, + { 89811, true }, + { 89831, true }, + { 89843, true }, + { 89856, true }, + { 89871, true }, + { 89882, true }, + { 89899, true }, { 89911, true }, - { 89926, true }, - { 89937, true }, - { 89954, true }, - { 89966, true }, - { 89978, true }, - { 89990, true }, - { 89999, true }, - { 90016, true }, - { 90030, true }, - { 90051, true }, - { 90066, true }, - { 90084, true }, + { 89923, true }, + { 89935, true }, + { 89944, true }, + { 89961, true }, + { 89975, true }, + { 89996, true }, + { 90011, true }, + { 90029, true }, + { 90050, true }, + { 90064, true }, + { 90078, true }, + { 90089, true }, { 90100, true }, - { 90121, true }, - { 90135, true }, - { 90149, true }, - { 90160, true }, + { 90116, true }, + { 90128, true }, + { 90139, true }, + { 90153, true }, + { 90162, true }, { 90171, true }, - { 90187, true }, - { 90199, true }, - { 90210, true }, - { 90219, true }, - { 90228, true }, - { 90243, true }, - { 90252, true }, - { 90260, true }, - { 90271, true }, - { 90282, true }, + { 90186, true }, + { 90195, true }, + { 90203, true }, + { 90214, true }, + { 90225, true }, + { 90239, true }, + { 90254, true }, + { 90272, true }, + { 90286, true }, { 90296, true }, - { 90311, true }, - { 90329, true }, - { 90343, true }, - { 90353, true }, - { 90363, true }, - { 90371, true }, - { 90380, true }, - { 90392, true }, - { 90401, true }, - { 90415, true }, - { 90438, true }, - { 90453, true }, - { 90461, true }, - { 90474, true }, - { 90486, true }, - { 90498, true }, - { 90511, true }, - { 90521, false }, - { 90530, false }, - { 90539, false }, - { 90548, true }, - { 90565, true }, - { 90584, true }, - { 90607, true }, - { 90626, true }, - { 90643, true }, - { 90658, true }, - { 90672, true }, - { 90687, true }, - { 90706, true }, - { 90719, true }, - { 90735, true }, - { 90748, true }, + { 90306, true }, + { 90314, true }, + { 90323, true }, + { 90335, true }, + { 90344, true }, + { 90358, true }, + { 90381, true }, + { 90396, true }, + { 90404, true }, + { 90417, true }, + { 90429, true }, + { 90441, true }, + { 90454, true }, + { 90464, false }, + { 90473, false }, + { 90482, false }, + { 90491, true }, + { 90508, true }, + { 90527, true }, + { 90550, true }, + { 90569, true }, + { 90586, true }, + { 90601, true }, + { 90615, true }, + { 90630, true }, + { 90649, true }, + { 90662, true }, + { 90678, true }, + { 90691, true }, + { 90708, true }, + { 90724, true }, + { 90739, true }, + { 90749, true }, { 90765, true }, - { 90781, true }, - { 90796, true }, - { 90806, true }, - { 90822, true }, - { 90841, true }, - { 90856, true }, - { 90875, true }, - { 90883, true }, - { 90897, true }, - { 90911, true }, - { 90925, true }, - { 90942, false }, - { 90962, true }, - { 90975, true }, - { 90987, true }, - { 91002, true }, - { 91020, true }, - { 91031, true }, - { 91041, true }, - { 91055, true }, - { 91068, true }, - { 91084, true }, - { 91099, true }, - { 91124, true }, - { 91150, true }, - { 91165, true }, - { 91177, true }, - { 91202, true }, - { 91209, true }, - { 91231, true }, - { 91246, true }, - { 91254, true }, - { 91262, true }, - { 91273, true }, - { 91289, true }, - { 91303, true }, - { 91317, true }, - { 91333, true }, - { 91360, true }, - { 91374, true }, - { 91383, true }, - { 91396, true }, - { 91408, true }, - { 91431, true }, - { 91451, true }, - { 91470, true }, - { 91492, false }, - { 91503, true }, - { 91520, true }, - { 91534, true }, - { 91554, true }, + { 90784, true }, + { 90799, true }, + { 90818, true }, + { 90826, true }, + { 90840, true }, + { 90854, true }, + { 90868, true }, + { 90885, false }, + { 90905, true }, + { 90918, true }, + { 90930, true }, + { 90945, true }, + { 90963, true }, + { 90974, true }, + { 90984, true }, + { 90998, true }, + { 91011, true }, + { 91027, true }, + { 91042, true }, + { 91067, true }, + { 91093, true }, + { 91108, true }, + { 91120, true }, + { 91145, true }, + { 91152, true }, + { 91174, true }, + { 91189, true }, + { 91197, true }, + { 91205, true }, + { 91216, true }, + { 91232, true }, + { 91249, true }, + { 91263, true }, + { 91277, true }, + { 91293, true }, + { 91320, true }, + { 91334, true }, + { 91343, true }, + { 91356, true }, + { 91368, true }, + { 91391, true }, + { 91411, true }, + { 91430, true }, + { 91452, false }, + { 91463, true }, + { 91480, true }, + { 91494, true }, + { 91514, true }, + { 91539, true }, + { 91555, true }, + { 91567, true }, { 91579, true }, - { 91595, true }, - { 91607, true }, - { 91619, true }, - { 91641, true }, - { 91656, true }, - { 91671, true }, - { 91688, true }, - { 91703, true }, - { 91720, true }, - { 91735, true }, - { 91750, true }, - { 91762, false }, - { 91772, true }, - { 91789, true }, - { 91800, false }, - { 91815, true }, + { 91601, true }, + { 91616, true }, + { 91631, true }, + { 91648, true }, + { 91663, true }, + { 91680, true }, + { 91695, true }, + { 91710, true }, + { 91722, false }, + { 91732, true }, + { 91749, true }, + { 91760, false }, + { 91775, true }, + { 91792, true }, + { 91806, true }, + { 91819, true }, { 91832, true }, - { 91846, true }, - { 91859, true }, - { 91872, true }, - { 91884, true }, - { 91896, true }, - { 91906, true }, - { 91918, true }, - { 91933, true }, - { 91945, true }, - { 91956, true }, - { 91976, true }, - { 91988, true }, - { 91999, true }, - { 92024, true }, - { 92033, true }, - { 92041, true }, + { 91844, true }, + { 91856, true }, + { 91866, true }, + { 91878, true }, + { 91893, true }, + { 91905, true }, + { 91916, true }, + { 91936, true }, + { 91948, true }, + { 91959, true }, + { 91984, true }, + { 91993, true }, + { 92001, true }, + { 92014, true }, + { 92037, true }, { 92054, true }, - { 92077, true }, - { 92094, true }, - { 92105, true }, - { 92121, false }, - { 92133, true }, - { 92141, true }, - { 92151, true }, - { 92166, true }, - { 92180, true }, - { 92190, false }, - { 92208, true }, + { 92065, true }, + { 92081, false }, + { 92093, true }, + { 92101, true }, + { 92111, true }, + { 92126, true }, + { 92140, true }, + { 92150, false }, + { 92168, true }, + { 92192, true }, + { 92204, true }, { 92232, true }, - { 92244, true }, - { 92272, true }, - { 92288, true }, - { 92300, true }, - { 92314, true }, - { 92342, true }, - { 92356, true }, - { 92372, true }, - { 92389, true }, - { 92403, true }, - { 92420, true }, - { 92442, true }, - { 92452, true }, - { 92462, true }, - { 92480, true }, - { 92499, true }, - { 92518, true }, - { 92543, true }, - { 92562, true }, - { 92579, true }, - { 92593, true }, - { 92606, true }, - { 92635, true }, - { 92665, true }, - { 92677, true }, - { 92686, true }, - { 92699, true }, - { 92710, true }, - { 92732, true }, - { 92743, true }, - { 92753, true }, + { 92248, true }, + { 92260, true }, + { 92274, true }, + { 92302, true }, + { 92316, true }, + { 92332, true }, + { 92349, true }, + { 92363, true }, + { 92380, true }, + { 92402, true }, + { 92412, true }, + { 92422, true }, + { 92440, true }, + { 92459, true }, + { 92478, true }, + { 92503, true }, + { 92522, true }, + { 92539, true }, + { 92553, true }, + { 92566, true }, + { 92595, true }, + { 92625, true }, + { 92637, true }, + { 92646, true }, + { 92659, true }, + { 92670, true }, + { 92692, true }, + { 92703, true }, + { 92713, true }, + { 92729, true }, + { 92746, true }, { 92769, true }, - { 92786, true }, + { 92795, true }, { 92809, true }, - { 92835, true }, - { 92849, true }, - { 92863, true }, - { 92882, false }, - { 92892, true }, - { 92904, true }, - { 92920, true }, - { 92928, true }, - { 92947, true }, - { 92959, false }, - { 92970, true }, - { 92978, true }, - { 92994, true }, - { 93008, true }, - { 93020, true }, - { 93033, true }, - { 93052, true }, - { 93061, true }, - { 93072, true }, - { 93084, true }, - { 93097, true }, - { 93107, true }, - { 93120, true }, - { 93132, true }, - { 93148, true }, - { 93156, false }, - { 93164, true }, - { 93186, true }, - { 93198, true }, + { 92823, true }, + { 92842, false }, + { 92852, true }, + { 92864, true }, + { 92880, true }, + { 92888, true }, + { 92907, true }, + { 92919, false }, + { 92930, true }, + { 92938, true }, + { 92954, true }, + { 92968, true }, + { 92980, true }, + { 92993, true }, + { 93012, true }, + { 93021, true }, + { 93032, true }, + { 93044, true }, + { 93057, true }, + { 93067, true }, + { 93080, true }, + { 93092, true }, + { 93108, true }, + { 93116, false }, + { 93124, true }, + { 93146, true }, + { 93158, true }, + { 93166, true }, + { 93182, true }, + { 93192, true }, { 93206, true }, - { 93222, true }, - { 93232, true }, - { 93246, true }, - { 93263, true }, - { 93275, true }, - { 93285, true }, - { 93300, true }, - { 93310, true }, - { 93320, true }, - { 93330, true }, + { 93223, true }, + { 93233, true }, + { 93248, true }, + { 93258, true }, + { 93268, true }, + { 93278, true }, + { 93290, true }, + { 93313, true }, + { 93327, true }, { 93342, true }, - { 93365, true }, - { 93379, true }, - { 93394, true }, - { 93407, true }, - { 93419, true }, - { 93428, true }, - { 93439, true }, - { 93452, true }, - { 93467, true }, - { 93482, true }, - { 93492, true }, - { 93512, true }, - { 93526, true }, - { 93549, true }, - { 93561, true }, - { 93576, true }, - { 93587, true }, + { 93355, true }, + { 93367, true }, + { 93376, true }, + { 93387, true }, + { 93400, true }, + { 93415, true }, + { 93430, true }, + { 93440, true }, + { 93460, true }, + { 93474, true }, + { 93497, true }, + { 93509, true }, + { 93524, true }, + { 93535, true }, + { 93557, true }, + { 93568, true }, + { 93578, true }, + { 93592, true }, + { 93600, true }, { 93609, true }, - { 93620, true }, - { 93630, true }, - { 93644, true }, + { 93617, true }, + { 93632, true }, + { 93642, true }, { 93652, true }, - { 93661, true }, - { 93669, true }, + { 93667, true }, + { 93676, true }, { 93684, true }, - { 93694, true }, - { 93704, true }, - { 93719, true }, - { 93728, true }, + { 93692, true }, + { 93701, true }, + { 93712, true }, + { 93724, true }, { 93736, true }, - { 93744, true }, - { 93753, true }, - { 93764, true }, - { 93776, true }, - { 93788, true }, - { 93798, true }, - { 93808, true }, - { 93820, true }, - { 93834, true }, - { 93849, true }, - { 93866, true }, - { 93878, true }, - { 93889, true }, - { 93896, true }, - { 93910, true }, - { 93921, true }, - { 93932, true }, - { 93940, true }, - { 93951, true }, - { 93966, true }, - { 93980, true }, - { 93994, true }, - { 94009, true }, - { 94024, true }, - { 94035, true }, - { 94046, true }, - { 94061, true }, - { 94074, true }, - { 94087, true }, - { 94094, true }, - { 94114, true }, - { 94123, true }, - { 94135, true }, - { 94148, true }, - { 94165, true }, + { 93746, true }, + { 93756, true }, + { 93770, true }, + { 93785, true }, + { 93802, true }, + { 93814, true }, + { 93825, true }, + { 93832, true }, + { 93846, true }, + { 93857, true }, + { 93868, true }, + { 93876, true }, + { 93887, true }, + { 93902, true }, + { 93916, true }, + { 93930, true }, + { 93945, true }, + { 93960, true }, + { 93971, true }, + { 93982, true }, + { 93997, true }, + { 94010, true }, + { 94023, true }, + { 94030, true }, + { 94050, true }, + { 94059, true }, + { 94071, true }, + { 94084, true }, + { 94101, true }, + { 94116, true }, + { 94131, true }, + { 94151, true }, + { 94171, true }, { 94180, true }, - { 94195, true }, - { 94215, true }, - { 94235, true }, - { 94244, true }, - { 94260, true }, - { 94272, true }, - { 94281, true }, - { 94291, true }, - { 94300, true }, - { 94310, false }, - { 94317, true }, - { 94328, true }, - { 94341, true }, - { 94356, true }, + { 94196, true }, + { 94208, true }, + { 94217, true }, + { 94227, true }, + { 94236, true }, + { 94246, false }, + { 94253, true }, + { 94264, true }, + { 94277, true }, + { 94292, true }, + { 94309, true }, + { 94325, true }, + { 94346, true }, + { 94353, true }, { 94373, true }, - { 94389, true }, - { 94410, true }, - { 94417, true }, - { 94437, true }, - { 94447, true }, - { 94458, false }, - { 94471, true }, - { 94485, true }, - { 94495, true }, - { 94507, true }, - { 94527, false }, - { 94543, true }, - { 94552, false }, - { 94561, true }, - { 94569, true }, - { 94581, true }, - { 94588, true }, - { 94606, true }, - { 94618, true }, - { 94637, true }, - { 94650, true }, - { 94663, false }, - { 94672, true }, - { 94681, true }, - { 94692, true }, - { 94712, true }, - { 94729, true }, - { 94742, true }, - { 94758, false }, - { 94773, true }, - { 94787, true }, - { 94800, true }, - { 94819, true }, - { 94832, true }, - { 94849, true }, - { 94860, true }, - { 94877, false }, - { 94898, false }, - { 94914, false }, + { 94383, true }, + { 94394, false }, + { 94407, true }, + { 94421, true }, + { 94431, true }, + { 94443, true }, + { 94463, false }, + { 94479, true }, + { 94488, false }, + { 94497, true }, + { 94505, true }, + { 94517, true }, + { 94524, true }, + { 94542, true }, + { 94554, true }, + { 94573, true }, + { 94586, true }, + { 94599, false }, + { 94608, true }, + { 94617, true }, + { 94628, true }, + { 94648, true }, + { 94665, true }, + { 94678, true }, + { 94694, false }, + { 94709, true }, + { 94723, true }, + { 94736, true }, + { 94749, true }, + { 94766, true }, + { 94777, true }, + { 94794, false }, + { 94815, false }, + { 94831, false }, + { 94851, true }, + { 94863, true }, + { 94886, true }, + { 94898, true }, + { 94911, true }, + { 94923, false }, { 94934, true }, - { 94946, true }, + { 94943, true }, + { 94954, true }, { 94969, true }, - { 94981, true }, - { 94994, true }, - { 95006, false }, - { 95017, true }, - { 95026, true }, - { 95037, true }, - { 95052, true }, - { 95070, true }, - { 95097, true }, - { 95107, true }, - { 95115, true }, - { 95129, true }, - { 95141, true }, - { 95156, true }, - { 95166, true }, - { 95177, true }, - { 95186, true }, - { 95205, true }, - { 95218, true }, - { 95228, true }, - { 95236, true }, - { 95243, true }, - { 95256, true }, - { 95266, true }, - { 95275, false }, - { 95285, true }, - { 95294, true }, - { 95306, true }, - { 95317, true }, - { 95328, true }, - { 95338, false }, - { 95355, true }, - { 95364, true }, - { 95374, true }, - { 95382, true }, - { 95392, true }, - { 95399, true }, - { 95409, true }, + { 94987, true }, + { 95014, true }, + { 95024, true }, + { 95032, true }, + { 95046, true }, + { 95058, true }, + { 95073, true }, + { 95083, true }, + { 95094, true }, + { 95103, true }, + { 95122, true }, + { 95135, true }, + { 95145, true }, + { 95153, true }, + { 95160, true }, + { 95173, true }, + { 95183, true }, + { 95192, false }, + { 95202, true }, + { 95211, true }, + { 95223, true }, + { 95234, true }, + { 95245, true }, + { 95255, false }, + { 95272, true }, + { 95281, true }, + { 95291, true }, + { 95299, true }, + { 95309, true }, + { 95319, true }, + { 95332, true }, + { 95344, true }, + { 95359, true }, + { 95371, true }, + { 95387, true }, + { 95401, true }, + { 95415, true }, { 95422, true }, { 95434, true }, - { 95449, true }, - { 95461, true }, - { 95477, true }, - { 95491, true }, - { 95505, true }, - { 95512, true }, - { 95524, true }, - { 95533, true }, - { 95549, true }, - { 95563, true }, - { 95574, true }, + { 95443, true }, + { 95459, true }, + { 95473, true }, + { 95484, true }, + { 95493, true }, + { 95507, true }, + { 95519, true }, + { 95531, true }, + { 95541, true }, + { 95551, true }, + { 95561, true }, + { 95573, true }, { 95583, true }, - { 95597, true }, - { 95609, true }, - { 95621, true }, - { 95631, true }, - { 95641, true }, - { 95651, true }, - { 95663, true }, - { 95673, true }, - { 95683, true }, - { 95701, true }, + { 95593, true }, + { 95611, true }, + { 95626, true }, + { 95637, true }, + { 95650, true }, + { 95657, true }, + { 95674, true }, + { 95685, true }, + { 95695, true }, + { 95705, true }, { 95716, true }, - { 95727, true }, - { 95740, true }, + { 95725, true }, { 95747, true }, - { 95764, true }, - { 95775, true }, - { 95785, true }, - { 95795, true }, - { 95806, true }, - { 95815, true }, + { 95772, true }, + { 95791, true }, + { 95798, true }, + { 95812, true }, + { 95827, true }, { 95837, true }, - { 95862, true }, - { 95881, true }, - { 95888, true }, + { 95853, true }, + { 95875, true }, + { 95889, true }, { 95902, true }, - { 95917, true }, - { 95927, true }, - { 95943, true }, - { 95965, true }, - { 95979, true }, - { 95992, true }, - { 96006, true }, - { 96029, true }, - { 96040, true }, - { 96049, true }, - { 96060, true }, - { 96074, true }, - { 96085, true }, - { 96097, true }, - { 96116, true }, - { 96129, true }, - { 96138, true }, - { 96154, true }, + { 95916, true }, + { 95939, true }, + { 95950, true }, + { 95959, true }, + { 95970, true }, + { 95984, true }, + { 95995, true }, + { 96007, true }, + { 96026, true }, + { 96039, true }, + { 96048, true }, + { 96064, true }, + { 96077, true }, + { 96089, true }, + { 96102, true }, + { 96110, true }, + { 96122, true }, + { 96131, true }, + { 96146, true }, + { 96155, true }, { 96167, true }, - { 96179, true }, + { 96177, true }, { 96192, true }, { 96200, true }, - { 96212, true }, - { 96221, true }, - { 96236, true }, - { 96245, true }, - { 96257, true }, - { 96267, true }, - { 96282, true }, - { 96290, true }, - { 96305, true }, - { 96316, true }, - { 96327, true }, - { 96336, true }, - { 96351, true }, - { 96365, true }, - { 96379, true }, - { 96399, true }, - { 96422, true }, - { 96447, true }, - { 96466, true }, - { 96480, true }, - { 96496, true }, - { 96510, true }, - { 96526, true }, - { 96544, true }, + { 96215, true }, + { 96226, true }, + { 96237, true }, + { 96246, true }, + { 96261, true }, + { 96275, true }, + { 96289, true }, + { 96309, true }, + { 96332, true }, + { 96357, true }, + { 96376, true }, + { 96390, true }, + { 96406, true }, + { 96420, true }, + { 96436, true }, + { 96454, true }, + { 96471, true }, + { 96488, true }, + { 96503, true }, + { 96520, true }, + { 96537, true }, + { 96552, true }, { 96561, true }, - { 96578, true }, - { 96593, true }, - { 96610, true }, - { 96627, true }, - { 96642, true }, - { 96651, true }, - { 96664, true }, - { 96681, true }, - { 96694, true }, - { 96704, true }, - { 96715, true }, - { 96726, true }, - { 96736, true }, + { 96574, true }, + { 96591, true }, + { 96604, true }, + { 96614, true }, + { 96625, true }, + { 96636, true }, + { 96646, true }, + { 96658, true }, + { 96679, true }, + { 96693, false }, + { 96713, false }, + { 96725, true }, + { 96738, true }, { 96748, true }, - { 96769, true }, - { 96783, false }, - { 96803, false }, - { 96815, true }, - { 96828, true }, - { 96838, true }, - { 96851, true }, - { 96864, true }, - { 96880, true }, - { 96897, true }, - { 96909, true }, - { 96923, true }, - { 96937, true }, - { 96953, true }, - { 96965, true }, - { 96991, true }, - { 97012, true }, - { 97033, false }, - { 97047, true }, - { 97065, true }, - { 97082, true }, - { 97094, true }, - { 97114, true }, - { 97130, true }, - { 97142, true }, - { 97164, true }, - { 97186, true }, - { 97205, true }, - { 97222, true }, - { 97234, true }, - { 97245, true }, - { 97258, true }, - { 97278, true }, - { 97289, true }, - { 97314, true }, - { 97329, true }, - { 97346, true }, - { 97367, true }, - { 97387, true }, - { 97409, false }, - { 97422, true }, - { 97433, true }, - { 97449, true }, + { 96761, true }, + { 96774, true }, + { 96790, true }, + { 96807, true }, + { 96819, true }, + { 96833, true }, + { 96847, true }, + { 96863, true }, + { 96875, true }, + { 96901, true }, + { 96922, true }, + { 96943, false }, + { 96957, true }, + { 96975, true }, + { 96992, true }, + { 97004, true }, + { 97024, true }, + { 97040, true }, + { 97052, true }, + { 97074, true }, + { 97096, true }, + { 97115, true }, + { 97132, true }, + { 97144, true }, + { 97155, true }, + { 97168, true }, + { 97188, true }, + { 97199, true }, + { 97224, true }, + { 97239, true }, + { 97256, true }, + { 97277, true }, + { 97297, true }, + { 97319, false }, + { 97332, true }, + { 97343, true }, + { 97359, true }, + { 97374, true }, + { 97389, true }, + { 97409, true }, + { 97421, true }, + { 97439, true }, { 97464, true }, - { 97479, true }, - { 97499, true }, - { 97511, true }, - { 97529, true }, - { 97554, true }, - { 97577, true }, - { 97593, true }, - { 97610, true }, - { 97621, true }, - { 97633, true }, - { 97647, true }, - { 97663, false }, - { 97676, true }, - { 97689, true }, - { 97701, true }, - { 97712, true }, - { 97729, true }, - { 97741, true }, - { 97751, false }, - { 97760, true }, - { 97770, true }, + { 97487, true }, + { 97503, true }, + { 97520, true }, + { 97531, true }, + { 97543, true }, + { 97557, true }, + { 97573, false }, + { 97586, true }, + { 97599, true }, + { 97611, true }, + { 97622, true }, + { 97639, true }, + { 97651, true }, + { 97661, false }, + { 97670, true }, + { 97680, true }, + { 97691, true }, + { 97714, true }, + { 97727, false }, + { 97740, true }, + { 97751, true }, + { 97765, true }, { 97781, true }, - { 97804, true }, - { 97817, false }, - { 97830, true }, - { 97841, true }, - { 97855, true }, - { 97871, true }, - { 97879, true }, + { 97789, true }, + { 97808, true }, + { 97831, true }, + { 97845, true }, + { 97860, true }, + { 97870, true }, + { 97883, true }, { 97898, true }, - { 97911, true }, - { 97934, true }, - { 97948, true }, - { 97963, true }, - { 97973, true }, - { 97986, true }, - { 98001, true }, - { 98017, true }, - { 98033, true }, - { 98050, true }, - { 98063, true }, - { 98075, true }, - { 98088, true }, - { 98100, true }, - { 98115, true }, + { 97914, true }, + { 97930, true }, + { 97947, true }, + { 97960, true }, + { 97972, true }, + { 97985, true }, + { 97997, true }, + { 98012, true }, + { 98029, true }, + { 98038, true }, + { 98059, true }, + { 98076, true }, + { 98087, false }, + { 98105, true }, + { 98120, true }, { 98132, true }, - { 98141, true }, - { 98162, true }, - { 98179, true }, - { 98190, false }, - { 98208, true }, - { 98223, true }, - { 98235, true }, - { 98247, true }, - { 98259, true }, - { 98278, true }, - { 98313, true }, - { 98335, true }, - { 98349, true }, - { 98366, true }, - { 98379, true }, - { 98396, true }, - { 98413, false }, - { 98432, true }, - { 98450, true }, - { 98481, true }, + { 98144, true }, + { 98156, true }, + { 98175, true }, + { 98210, true }, + { 98232, true }, + { 98246, true }, + { 98263, true }, + { 98276, true }, + { 98293, true }, + { 98310, false }, + { 98329, true }, + { 98347, true }, + { 98378, true }, + { 98393, true }, + { 98406, true }, + { 98428, true }, + { 98440, true }, + { 98457, true }, + { 98474, true }, { 98496, true }, - { 98509, true }, - { 98531, true }, - { 98543, true }, - { 98560, true }, + { 98512, true }, + { 98525, true }, + { 98537, true }, + { 98558, true }, { 98577, true }, - { 98599, true }, - { 98615, true }, - { 98628, true }, - { 98640, true }, - { 98661, true }, - { 98680, true }, - { 98692, true }, - { 98709, true }, - { 98724, true }, - { 98741, true }, - { 98758, true }, - { 98774, true }, + { 98589, true }, + { 98606, true }, + { 98621, true }, + { 98638, true }, + { 98655, true }, + { 98671, true }, + { 98686, true }, + { 98702, true }, + { 98718, true }, + { 98742, true }, + { 98767, true }, { 98789, true }, - { 98805, true }, - { 98821, true }, - { 98845, true }, - { 98870, true }, + { 98804, true }, + { 98831, true }, + { 98849, true }, + { 98866, true }, { 98892, true }, { 98907, true }, - { 98934, true }, - { 98952, true }, - { 98969, true }, - { 98995, true }, - { 99010, true }, - { 99028, true }, - { 99049, true }, - { 99077, true }, - { 99096, true }, - { 99120, true }, - { 99144, true }, - { 99157, true }, - { 99170, true }, - { 99187, true }, - { 99202, true }, - { 99227, false }, - { 99241, true }, - { 99251, true }, - { 99270, true }, - { 99286, true }, - { 99310, true }, - { 99325, true }, + { 98925, true }, + { 98946, true }, + { 98974, true }, + { 98993, true }, + { 99017, true }, + { 99041, true }, + { 99054, true }, + { 99067, true }, + { 99084, true }, + { 99099, true }, + { 99124, false }, + { 99138, true }, + { 99148, true }, + { 99167, true }, + { 99183, true }, + { 99207, true }, + { 99222, true }, + { 99239, true }, + { 99249, true }, + { 99258, true }, + { 99273, true }, + { 99283, true }, + { 99295, true }, + { 99316, true }, + { 99329, true }, { 99342, true }, - { 99352, true }, - { 99361, true }, - { 99376, true }, - { 99386, true }, - { 99398, true }, - { 99419, true }, + { 99360, true }, + { 99373, true }, + { 99387, true }, + { 99406, true }, + { 99416, true }, { 99432, true }, - { 99445, true }, - { 99463, true }, - { 99476, true }, - { 99490, true }, - { 99509, true }, - { 99519, true }, - { 99535, true }, - { 99551, true }, - { 99564, true }, - { 99583, true }, + { 99448, true }, + { 99461, true }, + { 99480, true }, + { 99498, true }, + { 99512, true }, + { 99522, false }, + { 99534, true }, + { 99542, true }, + { 99552, true }, + { 99562, true }, + { 99574, true }, + { 99588, false }, { 99601, true }, - { 99615, true }, - { 99625, false }, - { 99637, true }, - { 99645, true }, + { 99609, true }, + { 99620, true }, + { 99631, true }, + { 99639, true }, { 99655, true }, - { 99665, true }, - { 99677, true }, - { 99691, false }, - { 99704, true }, - { 99712, true }, - { 99723, true }, - { 99734, true }, - { 99742, true }, - { 99758, true }, - { 99770, true }, - { 99779, true }, - { 99795, false }, - { 99802, true }, - { 99810, true }, - { 99820, true }, - { 99832, true }, - { 99846, true }, - { 99855, true }, - { 99871, true }, - { 99879, true }, - { 99888, true }, - { 99904, true }, - { 99914, false }, - { 99932, true }, - { 99944, true }, - { 99956, false }, - { 99967, true }, - { 99980, true }, - { 99990, true }, + { 99667, true }, + { 99676, true }, + { 99692, false }, + { 99699, true }, + { 99707, true }, + { 99717, true }, + { 99729, true }, + { 99743, true }, + { 99752, true }, + { 99768, true }, + { 99776, true }, + { 99785, true }, + { 99801, true }, + { 99811, false }, + { 99829, true }, + { 99841, true }, + { 99853, false }, + { 99864, true }, + { 99877, true }, + { 99887, true }, + { 99897, true }, + { 99907, true }, + { 99917, true }, + { 99927, true }, + { 99946, true }, + { 99955, true }, + { 99964, true }, + { 99984, true }, { 100000, true }, - { 100010, true }, - { 100020, true }, - { 100030, true }, + { 100008, true }, + { 100016, true }, + { 100032, true }, { 100049, true }, - { 100058, true }, - { 100067, true }, - { 100087, true }, - { 100103, true }, - { 100111, true }, - { 100132, true }, - { 100140, true }, - { 100156, true }, - { 100173, true }, - { 100181, true }, - { 100192, true }, - { 100204, true }, - { 100215, true }, - { 100230, true }, - { 100241, true }, - { 100251, true }, - { 100260, true }, - { 100278, true }, - { 100294, true }, + { 100057, true }, + { 100068, true }, + { 100080, true }, + { 100091, true }, + { 100106, true }, + { 100117, true }, + { 100127, true }, + { 100136, true }, + { 100154, true }, + { 100170, true }, + { 100184, true }, + { 100212, true }, + { 100225, true }, + { 100234, true }, + { 100253, true }, + { 100268, true }, + { 100285, true }, { 100308, true }, + { 100327, true }, { 100336, true }, - { 100349, true }, - { 100358, true }, - { 100377, true }, - { 100393, true }, - { 100408, true }, - { 100425, true }, - { 100448, true }, - { 100467, true }, - { 100476, true }, - { 100494, true }, - { 100509, true }, - { 100523, true }, - { 100546, true }, - { 100568, true }, - { 100578, true }, - { 100594, true }, - { 100610, true }, - { 100618, true }, - { 100628, true }, - { 100640, true }, - { 100653, true }, - { 100670, true }, - { 100687, true }, - { 100698, true }, - { 100716, true }, - { 100730, true }, + { 100354, true }, + { 100369, true }, + { 100383, true }, + { 100406, true }, + { 100428, true }, + { 100438, true }, + { 100454, true }, + { 100470, true }, + { 100478, true }, + { 100488, true }, + { 100500, true }, + { 100513, true }, + { 100530, true }, + { 100547, true }, + { 100558, true }, + { 100576, true }, + { 100590, true }, + { 100604, true }, + { 100622, true }, + { 100641, true }, + { 100657, true }, + { 100668, true }, + { 100679, true }, + { 100697, true }, + { 100710, true }, + { 100721, true }, + { 100731, true }, { 100744, true }, - { 100762, true }, - { 100781, true }, - { 100797, true }, + { 100756, true }, + { 100767, true }, + { 100778, true }, + { 100789, true }, + { 100799, true }, { 100808, true }, - { 100819, true }, - { 100837, true }, - { 100850, true }, - { 100861, true }, - { 100871, true }, - { 100884, true }, - { 100896, true }, - { 100907, true }, - { 100918, true }, - { 100929, true }, - { 100939, true }, - { 100948, true }, - { 100965, true }, - { 100984, true }, - { 100997, true }, - { 101010, true }, - { 101029, true }, - { 101046, true }, - { 101071, true }, - { 101103, true }, - { 101115, true }, - { 101139, true }, - { 101162, true }, - { 101194, true }, - { 101219, true }, - { 101232, true }, - { 101258, true }, - { 101277, true }, - { 101291, true }, - { 101305, true }, - { 101318, true }, - { 101333, true }, - { 101348, true }, - { 101362, true }, - { 101376, false }, - { 101396, true }, - { 101409, true }, - { 101426, true }, - { 101441, true }, - { 101458, true }, - { 101467, true }, - { 101476, true }, - { 101492, true }, - { 101512, true }, + { 100825, true }, + { 100844, true }, + { 100857, true }, + { 100870, true }, + { 100889, true }, + { 100906, true }, + { 100931, true }, + { 100963, true }, + { 100977, true }, + { 100989, true }, + { 101013, true }, + { 101036, true }, + { 101068, true }, + { 101093, true }, + { 101106, true }, + { 101132, true }, + { 101151, true }, + { 101165, true }, + { 101179, true }, + { 101192, true }, + { 101207, true }, + { 101222, true }, + { 101236, true }, + { 101250, false }, + { 101270, true }, + { 101283, true }, + { 101300, true }, + { 101315, true }, + { 101332, true }, + { 101341, true }, + { 101350, true }, + { 101366, true }, + { 101386, true }, + { 101405, true }, + { 101414, true }, + { 101423, true }, + { 101434, true }, + { 101443, true }, + { 101451, true }, + { 101460, true }, + { 101471, true }, + { 101484, true }, + { 101496, true }, + { 101509, true }, + { 101518, true }, { 101531, true }, - { 101540, true }, - { 101549, true }, - { 101560, true }, - { 101569, true }, - { 101577, true }, - { 101586, true }, - { 101597, true }, - { 101610, true }, - { 101622, true }, - { 101635, true }, - { 101644, true }, - { 101657, true }, - { 101667, true }, - { 101680, true }, - { 101693, true }, - { 101704, true }, - { 101715, true }, - { 101726, true }, - { 101735, true }, - { 101744, true }, - { 101754, true }, - { 101771, true }, - { 101788, true }, - { 101797, true }, - { 101812, true }, - { 101831, true }, - { 101843, true }, - { 101856, true }, - { 101873, true }, - { 101882, true }, - { 101896, true }, - { 101919, true }, - { 101930, true }, - { 101947, true }, - { 101961, true }, - { 101972, true }, - { 101989, true }, + { 101541, true }, + { 101554, true }, + { 101567, true }, + { 101578, true }, + { 101589, true }, + { 101600, true }, + { 101609, true }, + { 101618, true }, + { 101628, true }, + { 101645, true }, + { 101662, true }, + { 101671, true }, + { 101686, true }, + { 101705, true }, + { 101717, true }, + { 101730, true }, + { 101747, false }, + { 101760, true }, + { 101769, true }, + { 101783, true }, + { 101806, false }, + { 101818, true }, + { 101829, true }, + { 101846, true }, + { 101860, true }, + { 101871, true }, + { 101888, true }, + { 101909, true }, + { 101920, true }, + { 101931, true }, + { 101938, true }, + { 101949, true }, + { 101956, true }, + { 101966, true }, + { 101978, true }, + { 101988, true }, + { 101997, true }, { 102010, true }, - { 102021, true }, - { 102032, true }, + { 102022, true }, { 102039, true }, - { 102050, true }, - { 102057, true }, + { 102053, true }, { 102067, true }, - { 102079, true }, - { 102089, true }, - { 102098, true }, - { 102111, true }, - { 102123, true }, - { 102140, true }, - { 102154, true }, + { 102074, true }, + { 102081, true }, + { 102088, true }, + { 102097, true }, + { 102106, true }, + { 102114, true }, + { 102124, true }, + { 102142, true }, + { 102156, true }, { 102168, true }, - { 102175, true }, - { 102182, true }, - { 102189, true }, - { 102198, true }, - { 102207, true }, - { 102215, true }, + { 102179, true }, + { 102190, true }, + { 102201, true }, + { 102214, true }, { 102225, true }, - { 102243, true }, - { 102257, true }, - { 102269, true }, - { 102280, true }, - { 102291, true }, - { 102302, true }, - { 102315, true }, - { 102326, true }, - { 102335, true }, - { 102352, true }, - { 102363, true }, - { 102379, true }, - { 102386, true }, - { 102393, true }, - { 102407, true }, - { 102415, true }, - { 102422, true }, - { 102433, true }, + { 102234, true }, + { 102251, true }, + { 102262, true }, + { 102278, true }, + { 102285, true }, + { 102292, true }, + { 102306, true }, + { 102314, true }, + { 102321, true }, + { 102332, true }, + { 102338, true }, + { 102351, true }, + { 102364, true }, + { 102374, true }, + { 102384, true }, + { 102397, true }, + { 102411, true }, + { 102426, true }, { 102439, true }, - { 102452, true }, - { 102465, true }, - { 102475, true }, - { 102485, true }, - { 102498, true }, + { 102448, true }, + { 102467, true }, + { 102492, false }, + { 102504, true }, { 102512, true }, - { 102527, true }, - { 102540, true }, - { 102549, true }, - { 102568, true }, - { 102593, false }, - { 102605, true }, - { 102613, true }, - { 102627, true }, - { 102640, true }, + { 102526, true }, + { 102539, true }, + { 102554, true }, + { 102573, true }, + { 102586, true }, + { 102601, true }, + { 102614, true }, + { 102625, true }, + { 102638, true }, { 102655, true }, - { 102674, true }, - { 102687, true }, - { 102702, true }, - { 102715, true }, - { 102726, true }, - { 102739, true }, - { 102756, true }, - { 102770, false }, - { 102789, true }, - { 102804, true }, - { 102818, true }, - { 102834, true }, - { 102850, true }, - { 102870, true }, - { 102888, true }, - { 102898, true }, - { 102907, true }, - { 102923, true }, - { 102938, true }, - { 102958, true }, - { 102977, true }, - { 102994, true }, - { 103010, true }, - { 103030, true }, - { 103043, true }, - { 103057, false }, - { 103070, true }, - { 103080, true }, - { 103092, true }, - { 103109, true }, - { 103124, true }, - { 103147, true }, - { 103164, true }, - { 103178, true }, - { 103190, true }, - { 103205, true }, - { 103222, true }, - { 103236, true }, - { 103251, true }, - { 103260, true }, - { 103275, true }, - { 103293, true }, + { 102669, false }, + { 102688, true }, + { 102703, true }, + { 102717, true }, + { 102733, true }, + { 102749, true }, + { 102769, true }, + { 102787, true }, + { 102797, true }, + { 102806, true }, + { 102822, true }, + { 102837, true }, + { 102857, true }, + { 102876, true }, + { 102893, true }, + { 102909, true }, + { 102929, true }, + { 102942, true }, + { 102956, false }, + { 102969, true }, + { 102979, true }, + { 102991, true }, + { 103008, true }, + { 103023, true }, + { 103046, true }, + { 103063, true }, + { 103077, true }, + { 103089, true }, + { 103104, true }, + { 103121, true }, + { 103135, true }, + { 103150, true }, + { 103159, true }, + { 103174, true }, + { 103192, true }, + { 103206, true }, + { 103223, true }, + { 103233, true }, + { 103244, true }, + { 103254, true }, + { 103269, true }, + { 103283, true }, + { 103296, true }, { 103307, true }, { 103324, true }, - { 103334, true }, - { 103345, true }, - { 103355, true }, - { 103370, true }, - { 103384, true }, - { 103397, true }, - { 103408, true }, - { 103425, true }, - { 103439, true }, + { 103338, true }, + { 103348, true }, + { 103360, true }, + { 103378, true }, + { 103392, true }, + { 103404, false }, + { 103419, true }, + { 103438, true }, { 103449, true }, { 103461, true }, { 103479, true }, - { 103493, true }, - { 103505, false }, - { 103520, true }, - { 103539, true }, - { 103550, true }, - { 103562, true }, - { 103580, true }, - { 103593, true }, - { 103610, true }, - { 103626, true }, - { 103645, true }, + { 103492, true }, + { 103509, true }, + { 103525, true }, + { 103544, true }, + { 103561, true }, + { 103579, true }, + { 103601, true }, + { 103620, true }, + { 103633, true }, + { 103649, true }, { 103662, true }, - { 103680, true }, - { 103702, true }, - { 103721, true }, - { 103734, true }, - { 103750, true }, - { 103763, true }, - { 103778, true }, - { 103786, true }, - { 103799, true }, - { 103813, true }, - { 103827, true }, - { 103838, true }, + { 103677, true }, + { 103685, true }, + { 103698, true }, + { 103712, true }, + { 103726, true }, + { 103737, true }, + { 103747, true }, + { 103765, true }, + { 103783, true }, + { 103796, true }, + { 103804, true }, + { 103812, true }, + { 103825, true }, + { 103837, true }, { 103848, true }, - { 103866, true }, + { 103863, true }, + { 103873, true }, { 103884, true }, - { 103897, true }, - { 103905, true }, - { 103913, true }, - { 103926, true }, - { 103938, true }, - { 103949, true }, - { 103964, true }, - { 103974, true }, - { 103985, true }, - { 103993, true }, - { 104008, true }, - { 104015, true }, - { 104031, true }, - { 104053, true }, - { 104069, true }, - { 104078, true }, - { 104088, true }, - { 104100, true }, - { 104113, true }, - { 104131, true }, - { 104145, true }, - { 104164, true }, - { 104178, true }, - { 104191, true }, - { 104207, false }, - { 104224, true }, - { 104245, true }, - { 104264, true }, - { 104283, true }, - { 104302, false }, - { 104318, true }, - { 104333, true }, - { 104343, true }, - { 104353, true }, - { 104362, true }, + { 103892, true }, + { 103907, true }, + { 103914, true }, + { 103930, true }, + { 103952, true }, + { 103968, true }, + { 103977, true }, + { 103987, true }, + { 103999, true }, + { 104012, true }, + { 104030, true }, + { 104044, true }, + { 104063, true }, + { 104077, true }, + { 104090, true }, + { 104106, false }, + { 104123, true }, + { 104144, true }, + { 104163, true }, + { 104182, true }, + { 104201, false }, + { 104217, true }, + { 104232, true }, + { 104242, true }, + { 104252, true }, + { 104261, true }, + { 104274, true }, + { 104284, false }, + { 104302, true }, + { 104324, true }, + { 104341, true }, + { 104357, true }, { 104375, true }, - { 104385, false }, - { 104403, true }, - { 104425, true }, - { 104442, true }, - { 104458, true }, - { 104476, true }, - { 104487, true }, + { 104386, true }, + { 104402, true }, + { 104420, true }, + { 104435, false }, + { 104449, true }, + { 104466, true }, + { 104484, true }, { 104503, true }, - { 104521, true }, - { 104536, false }, - { 104550, true }, - { 104567, true }, - { 104585, true }, - { 104604, true }, - { 104615, true }, - { 104631, true }, - { 104648, true }, - { 104664, true }, + { 104514, true }, + { 104530, true }, + { 104547, true }, + { 104563, true }, + { 104576, true }, + { 104594, true }, + { 104605, true }, + { 104622, true }, + { 104644, false }, + { 104661, true }, { 104677, true }, - { 104695, true }, - { 104706, true }, - { 104723, true }, - { 104745, false }, - { 104762, true }, - { 104778, true }, - { 104792, true }, - { 104804, true }, - { 104826, false }, - { 104841, true }, - { 104853, true }, - { 104861, true }, - { 104874, true }, - { 104889, true }, - { 104904, true }, - { 104914, true }, + { 104691, true }, + { 104703, true }, + { 104725, false }, + { 104740, true }, + { 104752, true }, + { 104760, true }, + { 104773, true }, + { 104788, true }, + { 104803, true }, + { 104813, true }, + { 104824, true }, + { 104836, true }, + { 104845, true }, + { 104855, true }, + { 104865, true }, + { 104879, true }, + { 104893, true }, + { 104904, false }, + { 104917, true }, { 104925, true }, - { 104937, true }, - { 104946, true }, - { 104956, true }, - { 104966, true }, + { 104939, true }, + { 104948, true }, + { 104961, true }, + { 104970, true }, { 104980, true }, - { 104994, true }, - { 105005, false }, - { 105018, true }, - { 105026, true }, - { 105040, true }, - { 105049, true }, - { 105062, true }, - { 105071, true }, - { 105081, true }, - { 105094, true }, - { 105114, false }, - { 105124, true }, - { 105140, true }, - { 105153, true }, - { 105166, true }, - { 105177, true }, - { 105186, true }, + { 104993, true }, + { 105013, false }, + { 105023, true }, + { 105039, true }, + { 105052, true }, + { 105065, true }, + { 105076, true }, + { 105085, true }, + { 105092, true }, + { 105108, true }, + { 105121, true }, + { 105134, true }, + { 105147, true }, + { 105162, true }, + { 105173, true }, { 105193, true }, - { 105209, true }, - { 105222, true }, - { 105235, true }, - { 105248, true }, - { 105263, true }, - { 105274, true }, - { 105294, true }, - { 105306, true }, - { 105313, true }, - { 105320, true }, - { 105329, true }, - { 105338, true }, - { 105347, true }, - { 105358, true }, - { 105372, true }, - { 105385, true }, - { 105393, true }, - { 105412, true }, - { 105423, true }, - { 105435, true }, - { 105449, true }, - { 105460, true }, - { 105476, true }, - { 105490, true }, - { 105505, true }, - { 105515, false }, - { 105529, true }, - { 105539, true }, - { 105554, false }, - { 105570, true }, - { 105582, true }, + { 105205, true }, + { 105212, true }, + { 105219, true }, + { 105228, true }, + { 105237, true }, + { 105246, true }, + { 105257, true }, + { 105271, true }, + { 105284, true }, + { 105292, true }, + { 105311, true }, + { 105322, true }, + { 105334, true }, + { 105348, true }, + { 105359, true }, + { 105375, true }, + { 105389, true }, + { 105404, true }, + { 105414, false }, + { 105428, true }, + { 105438, true }, + { 105453, false }, + { 105469, true }, + { 105481, true }, + { 105494, true }, + { 105513, true }, + { 105537, false }, + { 105550, true }, + { 105566, true }, + { 105580, true }, { 105595, true }, { 105614, true }, - { 105638, false }, - { 105651, true }, - { 105667, true }, - { 105681, true }, - { 105696, true }, - { 105715, true }, - { 105732, true }, - { 105749, true }, - { 105759, true }, - { 105774, true }, - { 105788, true }, - { 105801, true }, - { 105817, true }, - { 105832, true }, - { 105848, true }, - { 105862, true }, - { 105877, true }, + { 105631, true }, + { 105648, true }, + { 105658, true }, + { 105673, true }, + { 105687, true }, + { 105700, true }, + { 105716, true }, + { 105731, true }, + { 105747, true }, + { 105761, true }, + { 105776, true }, + { 105790, true }, + { 105805, true }, + { 105824, true }, + { 105839, true }, + { 105854, true }, + { 105872, true }, { 105891, true }, - { 105906, true }, - { 105925, true }, + { 105904, true }, + { 105917, true }, { 105940, true }, - { 105955, true }, - { 105973, true }, - { 105992, true }, - { 106005, true }, - { 106018, true }, + { 105956, true }, + { 105967, true }, + { 105980, true }, + { 105995, true }, + { 106010, true }, + { 106026, true }, { 106041, true }, { 106057, true }, - { 106068, true }, - { 106081, true }, + { 106074, true }, + { 106086, true }, { 106096, true }, - { 106111, true }, - { 106127, true }, - { 106142, true }, - { 106158, true }, - { 106175, true }, - { 106187, true }, - { 106197, true }, - { 106215, true }, - { 106225, true }, - { 106236, true }, + { 106114, true }, + { 106124, true }, + { 106135, true }, + { 106145, true }, + { 106159, true }, + { 106172, true }, + { 106200, true }, + { 106211, true }, + { 106222, true }, + { 106233, true }, { 106246, true }, - { 106260, true }, - { 106273, true }, - { 106301, true }, - { 106312, true }, - { 106323, true }, - { 106334, true }, - { 106347, true }, - { 106360, true }, - { 106377, true }, - { 106391, false }, - { 106408, true }, - { 106422, true }, - { 106439, true }, + { 106259, true }, + { 106276, true }, + { 106290, false }, + { 106307, true }, + { 106321, true }, + { 106338, true }, + { 106355, true }, + { 106367, true }, + { 106378, true }, + { 106392, true }, + { 106404, true }, + { 106420, true }, + { 106446, true }, { 106456, true }, - { 106468, true }, + { 106469, true }, { 106479, true }, - { 106493, true }, - { 106505, true }, - { 106521, true }, - { 106547, true }, - { 106557, true }, - { 106570, true }, - { 106580, true }, - { 106593, true }, - { 106601, true }, - { 106612, true }, - { 106632, true }, - { 106650, true }, - { 106667, true }, - { 106682, true }, - { 106700, true }, - { 106716, true }, - { 106730, true }, - { 106747, true }, - { 106757, true }, - { 106773, true }, - { 106786, true }, - { 106796, false }, - { 106810, true }, - { 106821, true }, + { 106492, true }, + { 106500, true }, + { 106511, true }, + { 106531, true }, + { 106549, true }, + { 106566, true }, + { 106581, true }, + { 106599, true }, + { 106615, true }, + { 106629, true }, + { 106646, true }, + { 106656, true }, + { 106672, true }, + { 106685, true }, + { 106695, false }, + { 106709, true }, + { 106720, true }, + { 106736, true }, + { 106744, true }, + { 106754, true }, + { 106769, true }, + { 106785, true }, + { 106804, true }, + { 106817, true }, { 106837, true }, - { 106845, true }, - { 106855, true }, + { 106852, true }, { 106870, true }, - { 106886, true }, - { 106905, true }, - { 106918, true }, - { 106938, true }, - { 106953, true }, - { 106971, true }, - { 106984, true }, - { 106994, true }, - { 107011, true }, - { 107026, true }, - { 107037, true }, - { 107056, true }, + { 106883, true }, + { 106893, true }, + { 106910, true }, + { 106925, true }, + { 106936, true }, + { 106955, true }, + { 106966, true }, + { 106979, true }, + { 106987, true }, + { 106996, true }, + { 107007, true }, + { 107021, true }, + { 107031, true }, + { 107054, true }, { 107067, true }, - { 107080, true }, - { 107088, true }, - { 107097, true }, - { 107108, true }, - { 107122, true }, + { 107079, false }, + { 107090, true }, + { 107104, true }, { 107132, true }, - { 107155, true }, - { 107168, true }, - { 107180, false }, - { 107191, true }, - { 107205, true }, - { 107233, true }, - { 107242, true }, - { 107257, true }, - { 107276, true }, - { 107300, true }, - { 107315, true }, - { 107335, true }, - { 107353, true }, - { 107366, true }, - { 107382, true }, - { 107397, true }, - { 107410, true }, - { 107424, true }, - { 107435, true }, - { 107446, true }, - { 107460, true }, - { 107472, true }, - { 107489, true }, - { 107499, true }, - { 107512, true }, - { 107527, true }, - { 107535, true }, - { 107555, true }, - { 107566, true }, - { 107576, true }, - { 107592, true }, - { 107601, true }, + { 107141, true }, + { 107156, true }, + { 107175, true }, + { 107199, true }, + { 107214, true }, + { 107234, true }, + { 107252, true }, + { 107265, true }, + { 107281, true }, + { 107296, true }, + { 107309, true }, + { 107323, true }, + { 107334, true }, + { 107345, true }, + { 107359, true }, + { 107371, true }, + { 107388, true }, + { 107398, true }, + { 107411, true }, + { 107426, true }, + { 107434, true }, + { 107454, true }, + { 107465, true }, + { 107475, true }, + { 107491, true }, + { 107500, true }, + { 107511, true }, + { 107524, true }, + { 107534, true }, + { 107546, true }, + { 107561, true }, + { 107570, true }, + { 107584, true }, + { 107597, true }, { 107612, true }, - { 107625, true }, - { 107635, true }, - { 107647, true }, - { 107662, true }, - { 107671, true }, - { 107685, true }, - { 107698, true }, + { 107626, true }, + { 107637, true }, + { 107652, true }, + { 107662, false }, + { 107672, true }, + { 107691, true }, + { 107704, true }, { 107713, true }, - { 107727, true }, + { 107724, true }, { 107738, true }, - { 107753, true }, - { 107763, false }, - { 107773, true }, - { 107792, true }, - { 107805, true }, - { 107814, true }, - { 107825, true }, - { 107839, true }, - { 107859, true }, - { 107875, true }, - { 107886, true }, + { 107758, true }, + { 107774, true }, + { 107785, true }, + { 107801, true }, + { 107818, true }, + { 107833, true }, + { 107854, true }, + { 107867, true }, + { 107884, true }, + { 107894, true }, { 107902, true }, - { 107919, true }, - { 107934, true }, - { 107955, true }, - { 107968, true }, - { 107985, true }, + { 107913, true }, + { 107923, true }, + { 107938, true }, + { 107951, true }, + { 107965, true }, + { 107977, true }, + { 107987, true }, { 107995, true }, - { 108003, true }, { 108014, true }, - { 108024, true }, - { 108039, true }, - { 108052, true }, - { 108066, true }, - { 108078, true }, - { 108088, true }, - { 108096, true }, - { 108115, true }, - { 108135, true }, - { 108144, true }, - { 108158, true }, - { 108172, true }, + { 108034, true }, + { 108043, true }, + { 108057, true }, + { 108071, true }, + { 108113, true }, + { 108129, true }, + { 108138, true }, + { 108150, true }, + { 108162, true }, + { 108175, true }, + { 108188, true }, + { 108206, true }, { 108214, true }, - { 108230, true }, - { 108239, true }, - { 108251, true }, - { 108263, true }, - { 108276, true }, - { 108289, true }, - { 108307, true }, - { 108315, true }, - { 108328, true }, + { 108227, true }, + { 108238, true }, + { 108252, true }, + { 108262, true }, + { 108272, true }, + { 108284, true }, + { 108295, true }, + { 108312, true }, + { 108327, true }, { 108339, true }, - { 108353, true }, - { 108363, true }, - { 108373, true }, - { 108385, true }, - { 108396, true }, - { 108413, true }, - { 108428, true }, - { 108440, true }, - { 108453, true }, - { 108465, true }, - { 108480, true }, - { 108493, true }, - { 108505, true }, - { 108515, true }, - { 108531, true }, - { 108540, true }, - { 108561, true }, - { 108574, true }, - { 108592, true }, - { 108607, true }, - { 108621, true }, - { 108639, true }, - { 108657, true }, - { 108669, true }, - { 108680, true }, - { 108698, true }, - { 108709, true }, - { 108723, true }, - { 108743, true }, - { 108756, true }, - { 108768, true }, - { 108788, true }, - { 108797, true }, - { 108806, true }, - { 108813, true }, - { 108828, true }, - { 108843, true }, - { 108862, true }, - { 108886, true }, - { 108897, true }, - { 108911, true }, - { 108923, true }, - { 108936, true }, - { 108949, true }, - { 108960, true }, - { 108973, true }, - { 108985, true }, - { 109008, true }, - { 109017, true }, + { 108352, true }, + { 108364, true }, + { 108379, true }, + { 108392, true }, + { 108404, true }, + { 108414, true }, + { 108430, true }, + { 108439, true }, + { 108460, true }, + { 108473, true }, + { 108491, true }, + { 108506, true }, + { 108520, true }, + { 108538, true }, + { 108556, true }, + { 108568, true }, + { 108579, true }, + { 108597, true }, + { 108608, true }, + { 108622, true }, + { 108642, true }, + { 108655, true }, + { 108667, true }, + { 108687, true }, + { 108696, true }, + { 108705, true }, + { 108712, true }, + { 108727, true }, + { 108742, true }, + { 108761, true }, + { 108785, true }, + { 108796, true }, + { 108810, true }, + { 108822, true }, + { 108835, true }, + { 108848, true }, + { 108859, true }, + { 108872, true }, + { 108884, true }, + { 108907, true }, + { 108916, true }, + { 108933, true }, + { 108946, true }, + { 108958, true }, + { 108969, true }, + { 108984, true }, + { 108998, true }, + { 109006, true }, + { 109020, true }, { 109034, true }, - { 109047, true }, - { 109059, true }, - { 109070, true }, - { 109085, true }, - { 109099, true }, - { 109107, true }, + { 109042, true }, + { 109055, true }, + { 109066, true }, + { 109078, true }, + { 109089, true }, + { 109113, true }, { 109121, true }, - { 109135, true }, - { 109143, true }, - { 109156, true }, - { 109167, true }, - { 109179, true }, - { 109190, true }, - { 109214, true }, - { 109222, true }, - { 109232, true }, + { 109131, true }, + { 109141, true }, + { 109158, true }, + { 109176, true }, + { 109194, true }, + { 109204, true }, + { 109228, true }, { 109242, true }, - { 109259, true }, - { 109277, true }, - { 109295, true }, - { 109305, true }, - { 109329, true }, - { 109343, true }, - { 109362, true }, - { 109374, true }, - { 109393, true }, - { 109410, true }, - { 109420, true }, - { 109435, true }, - { 109455, true }, - { 109467, true }, - { 109479, true }, - { 109492, true }, - { 109501, true }, - { 109510, true }, - { 109519, true }, - { 109538, true }, - { 109550, true }, - { 109560, true }, - { 109569, true }, - { 109584, true }, - { 109599, false }, - { 109617, true }, - { 109628, true }, - { 109640, true }, - { 109656, true }, - { 109671, true }, - { 109687, true }, - { 109713, true }, - { 109724, true }, + { 109261, true }, + { 109273, true }, + { 109292, true }, + { 109309, true }, + { 109319, true }, + { 109334, true }, + { 109354, true }, + { 109366, true }, + { 109378, true }, + { 109391, true }, + { 109400, true }, + { 109409, true }, + { 109418, true }, + { 109437, true }, + { 109449, true }, + { 109459, true }, + { 109468, true }, + { 109483, true }, + { 109498, false }, + { 109516, true }, + { 109527, true }, + { 109539, true }, + { 109555, true }, + { 109570, true }, + { 109586, true }, + { 109612, true }, + { 109623, true }, + { 109638, true }, + { 109653, true }, + { 109668, true }, + { 109686, true }, + { 109696, true }, + { 109711, true }, + { 109726, true }, { 109739, true }, - { 109754, true }, - { 109769, true }, - { 109787, true }, - { 109797, true }, - { 109812, true }, - { 109827, true }, - { 109840, true }, - { 109856, true }, - { 109879, true }, - { 109892, true }, - { 109905, true }, - { 109918, true }, - { 109937, true }, - { 109953, true }, + { 109755, true }, + { 109778, true }, + { 109791, true }, + { 109804, true }, + { 109817, true }, + { 109836, true }, + { 109852, true }, + { 109867, true }, + { 109881, true }, + { 109893, false }, + { 109912, true }, + { 109927, true }, + { 109945, true }, + { 109956, true }, { 109968, true }, - { 109982, true }, - { 109994, false }, - { 110013, true }, - { 110031, true }, - { 110042, true }, - { 110054, true }, - { 110065, true }, - { 110078, true }, + { 109979, true }, + { 109992, true }, + { 110015, true }, + { 110030, true }, + { 110045, true }, + { 110059, true }, + { 110076, false }, + { 110090, true }, { 110101, true }, - { 110116, true }, - { 110131, true }, - { 110145, true }, - { 110162, false }, - { 110176, true }, - { 110187, true }, - { 110195, true }, - { 110211, true }, - { 110224, true }, - { 110234, true }, - { 110245, true }, - { 110253, true }, - { 110270, true }, - { 110285, true }, - { 110295, true }, - { 110305, true }, - { 110316, true }, - { 110327, true }, - { 110347, true }, - { 110362, true }, - { 110379, true }, - { 110393, true }, - { 110409, true }, - { 110419, true }, - { 110430, true }, - { 110449, true }, - { 110460, true }, - { 110482, true }, - { 110496, true }, - { 110507, true }, - { 110520, true }, - { 110530, true }, - { 110548, true }, - { 110565, true }, - { 110579, true }, - { 110591, true }, - { 110607, true }, - { 110621, true }, - { 110632, true }, - { 110642, true }, - { 110654, true }, + { 110109, true }, + { 110125, true }, + { 110138, true }, + { 110148, true }, + { 110159, true }, + { 110167, true }, + { 110184, true }, + { 110199, true }, + { 110209, true }, + { 110219, true }, + { 110230, true }, + { 110241, true }, + { 110261, true }, + { 110276, true }, + { 110293, true }, + { 110307, true }, + { 110323, true }, + { 110333, true }, + { 110344, true }, + { 110363, true }, + { 110374, true }, + { 110396, true }, + { 110410, true }, + { 110421, true }, + { 110434, true }, + { 110444, true }, + { 110462, true }, + { 110479, true }, + { 110493, true }, + { 110505, true }, + { 110521, true }, + { 110535, true }, + { 110546, true }, + { 110556, true }, + { 110568, true }, + { 110588, true }, + { 110615, true }, + { 110631, true }, + { 110646, true }, + { 110658, true }, { 110674, true }, - { 110701, true }, - { 110717, true }, - { 110732, true }, - { 110744, true }, - { 110760, true }, - { 110772, true }, - { 110789, true }, - { 110809, true }, - { 110819, true }, - { 110836, true }, - { 110850, true }, - { 110867, true }, - { 110879, true }, - { 110892, false }, - { 110906, true }, - { 110929, false }, - { 110943, true }, - { 110955, true }, + { 110686, true }, + { 110703, true }, + { 110723, true }, + { 110733, true }, + { 110750, true }, + { 110764, true }, + { 110781, true }, + { 110793, true }, + { 110806, false }, + { 110820, true }, + { 110843, false }, + { 110857, true }, + { 110869, true }, + { 110880, true }, + { 110892, true }, + { 110910, true }, + { 110923, true }, + { 110938, true }, + { 110956, true }, { 110966, true }, { 110978, true }, - { 110996, true }, - { 111009, true }, - { 111024, true }, - { 111042, true }, - { 111052, true }, - { 111064, true }, - { 111097, true }, - { 111107, true }, - { 111116, true }, - { 111135, true }, - { 111147, true }, - { 111161, true }, - { 111182, true }, - { 111196, true }, + { 111011, true }, + { 111021, true }, + { 111030, true }, + { 111049, true }, + { 111061, true }, + { 111075, true }, + { 111096, true }, + { 111110, true }, + { 111124, true }, + { 111142, true }, + { 111160, true }, + { 111178, true }, + { 111190, true }, + { 111202, true }, { 111210, true }, - { 111228, true }, - { 111246, true }, - { 111264, true }, - { 111276, true }, + { 111224, true }, + { 111240, true }, + { 111255, true }, + { 111269, true }, + { 111278, true }, { 111288, true }, - { 111296, true }, - { 111310, true }, - { 111326, true }, - { 111341, true }, - { 111355, true }, - { 111364, true }, - { 111374, true }, - { 111386, true }, - { 111401, true }, - { 111413, true }, - { 111436, true }, - { 111448, true }, - { 111461, true }, - { 111469, true }, - { 111480, true }, - { 111489, true }, - { 111497, true }, - { 111510, true }, - { 111533, true }, - { 111545, true }, - { 111561, true }, - { 111584, true }, - { 111595, true }, - { 111611, true }, - { 111627, true }, - { 111642, true }, - { 111655, true }, - { 111665, true }, - { 111672, true }, - { 111685, true }, - { 111702, true }, - { 111725, true }, - { 111742, true }, + { 111300, true }, + { 111315, true }, + { 111327, true }, + { 111350, true }, + { 111362, true }, + { 111375, true }, + { 111383, true }, + { 111394, true }, + { 111403, true }, + { 111411, true }, + { 111424, true }, + { 111447, true }, + { 111459, true }, + { 111475, true }, + { 111498, true }, + { 111509, true }, + { 111525, true }, + { 111541, true }, + { 111556, true }, + { 111569, true }, + { 111579, true }, + { 111586, true }, + { 111599, true }, + { 111616, true }, + { 111639, true }, + { 111656, true }, + { 111674, true }, + { 111703, true }, + { 111720, true }, + { 111736, true }, + { 111746, true }, { 111760, true }, - { 111789, true }, - { 111806, true }, - { 111822, true }, - { 111832, true }, - { 111846, true }, - { 111860, true }, + { 111774, true }, + { 111786, true }, + { 111795, true }, + { 111811, true }, + { 111828, true }, + { 111844, false }, + { 111859, true }, { 111872, true }, - { 111881, true }, - { 111897, true }, - { 111914, true }, - { 111930, false }, - { 111945, true }, - { 111958, true }, + { 111883, true }, + { 111901, true }, + { 111915, true }, + { 111933, true }, + { 111951, true }, + { 111959, true }, { 111969, true }, + { 111977, true }, { 111987, true }, - { 112001, true }, - { 112019, true }, - { 112037, true }, - { 112045, true }, - { 112055, true }, - { 112063, true }, + { 111998, true }, + { 112008, true }, + { 112022, true }, + { 112030, true }, + { 112042, true }, + { 112056, true }, { 112074, true }, - { 112084, true }, - { 112098, true }, - { 112106, true }, - { 112118, true }, + { 112083, true }, + { 112094, true }, + { 112109, true }, + { 112117, true }, { 112132, true }, { 112150, true }, - { 112159, true }, - { 112170, true }, - { 112185, true }, - { 112193, true }, - { 112208, true }, - { 112226, true }, - { 112238, true }, - { 112248, true }, - { 112259, true }, - { 112273, true }, - { 112285, true }, - { 112296, false }, - { 112312, false }, - { 112333, true }, - { 112350, true }, - { 112368, true }, + { 112168, true }, + { 112180, true }, + { 112190, true }, + { 112201, true }, + { 112215, true }, + { 112227, true }, + { 112238, false }, + { 112254, false }, + { 112275, true }, + { 112292, true }, + { 112310, true }, + { 112327, true }, + { 112344, true }, + { 112358, true }, + { 112370, true }, { 112385, true }, - { 112402, true }, - { 112416, true }, - { 112428, true }, - { 112443, true }, - { 112451, true }, - { 112464, true }, - { 112482, true }, - { 112506, true }, - { 112523, true }, - { 112538, true }, - { 112551, true }, - { 112564, true }, - { 112578, true }, - { 112590, true }, - { 112601, true }, + { 112393, true }, + { 112406, true }, + { 112424, true }, + { 112448, true }, + { 112465, true }, + { 112480, true }, + { 112493, false }, + { 112509, true }, + { 112522, true }, + { 112536, true }, + { 112548, true }, + { 112559, true }, + { 112570, true }, + { 112580, true }, + { 112591, false }, { 112612, true }, - { 112622, true }, - { 112633, false }, - { 112654, true }, - { 112665, true }, - { 112679, true }, - { 112691, true }, - { 112705, true }, + { 112623, true }, + { 112637, true }, + { 112649, true }, + { 112663, true }, + { 112681, true }, + { 112695, true }, + { 112706, true }, { 112723, true }, - { 112737, true }, - { 112748, true }, + { 112734, true }, + { 112754, true }, { 112765, true }, - { 112776, true }, - { 112796, true }, - { 112807, true }, - { 112821, true }, - { 112835, true }, - { 112848, true }, - { 112859, true }, - { 112878, true }, - { 112894, true }, - { 112907, true }, - { 112915, true }, - { 112929, true }, - { 112942, true }, - { 112954, true }, - { 112967, true }, - { 112979, true }, - { 112991, true }, - { 113006, true }, + { 112779, true }, + { 112793, true }, + { 112806, true }, + { 112817, true }, + { 112836, true }, + { 112852, true }, + { 112865, true }, + { 112873, true }, + { 112887, true }, + { 112900, true }, + { 112912, true }, + { 112925, true }, + { 112937, true }, + { 112949, true }, + { 112964, true }, + { 112974, true }, + { 112989, true }, + { 113003, true }, { 113016, true }, - { 113031, true }, - { 113045, true }, - { 113058, true }, - { 113068, false }, - { 113079, true }, - { 113101, true }, - { 113115, true }, - { 113128, true }, - { 113138, true }, - { 113148, true }, - { 113162, true }, - { 113173, true }, - { 113183, true }, - { 113194, true }, - { 113205, true }, - { 113218, true }, - { 113230, true }, - { 113240, true }, - { 113252, true }, + { 113026, false }, + { 113037, true }, + { 113059, true }, + { 113073, true }, + { 113086, true }, + { 113096, true }, + { 113106, true }, + { 113120, true }, + { 113131, true }, + { 113141, true }, + { 113152, true }, + { 113163, true }, + { 113176, true }, + { 113188, true }, + { 113198, true }, + { 113210, true }, + { 113220, true }, + { 113228, true }, + { 113250, true }, { 113262, true }, - { 113270, true }, - { 113292, true }, - { 113304, true }, - { 113313, true }, - { 113329, true }, - { 113338, true }, - { 113350, true }, - { 113362, true }, - { 113372, true }, - { 113382, true }, - { 113393, true }, - { 113406, false }, - { 113417, true }, - { 113430, false }, - { 113455, true }, - { 113467, true }, - { 113476, true }, - { 113485, true }, - { 113502, true }, - { 113520, true }, - { 113528, true }, - { 113547, true }, - { 113560, true }, - { 113574, true }, - { 113584, true }, - { 113596, true }, - { 113620, true }, - { 113634, true }, - { 113652, true }, - { 113670, true }, - { 113688, true }, - { 113704, true }, - { 113723, true }, - { 113733, true }, - { 113756, true }, - { 113770, false }, - { 113783, true }, - { 113793, true }, - { 113806, true }, - { 113815, true }, - { 113826, true }, - { 113838, false }, - { 113851, true }, - { 113861, true }, - { 113869, true }, - { 113881, true }, - { 113893, true }, - { 113901, true }, - { 113913, true }, - { 113928, true }, + { 113271, true }, + { 113287, true }, + { 113296, true }, + { 113308, true }, + { 113320, true }, + { 113330, true }, + { 113340, true }, + { 113351, true }, + { 113364, false }, + { 113375, true }, + { 113388, false }, + { 113413, true }, + { 113425, true }, + { 113434, true }, + { 113443, true }, + { 113460, true }, + { 113478, true }, + { 113486, true }, + { 113505, true }, + { 113518, true }, + { 113532, true }, + { 113542, true }, + { 113554, true }, + { 113578, true }, + { 113592, true }, + { 113610, true }, + { 113628, true }, + { 113642, true }, + { 113660, true }, + { 113676, true }, + { 113695, true }, + { 113705, true }, + { 113728, true }, + { 113742, false }, + { 113755, true }, + { 113765, true }, + { 113778, true }, + { 113787, true }, + { 113798, true }, + { 113810, false }, + { 113823, true }, + { 113833, true }, + { 113841, true }, + { 113853, true }, + { 113865, true }, + { 113873, true }, + { 113885, true }, + { 113900, true }, + { 113909, true }, + { 113915, true }, + { 113927, true }, { 113937, true }, - { 113943, true }, - { 113955, true }, - { 113965, true }, - { 113974, true }, - { 113984, true }, - { 113991, false }, - { 114006, true }, + { 113946, true }, + { 113956, true }, + { 113963, false }, + { 113978, true }, + { 113996, true }, + { 114011, true }, { 114024, true }, - { 114039, true }, - { 114052, true }, - { 114066, true }, - { 114078, true }, - { 114092, true }, - { 114105, true }, - { 114116, true }, - { 114125, true }, - { 114140, true }, - { 114159, true }, - { 114169, true }, - { 114182, true }, - { 114190, true }, - { 114203, true }, - { 114215, true }, - { 114228, true }, - { 114248, true }, - { 114267, true }, - { 114284, true }, + { 114038, true }, + { 114050, true }, + { 114064, true }, + { 114077, true }, + { 114088, true }, + { 114097, true }, + { 114112, true }, + { 114131, true }, + { 114141, true }, + { 114154, true }, + { 114162, true }, + { 114175, true }, + { 114187, true }, + { 114200, true }, + { 114220, true }, + { 114239, true }, + { 114256, true }, + { 114268, true }, + { 114283, true }, { 114296, true }, - { 114311, true }, - { 114324, true }, - { 114336, true }, - { 114355, true }, - { 114363, true }, - { 114382, true }, - { 114400, true }, - { 114422, true }, - { 114438, true }, - { 114449, true }, - { 114464, true }, - { 114474, true }, - { 114488, true }, - { 114503, false }, - { 114514, true }, + { 114308, true }, + { 114327, true }, + { 114335, true }, + { 114354, true }, + { 114372, true }, + { 114394, true }, + { 114410, true }, + { 114421, true }, + { 114436, true }, + { 114446, true }, + { 114460, true }, + { 114475, false }, + { 114486, true }, + { 114505, true }, + { 114514, false }, + { 114525, true }, { 114533, true }, - { 114542, false }, - { 114553, true }, - { 114561, true }, - { 114569, true }, + { 114541, true }, + { 114557, true }, + { 114566, true }, + { 114574, true }, { 114585, true }, - { 114594, true }, - { 114602, true }, - { 114613, true }, + { 114597, true }, + { 114611, true }, { 114625, true }, - { 114639, true }, - { 114653, true }, - { 114664, true }, - { 114673, true }, - { 114689, true }, - { 114711, true }, - { 114723, true }, - { 114741, true }, - { 114748, true }, - { 114760, true }, + { 114636, true }, + { 114645, true }, + { 114661, true }, + { 114683, true }, + { 114695, true }, + { 114713, true }, + { 114720, true }, + { 114732, true }, + { 114742, true }, + { 114758, true }, { 114770, true }, - { 114786, true }, - { 114798, true }, - { 114816, true }, - { 114834, true }, - { 114854, true }, - { 114864, true }, - { 114887, true }, - { 114942, true }, - { 114954, true }, + { 114788, true }, + { 114806, true }, + { 114826, true }, + { 114836, true }, + { 114859, true }, + { 114914, true }, + { 114926, true }, + { 114941, true }, + { 114951, true }, { 114969, true }, - { 114979, true }, - { 114997, true }, - { 115012, true }, + { 114984, true }, + { 114997, false }, + { 115011, true }, { 115025, false }, - { 115039, true }, - { 115053, false }, - { 115069, true }, - { 115094, true }, - { 115104, true }, - { 115115, true }, - { 115127, true }, - { 115149, true }, - { 115172, true }, - { 115182, true }, - { 115192, true }, - { 115215, true }, - { 115228, false }, - { 115242, true }, - { 115260, true }, - { 115271, true }, - { 115282, true }, - { 115301, true }, - { 115317, true }, - { 115330, true }, - { 115355, true }, - { 115369, true }, - { 115382, true }, - { 115411, true }, - { 115424, true }, - { 115434, true }, - { 115446, true }, - { 115458, true }, - { 115477, true }, - { 115487, true }, - { 115501, true }, - { 115518, true }, - { 115535, true }, + { 115041, true }, + { 115066, true }, + { 115076, true }, + { 115087, true }, + { 115099, true }, + { 115121, true }, + { 115144, true }, + { 115154, true }, + { 115164, true }, + { 115187, true }, + { 115200, false }, + { 115214, true }, + { 115232, true }, + { 115243, true }, + { 115254, true }, + { 115273, true }, + { 115289, true }, + { 115302, true }, + { 115327, true }, + { 115341, true }, + { 115354, true }, + { 115383, true }, + { 115396, true }, + { 115406, true }, + { 115418, true }, + { 115430, true }, + { 115449, true }, + { 115459, true }, + { 115473, true }, + { 115490, true }, + { 115507, true }, + { 115519, true }, + { 115533, true }, { 115547, true }, - { 115561, true }, - { 115575, true }, - { 115585, true }, - { 115602, true }, - { 115614, true }, - { 115625, true }, - { 115641, true }, - { 115656, true }, - { 115668, false }, - { 115677, true }, - { 115697, true }, - { 115717, true }, - { 115733, true }, + { 115557, true }, + { 115574, true }, + { 115586, true }, + { 115597, true }, + { 115613, true }, + { 115628, true }, + { 115640, false }, + { 115649, true }, + { 115669, true }, + { 115689, true }, + { 115705, true }, + { 115719, true }, + { 115732, true }, { 115747, true }, - { 115760, true }, - { 115775, true }, - { 115787, true }, - { 115797, true }, + { 115759, true }, + { 115769, true }, + { 115790, true }, + { 115804, true }, { 115818, true }, - { 115832, true }, - { 115846, true }, - { 115864, true }, - { 115879, true }, - { 115891, true }, - { 115909, true }, - { 115920, true }, - { 115933, true }, - { 115943, true }, - { 115955, true }, - { 115969, true }, - { 115981, true }, - { 116000, true }, - { 116012, true }, - { 116024, true }, - { 116036, true }, - { 116057, true }, - { 116073, true }, - { 116086, true }, - { 116103, true }, - { 116118, true }, - { 116132, true }, - { 116145, true }, - { 116158, true }, - { 116172, true }, - { 116187, true }, - { 116199, true }, - { 116212, true }, - { 116231, true }, - { 116254, false }, - { 116267, true }, - { 116275, true }, - { 116295, false }, - { 116313, true }, + { 115836, true }, + { 115851, true }, + { 115863, true }, + { 115881, true }, + { 115892, true }, + { 115905, true }, + { 115915, true }, + { 115927, true }, + { 115941, true }, + { 115953, true }, + { 115972, true }, + { 115984, true }, + { 115996, true }, + { 116008, true }, + { 116029, true }, + { 116045, true }, + { 116058, true }, + { 116075, true }, + { 116090, true }, + { 116104, true }, + { 116117, true }, + { 116130, true }, + { 116144, true }, + { 116159, true }, + { 116171, true }, + { 116184, true }, + { 116203, true }, + { 116226, false }, + { 116239, true }, + { 116247, true }, + { 116267, false }, + { 116285, true }, + { 116305, true }, + { 116318, true }, { 116333, true }, - { 116346, true }, - { 116361, true }, - { 116376, true }, - { 116391, true }, + { 116348, true }, + { 116363, true }, + { 116377, true }, + { 116392, true }, { 116405, true }, - { 116420, true }, - { 116433, true }, - { 116458, true }, - { 116469, true }, - { 116485, true }, - { 116499, true }, + { 116430, true }, + { 116441, true }, + { 116457, true }, + { 116471, true }, + { 116484, true }, { 116512, true }, - { 116540, true }, - { 116567, true }, + { 116539, true }, + { 116564, true }, { 116592, true }, + { 116606, true }, { 116620, true }, { 116634, true }, - { 116648, true }, - { 116662, true }, - { 116678, true }, - { 116691, true }, - { 116702, true }, - { 116713, true }, - { 116724, true }, + { 116650, true }, + { 116663, true }, + { 116674, true }, + { 116685, true }, + { 116696, true }, + { 116708, true }, { 116736, true }, - { 116764, true }, - { 116774, true }, - { 116784, true }, - { 116801, true }, - { 116818, true }, - { 116828, true }, - { 116851, true }, - { 116861, true }, - { 116870, true }, - { 116892, true }, - { 116904, true }, - { 116915, true }, - { 116927, true }, - { 116939, true }, - { 116950, true }, - { 116968, true }, - { 116983, true }, - { 116993, true }, - { 117002, true }, - { 117020, false }, - { 117031, true }, - { 117042, true }, - { 117052, true }, - { 117060, true }, - { 117074, true }, - { 117086, true }, - { 117098, true }, - { 117116, true }, - { 117136, true }, - { 117151, true }, - { 117168, true }, - { 117184, true }, - { 117197, true }, - { 117208, true }, - { 117223, true }, - { 117244, true }, - { 117260, true }, - { 117273, true }, - { 117298, true }, - { 117314, true }, - { 117323, true }, - { 117343, true }, - { 117358, true }, - { 117369, true }, - { 117380, true }, - { 117394, true }, + { 116746, true }, + { 116756, true }, + { 116773, true }, + { 116790, true }, + { 116800, true }, + { 116823, true }, + { 116833, true }, + { 116842, true }, + { 116864, true }, + { 116876, true }, + { 116887, true }, + { 116899, true }, + { 116911, true }, + { 116922, true }, + { 116940, true }, + { 116955, true }, + { 116965, true }, + { 116974, true }, + { 116992, false }, + { 117003, true }, + { 117014, true }, + { 117024, true }, + { 117032, true }, + { 117046, true }, + { 117058, true }, + { 117070, true }, + { 117088, true }, + { 117108, true }, + { 117123, true }, + { 117140, true }, + { 117156, true }, + { 117169, true }, + { 117180, true }, + { 117195, true }, + { 117216, true }, + { 117232, true }, + { 117245, true }, + { 117270, true }, + { 117286, true }, + { 117295, true }, + { 117315, true }, + { 117330, true }, + { 117341, true }, + { 117352, true }, + { 117366, true }, + { 117378, true }, + { 117395, true }, { 117406, true }, - { 117423, true }, - { 117434, true }, - { 117442, true }, - { 117454, true }, + { 117414, true }, + { 117426, true }, + { 117438, true }, + { 117452, true }, { 117466, true }, - { 117480, true }, - { 117494, true }, - { 117511, true }, - { 117527, true }, - { 117543, true }, - { 117559, true }, - { 117578, true }, - { 117593, true }, - { 117605, true }, - { 117622, false }, - { 117642, true }, - { 117658, true }, - { 117669, true }, - { 117689, true }, - { 117710, true }, - { 117731, false }, - { 117748, true }, - { 117767, true }, + { 117483, true }, + { 117499, true }, + { 117515, true }, + { 117531, true }, + { 117550, true }, + { 117565, true }, + { 117577, true }, + { 117594, false }, + { 117614, true }, + { 117630, true }, + { 117641, true }, + { 117661, true }, + { 117682, true }, + { 117703, false }, + { 117720, true }, + { 117739, true }, + { 117754, true }, + { 117765, true }, { 117782, true }, - { 117793, true }, - { 117810, true }, - { 117818, true }, + { 117790, true }, + { 117817, true }, + { 117828, true }, { 117845, true }, - { 117856, true }, - { 117873, true }, - { 117883, true }, - { 117898, true }, - { 117910, true }, - { 117931, true }, - { 117940, true }, - { 117953, true }, - { 117966, true }, - { 117984, true }, - { 117993, true }, - { 118002, true }, - { 118011, false }, - { 118028, false }, - { 118039, true }, - { 118057, true }, - { 118068, true }, - { 118083, true }, + { 117855, true }, + { 117870, true }, + { 117882, true }, + { 117903, true }, + { 117912, true }, + { 117925, true }, + { 117938, true }, + { 117956, true }, + { 117965, true }, + { 117974, true }, + { 117983, true }, + { 117995, false }, + { 118012, false }, + { 118023, true }, + { 118041, true }, + { 118052, true }, + { 118067, true }, + { 118082, true }, { 118098, true }, - { 118114, true }, - { 118136, true }, - { 118151, true }, - { 118159, true }, - { 118172, true }, - { 118184, true }, - { 118201, true }, - { 118215, true }, - { 118225, true }, - { 118243, true }, - { 118260, true }, - { 118277, true }, - { 118285, true }, - { 118309, true }, - { 118327, true }, - { 118341, true }, - { 118359, true }, - { 118372, true }, - { 118386, true }, - { 118400, true }, - { 118419, true }, - { 118429, true }, - { 118451, true }, - { 118463, true }, - { 118474, true }, - { 118501, true }, - { 118513, true }, - { 118525, true }, - { 118546, true }, - { 118559, true }, - { 118566, true }, - { 118586, true }, - { 118596, true }, + { 118120, true }, + { 118135, true }, + { 118143, true }, + { 118156, true }, + { 118168, true }, + { 118185, true }, + { 118199, true }, + { 118209, true }, + { 118227, true }, + { 118244, true }, + { 118261, true }, + { 118269, true }, + { 118293, true }, + { 118311, true }, + { 118325, true }, + { 118343, true }, + { 118356, true }, + { 118370, true }, + { 118384, true }, + { 118403, true }, + { 118413, true }, + { 118435, true }, + { 118447, true }, + { 118458, true }, + { 118485, true }, + { 118497, true }, + { 118509, true }, + { 118530, true }, + { 118543, true }, + { 118550, true }, + { 118570, true }, + { 118580, true }, + { 118592, true }, { 118608, true }, - { 118624, true }, - { 118634, false }, - { 118651, true }, + { 118618, false }, + { 118635, true }, + { 118646, true }, + { 118653, true }, { 118662, true }, - { 118669, true }, - { 118678, true }, - { 118697, true }, - { 118710, true }, - { 118720, true }, - { 118740, true }, - { 118750, true }, - { 118760, true }, - { 118768, true }, - { 118781, true }, - { 118798, true }, - { 118810, false }, - { 118821, false }, - { 118836, true }, - { 118848, true }, - { 118863, true }, - { 118873, true }, - { 118891, true }, - { 118902, true }, - { 118914, true }, - { 118935, false }, - { 118961, true }, - { 118975, true }, - { 118989, true }, - { 119003, true }, - { 119016, true }, - { 119030, true }, - { 119041, true }, - { 119055, true }, - { 119068, true }, - { 119080, true }, - { 119093, true }, - { 119110, false }, - { 119124, true }, - { 119137, true }, - { 119150, true }, - { 119163, true }, - { 119183, true }, - { 119193, true }, - { 119204, true }, - { 119215, true }, - { 119226, true }, - { 119238, true }, - { 119251, true }, - { 119275, true }, - { 119287, true }, - { 119299, true }, - { 119313, true }, - { 119328, true }, - { 119351, true }, - { 119362, true }, - { 119376, true }, - { 119389, false }, - { 119404, true }, + { 118681, true }, + { 118694, true }, + { 118704, true }, + { 118724, true }, + { 118734, true }, + { 118744, true }, + { 118752, true }, + { 118765, true }, + { 118782, true }, + { 118794, false }, + { 118805, false }, + { 118820, true }, + { 118832, true }, + { 118847, true }, + { 118857, true }, + { 118875, true }, + { 118886, true }, + { 118898, true }, + { 118919, false }, + { 118945, true }, + { 118959, true }, + { 118973, true }, + { 118987, true }, + { 119000, true }, + { 119014, true }, + { 119025, true }, + { 119039, true }, + { 119052, true }, + { 119064, true }, + { 119077, true }, + { 119094, false }, + { 119108, true }, + { 119121, true }, + { 119134, true }, + { 119147, true }, + { 119167, true }, + { 119177, true }, + { 119188, true }, + { 119199, true }, + { 119210, true }, + { 119222, true }, + { 119235, true }, + { 119259, true }, + { 119271, true }, + { 119283, true }, + { 119297, true }, + { 119312, true }, + { 119335, true }, + { 119346, true }, + { 119360, true }, + { 119373, false }, + { 119388, true }, + { 119400, true }, { 119416, true }, - { 119432, true }, - { 119444, true }, - { 119458, true }, - { 119468, true }, - { 119482, true }, - { 119495, true }, - { 119508, true }, - { 119522, true }, - { 119532, true }, - { 119560, true }, - { 119588, true }, - { 119598, true }, - { 119610, true }, - { 119620, true }, - { 119630, true }, + { 119428, true }, + { 119442, true }, + { 119452, true }, + { 119466, true }, + { 119479, true }, + { 119492, true }, + { 119506, true }, + { 119516, true }, + { 119544, true }, + { 119572, true }, + { 119582, true }, + { 119594, true }, + { 119604, true }, + { 119614, true }, + { 119627, true }, { 119643, true }, - { 119659, true }, - { 119672, true }, - { 119688, false }, - { 119703, true }, - { 119721, true }, - { 119740, true }, - { 119748, true }, - { 119761, true }, - { 119776, true }, + { 119656, true }, + { 119672, false }, + { 119687, true }, + { 119705, true }, + { 119724, true }, + { 119732, true }, + { 119745, true }, + { 119760, true }, + { 119774, true }, { 119790, true }, - { 119806, true }, - { 119820, true }, - { 119838, true }, - { 119848, true }, - { 119857, false }, + { 119804, true }, + { 119822, true }, + { 119832, true }, + { 119841, false }, + { 119852, true }, { 119868, true }, - { 119884, true }, - { 119895, true }, - { 119905, true }, - { 119917, true }, - { 119927, true }, - { 119954, true }, - { 119972, true }, - { 119986, true }, - { 119997, true }, - { 120006, true }, - { 120015, true }, - { 120032, false }, - { 120046, true }, + { 119879, true }, + { 119889, true }, + { 119901, true }, + { 119911, true }, + { 119938, true }, + { 119956, true }, + { 119970, true }, + { 119981, true }, + { 119990, true }, + { 119999, true }, + { 120016, false }, + { 120030, true }, + { 120053, true }, { 120069, true }, - { 120085, true }, + { 120090, true }, { 120106, true }, - { 120122, true }, - { 120135, true }, + { 120119, true }, + { 120129, true }, + { 120137, true }, + { 120146, true }, { 120157, true }, - { 120167, true }, - { 120175, true }, - { 120184, true }, - { 120195, true }, - { 120210, true }, - { 120224, true }, - { 120234, true }, - { 120251, true }, - { 120266, true }, - { 120280, true }, - { 120290, true }, - { 120310, true }, - { 120320, true }, - { 120334, true }, - { 120346, true }, - { 120365, true }, - { 120378, true }, - { 120402, false }, - { 120421, true }, - { 120449, true }, - { 120463, true }, - { 120477, true }, - { 120489, true }, - { 120503, true }, - { 120513, true }, - { 120535, true }, - { 120554, true }, - { 120572, true }, - { 120580, true }, - { 120596, true }, - { 120611, true }, - { 120619, true }, - { 120630, true }, - { 120643, true }, - { 120659, true }, - { 120673, true }, - { 120689, true }, - { 120703, true }, - { 120718, true }, - { 120733, true }, - { 120745, true }, - { 120757, true }, - { 120776, true }, - { 120792, false }, - { 120817, true }, + { 120172, true }, + { 120186, true }, + { 120196, true }, + { 120213, true }, + { 120228, true }, + { 120242, true }, + { 120252, true }, + { 120272, true }, + { 120282, true }, + { 120296, true }, + { 120308, true }, + { 120327, true }, + { 120340, true }, + { 120364, false }, + { 120383, true }, + { 120411, true }, + { 120425, true }, + { 120439, true }, + { 120451, true }, + { 120465, true }, + { 120475, true }, + { 120497, true }, + { 120516, true }, + { 120534, true }, + { 120542, true }, + { 120558, true }, + { 120573, true }, + { 120581, true }, + { 120592, true }, + { 120605, true }, + { 120621, true }, + { 120635, true }, + { 120651, true }, + { 120665, true }, + { 120680, true }, + { 120695, true }, + { 120707, true }, + { 120719, true }, + { 120738, true }, + { 120754, false }, + { 120779, true }, + { 120798, true }, + { 120815, true }, + { 120825, true }, { 120836, true }, - { 120853, true }, + { 120848, false }, { 120863, true }, - { 120874, true }, - { 120886, false }, - { 120901, true }, - { 120919, true }, - { 120928, true }, + { 120881, true }, + { 120890, true }, + { 120897, true }, + { 120908, true }, + { 120922, true }, { 120935, true }, - { 120946, true }, - { 120960, true }, - { 120973, true }, - { 120986, true }, - { 120999, true }, - { 121010, true }, - { 121023, true }, - { 121033, true }, - { 121043, true }, - { 121055, true }, + { 120948, true }, + { 120961, true }, + { 120972, true }, + { 120985, true }, + { 120995, true }, + { 121005, true }, + { 121017, true }, + { 121025, true }, + { 121037, true }, + { 121046, true }, + { 121053, true }, { 121063, true }, - { 121075, true }, - { 121084, true }, - { 121091, true }, - { 121101, true }, - { 121112, true }, - { 121122, true }, - { 121140, true }, - { 121158, true }, - { 121172, true }, + { 121074, true }, + { 121092, true }, + { 121110, true }, + { 121124, true }, + { 121138, true }, + { 121161, true }, + { 121171, true }, { 121186, true }, - { 121209, true }, - { 121219, true }, - { 121234, true }, - { 121252, true }, - { 121269, true }, - { 121283, true }, - { 121297, true }, - { 121312, true }, - { 121328, true }, - { 121341, true }, - { 121355, true }, - { 121367, true }, - { 121379, true }, - { 121391, true }, - { 121404, true }, - { 121417, false }, + { 121204, true }, + { 121221, true }, + { 121235, true }, + { 121249, true }, + { 121264, true }, + { 121280, true }, + { 121293, true }, + { 121307, true }, + { 121319, true }, + { 121331, true }, + { 121344, true }, + { 121357, false }, + { 121368, true }, + { 121382, true }, + { 121393, true }, + { 121406, true }, + { 121421, true }, { 121428, true }, - { 121442, true }, - { 121455, true }, - { 121470, true }, - { 121477, true }, - { 121496, true }, - { 121515, true }, - { 121530, true }, + { 121447, true }, + { 121466, true }, + { 121481, true }, + { 121505, false }, + { 121520, true }, + { 121531, true }, { 121554, false }, - { 121569, true }, - { 121580, true }, - { 121603, false }, - { 121614, false }, - { 121625, false }, - { 121637, true }, - { 121651, true }, - { 121664, true }, - { 121677, true }, - { 121690, true }, - { 121712, true }, - { 121722, true }, - { 121742, true }, - { 121760, true }, - { 121774, true }, - { 121791, false }, - { 121806, false }, - { 121822, true }, - { 121839, true }, - { 121850, true }, - { 121872, true }, + { 121565, false }, + { 121576, false }, + { 121588, true }, + { 121602, true }, + { 121615, true }, + { 121628, true }, + { 121641, true }, + { 121663, true }, + { 121673, true }, + { 121693, true }, + { 121711, true }, + { 121725, true }, + { 121742, false }, + { 121757, false }, + { 121773, true }, + { 121790, true }, + { 121801, true }, + { 121823, true }, + { 121837, true }, + { 121857, true }, + { 121867, true }, + { 121878, true }, { 121886, true }, + { 121895, true }, { 121906, true }, { 121916, true }, - { 121927, true }, - { 121935, true }, + { 121931, true }, { 121944, true }, - { 121955, true }, - { 121965, true }, - { 121980, true }, - { 121993, true }, - { 122007, true }, - { 122015, true }, - { 122032, true }, - { 122053, true }, + { 121958, true }, + { 121966, true }, + { 121983, true }, + { 122004, true }, + { 122018, true }, + { 122033, true }, + { 122047, true }, { 122067, true }, { 122082, true }, - { 122096, true }, - { 122116, true }, - { 122131, true }, - { 122142, true }, - { 122154, true }, - { 122173, true }, - { 122186, true }, - { 122197, false }, - { 122213, true }, + { 122093, true }, + { 122105, true }, + { 122124, true }, + { 122137, true }, + { 122149, true }, + { 122160, false }, + { 122176, true }, + { 122189, true }, + { 122203, true }, + { 122216, true }, { 122226, true }, - { 122240, true }, - { 122253, true }, - { 122263, true }, - { 122283, true }, - { 122306, true }, - { 122326, true }, - { 122337, true }, - { 122347, true }, - { 122357, true }, - { 122372, true }, - { 122382, true }, - { 122399, true }, - { 122415, true }, - { 122430, true }, - { 122450, true }, - { 122460, true }, - { 122474, true }, - { 122486, true }, - { 122500, true }, - { 122514, true }, - { 122528, true }, - { 122542, true }, - { 122556, true }, - { 122571, true }, - { 122585, true }, - { 122599, true }, + { 122246, true }, + { 122269, true }, + { 122289, true }, + { 122300, true }, + { 122310, true }, + { 122320, true }, + { 122335, true }, + { 122345, true }, + { 122362, true }, + { 122378, true }, + { 122393, true }, + { 122413, true }, + { 122423, true }, + { 122437, true }, + { 122449, true }, + { 122463, true }, + { 122477, true }, + { 122491, true }, + { 122505, true }, + { 122519, true }, + { 122534, true }, + { 122548, true }, + { 122562, true }, + { 122576, true }, + { 122596, true }, { 122613, true }, - { 122633, true }, - { 122650, true }, - { 122665, true }, - { 122676, true }, - { 122689, true }, - { 122707, true }, - { 122722, true }, - { 122738, true }, - { 122750, true }, - { 122767, true }, - { 122780, true }, - { 122795, true }, - { 122804, false }, - { 122819, true }, - { 122830, true }, - { 122845, true }, - { 122857, true }, - { 122874, true }, - { 122883, true }, - { 122895, true }, - { 122912, false }, - { 122922, true }, - { 122941, true }, - { 122951, true }, - { 122967, true }, - { 122987, true }, - { 123001, true }, - { 123015, true }, - { 123034, true }, - { 123054, true }, - { 123066, true }, - { 123082, true }, - { 123092, true }, - { 123107, true }, - { 123117, true }, - { 123131, true }, - { 123141, true }, - { 123160, true }, + { 122628, true }, + { 122639, true }, + { 122652, true }, + { 122670, true }, + { 122685, true }, + { 122701, true }, + { 122713, true }, + { 122730, true }, + { 122743, true }, + { 122758, true }, + { 122767, false }, + { 122782, true }, + { 122793, true }, + { 122808, true }, + { 122820, true }, + { 122837, true }, + { 122846, true }, + { 122858, true }, + { 122875, false }, + { 122885, true }, + { 122904, true }, + { 122914, true }, + { 122930, true }, + { 122950, true }, + { 122964, true }, + { 122978, true }, + { 122997, true }, + { 123017, true }, + { 123029, true }, + { 123045, true }, + { 123055, true }, + { 123070, true }, + { 123080, true }, + { 123094, true }, + { 123104, true }, + { 123123, true }, + { 123140, true }, + { 123149, true }, + { 123162, true }, { 123177, true }, - { 123186, true }, - { 123199, true }, - { 123214, true }, + { 123191, true }, + { 123210, true }, { 123228, true }, - { 123247, true }, - { 123265, true }, - { 123279, true }, - { 123294, true }, - { 123310, true }, - { 123326, true }, - { 123334, true }, - { 123354, true }, + { 123242, true }, + { 123257, true }, + { 123273, true }, + { 123289, true }, + { 123297, true }, + { 123317, true }, + { 123329, true }, + { 123341, true }, + { 123353, true }, { 123366, true }, - { 123378, true }, - { 123390, true }, - { 123403, true }, - { 123416, true }, - { 123430, true }, - { 123444, true }, - { 123458, false }, - { 123484, true }, - { 123495, true }, - { 123504, true }, - { 123512, true }, - { 123520, true }, - { 123528, true }, - { 123538, true }, - { 123547, true }, - { 123559, true }, - { 123578, true }, - { 123588, true }, - { 123599, true }, - { 123609, true }, + { 123379, true }, + { 123393, true }, + { 123407, true }, + { 123421, false }, + { 123447, true }, + { 123458, true }, + { 123467, true }, + { 123475, true }, + { 123483, true }, + { 123491, true }, + { 123501, true }, + { 123510, true }, + { 123522, true }, + { 123541, true }, + { 123551, true }, + { 123562, true }, + { 123572, true }, + { 123589, true }, + { 123602, true }, + { 123612, true }, { 123626, true }, - { 123639, true }, - { 123649, true }, - { 123663, true }, - { 123674, true }, - { 123692, true }, - { 123710, true }, - { 123724, true }, - { 123734, true }, - { 123748, true }, - { 123755, true }, + { 123637, true }, + { 123655, true }, + { 123673, true }, + { 123687, true }, + { 123697, true }, + { 123711, true }, + { 123718, true }, + { 123728, true }, + { 123743, true }, { 123765, true }, - { 123780, true }, + { 123773, true }, + { 123783, true }, { 123802, true }, - { 123810, true }, - { 123820, true }, - { 123839, true }, - { 123851, true }, - { 123861, true }, - { 123871, true }, - { 123881, true }, - { 123892, true }, - { 123905, true }, - { 123913, true }, - { 123927, true }, - { 123937, true }, - { 123948, true }, + { 123814, true }, + { 123824, true }, + { 123834, true }, + { 123844, true }, + { 123855, true }, + { 123868, true }, + { 123876, true }, + { 123890, true }, + { 123900, true }, + { 123911, true }, + { 123918, true }, + { 123926, true }, + { 123944, true }, { 123955, true }, - { 123963, true }, - { 123981, true }, - { 123992, true }, - { 124008, false }, - { 124023, true }, - { 124033, true }, - { 124042, true }, - { 124050, true }, - { 124059, true }, - { 124068, true }, - { 124088, true }, - { 124097, false }, - { 124108, true }, - { 124120, false }, - { 124134, true }, - { 124150, true }, - { 124163, true }, + { 123971, false }, + { 123986, true }, + { 123996, true }, + { 124005, true }, + { 124013, true }, + { 124022, true }, + { 124031, true }, + { 124051, true }, + { 124060, false }, + { 124071, true }, + { 124083, false }, + { 124097, true }, + { 124113, true }, + { 124126, true }, + { 124139, true }, + { 124151, true }, + { 124166, true }, { 124176, true }, { 124188, true }, - { 124203, true }, - { 124213, true }, - { 124225, true }, - { 124237, true }, - { 124248, true }, - { 124259, true }, - { 124271, true }, - { 124294, true }, - { 124304, true }, - { 124314, true }, + { 124200, true }, + { 124211, true }, + { 124222, true }, + { 124234, true }, + { 124257, true }, + { 124267, true }, + { 124277, true }, + { 124293, true }, + { 124308, true }, + { 124321, true }, { 124330, true }, { 124345, true }, { 124358, true }, - { 124367, true }, - { 124382, true }, - { 124395, true }, - { 124408, true }, - { 124423, true }, - { 124433, true }, - { 124450, true }, - { 124466, true }, - { 124480, false }, - { 124490, true }, - { 124501, true }, - { 124511, true }, + { 124371, true }, + { 124386, true }, + { 124396, true }, + { 124413, true }, + { 124429, true }, + { 124443, false }, + { 124453, true }, + { 124464, true }, + { 124474, true }, + { 124488, true }, + { 124499, true }, + { 124512, true }, { 124525, true }, - { 124536, true }, - { 124549, true }, - { 124562, true }, - { 124579, true }, - { 124591, true }, - { 124608, true }, - { 124626, true }, - { 124637, true }, - { 124650, true }, - { 124671, true }, - { 124682, true }, - { 124706, true }, - { 124721, true }, - { 124746, true }, - { 124754, true }, - { 124770, false }, - { 124785, true }, - { 124797, true }, - { 124809, true }, - { 124823, true }, - { 124837, true }, - { 124851, true }, - { 124865, true }, - { 124882, true }, + { 124542, true }, + { 124554, true }, + { 124571, true }, + { 124589, true }, + { 124600, true }, + { 124613, true }, + { 124634, true }, + { 124645, true }, + { 124669, true }, + { 124684, true }, + { 124709, true }, + { 124717, true }, + { 124733, false }, + { 124748, true }, + { 124760, true }, + { 124772, true }, + { 124786, true }, + { 124800, true }, + { 124814, true }, + { 124828, true }, + { 124845, true }, + { 124872, true }, + { 124889, true }, { 124909, true }, - { 124926, true }, - { 124946, true }, - { 124958, true }, - { 124968, true }, - { 124982, true }, - { 125004, true }, - { 125018, true }, - { 125036, true }, - { 125057, true }, - { 125074, true }, - { 125085, true }, - { 125099, true }, - { 125112, true }, - { 125128, true }, - { 125140, true }, - { 125156, true }, - { 125173, true }, + { 124921, true }, + { 124931, true }, + { 124945, true }, + { 124967, true }, + { 124981, true }, + { 124999, true }, + { 125020, true }, + { 125037, true }, + { 125048, true }, + { 125062, true }, + { 125075, true }, + { 125091, true }, + { 125103, true }, + { 125119, true }, + { 125136, true }, + { 125150, true }, + { 125162, false }, { 125187, true }, - { 125199, false }, - { 125224, true }, - { 125248, true }, - { 125258, false }, - { 125284, true }, - { 125301, true }, - { 125318, true }, - { 125332, true }, - { 125362, false }, - { 125376, true }, + { 125211, true }, + { 125221, false }, + { 125247, true }, + { 125264, true }, + { 125281, true }, + { 125295, true }, + { 125325, false }, + { 125339, true }, + { 125356, true }, + { 125370, true }, { 125393, true }, - { 125407, true }, - { 125430, true }, - { 125448, true }, - { 125463, true }, - { 125471, true }, - { 125479, true }, + { 125411, true }, + { 125426, true }, + { 125434, true }, + { 125442, true }, + { 125450, true }, + { 125458, true }, + { 125466, true }, + { 125477, true }, { 125487, true }, - { 125495, true }, - { 125503, true }, - { 125514, true }, - { 125524, true }, - { 125538, true }, - { 125557, true }, - { 125573, true }, + { 125501, true }, + { 125520, true }, + { 125536, true }, + { 125547, true }, + { 125572, true }, { 125584, true }, + { 125593, false }, { 125609, true }, - { 125621, true }, - { 125630, false }, - { 125646, true }, - { 125656, false }, - { 125678, true }, - { 125693, true }, - { 125707, true }, - { 125720, true }, - { 125737, true }, - { 125753, true }, - { 125776, true }, - { 125798, true }, - { 125816, true }, - { 125835, false }, - { 125854, true }, + { 125619, false }, + { 125641, true }, + { 125656, true }, + { 125670, true }, + { 125683, true }, + { 125700, true }, + { 125716, true }, + { 125739, true }, + { 125761, true }, + { 125779, true }, + { 125798, false }, + { 125817, true }, + { 125830, true }, + { 125843, true }, { 125867, true }, - { 125880, true }, - { 125904, true }, - { 125915, true }, - { 125934, true }, - { 125962, true }, - { 125983, true }, - { 125996, true }, - { 126016, true }, - { 126036, true }, - { 126050, true }, - { 126063, true }, - { 126084, false }, - { 126095, true }, - { 126114, true }, - { 126125, true }, - { 126137, true }, - { 126148, true }, - { 126178, true }, - { 126189, true }, - { 126203, true }, - { 126217, true }, - { 126229, true }, - { 126243, true }, - { 126263, true }, - { 126278, true }, - { 126289, true }, - { 126313, true }, - { 126334, true }, - { 126347, true }, - { 126364, true }, - { 126380, true }, - { 126398, true }, - { 126420, true }, - { 126437, true }, - { 126451, true }, - { 126465, true }, - { 126481, true }, - { 126501, true }, - { 126512, true }, - { 126527, true }, - { 126544, true }, - { 126571, true }, - { 126590, true }, - { 126605, true }, - { 126616, true }, - { 126630, true }, - { 126647, true }, - { 126663, true }, - { 126680, true }, - { 126695, true }, - { 126706, true }, - { 126722, true }, + { 125878, true }, + { 125897, true }, + { 125925, true }, + { 125946, true }, + { 125959, true }, + { 125979, true }, + { 125999, true }, + { 126013, true }, + { 126026, true }, + { 126047, false }, + { 126058, true }, + { 126077, true }, + { 126088, true }, + { 126100, true }, + { 126111, true }, + { 126141, true }, + { 126152, true }, + { 126166, true }, + { 126180, true }, + { 126192, true }, + { 126206, true }, + { 126226, true }, + { 126241, true }, + { 126252, true }, + { 126276, true }, + { 126297, true }, + { 126310, true }, + { 126327, true }, + { 126343, true }, + { 126361, true }, + { 126383, true }, + { 126400, true }, + { 126414, true }, + { 126428, true }, + { 126444, true }, + { 126464, true }, + { 126475, true }, + { 126490, true }, + { 126507, true }, + { 126534, true }, + { 126553, true }, + { 126568, true }, + { 126579, true }, + { 126593, true }, + { 126610, true }, + { 126626, true }, + { 126643, true }, + { 126658, true }, + { 126669, true }, + { 126685, true }, + { 126701, true }, + { 126718, true }, { 126738, true }, - { 126755, true }, - { 126775, true }, - { 126790, true }, - { 126809, true }, - { 126825, true }, - { 126835, true }, - { 126848, true }, - { 126867, true }, - { 126883, true }, - { 126903, true }, - { 126915, true }, - { 126932, false }, - { 126947, true }, - { 126959, true }, - { 126972, true }, - { 126982, true }, - { 126999, true }, - { 127011, false }, - { 127021, true }, - { 127034, true }, - { 127051, true }, - { 127074, true }, - { 127091, true }, - { 127106, true }, - { 127125, true }, - { 127150, true }, - { 127183, true }, - { 127193, true }, - { 127207, true }, - { 127223, true }, - { 127242, false }, - { 127265, true }, - { 127279, true }, - { 127293, true }, - { 127305, true }, - { 127320, true }, - { 127340, true }, - { 127352, true }, - { 127372, true }, - { 127390, true }, - { 127401, true }, - { 127416, true }, + { 126753, true }, + { 126772, true }, + { 126788, true }, + { 126798, true }, + { 126811, true }, + { 126830, true }, + { 126846, true }, + { 126866, true }, + { 126878, true }, + { 126895, false }, + { 126910, true }, + { 126922, true }, + { 126935, true }, + { 126945, true }, + { 126962, true }, + { 126974, false }, + { 126984, true }, + { 126997, true }, + { 127014, true }, + { 127037, true }, + { 127054, true }, + { 127069, true }, + { 127088, true }, + { 127113, true }, + { 127146, true }, + { 127156, true }, + { 127170, true }, + { 127186, true }, + { 127205, false }, + { 127228, true }, + { 127242, true }, + { 127256, true }, + { 127268, true }, + { 127283, true }, + { 127303, true }, + { 127315, true }, + { 127335, true }, + { 127353, true }, + { 127364, true }, + { 127379, true }, + { 127392, true }, + { 127405, true }, + { 127418, true }, { 127429, true }, - { 127442, true }, + { 127444, true }, { 127455, true }, - { 127466, true }, - { 127481, true }, - { 127492, true }, - { 127508, true }, - { 127522, true }, - { 127534, true }, - { 127548, true }, - { 127556, true }, - { 127575, true }, - { 127589, true }, - { 127611, true }, - { 127628, true }, - { 127637, true }, - { 127650, true }, - { 127660, false }, - { 127672, true }, - { 127683, true }, + { 127471, true }, + { 127485, true }, + { 127497, true }, + { 127511, true }, + { 127519, true }, + { 127538, true }, + { 127552, true }, + { 127574, true }, + { 127591, true }, + { 127600, true }, + { 127613, true }, + { 127623, false }, + { 127635, true }, + { 127646, true }, + { 127656, true }, + { 127679, true }, { 127693, true }, - { 127716, true }, - { 127730, true }, - { 127745, true }, - { 127769, true }, - { 127788, true }, - { 127802, true }, - { 127816, true }, - { 127837, true }, - { 127856, true }, - { 127866, true }, - { 127882, true }, - { 127899, true }, - { 127912, true }, - { 127929, true }, - { 127945, true }, - { 127964, true }, - { 127977, true }, - { 127989, true }, - { 127997, true }, - { 128013, true }, - { 128029, true }, - { 128049, true }, - { 128067, true }, - { 128081, true }, - { 128098, true }, - { 128117, true }, - { 128134, true }, - { 128148, true }, + { 127708, true }, + { 127732, true }, + { 127751, true }, + { 127765, true }, + { 127779, true }, + { 127800, true }, + { 127819, true }, + { 127829, true }, + { 127845, true }, + { 127862, true }, + { 127875, true }, + { 127892, true }, + { 127908, true }, + { 127927, true }, + { 127940, true }, + { 127952, true }, + { 127960, true }, + { 127976, true }, + { 127992, true }, + { 128012, true }, + { 128030, true }, + { 128044, true }, + { 128061, true }, + { 128080, true }, + { 128097, true }, + { 128111, true }, + { 128132, true }, + { 128151, true }, { 128169, true }, - { 128188, true }, - { 128206, true }, - { 128219, true }, - { 128229, true }, - { 128247, true }, - { 128267, true }, - { 128287, true }, - { 128296, true }, - { 128310, true }, - { 128327, true }, - { 128350, true }, - { 128359, true }, - { 128375, true }, - { 128393, true }, - { 128405, true }, - { 128414, true }, - { 128427, true }, + { 128182, true }, + { 128192, true }, + { 128210, true }, + { 128230, true }, + { 128250, true }, + { 128259, true }, + { 128273, true }, + { 128290, true }, + { 128313, true }, + { 128322, true }, + { 128338, true }, + { 128356, true }, + { 128368, true }, + { 128381, true }, + { 128394, true }, + { 128410, true }, + { 128418, false }, + { 128430, true }, { 128440, true }, - { 128456, true }, - { 128464, false }, - { 128476, true }, - { 128486, true }, - { 128505, true }, - { 128520, true }, - { 128535, true }, - { 128554, true }, - { 128576, true }, - { 128595, true }, - { 128609, true }, - { 128621, true }, - { 128635, true }, - { 128648, false }, - { 128670, true }, - { 128687, true }, - { 128705, true }, - { 128718, true }, - { 128732, true }, - { 128743, true }, - { 128757, false }, - { 128777, true }, - { 128788, false }, + { 128459, true }, + { 128474, true }, + { 128489, true }, + { 128508, true }, + { 128530, true }, + { 128549, true }, + { 128563, true }, + { 128575, true }, + { 128589, true }, + { 128602, false }, + { 128624, true }, + { 128641, true }, + { 128659, true }, + { 128672, true }, + { 128686, true }, + { 128697, true }, + { 128711, false }, + { 128731, true }, + { 128742, false }, + { 128751, true }, + { 128766, false }, + { 128784, true }, { 128797, true }, - { 128812, false }, - { 128830, true }, - { 128843, true }, - { 128853, true }, - { 128864, false }, - { 128879, true }, - { 128888, true }, - { 128900, true }, - { 128909, true }, - { 128922, true }, - { 128935, true }, - { 128948, true }, - { 128965, false }, - { 128982, true }, - { 128989, true }, - { 128997, true }, - { 129006, true }, - { 129018, true }, - { 129041, true }, - { 129055, true }, - { 129069, true }, - { 129086, true }, - { 129100, false }, - { 129116, true }, - { 129123, true }, - { 129133, true }, - { 129144, true }, + { 128807, true }, + { 128818, false }, + { 128833, true }, + { 128842, true }, + { 128854, true }, + { 128863, true }, + { 128876, true }, + { 128889, true }, + { 128902, true }, + { 128919, false }, + { 128936, true }, + { 128943, true }, + { 128951, true }, + { 128960, true }, + { 128972, true }, + { 128995, true }, + { 129009, true }, + { 129023, true }, + { 129040, true }, + { 129054, false }, + { 129070, false }, + { 129084, true }, + { 129091, true }, + { 129101, true }, + { 129112, true }, + { 129127, true }, + { 129139, true }, + { 129147, true }, { 129159, true }, - { 129171, true }, - { 129179, true }, - { 129191, true }, - { 129206, false }, - { 129216, true }, - { 129228, true }, - { 129240, true }, - { 129255, true }, - { 129284, true }, - { 129292, true }, - { 129300, true }, - { 129309, true }, - { 129322, true }, - { 129330, true }, + { 129174, false }, + { 129184, true }, + { 129196, true }, + { 129208, true }, + { 129223, true }, + { 129252, true }, + { 129266, true }, + { 129274, true }, + { 129282, true }, + { 129291, true }, + { 129304, true }, + { 129312, true }, + { 129323, true }, + { 129334, true }, { 129341, true }, - { 129352, true }, - { 129359, true }, - { 129368, true }, - { 129378, true }, - { 129398, true }, - { 129410, true }, + { 129350, true }, + { 129360, true }, + { 129380, true }, + { 129392, true }, + { 129404, true }, + { 129413, false }, { 129422, true }, - { 129431, false }, - { 129440, true }, - { 129460, false }, - { 129481, true }, - { 129492, true }, - { 129505, true }, - { 129514, true }, - { 129528, true }, - { 129545, true }, + { 129442, false }, + { 129463, true }, + { 129474, true }, + { 129487, true }, + { 129496, true }, + { 129510, true }, + { 129527, true }, + { 129543, true }, { 129561, true }, - { 129579, true }, - { 129593, true }, - { 129610, true }, - { 129622, true }, - { 129635, true }, - { 129647, true }, + { 129575, true }, + { 129592, true }, + { 129604, true }, + { 129617, true }, + { 129629, true }, + { 129643, true }, { 129661, true }, - { 129679, true }, - { 129693, true }, - { 129709, false }, - { 129727, true }, - { 129744, true }, - { 129766, true }, - { 129789, true }, - { 129800, true }, - { 129811, true }, - { 129822, true }, - { 129833, true }, - { 129845, true }, - { 129859, true }, - { 129870, true }, - { 129882, true }, - { 129898, true }, - { 129927, false }, - { 129946, true }, - { 129962, true }, - { 129988, true }, - { 130002, true }, - { 130019, true }, - { 130038, true }, - { 130055, true }, - { 130071, true }, - { 130082, true }, - { 130090, true }, - { 130102, true }, - { 130119, true }, - { 130132, true }, - { 130147, true }, - { 130160, true }, - { 130174, true }, - { 130186, true }, - { 130198, true }, - { 130212, true }, - { 130229, true }, - { 130242, true }, - { 130257, true }, - { 130270, true }, - { 130282, true }, - { 130296, true }, - { 130307, true }, + { 129675, true }, + { 129691, false }, + { 129709, true }, + { 129726, true }, + { 129748, true }, + { 129771, true }, + { 129782, true }, + { 129793, true }, + { 129804, true }, + { 129815, true }, + { 129827, true }, + { 129841, true }, + { 129852, true }, + { 129864, true }, + { 129880, true }, + { 129909, false }, + { 129928, true }, + { 129944, true }, + { 129970, true }, + { 129984, true }, + { 130001, true }, + { 130020, true }, + { 130037, true }, + { 130053, true }, + { 130064, true }, + { 130072, true }, + { 130084, true }, + { 130101, true }, + { 130114, true }, + { 130129, true }, + { 130142, true }, + { 130156, true }, + { 130168, true }, + { 130180, true }, + { 130194, true }, + { 130211, true }, + { 130224, true }, + { 130239, true }, + { 130252, true }, + { 130264, true }, + { 130278, true }, + { 130289, true }, + { 130312, true }, { 130330, true }, - { 130348, true }, - { 130369, true }, + { 130351, true }, + { 130370, true }, { 130388, true }, - { 130406, true }, - { 130423, true }, - { 130440, true }, - { 130451, true }, - { 130473, true }, - { 130495, true }, - { 130507, true }, - { 130515, true }, - { 130536, true }, - { 130557, true }, + { 130405, true }, + { 130422, true }, + { 130433, true }, + { 130455, true }, + { 130477, true }, + { 130489, true }, + { 130497, true }, + { 130518, true }, + { 130539, true }, + { 130560, true }, { 130578, true }, - { 130596, true }, - { 130612, true }, - { 130624, true }, + { 130594, true }, + { 130606, true }, + { 130618, true }, { 130636, true }, - { 130654, true }, - { 130664, true }, - { 130678, true }, - { 130694, true }, - { 130720, false }, - { 130749, true }, - { 130760, true }, - { 130775, true }, - { 130791, true }, - { 130806, true }, - { 130817, true }, - { 130831, true }, + { 130646, true }, + { 130660, true }, + { 130676, true }, + { 130702, false }, + { 130731, true }, + { 130742, true }, + { 130757, true }, + { 130773, true }, + { 130788, true }, + { 130799, true }, + { 130813, true }, + { 130840, true }, { 130858, true }, - { 130876, true }, - { 130893, false }, - { 130904, true }, - { 130914, true }, - { 130929, true }, + { 130875, false }, + { 130886, true }, + { 130896, true }, + { 130911, true }, + { 130922, true }, { 130940, true }, { 130958, true }, - { 130976, true }, - { 130989, true }, - { 131000, true }, - { 131022, true }, - { 131041, true }, - { 131055, true }, - { 131067, false }, - { 131087, true }, - { 131097, true }, + { 130971, true }, + { 130982, true }, + { 131004, true }, + { 131023, true }, + { 131037, true }, + { 131049, false }, + { 131069, true }, + { 131079, true }, + { 131093, true }, { 131111, true }, - { 131129, true }, - { 131143, true }, - { 131155, true }, - { 131165, true }, - { 131177, true }, - { 131185, true }, - { 131202, true }, - { 131216, true }, - { 131237, true }, + { 131125, true }, + { 131137, true }, + { 131147, true }, + { 131159, true }, + { 131167, true }, + { 131184, true }, + { 131198, true }, + { 131219, true }, + { 131231, true }, { 131249, true }, - { 131267, true }, - { 131283, true }, - { 131295, true }, - { 131307, true }, - { 131319, true }, - { 131331, true }, - { 131343, true }, - { 131355, true }, - { 131367, true }, - { 131379, true }, - { 131395, false }, - { 131415, true }, - { 131424, true }, - { 131438, true }, - { 131454, true }, - { 131467, true }, - { 131480, true }, - { 131503, true }, - { 131516, true }, - { 131524, true }, - { 131539, false }, - { 131555, true }, + { 131265, true }, + { 131277, true }, + { 131289, true }, + { 131301, true }, + { 131313, true }, + { 131325, true }, + { 131337, true }, + { 131349, true }, + { 131361, true }, + { 131377, false }, + { 131397, true }, + { 131406, true }, + { 131420, true }, + { 131436, true }, + { 131449, true }, + { 131462, true }, + { 131485, true }, + { 131498, true }, + { 131506, true }, + { 131521, false }, + { 131537, true }, + { 131547, true }, { 131565, true }, - { 131583, true }, - { 131597, true }, - { 131606, true }, - { 131619, true }, - { 131635, true }, - { 131651, true }, - { 131663, true }, - { 131674, true }, - { 131689, true }, - { 131704, true }, - { 131716, true }, - { 131734, true }, - { 131753, true }, - { 131772, true }, - { 131794, true }, - { 131814, true }, - { 131833, true }, - { 131850, true }, - { 131868, true }, - { 131886, true }, - { 131904, true }, - { 131926, true }, - { 131940, true }, - { 131956, true }, - { 131973, true }, - { 131994, true }, - { 132009, true }, - { 132031, true }, - { 132048, true }, - { 132059, true }, - { 132072, true }, - { 132085, true }, - { 132097, true }, - { 132107, true }, - { 132118, true }, - { 132133, true }, - { 132144, true }, - { 132156, true }, - { 132165, true }, - { 132175, true }, - { 132184, true }, - { 132195, true }, - { 132220, true }, - { 132232, true }, - { 132250, true }, - { 132266, true }, - { 132277, true }, - { 132293, true }, - { 132316, true }, - { 132337, true }, - { 132355, true }, - { 132374, true }, - { 132383, false }, - { 132397, true }, - { 132410, true }, - { 132424, true }, - { 132439, true }, - { 132450, true }, - { 132461, true }, - { 132474, true }, + { 131579, true }, + { 131588, true }, + { 131601, true }, + { 131617, true }, + { 131632, true }, + { 131648, true }, + { 131660, true }, + { 131671, true }, + { 131686, true }, + { 131701, true }, + { 131713, true }, + { 131731, true }, + { 131750, true }, + { 131769, true }, + { 131791, true }, + { 131811, true }, + { 131830, true }, + { 131847, true }, + { 131865, true }, + { 131883, true }, + { 131901, true }, + { 131923, true }, + { 131937, true }, + { 131953, true }, + { 131970, true }, + { 131991, true }, + { 132006, true }, + { 132028, true }, + { 132045, true }, + { 132056, true }, + { 132069, true }, + { 132082, true }, + { 132094, true }, + { 132104, true }, + { 132115, true }, + { 132130, true }, + { 132141, true }, + { 132153, true }, + { 132162, true }, + { 132172, true }, + { 132181, true }, + { 132192, true }, + { 132217, true }, + { 132229, true }, + { 132247, true }, + { 132263, true }, + { 132274, true }, + { 132290, true }, + { 132313, true }, + { 132334, true }, + { 132352, true }, + { 132371, true }, + { 132380, false }, + { 132394, true }, + { 132407, true }, + { 132421, true }, + { 132436, true }, + { 132447, true }, + { 132460, true }, + { 132469, true }, { 132483, true }, - { 132497, true }, + { 132496, true }, { 132510, true }, - { 132524, true }, - { 132537, true }, - { 132548, true }, - { 132561, true }, + { 132523, true }, + { 132534, true }, + { 132547, true }, + { 132557, true }, { 132571, true }, - { 132585, true }, - { 132594, true }, - { 132609, true }, - { 132622, true }, - { 132635, true }, - { 132654, true }, - { 132667, true }, - { 132685, true }, - { 132701, true }, - { 132713, true }, - { 132726, true }, - { 132738, true }, - { 132753, true }, - { 132763, true }, - { 132773, true }, + { 132580, true }, + { 132595, true }, + { 132608, true }, + { 132621, true }, + { 132640, true }, + { 132653, true }, + { 132671, true }, + { 132687, true }, + { 132699, true }, + { 132712, true }, + { 132724, true }, + { 132739, true }, + { 132749, true }, + { 132759, true }, + { 132770, true }, { 132784, true }, - { 132798, true }, - { 132809, true }, + { 132795, true }, + { 132822, true }, { 132836, true }, - { 132850, true }, - { 132858, true }, + { 132844, true }, + { 132866, true }, { 132880, true }, { 132894, true }, - { 132908, true }, - { 132919, true }, - { 132938, true }, - { 132957, true }, - { 132976, true }, - { 132995, true }, - { 133015, true }, - { 133035, true }, - { 133055, true }, - { 133073, true }, - { 133092, true }, - { 133111, true }, - { 133130, true }, + { 132905, true }, + { 132924, true }, + { 132943, true }, + { 132962, true }, + { 132981, true }, + { 133001, true }, + { 133021, true }, + { 133041, true }, + { 133059, true }, + { 133078, true }, + { 133097, true }, + { 133116, true }, + { 133135, true }, { 133149, true }, - { 133163, true }, - { 133176, true }, - { 133188, true }, - { 133201, false }, - { 133223, true }, - { 133238, true }, - { 133250, true }, - { 133258, true }, - { 133283, true }, - { 133299, true }, - { 133308, true }, - { 133320, true }, - { 133337, true }, - { 133350, true }, - { 133365, true }, - { 133381, true }, - { 133399, true }, - { 133412, true }, - { 133424, true }, - { 133435, true }, - { 133449, true }, - { 133464, true }, - { 133477, true }, - { 133488, true }, - { 133502, true }, - { 133517, true }, - { 133526, true }, - { 133539, true }, - { 133555, true }, - { 133574, true }, - { 133588, true }, - { 133603, true }, - { 133614, true }, - { 133624, true }, - { 133636, true }, - { 133651, true }, - { 133668, true }, - { 133699, true }, - { 133714, true }, - { 133732, true }, - { 133753, true }, - { 133767, true }, - { 133785, true }, - { 133795, true }, - { 133807, true }, - { 133817, true }, - { 133826, true }, - { 133839, true }, - { 133854, true }, - { 133867, true }, - { 133879, true }, - { 133887, true }, - { 133905, true }, - { 133920, true }, - { 133937, true }, - { 133952, true }, - { 133965, true }, - { 133981, true }, - { 134001, true }, - { 134016, true }, - { 134030, true }, - { 134043, true }, - { 134053, true }, - { 134067, true }, - { 134077, true }, - { 134097, true }, - { 134106, true }, - { 134116, true }, - { 134127, true }, - { 134140, true }, - { 134159, true }, - { 134169, true }, - { 134180, true }, - { 134193, true }, - { 134200, true }, - { 134209, true }, - { 134225, true }, - { 134236, true }, - { 134243, true }, - { 134266, true }, - { 134275, true }, - { 134295, true }, - { 134303, true }, - { 134313, true }, - { 134334, true }, - { 134346, true }, - { 134355, true }, - { 134363, true }, - { 134372, true }, - { 134383, true }, - { 134393, true }, - { 134404, true }, - { 134411, true }, - { 134420, true }, - { 134428, true }, - { 134439, true }, - { 134451, true }, - { 134459, true }, - { 134467, true }, - { 134477, true }, - { 134493, true }, - { 134505, true }, - { 134535, true }, - { 134555, true }, - { 134569, false }, - { 134587, false }, - { 134603, true }, - { 134618, true }, - { 134634, true }, - { 134649, true }, - { 134670, true }, - { 134684, true }, - { 134703, true }, - { 134714, true }, - { 134724, true }, - { 134742, true }, - { 134753, true }, - { 134764, true }, - { 134778, true }, - { 134792, true }, - { 134825, true }, - { 134839, true }, - { 134859, true }, - { 134872, false }, - { 134888, true }, - { 134902, true }, - { 134921, true }, - { 134947, true }, - { 134970, true }, - { 134987, true }, - { 135000, true }, - { 135016, true }, - { 135024, true }, - { 135037, true }, - { 135044, true }, - { 135056, true }, - { 135068, true }, - { 135083, true }, - { 135093, true }, - { 135105, true }, - { 135116, true }, - { 135136, false }, - { 135154, true }, - { 135167, true }, - { 135178, true }, - { 135188, true }, - { 135202, true }, - { 135214, false }, - { 135230, true }, - { 135241, true }, - { 135250, true }, - { 135263, true }, - { 135271, true }, - { 135281, true }, - { 135298, true }, - { 135309, true }, - { 135325, true }, - { 135336, true }, - { 135348, true }, - { 135358, false }, - { 135373, true }, - { 135388, true }, - { 135403, false }, - { 135411, true }, - { 135427, false }, - { 135437, true }, - { 135449, true }, - { 135464, true }, - { 135483, true }, - { 135503, true }, + { 133162, true }, + { 133174, true }, + { 133187, false }, + { 133209, true }, + { 133224, true }, + { 133236, true }, + { 133244, true }, + { 133269, true }, + { 133285, true }, + { 133294, true }, + { 133306, true }, + { 133323, true }, + { 133336, true }, + { 133351, true }, + { 133367, true }, + { 133385, true }, + { 133398, true }, + { 133410, true }, + { 133420, true }, + { 133431, true }, + { 133445, true }, + { 133460, true }, + { 133473, true }, + { 133484, true }, + { 133498, true }, + { 133513, true }, + { 133522, true }, + { 133535, true }, + { 133551, true }, + { 133570, true }, + { 133584, true }, + { 133599, true }, + { 133610, true }, + { 133620, true }, + { 133632, true }, + { 133647, true }, + { 133664, true }, + { 133695, true }, + { 133710, true }, + { 133728, true }, + { 133749, true }, + { 133763, true }, + { 133781, true }, + { 133791, true }, + { 133803, true }, + { 133813, true }, + { 133822, true }, + { 133835, true }, + { 133850, true }, + { 133863, true }, + { 133875, true }, + { 133883, true }, + { 133901, true }, + { 133916, true }, + { 133933, true }, + { 133948, true }, + { 133961, true }, + { 133977, true }, + { 133997, true }, + { 134012, true }, + { 134026, true }, + { 134039, true }, + { 134049, true }, + { 134063, true }, + { 134073, true }, + { 134093, true }, + { 134102, true }, + { 134112, true }, + { 134123, true }, + { 134136, true }, + { 134155, true }, + { 134165, true }, + { 134176, true }, + { 134189, true }, + { 134196, true }, + { 134205, true }, + { 134221, true }, + { 134232, true }, + { 134239, true }, + { 134262, true }, + { 134271, true }, + { 134291, true }, + { 134299, true }, + { 134309, true }, + { 134330, true }, + { 134342, true }, + { 134351, true }, + { 134359, true }, + { 134368, true }, + { 134379, true }, + { 134389, true }, + { 134400, true }, + { 134407, true }, + { 134416, true }, + { 134424, true }, + { 134435, true }, + { 134447, true }, + { 134455, true }, + { 134463, true }, + { 134473, true }, + { 134489, true }, + { 134501, true }, + { 134531, true }, + { 134551, true }, + { 134565, false }, + { 134583, false }, + { 134599, true }, + { 134614, true }, + { 134630, true }, + { 134645, true }, + { 134666, true }, + { 134680, true }, + { 134699, true }, + { 134710, true }, + { 134720, true }, + { 134738, true }, + { 134749, true }, + { 134760, true }, + { 134774, true }, + { 134788, true }, + { 134821, true }, + { 134835, true }, + { 134855, true }, + { 134868, false }, + { 134884, true }, + { 134898, true }, + { 134917, true }, + { 134943, true }, + { 134966, true }, + { 134983, true }, + { 134996, true }, + { 135012, true }, + { 135020, true }, + { 135033, true }, + { 135040, true }, + { 135052, true }, + { 135064, true }, + { 135079, true }, + { 135089, true }, + { 135101, true }, + { 135112, true }, + { 135132, false }, + { 135150, true }, + { 135163, true }, + { 135174, true }, + { 135184, true }, + { 135198, true }, + { 135210, false }, + { 135226, true }, + { 135237, true }, + { 135246, true }, + { 135259, true }, + { 135267, true }, + { 135277, true }, + { 135294, true }, + { 135305, true }, + { 135321, true }, + { 135332, true }, + { 135344, true }, + { 135354, false }, + { 135369, true }, + { 135384, true }, + { 135399, false }, + { 135407, true }, + { 135423, true }, + { 135435, true }, + { 135450, true }, + { 135469, true }, + { 135489, true }, + { 135500, true }, { 135514, true }, - { 135528, true }, - { 135544, true }, - { 135566, true }, - { 135579, true }, - { 135598, true }, - { 135611, true }, - { 135620, true }, - { 135635, true }, - { 135648, true }, - { 135660, true }, - { 135677, true }, - { 135701, true }, - { 135714, true }, - { 135726, true }, - { 135743, true }, - { 135755, true }, - { 135773, true }, - { 135786, true }, - { 135801, true }, - { 135808, true }, - { 135820, true }, + { 135530, true }, + { 135552, true }, + { 135565, true }, + { 135584, true }, + { 135597, true }, + { 135606, true }, + { 135621, true }, + { 135634, true }, + { 135646, true }, + { 135663, true }, + { 135687, true }, + { 135700, true }, + { 135712, true }, + { 135729, true }, + { 135741, true }, + { 135759, true }, + { 135772, true }, + { 135787, true }, + { 135794, true }, + { 135806, true }, + { 135816, true }, { 135830, true }, - { 135844, true }, + { 135843, true }, { 135857, true }, - { 135871, true }, - { 135888, true }, + { 135874, true }, + { 135889, true }, { 135903, true }, - { 135917, true }, - { 135929, true }, - { 135942, true }, - { 135962, true }, - { 135977, true }, - { 135992, true }, - { 136007, true }, - { 136026, true }, - { 136045, true }, - { 136064, true }, - { 136079, true }, - { 136089, true }, - { 136102, false }, - { 136115, true }, - { 136129, true }, - { 136140, true }, - { 136155, true }, - { 136171, true }, - { 136184, true }, - { 136197, true }, - { 136217, true }, - { 136226, true }, - { 136242, true }, - { 136255, true }, - { 136270, true }, - { 136284, true }, - { 136294, true }, - { 136307, true }, - { 136325, true }, - { 136333, false }, - { 136346, true }, - { 136364, true }, - { 136387, true }, - { 136405, true }, - { 136436, true }, - { 136466, true }, - { 136488, true }, - { 136504, true }, - { 136515, false }, - { 136528, true }, - { 136540, true }, - { 136555, true }, - { 136572, false }, - { 136591, true }, - { 136602, true }, - { 136612, true }, - { 136622, true }, - { 136637, true }, - { 136651, true }, - { 136661, true }, - { 136673, true }, - { 136689, true }, - { 136700, true }, - { 136717, true }, - { 136730, true }, - { 136750, true }, - { 136760, true }, - { 136771, true }, - { 136781, false }, - { 136796, true }, - { 136811, true }, - { 136828, true }, - { 136843, true }, - { 136854, false }, - { 136867, true }, - { 136880, true }, - { 136890, true }, - { 136907, true }, - { 136919, true }, - { 136933, true }, - { 136944, true }, - { 136961, true }, + { 135915, true }, + { 135928, true }, + { 135948, true }, + { 135963, true }, + { 135978, true }, + { 135993, true }, + { 136012, true }, + { 136031, true }, + { 136050, true }, + { 136065, true }, + { 136076, true }, + { 136086, true }, + { 136099, false }, + { 136112, true }, + { 136126, true }, + { 136137, true }, + { 136152, true }, + { 136168, true }, + { 136181, true }, + { 136194, true }, + { 136214, true }, + { 136223, true }, + { 136239, true }, + { 136252, true }, + { 136267, true }, + { 136281, true }, + { 136291, true }, + { 136304, true }, + { 136322, true }, + { 136330, false }, + { 136343, true }, + { 136361, true }, + { 136384, true }, + { 136402, true }, + { 136433, true }, + { 136463, true }, + { 136485, true }, + { 136501, true }, + { 136512, false }, + { 136525, true }, + { 136537, true }, + { 136552, true }, + { 136569, false }, + { 136588, true }, + { 136599, true }, + { 136609, true }, + { 136619, true }, + { 136634, true }, + { 136648, true }, + { 136658, true }, + { 136670, true }, + { 136686, true }, + { 136697, true }, + { 136714, true }, + { 136727, true }, + { 136747, true }, + { 136757, true }, + { 136768, true }, + { 136778, false }, + { 136793, true }, + { 136808, true }, + { 136825, true }, + { 136840, true }, + { 136851, false }, + { 136864, true }, + { 136877, true }, + { 136887, true }, + { 136904, true }, + { 136916, true }, + { 136930, true }, + { 136941, true }, + { 136954, true }, + { 136963, true }, { 136974, true }, - { 136983, true }, - { 136994, true }, - { 137004, true }, + { 136984, true }, + { 136998, true }, + { 137009, true }, { 137018, true }, - { 137029, true }, - { 137038, true }, + { 137032, true }, + { 137042, true }, { 137052, true }, - { 137062, true }, - { 137072, true }, - { 137088, true }, - { 137099, true }, - { 137111, true }, - { 137121, true }, - { 137130, true }, - { 137143, true }, - { 137154, false }, - { 137162, true }, - { 137180, true }, - { 137187, true }, - { 137198, false }, - { 137218, true }, - { 137225, false }, - { 137241, true }, - { 137257, true }, - { 137272, true }, + { 137068, true }, + { 137079, true }, + { 137091, true }, + { 137101, true }, + { 137110, true }, + { 137123, true }, + { 137134, false }, + { 137142, true }, + { 137160, true }, + { 137167, true }, + { 137178, false }, + { 137198, true }, + { 137205, false }, + { 137221, true }, + { 137237, true }, + { 137252, true }, + { 137264, true }, { 137284, true }, - { 137304, true }, - { 137318, true }, - { 137334, true }, - { 137344, true }, - { 137357, true }, - { 137375, true }, - { 137389, true }, - { 137406, true }, - { 137425, true }, - { 137441, true }, - { 137460, true }, - { 137483, true }, - { 137495, true }, - { 137517, true }, - { 137531, true }, - { 137542, true }, - { 137552, true }, - { 137566, true }, - { 137576, true }, - { 137587, true }, - { 137602, true }, - { 137611, true }, - { 137620, true }, - { 137637, true }, - { 137653, true }, - { 137675, true }, - { 137691, true }, + { 137298, true }, + { 137314, true }, + { 137324, true }, + { 137337, true }, + { 137355, true }, + { 137369, true }, + { 137386, true }, + { 137405, true }, + { 137421, true }, + { 137440, true }, + { 137463, true }, + { 137475, true }, + { 137497, true }, + { 137511, true }, + { 137522, true }, + { 137532, true }, + { 137546, true }, + { 137556, true }, + { 137567, true }, + { 137582, true }, + { 137591, true }, + { 137600, true }, + { 137617, true }, + { 137633, true }, + { 137655, true }, + { 137671, true }, + { 137685, true }, { 137705, true }, - { 137725, true }, - { 137733, true }, - { 137750, true }, - { 137767, true }, - { 137781, true }, - { 137800, true }, - { 137816, false }, - { 137830, true }, - { 137843, true }, - { 137860, true }, - { 137875, true }, - { 137894, true }, - { 137905, true }, - { 137916, true }, - { 137930, true }, - { 137944, true }, - { 137959, true }, - { 137980, true }, - { 137996, true }, - { 138014, true }, - { 138032, true }, - { 138045, true }, - { 138073, true }, - { 138085, true }, - { 138101, true }, - { 138112, true }, - { 138120, true }, - { 138134, true }, - { 138148, false }, - { 138157, true }, - { 138164, false }, - { 138174, false }, - { 138194, true }, - { 138205, true }, - { 138215, true }, - { 138226, true }, - { 138236, false }, - { 138255, false }, - { 138268, false }, - { 138280, false }, - { 138301, true }, - { 138323, true }, - { 138336, true }, - { 138352, true }, - { 138370, true }, - { 138379, true }, - { 138391, true }, - { 138407, true }, - { 138418, true }, - { 138442, true }, - { 138453, false }, - { 138469, true }, - { 138487, true }, - { 138502, true }, - { 138514, true }, - { 138529, true }, - { 138546, true }, - { 138560, true }, - { 138575, true }, - { 138594, true }, - { 138613, true }, - { 138624, true }, - { 138638, true }, - { 138656, true }, - { 138666, false }, - { 138695, true }, - { 138709, true }, - { 138733, true }, - { 138752, true }, - { 138765, true }, - { 138780, true }, - { 138794, true }, - { 138809, true }, - { 138827, true }, - { 138837, false }, - { 138852, true }, - { 138860, true }, - { 138873, false }, - { 138887, true }, - { 138898, true }, - { 138906, true }, - { 138914, true }, - { 138928, true }, - { 138950, true }, - { 138962, true }, - { 138974, true }, - { 138986, true }, + { 137713, true }, + { 137730, true }, + { 137747, true }, + { 137761, true }, + { 137780, true }, + { 137796, false }, + { 137810, true }, + { 137823, true }, + { 137840, true }, + { 137855, true }, + { 137874, true }, + { 137885, true }, + { 137896, true }, + { 137910, true }, + { 137924, true }, + { 137939, true }, + { 137960, true }, + { 137976, true }, + { 137994, true }, + { 138012, true }, + { 138025, true }, + { 138053, true }, + { 138065, true }, + { 138081, true }, + { 138092, true }, + { 138100, true }, + { 138114, true }, + { 138128, false }, + { 138137, true }, + { 138144, false }, + { 138154, false }, + { 138174, true }, + { 138185, true }, + { 138195, true }, + { 138206, true }, + { 138216, false }, + { 138235, false }, + { 138248, false }, + { 138260, false }, + { 138281, true }, + { 138303, true }, + { 138316, true }, + { 138332, true }, + { 138350, true }, + { 138359, true }, + { 138371, true }, + { 138387, true }, + { 138398, true }, + { 138422, true }, + { 138433, false }, + { 138449, true }, + { 138467, true }, + { 138482, true }, + { 138494, true }, + { 138509, true }, + { 138526, true }, + { 138540, true }, + { 138555, true }, + { 138574, true }, + { 138593, true }, + { 138604, true }, + { 138618, true }, + { 138636, true }, + { 138646, false }, + { 138675, true }, + { 138689, true }, + { 138713, true }, + { 138732, true }, + { 138745, true }, + { 138760, true }, + { 138774, true }, + { 138789, true }, + { 138807, true }, + { 138817, false }, + { 138832, true }, + { 138840, true }, + { 138853, false }, + { 138867, true }, + { 138878, true }, + { 138886, true }, + { 138894, true }, + { 138908, true }, + { 138930, true }, + { 138942, true }, + { 138954, true }, + { 138966, true }, + { 138981, true }, { 139001, true }, - { 139021, true }, - { 139044, true }, - { 139063, true }, - { 139082, true }, - { 139101, true }, - { 139120, true }, - { 139139, true }, - { 139158, true }, - { 139177, true }, - { 139194, true }, - { 139212, true }, - { 139229, true }, - { 139244, true }, - { 139262, true }, - { 139277, true }, - { 139290, true }, - { 139314, true }, - { 139331, true }, - { 139349, true }, - { 139365, true }, - { 139383, true }, - { 139400, true }, - { 139416, true }, - { 139429, true }, - { 139442, true }, - { 139459, true }, - { 139480, true }, - { 139495, true }, - { 139512, true }, - { 139524, true }, - { 139535, true }, - { 139543, true }, - { 139556, true }, - { 139570, true }, - { 139597, true }, - { 139613, true }, - { 139629, true }, - { 139642, true }, - { 139655, true }, - { 139665, true }, - { 139678, true }, - { 139693, true }, - { 139703, true }, - { 139714, true }, - { 139729, true }, + { 139024, true }, + { 139043, true }, + { 139062, true }, + { 139081, true }, + { 139100, true }, + { 139119, true }, + { 139138, true }, + { 139157, true }, + { 139174, true }, + { 139192, true }, + { 139209, true }, + { 139224, true }, + { 139242, true }, + { 139257, true }, + { 139270, true }, + { 139294, true }, + { 139311, true }, + { 139329, true }, + { 139345, true }, + { 139363, true }, + { 139380, true }, + { 139396, true }, + { 139409, true }, + { 139422, true }, + { 139439, true }, + { 139460, true }, + { 139475, true }, + { 139492, true }, + { 139504, true }, + { 139515, true }, + { 139523, true }, + { 139536, true }, + { 139550, true }, + { 139577, true }, + { 139593, true }, + { 139609, true }, + { 139622, true }, + { 139635, true }, + { 139645, true }, + { 139658, true }, + { 139673, true }, + { 139683, true }, + { 139694, true }, + { 139709, true }, + { 139724, false }, + { 139734, false }, { 139744, false }, - { 139754, false }, - { 139764, false }, - { 139774, true }, - { 139786, true }, - { 139794, false }, - { 139805, true }, - { 139813, true }, - { 139822, true }, - { 139835, true }, + { 139754, true }, + { 139766, true }, + { 139774, false }, + { 139785, true }, + { 139793, true }, + { 139802, true }, + { 139815, true }, + { 139827, true }, { 139847, true }, - { 139867, true }, - { 139878, true }, - { 139899, true }, - { 139915, true }, - { 139932, true }, - { 139951, true }, - { 139960, true }, - { 139974, true }, + { 139858, true }, + { 139879, true }, + { 139895, true }, + { 139912, true }, + { 139931, true }, + { 139940, true }, + { 139954, true }, + { 139964, true }, + { 139975, true }, { 139984, true }, - { 139995, true }, - { 140004, true }, - { 140013, true }, - { 140026, true }, - { 140055, true }, - { 140074, true }, - { 140091, true }, - { 140114, true }, - { 140122, true }, - { 140140, true }, - { 140151, true }, - { 140164, true }, - { 140175, true }, - { 140188, true }, - { 140201, true }, - { 140218, true }, + { 139993, true }, + { 140006, true }, + { 140035, true }, + { 140054, true }, + { 140071, true }, + { 140094, true }, + { 140102, true }, + { 140120, true }, + { 140131, true }, + { 140144, true }, + { 140155, true }, + { 140168, true }, + { 140181, true }, + { 140198, true }, + { 140211, true }, + { 140222, true }, { 140231, true }, - { 140242, true }, + { 140241, true }, { 140251, true }, - { 140261, true }, - { 140271, true }, - { 140284, true }, - { 140295, true }, - { 140305, true }, - { 140318, true }, - { 140328, true }, - { 140341, true }, - { 140360, true }, - { 140371, true }, - { 140386, true }, - { 140400, true }, + { 140264, true }, + { 140275, true }, + { 140285, true }, + { 140298, true }, + { 140308, true }, + { 140321, true }, + { 140340, true }, + { 140351, true }, + { 140366, true }, + { 140380, true }, + { 140391, true }, + { 140403, true }, { 140411, true }, - { 140423, true }, - { 140431, true }, - { 140445, true }, - { 140460, false }, - { 140474, false }, - { 140486, true }, - { 140497, false }, - { 140512, true }, - { 140526, true }, - { 140547, true }, - { 140562, true }, - { 140574, true }, - { 140585, true }, - { 140598, true }, - { 140608, true }, - { 140629, true }, - { 140647, true }, - { 140668, true }, - { 140694, true }, - { 140717, true }, - { 140750, true }, - { 140769, true }, - { 140793, true }, - { 140804, true }, - { 140818, true }, - { 140829, true }, - { 140842, false }, - { 140866, true }, - { 140877, true }, - { 140891, true }, - { 140902, true }, - { 140912, true }, - { 140919, true }, - { 140930, true }, - { 140941, true }, - { 140952, true }, + { 140425, true }, + { 140440, false }, + { 140454, false }, + { 140466, true }, + { 140477, false }, + { 140492, true }, + { 140506, true }, + { 140527, true }, + { 140542, true }, + { 140554, true }, + { 140565, true }, + { 140578, true }, + { 140588, true }, + { 140609, true }, + { 140627, true }, + { 140648, true }, + { 140674, true }, + { 140697, true }, + { 140730, true }, + { 140749, true }, + { 140773, true }, + { 140784, true }, + { 140798, true }, + { 140809, true }, + { 140822, false }, + { 140846, true }, + { 140857, true }, + { 140871, true }, + { 140882, true }, + { 140892, true }, + { 140899, true }, + { 140910, true }, + { 140921, true }, + { 140932, true }, + { 140942, true }, + { 140953, true }, { 140962, true }, - { 140973, true }, - { 140982, true }, - { 140997, true }, + { 140977, true }, + { 140992, true }, + { 141003, true }, { 141012, true }, { 141023, true }, - { 141032, true }, - { 141043, true }, - { 141054, true }, - { 141068, true }, - { 141077, true }, + { 141034, true }, + { 141048, true }, + { 141057, true }, + { 141073, true }, + { 141081, true }, { 141093, true }, - { 141101, true }, - { 141113, true }, - { 141125, true }, - { 141141, true }, - { 141149, true }, - { 141159, true }, - { 141178, true }, - { 141186, true }, - { 141199, true }, - { 141216, true }, - { 141227, true }, - { 141239, true }, - { 141248, true }, - { 141269, true }, - { 141288, true }, - { 141304, true }, - { 141319, true }, - { 141332, true }, - { 141349, true }, - { 141362, true }, - { 141378, true }, - { 141388, true }, - { 141396, true }, - { 141404, true }, - { 141418, true }, - { 141437, false }, - { 141446, true }, - { 141456, true }, - { 141478, true }, - { 141493, true }, - { 141506, true }, + { 141105, true }, + { 141121, true }, + { 141129, true }, + { 141139, true }, + { 141158, true }, + { 141166, true }, + { 141179, true }, + { 141196, true }, + { 141207, true }, + { 141219, true }, + { 141228, true }, + { 141249, true }, + { 141268, true }, + { 141284, true }, + { 141299, true }, + { 141312, true }, + { 141329, true }, + { 141342, true }, + { 141358, true }, + { 141368, true }, + { 141376, true }, + { 141384, true }, + { 141398, true }, + { 141417, false }, + { 141426, true }, + { 141436, true }, + { 141458, true }, + { 141473, true }, + { 141486, true }, + { 141500, true }, + { 141508, true }, { 141520, true }, - { 141528, true }, - { 141540, true }, - { 141551, true }, - { 141563, true }, + { 141531, true }, + { 141543, true }, + { 141553, true }, + { 141562, true }, { 141573, true }, - { 141582, true }, - { 141593, true }, - { 141604, false }, - { 141614, false }, - { 141630, true }, - { 141640, true }, - { 141655, true }, - { 141665, true }, - { 141679, true }, - { 141694, true }, + { 141584, false }, + { 141594, false }, + { 141610, true }, + { 141620, true }, + { 141635, true }, + { 141645, true }, + { 141659, true }, + { 141674, true }, + { 141686, true }, + { 141697, true }, { 141706, true }, - { 141717, true }, - { 141726, true }, - { 141739, true }, - { 141749, true }, - { 141762, true }, - { 141773, true }, - { 141796, false }, - { 141810, true }, - { 141822, true }, - { 141835, true }, - { 141844, true }, - { 141857, false }, - { 141867, true }, - { 141883, true }, - { 141894, true }, - { 141908, true }, - { 141922, true }, - { 141932, true }, - { 141941, true }, - { 141951, true }, - { 141966, true }, - { 141978, true }, - { 141990, true }, - { 142004, true }, - { 142021, true }, - { 142031, false }, - { 142040, false }, - { 142059, true }, - { 142075, true }, - { 142090, true }, - { 142100, true }, - { 142112, true }, - { 142124, false }, - { 142136, true }, - { 142149, true }, - { 142167, true }, - { 142182, true }, - { 142197, false }, - { 142213, true }, - { 142225, true }, - { 142237, true }, - { 142248, true }, - { 142261, false }, - { 142276, true }, + { 141719, true }, + { 141729, true }, + { 141742, true }, + { 141753, true }, + { 141776, false }, + { 141790, true }, + { 141802, true }, + { 141815, true }, + { 141824, true }, + { 141837, false }, + { 141847, true }, + { 141863, true }, + { 141874, true }, + { 141888, true }, + { 141902, true }, + { 141912, true }, + { 141921, true }, + { 141931, true }, + { 141946, true }, + { 141958, true }, + { 141970, true }, + { 141984, true }, + { 142001, true }, + { 142011, false }, + { 142020, false }, + { 142039, true }, + { 142055, true }, + { 142070, true }, + { 142080, true }, + { 142092, true }, + { 142104, false }, + { 142116, true }, + { 142129, true }, + { 142147, true }, + { 142162, true }, + { 142177, false }, + { 142193, true }, + { 142205, true }, + { 142217, true }, + { 142228, true }, + { 142241, false }, + { 142256, true }, + { 142271, true }, + { 142281, true }, { 142291, true }, - { 142301, true }, - { 142311, true }, - { 142325, true }, - { 142339, true }, - { 142351, true }, - { 142362, true }, - { 142378, true }, - { 142389, true }, - { 142400, true }, - { 142418, true }, - { 142436, true }, - { 142449, true }, - { 142470, false }, + { 142305, true }, + { 142319, true }, + { 142331, true }, + { 142342, true }, + { 142358, true }, + { 142369, true }, + { 142380, true }, + { 142398, true }, + { 142416, true }, + { 142429, true }, + { 142450, false }, + { 142469, true }, { 142489, true }, - { 142509, true }, - { 142531, true }, - { 142543, true }, - { 142561, true }, - { 142576, true }, - { 142588, true }, - { 142604, true }, - { 142619, true }, - { 142635, true }, - { 142651, true }, - { 142668, true }, - { 142684, true }, - { 142701, true }, - { 142723, true }, - { 142740, true }, - { 142762, true }, - { 142773, true }, + { 142511, true }, + { 142523, true }, + { 142541, true }, + { 142556, true }, + { 142568, true }, + { 142584, true }, + { 142599, true }, + { 142615, true }, + { 142631, true }, + { 142648, true }, + { 142664, true }, + { 142681, true }, + { 142703, true }, + { 142720, true }, + { 142742, true }, + { 142753, true }, + { 142769, true }, { 142789, true }, - { 142809, true }, - { 142820, true }, - { 142835, true }, - { 142851, true }, - { 142866, true }, - { 142881, true }, - { 142895, true }, - { 142918, true }, - { 142930, true }, - { 142945, true }, - { 142970, true }, - { 142985, true }, - { 142997, true }, - { 143012, true }, - { 143028, true }, - { 143043, true }, - { 143072, true }, - { 143094, true }, - { 143112, true }, - { 143126, true }, - { 143139, true }, - { 143154, true }, - { 143169, true }, - { 143176, true }, - { 143192, true }, - { 143203, true }, - { 143214, true }, - { 143224, true }, - { 143235, true }, - { 143249, true }, - { 143263, true }, - { 143275, true }, - { 143287, true }, - { 143298, true }, - { 143313, true }, - { 143326, true }, - { 143355, true }, - { 143364, true }, - { 143379, true }, + { 142800, true }, + { 142815, true }, + { 142831, true }, + { 142846, true }, + { 142861, true }, + { 142875, true }, + { 142898, true }, + { 142910, true }, + { 142925, true }, + { 142950, true }, + { 142965, true }, + { 142977, true }, + { 142992, true }, + { 143008, true }, + { 143023, true }, + { 143052, true }, + { 143074, true }, + { 143092, true }, + { 143106, true }, + { 143119, true }, + { 143134, true }, + { 143149, true }, + { 143156, true }, + { 143172, true }, + { 143183, true }, + { 143194, true }, + { 143204, true }, + { 143215, true }, + { 143229, true }, + { 143243, true }, + { 143255, true }, + { 143267, true }, + { 143278, true }, + { 143293, true }, + { 143306, true }, + { 143335, true }, + { 143344, true }, + { 143359, true }, + { 143366, true }, + { 143376, true }, { 143386, true }, - { 143396, true }, - { 143406, true }, - { 143415, true }, - { 143431, true }, - { 143440, true }, - { 143452, true }, - { 143468, true }, - { 143487, true }, - { 143499, false }, - { 143516, false }, - { 143536, true }, - { 143551, true }, - { 143567, true }, - { 143580, true }, - { 143598, true }, - { 143613, true }, - { 143622, true }, - { 143637, true }, - { 143651, true }, - { 143667, true }, - { 143682, true }, - { 143704, true }, - { 143725, true }, - { 143744, true }, - { 143763, true }, + { 143395, true }, + { 143411, true }, + { 143420, true }, + { 143432, true }, + { 143448, true }, + { 143467, true }, + { 143479, false }, + { 143496, false }, + { 143516, true }, + { 143531, true }, + { 143547, true }, + { 143560, true }, + { 143578, true }, + { 143593, true }, + { 143602, true }, + { 143617, true }, + { 143631, true }, + { 143647, true }, + { 143662, true }, + { 143684, true }, + { 143705, true }, + { 143724, true }, + { 143743, true }, + { 143759, true }, + { 143770, true }, { 143779, true }, - { 143790, true }, - { 143799, true }, - { 143809, true }, - { 143828, true }, - { 143843, true }, - { 143857, true }, - { 143870, true }, - { 143878, true }, - { 143886, true }, - { 143895, true }, - { 143907, true }, - { 143919, true }, + { 143789, true }, + { 143808, true }, + { 143823, true }, + { 143837, true }, + { 143850, true }, + { 143858, true }, + { 143866, true }, + { 143875, true }, + { 143887, true }, + { 143899, true }, + { 143908, true }, + { 143920, true }, { 143928, true }, { 143940, true }, - { 143948, true }, - { 143960, true }, - { 143986, true }, - { 144009, false }, - { 144025, true }, + { 143966, true }, + { 143989, false }, + { 144005, true }, + { 144019, true }, { 144039, true }, - { 144059, true }, - { 144070, true }, - { 144091, true }, - { 144110, true }, - { 144124, true }, - { 144138, true }, - { 144155, true }, - { 144169, false }, - { 144184, true }, - { 144192, true }, - { 144207, true }, - { 144222, true }, - { 144233, true }, - { 144247, true }, - { 144258, true }, - { 144268, true }, - { 144286, true }, + { 144050, true }, + { 144071, true }, + { 144090, true }, + { 144104, true }, + { 144118, true }, + { 144135, true }, + { 144149, false }, + { 144164, true }, + { 144172, true }, + { 144187, true }, + { 144202, true }, + { 144213, true }, + { 144227, true }, + { 144238, true }, + { 144248, true }, + { 144266, true }, + { 144283, true }, { 144303, true }, - { 144323, true }, - { 144347, true }, - { 144354, true }, - { 144365, true }, - { 144376, true }, - { 144389, true }, - { 144401, false }, - { 144416, true }, - { 144432, true }, - { 144445, true }, - { 144453, true }, - { 144463, true }, - { 144478, false }, - { 144487, true }, - { 144501, true }, - { 144516, true }, - { 144526, true }, - { 144538, true }, - { 144548, true }, + { 144327, true }, + { 144334, true }, + { 144345, true }, + { 144356, true }, + { 144369, true }, + { 144381, false }, + { 144396, true }, + { 144412, true }, + { 144425, true }, + { 144433, true }, + { 144443, true }, + { 144458, false }, + { 144467, true }, + { 144481, true }, + { 144496, true }, + { 144506, true }, + { 144518, true }, + { 144528, true }, + { 144541, true }, + { 144553, true }, { 144561, true }, - { 144573, true }, - { 144581, true }, - { 144592, true }, - { 144606, true }, - { 144627, true }, - { 144640, true }, - { 144650, false }, - { 144670, true }, - { 144677, true }, - { 144684, true }, - { 144694, true }, - { 144700, true }, - { 144708, true }, - { 144717, false }, - { 144737, true }, - { 144746, true }, - { 144755, true }, - { 144773, true }, - { 144787, true }, - { 144802, true }, - { 144814, true }, - { 144827, true }, - { 144845, true }, - { 144856, true }, - { 144864, true }, + { 144572, true }, + { 144586, true }, + { 144607, true }, + { 144620, true }, + { 144630, false }, + { 144650, true }, + { 144657, true }, + { 144664, true }, + { 144674, true }, + { 144680, true }, + { 144688, true }, + { 144697, false }, + { 144717, true }, + { 144726, true }, + { 144735, true }, + { 144753, true }, + { 144767, true }, + { 144782, true }, + { 144794, true }, + { 144807, true }, + { 144825, true }, + { 144836, true }, + { 144844, true }, + { 144854, true }, + { 144862, true }, { 144874, true }, - { 144882, true }, - { 144894, true }, - { 144903, true }, - { 144916, true }, - { 144926, true }, - { 144938, true }, - { 144953, true }, - { 144965, true }, - { 144979, true }, - { 144995, true }, - { 145013, true }, - { 145026, true }, - { 145039, false }, - { 145052, true }, - { 145071, true }, + { 144883, true }, + { 144896, true }, + { 144906, true }, + { 144918, true }, + { 144933, true }, + { 144945, true }, + { 144959, true }, + { 144975, true }, + { 144993, true }, + { 145006, true }, + { 145019, false }, + { 145032, true }, + { 145051, true }, + { 145066, true }, + { 145074, true }, { 145086, true }, - { 145094, true }, - { 145106, true }, + { 145100, true }, { 145120, true }, - { 145140, true }, - { 145152, true }, - { 145178, true }, - { 145196, true }, - { 145213, true }, - { 145230, true }, - { 145241, true }, - { 145259, true }, - { 145271, true }, - { 145284, true }, - { 145300, true }, - { 145314, true }, - { 145332, true }, - { 145348, true }, - { 145371, true }, - { 145390, true }, - { 145404, true }, - { 145420, true }, - { 145436, true }, - { 145453, true }, - { 145484, true }, - { 145514, false }, - { 145530, true }, - { 145541, true }, - { 145553, true }, - { 145566, true }, - { 145583, true }, - { 145597, true }, - { 145622, true }, - { 145639, true }, - { 145656, true }, - { 145675, true }, + { 145132, true }, + { 145158, true }, + { 145176, true }, + { 145193, true }, + { 145210, true }, + { 145221, true }, + { 145239, true }, + { 145251, true }, + { 145264, true }, + { 145280, true }, + { 145294, true }, + { 145312, true }, + { 145328, true }, + { 145351, true }, + { 145370, true }, + { 145384, true }, + { 145400, true }, + { 145416, true }, + { 145433, true }, + { 145464, true }, + { 145494, false }, + { 145510, true }, + { 145521, true }, + { 145533, true }, + { 145546, true }, + { 145563, true }, + { 145577, true }, + { 145602, true }, + { 145619, true }, + { 145636, true }, + { 145655, true }, + { 145670, true }, { 145690, true }, - { 145710, true }, - { 145725, true }, - { 145736, true }, - { 145751, true }, - { 145769, true }, - { 145785, true }, - { 145797, true }, - { 145807, true }, - { 145824, true }, - { 145836, false }, - { 145850, true }, - { 145857, false }, - { 145889, true }, - { 145903, true }, - { 145913, true }, - { 145927, true }, - { 145940, true }, - { 145957, true }, - { 145969, true }, - { 145983, true }, - { 145999, false }, - { 146014, true }, - { 146028, true }, - { 146039, true }, - { 146050, true }, - { 146062, true }, - { 146071, true }, - { 146078, true }, - { 146089, true }, - { 146097, true }, - { 146104, true }, - { 146114, true }, - { 146125, true }, - { 146133, true }, - { 146141, true }, - { 146149, true }, - { 146162, true }, + { 145705, true }, + { 145716, true }, + { 145731, true }, + { 145749, true }, + { 145765, true }, + { 145777, true }, + { 145787, true }, + { 145804, true }, + { 145816, false }, + { 145830, true }, + { 145837, false }, + { 145869, true }, + { 145883, true }, + { 145893, true }, + { 145907, true }, + { 145920, true }, + { 145937, true }, + { 145949, true }, + { 145963, true }, + { 145979, false }, + { 145994, true }, + { 146008, true }, + { 146019, true }, + { 146030, true }, + { 146042, true }, + { 146051, true }, + { 146058, true }, + { 146069, true }, + { 146077, true }, + { 146084, true }, + { 146094, true }, + { 146105, true }, + { 146113, true }, + { 146121, true }, + { 146129, true }, + { 146142, true }, + { 146157, true }, + { 146167, true }, { 146177, true }, - { 146187, true }, - { 146197, true }, - { 146204, true }, - { 146216, true }, - { 146225, true }, - { 146241, true }, - { 146253, true }, - { 146265, true }, - { 146277, true }, - { 146288, true }, - { 146303, true }, - { 146311, true }, - { 146322, true }, - { 146333, true }, - { 146347, true }, - { 146363, true }, - { 146375, true }, - { 146389, true }, - { 146403, true }, - { 146424, true }, - { 146439, true }, + { 146184, true }, + { 146196, true }, + { 146205, true }, + { 146221, true }, + { 146233, true }, + { 146245, true }, + { 146257, true }, + { 146268, true }, + { 146283, true }, + { 146291, true }, + { 146302, true }, + { 146313, true }, + { 146327, true }, + { 146343, true }, + { 146355, true }, + { 146369, true }, + { 146383, true }, + { 146404, true }, + { 146419, true }, + { 146440, true }, + { 146452, true }, { 146460, true }, - { 146472, true }, - { 146480, true }, - { 146494, true }, - { 146501, true }, - { 146513, true }, - { 146527, true }, - { 146544, true }, - { 146557, true }, - { 146573, false }, - { 146586, true }, - { 146599, true }, - { 146613, true }, - { 146624, true }, - { 146634, true }, - { 146641, true }, - { 146653, true }, - { 146662, true }, - { 146671, true }, - { 146679, true }, - { 146694, true }, - { 146702, true }, - { 146714, false }, - { 146724, true }, + { 146474, true }, + { 146481, true }, + { 146493, true }, + { 146507, true }, + { 146524, true }, + { 146537, true }, + { 146553, false }, + { 146566, true }, + { 146579, true }, + { 146593, true }, + { 146604, true }, + { 146614, true }, + { 146621, true }, + { 146633, true }, + { 146642, true }, + { 146651, true }, + { 146659, true }, + { 146674, true }, + { 146682, true }, + { 146694, false }, + { 146704, true }, + { 146714, true }, + { 146725, true }, { 146734, true }, - { 146745, true }, - { 146754, true }, - { 146772, true }, - { 146782, true }, - { 146793, false }, - { 146804, true }, - { 146815, true }, - { 146837, true }, - { 146845, true }, - { 146853, false }, - { 146861, true }, - { 146869, true }, - { 146885, true }, - { 146901, true }, - { 146914, true }, - { 146925, true }, - { 146937, true }, - { 146956, true }, - { 146970, true }, - { 146984, true }, - { 146998, true }, - { 147013, false }, - { 147031, true }, - { 147047, true }, - { 147062, true }, - { 147073, true }, - { 147085, true }, - { 147096, true }, - { 147115, true }, - { 147131, true }, - { 147143, true }, - { 147155, true }, - { 147168, true }, + { 146752, true }, + { 146762, true }, + { 146773, false }, + { 146784, true }, + { 146795, true }, + { 146817, true }, + { 146825, true }, + { 146833, false }, + { 146841, true }, + { 146849, true }, + { 146865, true }, + { 146881, true }, + { 146894, true }, + { 146905, true }, + { 146917, true }, + { 146936, true }, + { 146950, true }, + { 146964, true }, + { 146978, true }, + { 146993, false }, + { 147011, true }, + { 147027, true }, + { 147042, true }, + { 147053, true }, + { 147065, true }, + { 147076, true }, + { 147095, true }, + { 147111, true }, + { 147123, true }, + { 147135, true }, + { 147148, true }, + { 147160, true }, + { 147167, true }, { 147180, true }, - { 147187, true }, - { 147200, true }, - { 147217, true }, + { 147197, true }, + { 147219, true }, + { 147229, true }, { 147239, true }, - { 147249, true }, - { 147259, true }, - { 147271, false }, - { 147282, true }, + { 147251, false }, + { 147262, true }, + { 147276, true }, + { 147285, true }, { 147296, true }, - { 147305, true }, - { 147316, true }, - { 147334, true }, - { 147353, true }, - { 147369, true }, - { 147382, true }, - { 147398, true }, - { 147425, true }, - { 147437, true }, - { 147451, true }, - { 147459, true }, - { 147473, true }, - { 147483, true }, - { 147519, true }, - { 147552, true }, - { 147575, true }, - { 147588, true }, - { 147597, true }, - { 147614, false }, - { 147637, true }, - { 147653, true }, - { 147671, true }, - { 147688, true }, - { 147712, true }, - { 147724, true }, - { 147733, true }, - { 147742, true }, - { 147754, true }, - { 147763, true }, - { 147771, true }, - { 147784, true }, - { 147795, true }, - { 147820, true }, - { 147831, true }, - { 147844, true }, - { 147858, true }, - { 147871, false }, - { 147882, true }, - { 147890, true }, - { 147898, true }, - { 147906, true }, - { 147919, false }, - { 147930, true }, + { 147314, true }, + { 147333, true }, + { 147349, true }, + { 147362, true }, + { 147378, true }, + { 147405, true }, + { 147417, true }, + { 147431, true }, + { 147439, true }, + { 147453, true }, + { 147463, true }, + { 147499, true }, + { 147532, true }, + { 147555, true }, + { 147568, true }, + { 147577, true }, + { 147594, false }, + { 147617, true }, + { 147633, true }, + { 147651, true }, + { 147668, true }, + { 147692, true }, + { 147704, true }, + { 147713, true }, + { 147722, true }, + { 147734, true }, + { 147743, true }, + { 147751, true }, + { 147764, true }, + { 147775, true }, + { 147800, true }, + { 147811, true }, + { 147824, true }, + { 147838, true }, + { 147851, false }, + { 147862, true }, + { 147870, true }, + { 147878, true }, + { 147886, true }, + { 147899, false }, + { 147910, true }, + { 147925, true }, { 147945, true }, - { 147965, true }, - { 147973, true }, + { 147953, true }, + { 147971, true }, { 147991, true }, { 148011, true }, - { 148031, true }, - { 148052, true }, - { 148067, true }, - { 148093, true }, - { 148103, true }, - { 148116, false }, - { 148134, true }, + { 148032, true }, + { 148047, true }, + { 148073, true }, + { 148083, true }, + { 148096, false }, + { 148114, true }, + { 148145, true }, { 148165, true }, - { 148185, true }, - { 148202, true }, - { 148220, true }, - { 148233, true }, - { 148248, true }, - { 148260, true }, - { 148270, true }, + { 148182, true }, + { 148200, true }, + { 148213, true }, + { 148228, true }, + { 148240, true }, + { 148250, true }, + { 148257, true }, { 148277, true }, - { 148297, true }, - { 148310, true }, - { 148327, true }, - { 148343, true }, - { 148355, true }, - { 148369, true }, - { 148381, true }, - { 148396, true }, - { 148414, true }, - { 148427, true }, - { 148437, true }, - { 148448, true }, - { 148459, true }, - { 148470, true }, - { 148485, true }, - { 148496, true }, - { 148508, false }, - { 148520, true }, - { 148534, true }, - { 148551, true }, - { 148561, true }, - { 148574, false }, - { 148592, false }, - { 148603, true }, - { 148618, true }, - { 148635, true }, - { 148652, true }, - { 148669, true }, - { 148679, true }, - { 148694, true }, - { 148704, true }, - { 148719, true }, - { 148736, true }, - { 148748, true }, - { 148759, true }, - { 148777, true }, - { 148792, true }, - { 148807, true }, - { 148832, true }, - { 148857, true }, - { 148870, true }, - { 148889, true }, + { 148290, true }, + { 148307, true }, + { 148323, true }, + { 148335, true }, + { 148349, true }, + { 148361, true }, + { 148376, true }, + { 148394, true }, + { 148407, true }, + { 148417, true }, + { 148428, true }, + { 148439, true }, + { 148450, true }, + { 148465, true }, + { 148476, true }, + { 148488, false }, + { 148500, true }, + { 148514, true }, + { 148531, true }, + { 148541, true }, + { 148554, false }, + { 148572, false }, + { 148583, true }, + { 148598, true }, + { 148615, true }, + { 148632, true }, + { 148649, true }, + { 148659, true }, + { 148674, true }, + { 148684, true }, + { 148699, true }, + { 148716, true }, + { 148728, true }, + { 148739, true }, + { 148757, true }, + { 148772, true }, + { 148787, true }, + { 148812, true }, + { 148837, true }, + { 148850, true }, + { 148869, true }, + { 148886, true }, { 148906, true }, - { 148926, true }, - { 148947, true }, - { 148961, true }, - { 148986, true }, - { 149007, true }, - { 149029, true }, - { 149059, true }, - { 149083, true }, - { 149098, true }, - { 149111, true }, - { 149121, true }, - { 149144, true }, - { 149155, true }, - { 149162, true }, - { 149181, true }, - { 149190, true }, + { 148927, true }, + { 148941, true }, + { 148966, true }, + { 148987, true }, + { 149009, true }, + { 149039, true }, + { 149063, true }, + { 149078, true }, + { 149091, true }, + { 149101, true }, + { 149124, true }, + { 149135, true }, + { 149142, true }, + { 149161, true }, + { 149170, true }, + { 149177, true }, { 149197, true }, - { 149217, true }, - { 149228, true }, - { 149247, true }, - { 149263, true }, - { 149273, true }, - { 149284, true }, - { 149294, true }, - { 149305, true }, - { 149317, true }, - { 149333, true }, - { 149341, true }, - { 149351, true }, - { 149363, true }, - { 149374, true }, - { 149389, true }, - { 149413, true }, - { 149427, true }, - { 149435, true }, - { 149453, true }, - { 149464, true }, - { 149477, true }, - { 149488, true }, - { 149507, true }, - { 149519, true }, - { 149530, true }, - { 149545, true }, - { 149560, true }, - { 149574, true }, - { 149586, true }, + { 149208, true }, + { 149227, true }, + { 149243, true }, + { 149253, true }, + { 149264, true }, + { 149274, true }, + { 149285, true }, + { 149297, true }, + { 149313, true }, + { 149321, true }, + { 149331, true }, + { 149343, true }, + { 149354, true }, + { 149369, true }, + { 149393, true }, + { 149407, true }, + { 149415, true }, + { 149433, true }, + { 149444, true }, + { 149457, true }, + { 149468, true }, + { 149487, true }, + { 149499, true }, + { 149510, true }, + { 149525, true }, + { 149540, true }, + { 149554, true }, + { 149566, true }, + { 149584, true }, { 149604, true }, - { 149624, true }, - { 149636, true }, - { 149653, true }, - { 149668, true }, - { 149682, true }, + { 149616, true }, + { 149633, true }, + { 149648, true }, + { 149662, true }, + { 149676, true }, + { 149687, true }, { 149696, true }, - { 149707, true }, - { 149716, true }, + { 149709, true }, + { 149718, true }, { 149729, true }, - { 149738, true }, - { 149749, true }, - { 149761, true }, - { 149768, true }, - { 149779, true }, - { 149796, false }, - { 149822, false }, - { 149834, true }, - { 149847, true }, - { 149858, true }, - { 149875, true }, - { 149885, true }, - { 149898, true }, - { 149913, true }, - { 149934, true }, - { 149950, true }, - { 149974, true }, - { 149988, true }, - { 149999, true }, - { 150013, true }, - { 150030, true }, - { 150042, true }, - { 150057, true }, - { 150067, true }, - { 150080, true }, - { 150093, true }, + { 149741, true }, + { 149748, true }, + { 149759, true }, + { 149776, false }, + { 149802, false }, + { 149814, true }, + { 149827, true }, + { 149838, true }, + { 149855, true }, + { 149865, true }, + { 149878, true }, + { 149893, true }, + { 149914, true }, + { 149930, true }, + { 149954, true }, + { 149968, true }, + { 149979, true }, + { 149993, true }, + { 150010, true }, + { 150022, true }, + { 150037, true }, + { 150047, true }, + { 150060, true }, + { 150073, true }, + { 150086, true }, { 150106, true }, - { 150126, true }, - { 150148, true }, - { 150162, true }, - { 150177, false }, - { 150190, true }, - { 150205, true }, + { 150128, true }, + { 150142, true }, + { 150157, false }, + { 150170, true }, + { 150185, true }, + { 150196, true }, { 150216, true }, - { 150236, true }, - { 150249, true }, - { 150270, true }, - { 150281, true }, - { 150300, true }, - { 150308, true }, - { 150316, true }, - { 150333, true }, - { 150349, true }, - { 150358, true }, - { 150373, true }, - { 150384, true }, + { 150229, true }, + { 150250, true }, + { 150261, true }, + { 150280, true }, + { 150288, true }, + { 150296, true }, + { 150313, true }, + { 150329, true }, + { 150338, true }, + { 150353, true }, + { 150364, true }, + { 150375, true }, + { 150385, true }, { 150395, true }, - { 150405, true }, - { 150415, true }, - { 150426, true }, - { 150436, true }, - { 150447, true }, - { 150459, true }, - { 150466, true }, - { 150484, true }, - { 150496, true }, - { 150507, true }, - { 150529, true }, - { 150543, true }, - { 150562, true }, - { 150570, true }, - { 150589, true }, - { 150611, true }, - { 150620, true }, - { 150632, true }, - { 150650, true }, - { 150664, true }, - { 150683, true }, - { 150693, true }, - { 150702, true }, + { 150406, true }, + { 150416, true }, + { 150427, true }, + { 150439, true }, + { 150446, true }, + { 150464, true }, + { 150476, true }, + { 150487, true }, + { 150509, true }, + { 150523, true }, + { 150542, true }, + { 150550, true }, + { 150569, true }, + { 150591, true }, + { 150600, true }, + { 150612, true }, + { 150630, true }, + { 150644, true }, + { 150663, true }, + { 150673, true }, + { 150682, true }, + { 150698, true }, + { 150706, true }, { 150718, true }, - { 150726, true }, - { 150738, true }, + { 150733, true }, { 150753, true }, - { 150773, true }, - { 150781, true }, - { 150794, true }, - { 150803, true }, - { 150821, true }, - { 150833, true }, - { 150852, true }, - { 150866, true }, - { 150879, true }, - { 150891, true }, - { 150915, true }, - { 150931, true }, - { 150945, true }, - { 150962, true }, - { 150978, true }, - { 150995, true }, - { 151014, true }, - { 151030, true }, - { 151038, true }, - { 151056, true }, - { 151065, false }, - { 151074, true }, - { 151086, true }, - { 151100, true }, - { 151110, true }, - { 151123, true }, - { 151132, true }, - { 151155, true }, - { 151167, true }, - { 151183, true }, - { 151193, false }, - { 151202, true }, - { 151209, true }, - { 151218, true }, - { 151226, true }, - { 151235, false }, - { 151249, true }, + { 150761, true }, + { 150774, true }, + { 150783, true }, + { 150801, true }, + { 150813, true }, + { 150832, true }, + { 150846, true }, + { 150859, true }, + { 150871, true }, + { 150895, true }, + { 150911, true }, + { 150925, true }, + { 150942, true }, + { 150958, true }, + { 150975, true }, + { 150994, true }, + { 151010, true }, + { 151018, true }, + { 151036, true }, + { 151045, false }, + { 151054, true }, + { 151066, true }, + { 151080, true }, + { 151090, true }, + { 151103, true }, + { 151112, true }, + { 151135, true }, + { 151147, true }, + { 151163, true }, + { 151173, false }, + { 151182, true }, + { 151189, true }, + { 151198, true }, + { 151206, true }, + { 151215, false }, + { 151229, true }, + { 151243, true }, + { 151253, true }, { 151263, true }, { 151273, true }, - { 151283, true }, - { 151293, true }, - { 151305, true }, - { 151317, true }, - { 151335, false }, - { 151348, true }, - { 151363, true }, - { 151381, true }, - { 151391, true }, - { 151402, true }, - { 151414, true }, - { 151427, true }, - { 151441, true }, - { 151455, true }, - { 151465, true }, - { 151478, true }, + { 151285, true }, + { 151297, true }, + { 151315, false }, + { 151328, true }, + { 151343, true }, + { 151361, true }, + { 151371, true }, + { 151382, true }, + { 151394, true }, + { 151407, true }, + { 151421, true }, + { 151435, true }, + { 151445, true }, + { 151458, true }, + { 151468, true }, + { 151479, true }, { 151488, true }, - { 151499, true }, - { 151508, true }, - { 151525, true }, - { 151534, true }, - { 151547, true }, - { 151558, true }, - { 151576, true }, - { 151586, true }, - { 151596, true }, - { 151608, true }, - { 151620, true }, + { 151505, true }, + { 151514, true }, + { 151527, true }, + { 151538, true }, + { 151556, true }, + { 151566, true }, + { 151578, true }, + { 151590, true }, + { 151601, true }, + { 151618, true }, { 151631, true }, - { 151648, true }, - { 151661, true }, - { 151675, true }, - { 151684, true }, - { 151697, false }, - { 151706, true }, - { 151723, false }, - { 151734, true }, - { 151750, false }, - { 151765, false }, - { 151776, false }, - { 151783, true }, - { 151799, true }, - { 151817, true }, - { 151836, true }, - { 151851, true }, + { 151645, true }, + { 151654, true }, + { 151667, false }, + { 151676, true }, + { 151693, false }, + { 151704, true }, + { 151720, false }, + { 151735, false }, + { 151746, false }, + { 151753, true }, + { 151769, true }, + { 151787, true }, + { 151806, true }, + { 151821, true }, + { 151838, true }, + { 151852, true }, { 151868, true }, - { 151882, true }, - { 151898, true }, - { 151919, true }, - { 151933, true }, - { 151958, true }, - { 151975, true }, - { 151994, true }, - { 152009, false }, - { 152023, true }, - { 152037, true }, - { 152050, true }, - { 152071, true }, - { 152083, true }, - { 152096, true }, - { 152106, true }, - { 152120, true }, - { 152140, true }, - { 152153, true }, - { 152172, true }, - { 152188, true }, - { 152206, true }, - { 152220, false }, - { 152232, true }, - { 152242, true }, - { 152256, true }, - { 152266, true }, - { 152282, true }, - { 152308, true }, - { 152336, true }, - { 152349, true }, - { 152364, true }, - { 152380, true }, - { 152404, true }, - { 152420, true }, - { 152435, true }, - { 152449, true }, + { 151889, true }, + { 151903, true }, + { 151928, true }, + { 151945, true }, + { 151964, true }, + { 151979, false }, + { 151993, true }, + { 152007, true }, + { 152020, true }, + { 152041, true }, + { 152053, true }, + { 152066, true }, + { 152076, true }, + { 152090, true }, + { 152110, true }, + { 152123, true }, + { 152142, true }, + { 152158, true }, + { 152176, true }, + { 152190, false }, + { 152202, true }, + { 152212, true }, + { 152226, true }, + { 152236, true }, + { 152252, true }, + { 152278, true }, + { 152306, true }, + { 152319, true }, + { 152334, true }, + { 152350, true }, + { 152374, true }, + { 152390, true }, + { 152405, true }, + { 152419, true }, + { 152431, true }, + { 152443, false }, { 152461, true }, - { 152473, true }, - { 152486, true }, - { 152505, true }, - { 152523, true }, - { 152538, true }, - { 152561, true }, - { 152578, true }, - { 152597, true }, - { 152617, true }, - { 152640, true }, - { 152659, true }, - { 152678, true }, - { 152697, true }, - { 152715, true }, - { 152734, true }, - { 152745, true }, - { 152755, true }, - { 152770, true }, - { 152791, true }, - { 152811, true }, - { 152830, true }, + { 152474, true }, + { 152493, true }, + { 152511, true }, + { 152526, true }, + { 152549, true }, + { 152566, true }, + { 152585, true }, + { 152605, true }, + { 152628, true }, + { 152647, true }, + { 152666, true }, + { 152685, true }, + { 152703, true }, + { 152722, true }, + { 152733, true }, + { 152743, true }, + { 152758, true }, + { 152779, true }, + { 152799, true }, + { 152818, true }, + { 152832, true }, { 152844, true }, - { 152856, true }, - { 152866, true }, - { 152896, true }, - { 152919, true }, - { 152942, true }, - { 152971, true }, - { 152989, true }, - { 153005, true }, + { 152854, true }, + { 152884, true }, + { 152907, true }, + { 152930, true }, + { 152959, true }, + { 152977, true }, + { 152993, true }, + { 153012, true }, { 153024, true }, - { 153036, true }, - { 153046, true }, - { 153066, false }, - { 153078, true }, - { 153091, true }, - { 153108, true }, - { 153126, true }, - { 153146, true }, - { 153161, true }, + { 153034, true }, + { 153054, false }, + { 153066, true }, + { 153079, true }, + { 153096, true }, + { 153114, true }, + { 153134, true }, + { 153149, true }, + { 153158, true }, { 153170, true }, - { 153182, true }, + { 153181, true }, { 153193, true }, - { 153205, true }, - { 153217, false }, - { 153234, true }, - { 153247, true }, - { 153265, true }, - { 153280, true }, + { 153205, false }, + { 153222, true }, + { 153235, true }, + { 153253, true }, + { 153268, true }, + { 153283, true }, { 153295, true }, - { 153307, true }, + { 153309, true }, { 153321, true }, - { 153333, true }, + { 153341, true }, { 153353, true }, - { 153365, true }, - { 153379, true }, - { 153399, true }, - { 153413, true }, - { 153431, true }, - { 153444, true }, - { 153459, true }, - { 153475, true }, + { 153367, true }, + { 153387, true }, + { 153401, true }, + { 153419, true }, + { 153432, true }, + { 153447, true }, + { 153463, true }, + { 153478, true }, { 153490, true }, - { 153502, true }, - { 153515, true }, - { 153531, true }, - { 153541, true }, - { 153548, true }, - { 153563, true }, - { 153583, true }, - { 153594, true }, - { 153607, true }, - { 153616, true }, - { 153636, true }, - { 153656, true }, - { 153679, true }, + { 153503, true }, + { 153519, true }, + { 153529, true }, + { 153536, true }, + { 153551, true }, + { 153571, true }, + { 153582, true }, + { 153595, true }, + { 153604, true }, + { 153624, true }, + { 153644, true }, + { 153667, true }, + { 153687, true }, { 153699, true }, - { 153711, true }, - { 153722, true }, - { 153733, false }, - { 153744, true }, - { 153755, true }, - { 153766, false }, - { 153776, false }, + { 153710, true }, + { 153721, false }, + { 153732, true }, + { 153743, true }, + { 153754, false }, + { 153764, false }, + { 153781, true }, { 153793, true }, - { 153805, true }, - { 153821, true }, - { 153834, true }, - { 153843, true }, - { 153857, true }, + { 153809, true }, + { 153822, true }, + { 153831, true }, + { 153845, true }, + { 153856, true }, { 153868, true }, - { 153880, true }, - { 153898, true }, - { 153912, true }, - { 153925, true }, - { 153938, true }, - { 153947, true }, - { 153962, true }, - { 153973, true }, - { 153987, true }, + { 153886, true }, + { 153900, true }, + { 153913, true }, + { 153926, true }, + { 153935, true }, + { 153950, true }, + { 153961, true }, + { 153975, true }, + { 153995, true }, { 154007, true }, - { 154019, true }, - { 154029, true }, - { 154040, true }, + { 154017, true }, + { 154028, true }, + { 154061, true }, { 154073, true }, - { 154085, true }, - { 154099, true }, - { 154118, true }, - { 154133, true }, - { 154147, true }, - { 154161, false }, - { 154181, true }, - { 154198, true }, - { 154211, true }, - { 154226, true }, - { 154242, true }, - { 154260, true }, - { 154276, true }, + { 154087, true }, + { 154106, true }, + { 154121, true }, + { 154135, true }, + { 154149, false }, + { 154169, true }, + { 154186, true }, + { 154199, true }, + { 154214, true }, + { 154230, true }, + { 154248, true }, + { 154264, true }, + { 154281, true }, { 154293, true }, - { 154305, true }, - { 154319, true }, - { 154335, true }, + { 154307, true }, + { 154323, true }, + { 154336, true }, { 154348, true }, - { 154360, true }, - { 154371, true }, - { 154378, true }, - { 154395, true }, - { 154408, true }, - { 154417, true }, - { 154428, true }, - { 154437, true }, - { 154450, true }, - { 154481, true }, - { 154494, true }, - { 154507, true }, - { 154520, true }, - { 154531, true }, - { 154540, true }, + { 154359, true }, + { 154366, true }, + { 154383, true }, + { 154396, true }, + { 154405, true }, + { 154416, true }, + { 154425, true }, + { 154438, true }, + { 154469, true }, + { 154482, true }, + { 154495, true }, + { 154508, true }, + { 154519, true }, + { 154528, true }, + { 154543, true }, { 154555, true }, - { 154567, true }, - { 154583, true }, - { 154604, true }, - { 154621, false }, + { 154571, true }, + { 154592, true }, + { 154609, false }, + { 154622, true }, { 154634, true }, - { 154646, true }, - { 154659, true }, - { 154670, true }, - { 154687, true }, - { 154698, true }, - { 154717, true }, - { 154735, false }, - { 154747, true }, - { 154757, true }, - { 154793, true }, - { 154806, true }, - { 154820, true }, + { 154647, true }, + { 154658, true }, + { 154675, true }, + { 154686, true }, + { 154705, true }, + { 154723, false }, + { 154735, true }, + { 154745, true }, + { 154781, true }, + { 154794, true }, + { 154808, true }, + { 154817, true }, { 154829, true }, - { 154841, true }, - { 154859, true }, - { 154873, true }, - { 154891, true }, - { 154912, true }, - { 154932, true }, - { 154955, true }, - { 154971, true }, - { 154985, true }, - { 155001, true }, - { 155014, true }, - { 155035, true }, - { 155055, true }, - { 155068, true }, - { 155077, true }, - { 155111, true }, - { 155128, true }, - { 155139, true }, + { 154847, true }, + { 154861, true }, + { 154879, true }, + { 154900, true }, + { 154920, true }, + { 154943, true }, + { 154959, true }, + { 154973, true }, + { 154989, true }, + { 155002, true }, + { 155023, true }, + { 155043, true }, + { 155056, true }, + { 155065, true }, + { 155099, true }, + { 155116, true }, + { 155127, true }, + { 155138, true }, { 155150, true }, - { 155162, true }, - { 155173, true }, + { 155161, true }, + { 155180, true }, { 155192, true }, - { 155204, true }, - { 155217, true }, - { 155233, true }, - { 155252, true }, - { 155267, true }, - { 155281, true }, - { 155296, true }, - { 155313, false }, - { 155328, true }, - { 155348, true }, - { 155359, true }, - { 155370, true }, - { 155390, false }, - { 155399, true }, - { 155408, true }, + { 155205, true }, + { 155221, true }, + { 155240, true }, + { 155255, true }, + { 155269, true }, + { 155284, true }, + { 155301, false }, + { 155316, true }, + { 155336, true }, + { 155347, true }, + { 155358, true }, + { 155378, false }, + { 155387, true }, + { 155396, true }, + { 155407, true }, { 155419, true }, - { 155431, true }, - { 155445, true }, - { 155463, true }, + { 155433, true }, + { 155451, true }, + { 155465, true }, { 155477, true }, - { 155489, true }, - { 155504, true }, - { 155517, true }, - { 155528, false }, - { 155545, true }, - { 155555, true }, - { 155576, true }, - { 155604, false }, - { 155615, true }, - { 155622, true }, - { 155633, true }, - { 155643, true }, - { 155653, true }, - { 155667, true }, - { 155681, true }, - { 155692, false }, - { 155703, true }, - { 155711, false }, - { 155731, true }, - { 155746, true }, - { 155759, true }, - { 155775, true }, - { 155790, true }, - { 155803, true }, - { 155819, true }, - { 155832, true }, - { 155852, true }, - { 155865, true }, - { 155884, true }, - { 155902, true }, - { 155912, true }, - { 155926, true }, - { 155944, true }, - { 155964, true }, - { 155996, true }, - { 156011, true }, - { 156030, true }, - { 156043, true }, - { 156058, true }, - { 156073, true }, - { 156094, true }, - { 156115, true }, - { 156129, true }, - { 156151, true }, - { 156167, true }, + { 155492, true }, + { 155505, true }, + { 155516, false }, + { 155533, true }, + { 155543, true }, + { 155564, true }, + { 155592, false }, + { 155603, true }, + { 155610, true }, + { 155621, true }, + { 155631, true }, + { 155641, true }, + { 155655, true }, + { 155669, true }, + { 155680, false }, + { 155691, true }, + { 155699, false }, + { 155719, true }, + { 155734, true }, + { 155747, true }, + { 155763, true }, + { 155778, true }, + { 155791, true }, + { 155807, true }, + { 155820, true }, + { 155840, true }, + { 155853, true }, + { 155872, true }, + { 155890, true }, + { 155900, true }, + { 155914, true }, + { 155932, true }, + { 155952, true }, + { 155984, true }, + { 155999, true }, + { 156018, true }, + { 156031, true }, + { 156046, true }, + { 156061, true }, + { 156082, true }, + { 156103, true }, + { 156117, true }, + { 156139, true }, + { 156155, true }, + { 156180, true }, { 156192, true }, - { 156204, true }, - { 156215, true }, - { 156232, true }, - { 156256, true }, - { 156270, true }, - { 156283, true }, + { 156203, true }, + { 156220, true }, + { 156244, true }, + { 156258, true }, + { 156271, true }, + { 156284, true }, { 156296, true }, - { 156308, true }, - { 156321, true }, - { 156339, true }, - { 156356, true }, - { 156381, true }, + { 156309, true }, + { 156327, true }, + { 156344, true }, + { 156369, true }, + { 156382, true }, { 156394, true }, - { 156406, true }, - { 156420, true }, - { 156434, true }, - { 156451, true }, - { 156471, true }, - { 156487, true }, - { 156505, true }, - { 156516, true }, - { 156531, true }, - { 156544, true }, - { 156559, true }, - { 156567, false }, + { 156408, true }, + { 156422, true }, + { 156439, true }, + { 156459, true }, + { 156475, true }, + { 156493, true }, + { 156504, true }, + { 156519, true }, + { 156532, true }, + { 156547, true }, + { 156555, false }, + { 156568, true }, { 156580, true }, - { 156592, true }, - { 156606, true }, - { 156615, true }, - { 156631, true }, - { 156647, true }, - { 156669, true }, - { 156683, true }, - { 156693, true }, - { 156707, true }, + { 156594, true }, + { 156603, true }, + { 156619, true }, + { 156635, true }, + { 156657, true }, + { 156671, true }, + { 156681, true }, + { 156695, true }, + { 156703, true }, { 156715, true }, - { 156727, true }, - { 156738, true }, - { 156754, true }, - { 156767, true }, - { 156780, true }, - { 156794, true }, - { 156810, true }, - { 156823, true }, - { 156837, true }, - { 156854, true }, - { 156865, true }, - { 156875, true }, - { 156895, true }, - { 156907, true }, - { 156921, true }, - { 156936, true }, - { 156948, true }, - { 156957, true }, - { 156965, true }, - { 156977, true }, - { 156988, true }, - { 157009, true }, - { 157028, true }, - { 157046, true }, - { 157064, true }, - { 157084, true }, - { 157093, true }, - { 157107, true }, - { 157125, true }, - { 157138, true }, - { 157152, true }, - { 157171, true }, - { 157184, true }, - { 157196, true }, - { 157208, true }, - { 157219, true }, - { 157233, true }, - { 157247, false }, - { 157262, true }, - { 157279, true }, - { 157290, true }, - { 157301, true }, - { 157315, true }, - { 157336, true }, - { 157352, true }, - { 157371, true }, - { 157387, true }, - { 157405, true }, - { 157421, true }, - { 157444, true }, - { 157460, true }, - { 157472, true }, - { 157481, true }, - { 157494, true }, - { 157512, true }, - { 157527, true }, - { 157542, true }, - { 157558, true }, - { 157573, true }, - { 157588, true }, - { 157603, true }, - { 157619, true }, - { 157634, true }, - { 157649, true }, - { 157665, true }, - { 157682, true }, - { 157692, true }, - { 157705, true }, - { 157718, true }, - { 157728, true }, - { 157749, true }, - { 157761, false }, - { 157772, true }, - { 157786, true }, - { 157798, true }, - { 157807, true }, - { 157822, false }, - { 157841, true }, - { 157858, true }, - { 157871, true }, - { 157886, true }, - { 157902, false }, - { 157915, false }, - { 157925, true }, - { 157938, true }, - { 157948, true }, - { 157958, false }, - { 157967, false }, - { 157987, true }, - { 158000, true }, - { 158012, false }, - { 158024, true }, - { 158041, true }, - { 158055, true }, - { 158072, true }, - { 158088, true }, - { 158107, true }, - { 158123, false }, - { 158140, true }, - { 158154, true }, - { 158168, true }, - { 158189, true }, - { 158203, true }, - { 158219, true }, - { 158232, false }, - { 158246, true }, - { 158260, true }, - { 158279, true }, - { 158301, true }, - { 158316, true }, - { 158333, true }, - { 158341, true }, - { 158353, true }, - { 158366, true }, - { 158379, true }, - { 158392, false }, - { 158403, true }, - { 158414, true }, - { 158432, true }, - { 158451, true }, - { 158467, true }, - { 158483, true }, - { 158492, true }, - { 158501, false }, - { 158515, true }, - { 158533, true }, - { 158551, true }, - { 158568, true }, - { 158580, true }, - { 158591, false }, - { 158607, false }, - { 158631, true }, - { 158645, true }, - { 158664, true }, - { 158709, true }, - { 158754, true }, - { 158768, true }, - { 158776, true }, - { 158785, true }, - { 158797, true }, - { 158809, true }, - { 158834, true }, - { 158851, true }, - { 158868, true }, - { 158883, true }, - { 158895, true }, - { 158908, true }, - { 158916, true }, - { 158934, true }, - { 158943, false }, - { 158951, true }, - { 158972, true }, - { 158985, true }, - { 158998, true }, - { 159010, true }, - { 159023, false }, - { 159036, true }, - { 159052, true }, - { 159066, true }, - { 159084, true }, - { 159105, true }, - { 159117, true }, - { 159138, true }, - { 159157, true }, - { 159182, true }, - { 159194, true }, - { 159207, true }, - { 159220, true }, - { 159232, true }, - { 159244, true }, - { 159261, true }, - { 159278, true }, - { 159290, false }, - { 159299, true }, - { 159314, true }, - { 159336, true }, - { 159355, true }, - { 159369, true }, - { 159382, true }, - { 159404, true }, - { 159419, true }, - { 159434, true }, - { 159445, true }, - { 159470, true }, - { 159487, true }, - { 159499, true }, - { 159515, false }, - { 159530, true }, - { 159543, false }, - { 159567, true }, - { 159575, false }, - { 159588, true }, - { 159602, true }, - { 159614, true }, - { 159627, true }, - { 159639, true }, - { 159655, true }, - { 159670, true }, - { 159689, true }, - { 159703, true }, - { 159717, true }, - { 159737, true }, - { 159753, true }, - { 159772, true }, - { 159792, true }, - { 159804, true }, - { 159827, true }, - { 159857, true }, + { 156726, true }, + { 156742, true }, + { 156752, true }, + { 156765, true }, + { 156778, true }, + { 156792, true }, + { 156808, true }, + { 156821, true }, + { 156835, true }, + { 156852, true }, + { 156863, true }, + { 156873, true }, + { 156893, true }, + { 156905, true }, + { 156919, true }, + { 156934, true }, + { 156946, true }, + { 156955, true }, + { 156963, true }, + { 156975, true }, + { 156986, true }, + { 157007, true }, + { 157026, true }, + { 157044, true }, + { 157062, true }, + { 157082, true }, + { 157091, true }, + { 157105, true }, + { 157123, true }, + { 157136, true }, + { 157150, true }, + { 157169, true }, + { 157182, true }, + { 157194, true }, + { 157206, true }, + { 157217, true }, + { 157231, true }, + { 157245, false }, + { 157260, true }, + { 157277, true }, + { 157288, true }, + { 157299, true }, + { 157313, true }, + { 157334, true }, + { 157350, true }, + { 157369, true }, + { 157385, true }, + { 157403, true }, + { 157419, true }, + { 157442, true }, + { 157458, true }, + { 157470, true }, + { 157479, true }, + { 157492, true }, + { 157510, true }, + { 157525, true }, + { 157540, true }, + { 157556, true }, + { 157571, true }, + { 157586, true }, + { 157601, true }, + { 157617, true }, + { 157632, true }, + { 157647, true }, + { 157663, true }, + { 157680, true }, + { 157690, true }, + { 157703, true }, + { 157716, true }, + { 157726, true }, + { 157747, true }, + { 157759, false }, + { 157770, true }, + { 157784, true }, + { 157796, true }, + { 157805, true }, + { 157820, false }, + { 157839, true }, + { 157856, true }, + { 157869, true }, + { 157884, true }, + { 157900, false }, + { 157913, false }, + { 157923, true }, + { 157936, true }, + { 157946, true }, + { 157956, false }, + { 157965, false }, + { 157985, true }, + { 157998, true }, + { 158010, false }, + { 158022, true }, + { 158039, true }, + { 158053, true }, + { 158070, true }, + { 158086, true }, + { 158105, true }, + { 158121, false }, + { 158138, true }, + { 158152, true }, + { 158166, true }, + { 158187, true }, + { 158201, true }, + { 158217, true }, + { 158230, false }, + { 158244, true }, + { 158258, true }, + { 158277, true }, + { 158299, true }, + { 158314, true }, + { 158331, true }, + { 158339, true }, + { 158351, true }, + { 158364, true }, + { 158377, true }, + { 158390, false }, + { 158401, true }, + { 158412, true }, + { 158430, true }, + { 158449, true }, + { 158465, true }, + { 158481, true }, + { 158490, true }, + { 158499, false }, + { 158513, true }, + { 158531, true }, + { 158549, true }, + { 158566, true }, + { 158578, true }, + { 158589, false }, + { 158605, false }, + { 158629, true }, + { 158643, true }, + { 158662, true }, + { 158707, true }, + { 158752, true }, + { 158766, true }, + { 158774, true }, + { 158783, true }, + { 158795, true }, + { 158807, true }, + { 158832, true }, + { 158849, true }, + { 158866, true }, + { 158881, true }, + { 158893, true }, + { 158906, true }, + { 158914, true }, + { 158932, true }, + { 158941, false }, + { 158949, true }, + { 158970, true }, + { 158983, true }, + { 158996, true }, + { 159008, true }, + { 159021, false }, + { 159034, true }, + { 159050, true }, + { 159064, true }, + { 159082, true }, + { 159103, true }, + { 159115, true }, + { 159136, true }, + { 159155, true }, + { 159180, true }, + { 159192, true }, + { 159205, true }, + { 159218, true }, + { 159230, true }, + { 159242, true }, + { 159259, true }, + { 159276, true }, + { 159288, false }, + { 159297, true }, + { 159312, true }, + { 159334, true }, + { 159353, true }, + { 159367, true }, + { 159380, true }, + { 159395, true }, + { 159410, true }, + { 159421, true }, + { 159446, true }, + { 159463, true }, + { 159475, true }, + { 159491, false }, + { 159506, true }, + { 159519, false }, + { 159543, true }, + { 159551, false }, + { 159564, true }, + { 159578, true }, + { 159590, true }, + { 159603, true }, + { 159616, true }, + { 159628, true }, + { 159644, true }, + { 159659, true }, + { 159678, true }, + { 159692, true }, + { 159706, true }, + { 159726, true }, + { 159742, true }, + { 159761, true }, + { 159781, true }, + { 159793, true }, + { 159816, true }, + { 159846, true }, + { 159858, true }, { 159869, true }, - { 159880, true }, - { 159890, true }, - { 159904, true }, - { 159917, true }, - { 159935, false }, - { 159945, true }, - { 159960, true }, - { 159978, true }, - { 159987, true }, - { 160000, false }, - { 160017, true }, - { 160033, true }, - { 160044, true }, - { 160055, true }, - { 160065, true }, - { 160074, true }, - { 160088, true }, - { 160109, true }, - { 160120, true }, - { 160142, true }, - { 160157, true }, - { 160172, true }, - { 160189, true }, - { 160211, true }, - { 160221, true }, - { 160243, true }, - { 160265, true }, - { 160282, true }, - { 160296, true }, - { 160309, true }, - { 160326, true }, - { 160351, true }, - { 160368, true }, - { 160384, true }, - { 160394, true }, - { 160405, true }, - { 160414, false }, - { 160423, true }, - { 160433, true }, - { 160447, true }, - { 160465, true }, - { 160485, true }, - { 160499, true }, - { 160508, true }, - { 160532, true }, - { 160553, true }, - { 160573, true }, - { 160591, true }, - { 160604, true }, - { 160621, true }, - { 160642, true }, - { 160660, true }, - { 160672, true }, - { 160694, false }, - { 160713, true }, - { 160724, true }, - { 160737, true }, - { 160758, true }, - { 160769, true }, - { 160784, true }, - { 160796, true }, - { 160813, true }, - { 160839, true }, - { 160856, false }, - { 160874, true }, - { 160893, false }, - { 160912, true }, - { 160924, true }, - { 160944, true }, - { 160966, true }, - { 160979, true }, - { 161001, true }, - { 161014, true }, - { 161037, true }, - { 161052, true }, - { 161066, true }, - { 161089, true }, - { 161099, true }, - { 161109, true }, - { 161128, true }, - { 161141, true }, - { 161163, true }, - { 161183, true }, - { 161193, true }, - { 161205, true }, - { 161218, true }, - { 161231, true }, - { 161252, true }, - { 161278, true }, - { 161299, true }, - { 161320, true }, - { 161341, true }, - { 161361, true }, - { 161373, true }, - { 161393, true }, - { 161407, true }, - { 161419, true }, - { 161428, true }, - { 161451, true }, - { 161467, true }, - { 161479, true }, - { 161504, true }, - { 161519, true }, - { 161540, true }, - { 161557, true }, - { 161578, false }, - { 161595, false }, - { 161613, true }, - { 161623, true }, - { 161637, true }, - { 161651, true }, - { 161661, true }, - { 161673, true }, - { 161685, true }, - { 161695, true }, - { 161706, true }, - { 161720, true }, - { 161744, true }, - { 161756, true }, - { 161785, true }, - { 161800, true }, - { 161814, true }, - { 161828, true }, - { 161844, true }, - { 161859, true }, - { 161873, true }, - { 161885, true }, - { 161905, true }, - { 161919, true }, - { 161932, true }, - { 161945, true }, - { 161957, true }, - { 161975, true }, - { 161987, true }, - { 162006, true }, - { 162030, true }, - { 162053, true }, - { 162065, true }, - { 162083, true }, - { 162099, true }, - { 162119, false }, - { 162137, true }, - { 162157, true }, - { 162170, true }, - { 162190, true }, - { 162198, true }, - { 162208, true }, - { 162227, true }, - { 162246, true }, - { 162260, true }, - { 162278, true }, - { 162294, false }, - { 162313, true }, - { 162334, true }, - { 162348, true }, - { 162357, true }, - { 162374, true }, - { 162390, true }, - { 162412, true }, - { 162429, true }, - { 162447, true }, - { 162466, true }, - { 162483, true }, - { 162496, true }, - { 162506, true }, - { 162514, true }, - { 162532, true }, - { 162560, true }, - { 162577, true }, - { 162591, true }, - { 162606, false }, - { 162619, true }, - { 162631, false }, - { 162641, false }, - { 162654, false }, - { 162669, true }, - { 162681, true }, - { 162693, true }, - { 162705, true }, - { 162717, true }, - { 162730, true }, - { 162743, true }, - { 162755, true }, - { 162767, true }, - { 162783, true }, - { 162795, true }, - { 162808, true }, - { 162818, true }, - { 162828, true }, - { 162841, true }, - { 162856, true }, - { 162867, true }, - { 162878, true }, - { 162896, true }, - { 162904, true }, - { 162912, true }, - { 162924, true }, - { 162938, true }, - { 162955, true }, - { 162985, true }, - { 163000, true }, - { 163016, true }, - { 163031, true }, - { 163046, true }, - { 163061, true }, - { 163069, true }, - { 163084, true }, - { 163095, true }, - { 163108, true }, - { 163116, false }, - { 163126, true }, - { 163142, true }, - { 163159, true }, - { 163176, true }, - { 163197, true }, - { 163210, true }, - { 163222, true }, - { 163230, true }, - { 163247, true }, - { 163263, true }, - { 163270, true }, - { 163281, true }, - { 163289, false }, - { 163313, true }, - { 163345, true }, - { 163372, true }, - { 163392, true }, - { 163416, true }, - { 163433, false }, - { 163446, true }, - { 163461, true }, - { 163472, true }, - { 163483, true }, - { 163493, true }, - { 163506, true }, - { 163514, true }, - { 163526, true }, - { 163538, false }, - { 163550, false }, - { 163558, false }, - { 163583, true }, - { 163596, true }, - { 163611, true }, - { 163625, true }, - { 163638, true }, - { 163650, true }, - { 163663, true }, - { 163680, true }, - { 163694, true }, - { 163711, true }, - { 163723, true }, - { 163737, true }, - { 163752, true }, - { 163767, true }, - { 163778, true }, - { 163785, true }, - { 163805, true }, - { 163819, true }, - { 163827, true }, - { 163835, false }, - { 163850, true }, - { 163862, true }, - { 163876, true }, - { 163889, true }, - { 163899, true }, - { 163909, true }, - { 163916, true }, - { 163929, true }, - { 163942, true }, - { 163950, true }, - { 163967, true }, - { 163975, true }, - { 163984, true }, - { 164000, true }, - { 164019, true }, - { 164030, true }, - { 164042, true }, - { 164052, true }, - { 164069, false }, - { 164080, true }, - { 164088, true }, - { 164098, true }, - { 164107, true }, - { 164123, true }, - { 164144, true }, - { 164169, false }, - { 164185, true }, - { 164197, true }, - { 164209, true }, - { 164222, true }, - { 164230, true }, - { 164238, false }, - { 164258, false }, - { 164277, false }, - { 164296, false }, - { 164316, false }, - { 164336, false }, - { 164356, false }, - { 164375, false }, - { 164394, true }, - { 164413, true }, - { 164424, true }, - { 164434, true }, - { 164443, true }, - { 164456, true }, - { 164471, true }, - { 164481, false }, - { 164492, true }, - { 164503, true }, - { 164512, true }, - { 164520, true }, - { 164533, true }, - { 164541, true }, - { 164551, true }, - { 164560, true }, - { 164575, true }, - { 164598, true }, - { 164617, false }, - { 164628, true }, - { 164650, true }, - { 164664, true }, - { 164673, true }, - { 164680, true }, - { 164689, true }, - { 164697, true }, - { 164704, true }, - { 164716, true }, - { 164733, true }, - { 164740, true }, - { 164748, true }, - { 164759, true }, - { 164773, true }, - { 164785, true }, - { 164797, true }, - { 164806, true }, - { 164815, true }, - { 164827, false }, - { 164838, true }, - { 164851, true }, - { 164877, true }, - { 164900, false }, - { 164920, true }, - { 164937, true }, - { 164952, true }, - { 164966, true }, - { 164985, true }, - { 165001, true }, - { 165014, true }, - { 165025, true }, - { 165040, true }, - { 165060, true }, - { 165075, true }, - { 165084, true }, - { 165102, true }, - { 165117, true }, - { 165138, true }, - { 165158, true }, - { 165173, true }, - { 165188, true }, - { 165203, true }, - { 165217, true }, - { 165231, true }, - { 165240, true }, - { 165251, true }, - { 165266, true }, - { 165275, true }, - { 165293, true }, - { 165304, true }, - { 165314, true }, - { 165323, true }, - { 165334, true }, - { 165344, true }, - { 165353, true }, - { 165363, true }, - { 165376, true }, - { 165387, true }, - { 165397, true }, - { 165406, true }, - { 165422, true }, - { 165429, true }, - { 165440, true }, - { 165451, true }, - { 165465, true }, - { 165472, true }, - { 165483, true }, - { 165491, true }, - { 165509, true }, - { 165522, true }, - { 165534, true }, - { 165542, true }, - { 165562, false }, - { 165578, true }, - { 165597, true }, - { 165620, true }, - { 165639, true }, - { 165650, true }, - { 165672, true }, - { 165685, true }, - { 165694, true }, - { 165717, true }, - { 165751, true }, - { 165767, true }, - { 165783, true }, - { 165805, true }, - { 165818, true }, - { 165845, true }, - { 165859, true }, - { 165869, true }, - { 165887, true }, - { 165897, true }, - { 165916, true }, - { 165930, true }, - { 165944, true }, - { 165960, true }, - { 165971, true }, - { 165982, true }, - { 166005, true }, - { 166020, true }, - { 166043, true }, - { 166052, true }, - { 166070, true }, - { 166087, true }, - { 166097, true }, - { 166122, true }, - { 166140, true }, - { 166155, true }, - { 166165, true }, - { 166177, true }, - { 166190, true }, - { 166201, true }, - { 166218, true }, - { 166228, true }, - { 166245, true }, - { 166266, true }, - { 166288, true }, - { 166306, true }, - { 166317, true }, - { 166330, true }, - { 166341, true }, - { 166355, true }, - { 166368, true }, - { 166379, true }, - { 166389, true }, - { 166403, true }, + { 159879, true }, + { 159893, true }, + { 159906, true }, + { 159924, false }, + { 159934, true }, + { 159948, true }, + { 159963, true }, + { 159981, true }, + { 159990, true }, + { 160003, false }, + { 160020, true }, + { 160036, true }, + { 160047, true }, + { 160058, true }, + { 160068, true }, + { 160077, true }, + { 160091, true }, + { 160112, true }, + { 160123, true }, + { 160145, true }, + { 160160, true }, + { 160175, true }, + { 160192, true }, + { 160214, true }, + { 160224, true }, + { 160246, true }, + { 160268, true }, + { 160285, true }, + { 160299, true }, + { 160312, true }, + { 160329, true }, + { 160354, true }, + { 160371, true }, + { 160387, true }, + { 160397, true }, + { 160408, true }, + { 160417, false }, + { 160426, true }, + { 160436, true }, + { 160450, true }, + { 160468, true }, + { 160488, true }, + { 160502, true }, + { 160511, true }, + { 160535, true }, + { 160556, true }, + { 160576, true }, + { 160594, true }, + { 160607, true }, + { 160624, true }, + { 160645, true }, + { 160663, true }, + { 160675, true }, + { 160697, false }, + { 160716, true }, + { 160727, true }, + { 160740, true }, + { 160761, true }, + { 160772, true }, + { 160787, true }, + { 160799, true }, + { 160816, true }, + { 160842, true }, + { 160859, false }, + { 160877, true }, + { 160896, false }, + { 160915, true }, + { 160927, true }, + { 160947, true }, + { 160969, true }, + { 160982, true }, + { 161004, true }, + { 161017, true }, + { 161040, true }, + { 161055, true }, + { 161069, true }, + { 161092, true }, + { 161102, true }, + { 161112, true }, + { 161131, true }, + { 161144, true }, + { 161166, true }, + { 161186, true }, + { 161196, true }, + { 161208, true }, + { 161221, true }, + { 161234, true }, + { 161255, true }, + { 161281, true }, + { 161302, true }, + { 161323, true }, + { 161344, true }, + { 161364, true }, + { 161376, true }, + { 161396, true }, + { 161410, true }, + { 161422, true }, + { 161431, true }, + { 161454, true }, + { 161470, true }, + { 161482, true }, + { 161507, true }, + { 161522, true }, + { 161543, true }, + { 161560, true }, + { 161581, false }, + { 161598, false }, + { 161616, true }, + { 161626, true }, + { 161640, true }, + { 161654, true }, + { 161664, true }, + { 161676, true }, + { 161688, true }, + { 161698, true }, + { 161709, true }, + { 161723, true }, + { 161747, true }, + { 161759, true }, + { 161788, true }, + { 161803, true }, + { 161817, true }, + { 161831, true }, + { 161847, true }, + { 161862, true }, + { 161876, true }, + { 161888, true }, + { 161908, true }, + { 161922, true }, + { 161935, true }, + { 161948, true }, + { 161960, true }, + { 161978, true }, + { 161990, true }, + { 162009, true }, + { 162033, true }, + { 162056, true }, + { 162068, true }, + { 162086, true }, + { 162102, true }, + { 162122, false }, + { 162140, true }, + { 162160, true }, + { 162173, true }, + { 162193, true }, + { 162201, true }, + { 162211, true }, + { 162230, true }, + { 162249, true }, + { 162263, true }, + { 162281, true }, + { 162297, false }, + { 162316, true }, + { 162337, true }, + { 162351, true }, + { 162360, true }, + { 162377, true }, + { 162393, true }, + { 162415, true }, + { 162432, true }, + { 162450, true }, + { 162469, true }, + { 162486, true }, + { 162499, true }, + { 162509, true }, + { 162517, true }, + { 162535, true }, + { 162563, true }, + { 162580, true }, + { 162594, true }, + { 162609, false }, + { 162622, true }, + { 162634, false }, + { 162644, false }, + { 162657, false }, + { 162672, true }, + { 162684, true }, + { 162696, true }, + { 162708, true }, + { 162720, true }, + { 162733, true }, + { 162746, true }, + { 162758, true }, + { 162770, true }, + { 162786, true }, + { 162798, true }, + { 162811, true }, + { 162821, true }, + { 162831, true }, + { 162844, true }, + { 162859, true }, + { 162870, true }, + { 162881, true }, + { 162899, true }, + { 162907, true }, + { 162915, true }, + { 162927, true }, + { 162941, true }, + { 162958, true }, + { 162988, true }, + { 163003, true }, + { 163019, true }, + { 163034, true }, + { 163049, true }, + { 163064, true }, + { 163072, true }, + { 163087, true }, + { 163098, true }, + { 163111, true }, + { 163119, false }, + { 163129, true }, + { 163145, true }, + { 163162, true }, + { 163179, true }, + { 163200, true }, + { 163213, true }, + { 163225, true }, + { 163233, true }, + { 163250, true }, + { 163266, true }, + { 163273, true }, + { 163284, true }, + { 163292, false }, + { 163316, true }, + { 163348, true }, + { 163375, true }, + { 163395, true }, + { 163419, true }, + { 163436, false }, + { 163449, true }, + { 163464, true }, + { 163475, true }, + { 163486, true }, + { 163496, true }, + { 163509, true }, + { 163517, true }, + { 163529, true }, + { 163541, false }, + { 163553, false }, + { 163561, false }, + { 163586, true }, + { 163599, true }, + { 163614, true }, + { 163628, true }, + { 163641, true }, + { 163653, true }, + { 163666, true }, + { 163683, true }, + { 163697, true }, + { 163714, true }, + { 163726, true }, + { 163740, true }, + { 163755, true }, + { 163770, true }, + { 163781, true }, + { 163788, true }, + { 163808, true }, + { 163822, true }, + { 163830, true }, + { 163838, false }, + { 163853, true }, + { 163865, true }, + { 163879, true }, + { 163892, true }, + { 163902, true }, + { 163912, true }, + { 163919, true }, + { 163932, true }, + { 163945, true }, + { 163953, true }, + { 163970, true }, + { 163978, true }, + { 163987, true }, + { 164003, true }, + { 164022, true }, + { 164033, true }, + { 164045, true }, + { 164055, true }, + { 164072, false }, + { 164083, true }, + { 164091, true }, + { 164101, true }, + { 164110, true }, + { 164126, true }, + { 164147, true }, + { 164172, false }, + { 164188, true }, + { 164200, true }, + { 164212, true }, + { 164225, true }, + { 164233, true }, + { 164241, false }, + { 164261, false }, + { 164280, false }, + { 164299, false }, + { 164319, false }, + { 164339, false }, + { 164359, false }, + { 164378, false }, + { 164397, true }, + { 164416, true }, + { 164427, true }, + { 164437, true }, + { 164446, true }, + { 164459, true }, + { 164474, true }, + { 164484, false }, + { 164495, true }, + { 164506, true }, + { 164515, true }, + { 164523, true }, + { 164536, true }, + { 164544, true }, + { 164554, true }, + { 164563, true }, + { 164578, true }, + { 164601, true }, + { 164620, false }, + { 164631, true }, + { 164653, true }, + { 164667, true }, + { 164676, true }, + { 164683, true }, + { 164692, true }, + { 164700, true }, + { 164707, true }, + { 164719, true }, + { 164736, true }, + { 164743, true }, + { 164751, true }, + { 164762, true }, + { 164776, true }, + { 164788, true }, + { 164800, true }, + { 164809, true }, + { 164818, true }, + { 164830, false }, + { 164841, true }, + { 164854, true }, + { 164880, true }, + { 164903, false }, + { 164923, true }, + { 164940, true }, + { 164955, true }, + { 164969, true }, + { 164988, true }, + { 165004, true }, + { 165017, true }, + { 165028, true }, + { 165043, true }, + { 165063, true }, + { 165078, true }, + { 165087, true }, + { 165105, true }, + { 165120, true }, + { 165141, true }, + { 165161, true }, + { 165176, true }, + { 165191, true }, + { 165206, true }, + { 165220, true }, + { 165234, true }, + { 165243, true }, + { 165254, true }, + { 165269, true }, + { 165278, true }, + { 165296, true }, + { 165307, true }, + { 165317, true }, + { 165326, true }, + { 165337, true }, + { 165347, true }, + { 165356, true }, + { 165366, true }, + { 165379, true }, + { 165390, true }, + { 165400, true }, + { 165409, true }, + { 165425, true }, + { 165432, true }, + { 165443, true }, + { 165454, true }, + { 165468, true }, + { 165475, true }, + { 165486, true }, + { 165494, true }, + { 165512, true }, + { 165525, true }, + { 165537, true }, + { 165545, true }, + { 165565, false }, + { 165581, true }, + { 165600, true }, + { 165623, true }, + { 165642, true }, + { 165653, true }, + { 165675, true }, + { 165688, true }, + { 165697, true }, + { 165720, true }, + { 165754, true }, + { 165770, true }, + { 165786, true }, + { 165808, true }, + { 165821, true }, + { 165848, true }, + { 165862, true }, + { 165872, true }, + { 165890, true }, + { 165900, true }, + { 165919, true }, + { 165933, true }, + { 165947, true }, + { 165963, true }, + { 165974, true }, + { 165985, true }, + { 166008, true }, + { 166023, true }, + { 166046, true }, + { 166055, true }, + { 166073, true }, + { 166090, true }, + { 166100, true }, + { 166125, true }, + { 166143, true }, + { 166158, true }, + { 166168, true }, + { 166180, true }, + { 166193, true }, + { 166204, false }, + { 166216, true }, + { 166233, true }, + { 166243, true }, + { 166260, true }, + { 166281, true }, + { 166303, true }, + { 166321, true }, + { 166332, true }, + { 166345, true }, + { 166356, true }, + { 166370, true }, + { 166383, true }, + { 166394, true }, + { 166404, true }, { 166418, true }, - { 166428, true }, - { 166441, true }, - { 166450, true }, - { 166466, true }, - { 166482, false }, - { 166495, false }, - { 166508, false }, - { 166520, true }, - { 166537, true }, + { 166433, true }, + { 166443, true }, + { 166456, true }, + { 166465, true }, + { 166478, true }, + { 166494, true }, + { 166510, false }, + { 166523, false }, + { 166536, false }, { 166548, true }, - { 166563, true }, - { 166573, true }, - { 166585, true }, - { 166602, true }, - { 166616, true }, - { 166629, true }, - { 166647, true }, - { 166656, true }, + { 166565, true }, + { 166576, true }, + { 166591, true }, + { 166601, true }, + { 166613, true }, + { 166627, true }, + { 166640, true }, + { 166658, true }, { 166667, true }, { 166678, true }, - { 166690, true }, - { 166703, true }, - { 166715, true }, - { 166724, true }, + { 166689, true }, + { 166701, true }, + { 166714, true }, + { 166726, true }, { 166735, true }, - { 166752, true }, - { 166768, true }, - { 166780, true }, - { 166792, true }, - { 166804, true }, - { 166821, true }, - { 166833, true }, - { 166843, true }, - { 166856, true }, - { 166873, true }, - { 166887, true }, - { 166902, true }, - { 166914, true }, - { 166921, true }, - { 166937, true }, - { 166953, true }, - { 166962, true }, - { 166969, true }, + { 166746, true }, + { 166763, true }, + { 166779, true }, + { 166791, true }, + { 166803, true }, + { 166815, true }, + { 166832, true }, + { 166844, true }, + { 166854, true }, + { 166867, true }, + { 166884, true }, + { 166898, true }, + { 166913, true }, + { 166925, true }, + { 166932, true }, + { 166948, true }, + { 166964, true }, + { 166973, true }, { 166980, true }, - { 166997, true }, - { 167010, true }, - { 167025, true }, - { 167035, true }, + { 166991, true }, + { 167008, true }, + { 167021, true }, + { 167036, true }, { 167046, true }, - { 167069, true }, - { 167081, false }, - { 167095, true }, - { 167111, true }, - { 167129, true }, - { 167146, true }, + { 167057, true }, + { 167080, true }, + { 167092, false }, + { 167106, true }, + { 167122, true }, + { 167140, true }, { 167157, true }, - { 167173, false }, - { 167192, true }, - { 167207, true }, - { 167226, true }, + { 167168, true }, + { 167184, false }, + { 167203, true }, + { 167218, true }, { 167237, true }, - { 167258, true }, - { 167274, true }, - { 167286, true }, - { 167300, true }, - { 167314, true }, + { 167248, true }, + { 167269, true }, + { 167285, true }, + { 167297, true }, + { 167311, true }, { 167325, true }, - { 167346, true }, - { 167359, true }, - { 167369, true }, + { 167336, true }, + { 167357, true }, + { 167370, true }, { 167380, true }, - { 167397, true }, - { 167412, true }, - { 167432, true }, - { 167447, true }, - { 167466, false }, - { 167483, true }, - { 167499, true }, - { 167511, true }, - { 167534, true }, - { 167549, true }, - { 167565, true }, + { 167391, true }, + { 167408, true }, + { 167423, true }, + { 167443, true }, + { 167458, true }, + { 167477, false }, + { 167494, true }, + { 167510, true }, + { 167522, true }, + { 167545, true }, + { 167560, true }, { 167576, true }, - { 167584, true }, - { 167607, true }, - { 167619, true }, - { 167627, true }, - { 167653, true }, - { 167671, true }, - { 167684, true }, - { 167701, true }, - { 167713, true }, - { 167740, true }, - { 167771, true }, + { 167587, true }, + { 167595, true }, + { 167618, true }, + { 167630, true }, + { 167638, true }, + { 167664, true }, + { 167682, true }, + { 167695, true }, + { 167712, true }, + { 167724, true }, + { 167751, true }, { 167782, true }, - { 167792, true }, - { 167807, true }, + { 167793, true }, + { 167803, true }, { 167818, true }, { 167829, true }, - { 167845, true }, - { 167857, true }, - { 167866, true }, - { 167879, true }, - { 167907, true }, - { 167928, true }, - { 167942, true }, - { 167964, true }, - { 167981, true }, - { 167991, true }, - { 168003, true }, - { 168019, true }, - { 168033, true }, + { 167840, true }, + { 167856, true }, + { 167868, true }, + { 167877, true }, + { 167890, true }, + { 167918, true }, + { 167939, true }, + { 167953, true }, + { 167975, true }, + { 167992, true }, + { 168002, true }, + { 168014, true }, + { 168030, true }, { 168044, true }, - { 168058, true }, - { 168076, true }, - { 168093, true }, - { 168113, true }, + { 168055, true }, + { 168069, true }, + { 168087, true }, + { 168104, true }, { 168124, true }, - { 168135, false }, - { 168142, true }, - { 168152, true }, - { 168179, true }, - { 168199, true }, - { 168217, true }, - { 168232, false }, - { 168243, true }, - { 168259, true }, - { 168276, true }, - { 168293, true }, - { 168315, true }, - { 168329, true }, - { 168345, false }, - { 168362, true }, - { 168378, true }, - { 168388, true }, - { 168406, true }, - { 168427, true }, - { 168445, true }, - { 168452, true }, - { 168470, true }, - { 168488, true }, - { 168502, true }, - { 168512, true }, + { 168135, true }, + { 168146, false }, + { 168153, true }, + { 168163, true }, + { 168190, true }, + { 168210, true }, + { 168228, true }, + { 168243, false }, + { 168254, true }, + { 168270, true }, + { 168287, true }, + { 168304, true }, + { 168326, true }, + { 168340, true }, + { 168356, false }, + { 168373, true }, + { 168389, true }, + { 168399, true }, + { 168417, true }, + { 168438, true }, + { 168456, true }, + { 168463, true }, + { 168481, true }, + { 168499, true }, + { 168513, true }, { 168523, true }, - { 168545, true }, - { 168561, true }, - { 168578, true }, - { 168598, true }, + { 168534, true }, + { 168556, true }, + { 168572, true }, + { 168589, true }, { 168609, true }, - { 168628, true }, - { 168642, true }, - { 168659, true }, - { 168671, true }, - { 168688, true }, - { 168709, true }, - { 168725, true }, - { 168737, true }, - { 168760, true }, - { 168778, true }, + { 168620, true }, + { 168639, true }, + { 168653, true }, + { 168670, true }, + { 168682, true }, + { 168699, true }, + { 168720, true }, + { 168736, true }, + { 168748, true }, + { 168771, true }, { 168789, true }, - { 168799, true }, - { 168815, true }, + { 168800, true }, + { 168810, true }, { 168826, true }, - { 168838, false }, - { 168858, true }, - { 168877, true }, - { 168890, true }, - { 168900, true }, - { 168917, true }, - { 168937, true }, - { 168951, true }, - { 168966, true }, - { 168980, true }, - { 168994, true }, - { 169012, true }, - { 169026, false }, - { 169041, true }, - { 169062, true }, + { 168837, true }, + { 168849, false }, + { 168869, true }, + { 168888, true }, + { 168901, true }, + { 168911, true }, + { 168928, true }, + { 168948, true }, + { 168962, true }, + { 168977, true }, + { 168991, true }, + { 169005, true }, + { 169023, true }, + { 169037, false }, + { 169052, true }, { 169073, true }, - { 169087, true }, - { 169103, false }, - { 169117, true }, - { 169133, true }, - { 169150, true }, - { 169166, true }, - { 169186, true }, - { 169209, true }, - { 169218, false }, - { 169226, true }, - { 169236, true }, - { 169248, false }, - { 169270, true }, - { 169285, true }, - { 169299, true }, - { 169313, true }, - { 169326, true }, - { 169354, true }, - { 169366, true }, - { 169381, true }, - { 169406, true }, - { 169420, true }, - { 169441, true }, + { 169084, true }, + { 169098, true }, + { 169114, false }, + { 169128, true }, + { 169144, true }, + { 169161, true }, + { 169177, true }, + { 169197, true }, + { 169220, true }, + { 169229, false }, + { 169237, true }, + { 169247, true }, + { 169259, false }, + { 169281, true }, + { 169296, true }, + { 169310, true }, + { 169324, true }, + { 169337, true }, + { 169365, true }, + { 169377, true }, + { 169392, true }, + { 169417, true }, + { 169431, true }, { 169452, true }, - { 169462, true }, - { 169470, true }, - { 169482, true }, - { 169507, true }, - { 169517, true }, - { 169542, true }, - { 169552, true }, - { 169565, false }, - { 169590, true }, - { 169604, true }, - { 169621, true }, - { 169634, true }, + { 169463, true }, + { 169473, true }, + { 169481, true }, + { 169493, true }, + { 169518, true }, + { 169528, true }, + { 169553, true }, + { 169563, true }, + { 169576, false }, + { 169601, true }, + { 169615, true }, + { 169632, true }, { 169645, true }, - { 169653, true }, - { 169662, true }, - { 169676, true }, - { 169689, true }, - { 169705, true }, - { 169715, true }, + { 169656, true }, + { 169664, true }, + { 169673, true }, + { 169687, true }, + { 169700, true }, + { 169716, true }, { 169726, true }, { 169737, true }, - { 169753, true }, - { 169763, false }, - { 169775, true }, - { 169787, true }, - { 169805, true }, - { 169817, true }, - { 169827, true }, - { 169843, true }, - { 169867, true }, - { 169880, true }, - { 169887, true }, - { 169894, true }, - { 169911, true }, - { 169925, true }, - { 169937, true }, - { 169949, true }, - { 169961, true }, - { 169971, true }, - { 169985, true }, - { 169994, true }, - { 170015, true }, - { 170028, true }, + { 169748, true }, + { 169764, true }, + { 169774, false }, + { 169786, true }, + { 169798, true }, + { 169816, true }, + { 169828, true }, + { 169838, true }, + { 169854, true }, + { 169878, true }, + { 169891, true }, + { 169898, true }, + { 169905, true }, + { 169922, true }, + { 169936, true }, + { 169948, true }, + { 169960, true }, + { 169972, true }, + { 169982, true }, + { 169996, true }, + { 170005, true }, + { 170026, true }, { 170039, true }, - { 170056, true }, - { 170071, true }, - { 170096, true }, - { 170122, true }, - { 170137, true }, + { 170050, true }, + { 170067, true }, + { 170082, true }, + { 170107, true }, + { 170133, true }, { 170148, true }, - { 170157, true }, - { 170179, true }, - { 170188, true }, - { 170203, true }, - { 170213, true }, - { 170229, true }, - { 170242, true }, - { 170259, true }, - { 170280, true }, - { 170301, true }, - { 170318, true }, - { 170337, true }, - { 170349, true }, - { 170363, true }, - { 170378, true }, - { 170394, true }, - { 170408, true }, - { 170420, true }, - { 170434, true }, - { 170446, true }, - { 170465, true }, - { 170481, true }, - { 170497, true }, - { 170513, true }, - { 170531, true }, - { 170541, true }, - { 170558, true }, - { 170575, true }, - { 170593, true }, - { 170608, true }, - { 170622, true }, - { 170640, true }, - { 170657, true }, - { 170670, true }, - { 170689, true }, - { 170709, true }, - { 170726, true }, - { 170742, true }, - { 170760, true }, - { 170777, false }, - { 170794, false }, - { 170815, true }, - { 170832, true }, - { 170842, true }, - { 170861, true }, - { 170875, true }, - { 170888, true }, + { 170159, true }, + { 170168, true }, + { 170190, true }, + { 170199, true }, + { 170214, true }, + { 170224, true }, + { 170240, true }, + { 170253, true }, + { 170270, true }, + { 170291, true }, + { 170312, true }, + { 170329, true }, + { 170348, true }, + { 170360, true }, + { 170374, true }, + { 170389, true }, + { 170405, true }, + { 170419, true }, + { 170431, true }, + { 170445, true }, + { 170457, true }, + { 170476, true }, + { 170492, true }, + { 170508, true }, + { 170524, true }, + { 170542, true }, + { 170552, true }, + { 170569, true }, + { 170586, true }, + { 170604, true }, + { 170619, true }, + { 170633, true }, + { 170651, true }, + { 170668, true }, + { 170681, true }, + { 170700, true }, + { 170720, true }, + { 170737, true }, + { 170753, true }, + { 170771, true }, + { 170788, false }, + { 170805, false }, + { 170826, true }, + { 170843, true }, + { 170853, true }, + { 170872, true }, + { 170886, true }, { 170899, true }, - { 170914, true }, - { 170927, true }, + { 170910, true }, + { 170925, true }, { 170938, true }, - { 170956, true }, - { 170968, true }, - { 170981, true }, - { 171005, true }, - { 171014, true }, - { 171038, true }, - { 171065, true }, - { 171083, true }, - { 171093, true }, - { 171102, true }, - { 171112, true }, + { 170949, true }, + { 170967, true }, + { 170979, true }, + { 170992, true }, + { 171016, true }, + { 171025, true }, + { 171049, true }, + { 171076, true }, + { 171094, true }, + { 171104, true }, + { 171113, true }, { 171123, true }, - { 171146, true }, - { 171156, true }, - { 171169, true }, - { 171177, true }, - { 171184, true }, - { 171203, true }, - { 171210, true }, - { 171225, true }, - { 171234, true }, - { 171246, false }, - { 171266, true }, - { 171280, true }, - { 171290, true }, - { 171307, true }, - { 171325, true }, - { 171342, true }, - { 171364, false }, - { 171377, true }, - { 171396, true }, - { 171408, true }, + { 171134, true }, + { 171157, true }, + { 171167, true }, + { 171180, true }, + { 171188, true }, + { 171195, true }, + { 171214, true }, + { 171221, true }, + { 171236, true }, + { 171245, true }, + { 171257, false }, + { 171277, true }, + { 171291, true }, + { 171301, true }, + { 171318, true }, + { 171336, true }, + { 171353, true }, + { 171375, false }, + { 171388, true }, + { 171407, true }, { 171419, true }, - { 171432, true }, - { 171451, true }, - { 171466, true }, - { 171482, true }, - { 171505, true }, - { 171525, true }, - { 171538, true }, - { 171552, true }, - { 171566, true }, + { 171430, true }, + { 171443, true }, + { 171462, true }, + { 171477, true }, + { 171493, true }, + { 171516, true }, + { 171536, true }, + { 171549, true }, + { 171563, true }, { 171577, true }, { 171588, true }, - { 171598, true }, - { 171617, true }, - { 171629, true }, - { 171646, true }, - { 171658, true }, - { 171675, true }, + { 171599, true }, + { 171609, true }, + { 171628, true }, + { 171640, true }, + { 171657, true }, + { 171669, true }, { 171686, true }, - { 171710, true }, - { 171720, true }, - { 171732, true }, - { 171742, true }, - { 171752, true }, - { 171768, true }, - { 171784, true }, - { 171815, true }, - { 171824, true }, - { 171838, true }, - { 171855, true }, - { 171872, true }, - { 171884, true }, - { 171903, true }, - { 171919, true }, - { 171936, true }, - { 171949, true }, - { 171959, true }, - { 171973, true }, - { 171987, true }, - { 171996, true }, - { 172006, true }, - { 172021, true }, - { 172031, true }, - { 172045, true }, - { 172061, true }, - { 172078, true }, - { 172091, true }, - { 172101, true }, - { 172119, true }, - { 172136, true }, - { 172152, true }, - { 172169, true }, - { 172191, true }, - { 172203, true }, - { 172221, true }, - { 172235, false }, - { 172250, true }, - { 172263, true }, - { 172275, true }, - { 172282, true }, - { 172294, true }, - { 172304, true }, - { 172316, true }, + { 171697, true }, + { 171721, true }, + { 171731, true }, + { 171743, true }, + { 171753, true }, + { 171763, true }, + { 171779, true }, + { 171795, true }, + { 171826, true }, + { 171835, true }, + { 171849, true }, + { 171866, true }, + { 171883, true }, + { 171895, true }, + { 171914, true }, + { 171930, true }, + { 171947, true }, + { 171960, true }, + { 171970, true }, + { 171984, true }, + { 171998, true }, + { 172007, true }, + { 172017, true }, + { 172032, true }, + { 172042, true }, + { 172056, true }, + { 172072, true }, + { 172089, true }, + { 172102, true }, + { 172112, true }, + { 172130, true }, + { 172147, true }, + { 172163, true }, + { 172180, true }, + { 172202, true }, + { 172214, true }, + { 172232, true }, + { 172246, false }, + { 172261, true }, + { 172274, true }, + { 172286, true }, + { 172293, true }, + { 172305, true }, + { 172315, true }, { 172327, true }, - { 172344, true }, - { 172356, true }, - { 172375, true }, - { 172401, true }, - { 172410, true }, - { 172425, true }, - { 172439, true }, - { 172455, true }, - { 172470, true }, - { 172492, true }, - { 172517, true }, - { 172533, true }, - { 172551, true }, - { 172565, true }, - { 172575, true }, - { 172585, true }, + { 172338, true }, + { 172355, true }, + { 172367, true }, + { 172386, true }, + { 172412, true }, + { 172421, true }, + { 172436, true }, + { 172450, true }, + { 172466, true }, + { 172481, true }, + { 172503, true }, + { 172528, true }, + { 172544, true }, + { 172562, true }, + { 172576, true }, + { 172586, true }, { 172596, true }, - { 172611, true }, - { 172621, true }, - { 172633, true }, - { 172651, true }, - { 172667, true }, - { 172682, true }, - { 172697, false }, - { 172720, true }, - { 172736, true }, - { 172749, true }, + { 172607, true }, + { 172622, true }, + { 172632, true }, + { 172644, true }, + { 172662, true }, + { 172678, true }, + { 172693, true }, + { 172708, false }, + { 172731, true }, + { 172747, true }, { 172760, true }, - { 172770, true }, - { 172787, true }, - { 172807, true }, - { 172819, true }, - { 172850, true }, - { 172871, true }, - { 172884, true }, - { 172909, true }, - { 172930, true }, + { 172771, true }, + { 172781, true }, + { 172798, true }, + { 172818, true }, + { 172830, true }, + { 172861, true }, + { 172882, true }, + { 172895, true }, + { 172920, true }, { 172941, true }, - { 172958, true }, - { 172970, true }, - { 172983, true }, - { 173003, true }, - { 173011, true }, + { 172952, true }, + { 172969, true }, + { 172981, true }, + { 172994, true }, + { 173014, true }, { 173022, true }, - { 173031, true }, - { 173040, true }, - { 173047, true }, - { 173055, true }, - { 173069, true }, - { 173081, false }, - { 173088, true }, - { 173096, false }, - { 173105, true }, - { 173114, true }, + { 173033, true }, + { 173042, true }, + { 173051, true }, + { 173058, true }, + { 173066, true }, + { 173080, true }, + { 173092, false }, + { 173099, true }, + { 173107, false }, + { 173116, true }, { 173125, true }, - { 173132, true }, - { 173149, true }, - { 173158, true }, - { 173166, true }, - { 173180, true }, - { 173188, true }, - { 173207, false }, - { 173227, true }, - { 173237, true }, - { 173258, true }, - { 173269, false }, - { 173281, true }, - { 173295, true }, - { 173312, true }, - { 173329, true }, + { 173136, true }, + { 173143, true }, + { 173160, true }, + { 173169, true }, + { 173177, true }, + { 173191, true }, + { 173199, true }, + { 173218, false }, + { 173238, true }, + { 173248, true }, + { 173269, true }, + { 173280, false }, + { 173292, true }, + { 173306, true }, + { 173323, true }, { 173340, true }, - { 173369, true }, - { 173383, true }, - { 173395, true }, - { 173409, true }, - { 173426, true }, - { 173438, true }, - { 173453, true }, - { 173467, true }, - { 173475, true }, - { 173483, true }, - { 173495, true }, - { 173509, true }, - { 173526, true }, - { 173544, true }, - { 173557, true }, - { 173567, true }, - { 173576, false }, - { 173594, true }, - { 173606, false }, - { 173618, true }, - { 173631, true }, - { 173646, true }, - { 173660, true }, - { 173669, true }, - { 173692, true }, - { 173706, true }, - { 173719, true }, - { 173735, true }, - { 173752, true }, - { 173765, true }, - { 173783, true }, - { 173795, true }, - { 173814, true }, - { 173836, true }, - { 173858, true }, - { 173878, true }, - { 173896, false }, - { 173912, true }, - { 173935, true }, - { 173944, true }, - { 173952, true }, - { 173967, true }, - { 173986, true }, - { 174002, true }, - { 174016, true }, - { 174032, true }, - { 174052, true }, - { 174062, true }, - { 174080, true }, - { 174087, true }, - { 174099, true }, - { 174112, true }, - { 174122, true }, - { 174138, true }, - { 174146, true }, - { 174154, true }, - { 174161, false }, - { 174184, true }, - { 174203, true }, - { 174228, true }, - { 174245, true }, - { 174257, true }, - { 174269, true }, - { 174279, true }, - { 174290, true }, - { 174305, true }, - { 174314, true }, - { 174328, true }, - { 174339, true }, - { 174352, true }, - { 174374, true }, - { 174384, true }, - { 174405, true }, - { 174426, true }, - { 174443, true }, - { 174464, true }, - { 174478, true }, - { 174494, true }, - { 174507, true }, - { 174519, true }, - { 174534, true }, - { 174544, true }, - { 174557, true }, - { 174581, true }, - { 174600, true }, - { 174612, true }, - { 174630, true }, - { 174639, false }, - { 174656, true }, - { 174674, true }, - { 174687, true }, - { 174700, false }, - { 174721, true }, - { 174731, true }, - { 174750, true }, - { 174763, true }, - { 174783, true }, - { 174808, true }, - { 174819, true }, - { 174831, true }, - { 174846, true }, - { 174859, true }, - { 174874, true }, - { 174889, true }, - { 174909, true }, - { 174922, false }, - { 174931, true }, - { 174950, true }, - { 174967, false }, - { 174982, true }, - { 174996, true }, - { 175006, true }, - { 175019, true }, - { 175035, true }, - { 175051, true }, - { 175069, true }, - { 175079, true }, - { 175092, true }, - { 175104, true }, - { 175117, true }, - { 175130, true }, - { 175139, true }, - { 175163, true }, - { 175187, true }, - { 175204, false }, - { 175217, true }, - { 175228, true }, - { 175244, true }, - { 175256, true }, - { 175272, true }, - { 175289, false }, - { 175301, true }, - { 175320, false }, - { 175329, true }, - { 175351, true }, - { 175364, false }, - { 175379, true }, - { 175394, true }, - { 175406, true }, - { 175425, false }, - { 175448, true }, - { 175464, true }, + { 173351, true }, + { 173380, true }, + { 173394, true }, + { 173406, true }, + { 173423, true }, + { 173435, true }, + { 173450, true }, + { 173464, true }, + { 173472, true }, + { 173480, true }, + { 173492, true }, + { 173506, true }, + { 173523, true }, + { 173541, true }, + { 173554, true }, + { 173564, true }, + { 173573, false }, + { 173591, true }, + { 173603, false }, + { 173615, true }, + { 173628, true }, + { 173643, true }, + { 173657, true }, + { 173666, true }, + { 173689, true }, + { 173703, true }, + { 173716, true }, + { 173732, true }, + { 173749, true }, + { 173762, true }, + { 173780, true }, + { 173792, true }, + { 173811, true }, + { 173833, true }, + { 173855, true }, + { 173875, true }, + { 173893, false }, + { 173909, true }, + { 173932, true }, + { 173941, true }, + { 173949, true }, + { 173964, true }, + { 173983, true }, + { 173999, true }, + { 174013, true }, + { 174029, true }, + { 174049, true }, + { 174059, true }, + { 174077, true }, + { 174084, true }, + { 174096, true }, + { 174109, true }, + { 174119, true }, + { 174135, true }, + { 174143, true }, + { 174151, true }, + { 174158, false }, + { 174181, true }, + { 174200, true }, + { 174225, true }, + { 174242, true }, + { 174254, true }, + { 174266, true }, + { 174276, true }, + { 174287, true }, + { 174302, true }, + { 174311, true }, + { 174325, true }, + { 174336, true }, + { 174349, true }, + { 174371, true }, + { 174381, true }, + { 174402, true }, + { 174423, true }, + { 174440, true }, + { 174461, true }, + { 174475, true }, + { 174491, true }, + { 174504, true }, + { 174516, true }, + { 174531, true }, + { 174541, true }, + { 174554, true }, + { 174578, true }, + { 174597, true }, + { 174609, true }, + { 174627, true }, + { 174636, false }, + { 174653, true }, + { 174671, true }, + { 174684, true }, + { 174697, false }, + { 174718, true }, + { 174728, true }, + { 174747, true }, + { 174760, true }, + { 174780, true }, + { 174805, true }, + { 174816, true }, + { 174828, true }, + { 174843, true }, + { 174856, true }, + { 174871, true }, + { 174886, true }, + { 174906, true }, + { 174919, false }, + { 174928, true }, + { 174947, true }, + { 174964, false }, + { 174979, true }, + { 174993, true }, + { 175003, true }, + { 175016, true }, + { 175032, true }, + { 175048, true }, + { 175066, true }, + { 175076, true }, + { 175089, true }, + { 175101, true }, + { 175114, true }, + { 175127, true }, + { 175136, true }, + { 175160, true }, + { 175184, true }, + { 175201, false }, + { 175214, true }, + { 175225, true }, + { 175241, true }, + { 175253, true }, + { 175269, true }, + { 175286, false }, + { 175298, true }, + { 175317, false }, + { 175326, true }, + { 175348, true }, + { 175361, false }, + { 175376, true }, + { 175388, true }, + { 175407, false }, + { 175430, true }, + { 175446, true }, + { 175462, true }, { 175480, true }, - { 175498, true }, - { 175516, false }, - { 175536, true }, - { 175548, true }, - { 175561, true }, - { 175577, true }, - { 175588, true }, - { 175607, true }, - { 175621, true }, - { 175632, true }, - { 175642, true }, - { 175659, true }, - { 175671, true }, - { 175683, true }, - { 175702, true }, - { 175714, true }, - { 175725, true }, - { 175744, true }, - { 175765, true }, - { 175775, true }, - { 175788, true }, - { 175796, true }, - { 175812, true }, - { 175836, false }, - { 175854, true }, - { 175872, false }, - { 175892, true }, + { 175498, false }, + { 175518, true }, + { 175530, true }, + { 175543, true }, + { 175559, true }, + { 175570, true }, + { 175589, true }, + { 175603, true }, + { 175614, true }, + { 175624, true }, + { 175641, true }, + { 175653, true }, + { 175665, true }, + { 175684, true }, + { 175696, true }, + { 175707, true }, + { 175726, true }, + { 175747, true }, + { 175757, true }, + { 175770, true }, + { 175778, true }, + { 175794, true }, + { 175818, false }, + { 175836, true }, + { 175854, false }, + { 175874, true }, + { 175890, true }, { 175908, true }, - { 175926, true }, - { 175938, true }, - { 175955, true }, - { 175978, true }, - { 175997, true }, - { 176017, true }, - { 176030, true }, - { 176042, true }, - { 176050, true }, - { 176070, true }, - { 176078, true }, - { 176094, true }, - { 176108, true }, - { 176120, true }, - { 176129, true }, - { 176139, true }, - { 176148, true }, - { 176165, true }, - { 176175, true }, - { 176188, true }, - { 176205, true }, - { 176216, true }, - { 176226, true }, - { 176243, true }, - { 176260, true }, - { 176269, true }, - { 176283, true }, - { 176295, true }, - { 176314, true }, - { 176324, true }, - { 176341, true }, - { 176363, true }, - { 176377, true }, + { 175920, true }, + { 175937, true }, + { 175960, true }, + { 175979, true }, + { 175999, true }, + { 176012, true }, + { 176024, true }, + { 176032, true }, + { 176052, true }, + { 176060, true }, + { 176076, true }, + { 176090, true }, + { 176102, true }, + { 176111, true }, + { 176121, true }, + { 176130, true }, + { 176147, true }, + { 176157, true }, + { 176170, true }, + { 176187, true }, + { 176198, true }, + { 176208, true }, + { 176225, true }, + { 176242, true }, + { 176251, true }, + { 176265, true }, + { 176277, true }, + { 176296, true }, + { 176306, true }, + { 176323, true }, + { 176345, true }, + { 176359, true }, + { 176373, true }, { 176391, true }, - { 176409, true }, - { 176424, true }, - { 176438, true }, + { 176406, true }, + { 176420, true }, + { 176429, true }, + { 176441, true }, { 176447, true }, - { 176459, true }, - { 176465, true }, - { 176471, true }, - { 176479, true }, - { 176491, true }, - { 176512, true }, - { 176522, true }, + { 176453, true }, + { 176461, true }, + { 176473, true }, + { 176494, true }, + { 176504, true }, + { 176515, true }, { 176533, true }, - { 176551, true }, - { 176564, true }, - { 176583, true }, - { 176599, true }, - { 176612, true }, - { 176623, true }, - { 176636, true }, - { 176651, true }, - { 176665, false }, - { 176679, true }, - { 176698, true }, + { 176546, true }, + { 176565, true }, + { 176581, true }, + { 176594, true }, + { 176605, true }, + { 176618, true }, + { 176633, true }, + { 176647, false }, + { 176661, true }, + { 176680, true }, + { 176691, true }, + { 176701, true }, { 176709, true }, - { 176719, true }, - { 176727, true }, - { 176744, true }, - { 176758, true }, - { 176770, true }, - { 176787, true }, - { 176801, true }, - { 176815, false }, + { 176726, true }, + { 176740, true }, + { 176752, true }, + { 176769, true }, + { 176783, true }, + { 176797, false }, + { 176810, true }, { 176828, true }, - { 176846, true }, - { 176858, true }, - { 176870, true }, - { 176889, true }, - { 176908, true }, - { 176922, true }, - { 176934, true }, - { 176947, true }, - { 176963, true }, - { 176976, true }, - { 176989, true }, - { 177004, true }, - { 177032, true }, - { 177043, true }, - { 177056, true }, - { 177071, true }, - { 177090, true }, - { 177103, true }, - { 177128, true }, - { 177140, true }, - { 177154, true }, - { 177168, true }, - { 177183, true }, - { 177197, true }, - { 177211, true }, - { 177225, true }, - { 177241, true }, - { 177264, true }, - { 177280, true }, - { 177295, true }, - { 177319, true }, - { 177331, true }, - { 177350, true }, - { 177363, true }, - { 177374, true }, - { 177394, true }, + { 176840, true }, + { 176852, true }, + { 176871, true }, + { 176890, true }, + { 176904, true }, + { 176916, true }, + { 176929, true }, + { 176945, true }, + { 176958, true }, + { 176971, true }, + { 176986, true }, + { 177014, true }, + { 177025, true }, + { 177038, true }, + { 177053, true }, + { 177072, true }, + { 177085, true }, + { 177110, true }, + { 177122, true }, + { 177136, true }, + { 177150, true }, + { 177165, true }, + { 177179, true }, + { 177193, true }, + { 177207, true }, + { 177223, true }, + { 177246, true }, + { 177262, true }, + { 177277, true }, + { 177301, true }, + { 177313, true }, + { 177332, true }, + { 177345, true }, + { 177356, true }, + { 177376, true }, + { 177388, true }, { 177406, true }, - { 177424, true }, - { 177441, true }, - { 177456, true }, - { 177475, true }, - { 177488, true }, + { 177423, true }, + { 177438, true }, + { 177457, true }, + { 177470, true }, + { 177486, true }, { 177504, true }, - { 177522, true }, - { 177546, true }, - { 177562, true }, - { 177575, true }, - { 177595, true }, - { 177608, true }, - { 177630, true }, - { 177647, true }, - { 177662, true }, - { 177683, true }, - { 177703, true }, - { 177716, true }, - { 177731, true }, - { 177743, true }, + { 177528, true }, + { 177544, true }, + { 177557, true }, + { 177577, true }, + { 177590, true }, + { 177612, true }, + { 177629, true }, + { 177644, true }, + { 177665, true }, + { 177685, true }, + { 177698, true }, + { 177713, true }, + { 177725, true }, + { 177739, true }, { 177757, true }, - { 177775, true }, - { 177790, true }, - { 177809, true }, - { 177828, true }, - { 177842, true }, - { 177863, true }, - { 177878, true }, - { 177890, true }, - { 177907, true }, + { 177772, true }, + { 177791, true }, + { 177810, true }, + { 177824, true }, + { 177845, true }, + { 177860, true }, + { 177872, true }, + { 177889, true }, + { 177904, true }, { 177922, true }, - { 177940, true }, - { 177952, true }, - { 177966, true }, - { 177977, true }, - { 177999, true }, - { 178011, true }, - { 178020, true }, - { 178032, true }, - { 178047, true }, - { 178070, true }, + { 177934, true }, + { 177948, true }, + { 177959, true }, + { 177981, true }, + { 177993, true }, + { 178002, true }, + { 178014, true }, + { 178029, true }, + { 178052, true }, + { 178071, true }, { 178089, true }, - { 178107, true }, - { 178123, true }, - { 178142, true }, - { 178158, true }, - { 178175, true }, - { 178188, true }, + { 178105, true }, + { 178124, true }, + { 178140, true }, + { 178157, true }, + { 178170, true }, + { 178189, true }, { 178207, true }, - { 178225, true }, - { 178231, true }, - { 178249, false }, - { 178269, true }, - { 178286, true }, - { 178300, true }, - { 178312, true }, - { 178331, false }, - { 178348, true }, - { 178367, true }, - { 178378, true }, - { 178397, true }, - { 178420, true }, - { 178446, true }, + { 178213, true }, + { 178231, false }, + { 178251, true }, + { 178268, true }, + { 178282, true }, + { 178294, true }, + { 178313, false }, + { 178330, true }, + { 178349, true }, + { 178360, true }, + { 178379, true }, + { 178402, true }, + { 178428, true }, + { 178439, true }, { 178457, true }, - { 178475, true }, - { 178495, true }, - { 178512, true }, + { 178477, true }, + { 178494, true }, + { 178513, true }, { 178531, true }, - { 178549, true }, - { 178558, true }, - { 178565, true }, - { 178572, true }, - { 178584, true }, - { 178594, true }, - { 178605, false }, - { 178625, true }, - { 178633, true }, - { 178644, true }, - { 178655, true }, - { 178666, true }, - { 178689, true }, - { 178713, true }, - { 178736, true }, - { 178759, true }, - { 178787, true }, - { 178816, true }, - { 178829, true }, - { 178844, true }, - { 178863, true }, + { 178540, true }, + { 178547, true }, + { 178554, true }, + { 178566, true }, + { 178576, true }, + { 178587, false }, + { 178607, true }, + { 178615, true }, + { 178626, true }, + { 178637, true }, + { 178648, true }, + { 178671, true }, + { 178695, true }, + { 178718, true }, + { 178741, true }, + { 178769, true }, + { 178798, true }, + { 178811, true }, + { 178826, true }, + { 178845, true }, + { 178858, true }, { 178876, true }, - { 178894, true }, - { 178917, true }, - { 178928, true }, - { 178945, true }, - { 178956, true }, - { 178971, true }, + { 178899, true }, + { 178910, true }, + { 178927, true }, + { 178938, true }, + { 178953, true }, + { 178964, true }, { 178982, true }, - { 179000, true }, - { 179026, true }, - { 179055, true }, - { 179067, true }, - { 179080, false }, + { 179008, true }, + { 179037, true }, + { 179049, true }, + { 179062, false }, + { 179082, true }, { 179100, true }, - { 179118, true }, - { 179133, true }, - { 179154, false }, + { 179115, true }, + { 179136, false }, + { 179152, true }, { 179170, true }, - { 179188, true }, - { 179204, true }, - { 179219, true }, - { 179235, true }, - { 179247, true }, - { 179269, true }, - { 179291, true }, - { 179311, true }, - { 179330, true }, - { 179347, true }, - { 179365, false }, - { 179383, true }, - { 179403, true }, - { 179422, true }, - { 179441, true }, - { 179462, true }, - { 179489, true }, - { 179501, true }, - { 179513, true }, + { 179186, true }, + { 179201, true }, + { 179217, true }, + { 179229, true }, + { 179251, true }, + { 179273, true }, + { 179293, true }, + { 179312, true }, + { 179329, true }, + { 179347, false }, + { 179365, true }, + { 179385, true }, + { 179404, true }, + { 179423, true }, + { 179444, true }, + { 179471, true }, + { 179483, true }, + { 179497, true }, + { 179512, true }, { 179524, true }, - { 179543, true }, - { 179557, true }, - { 179566, true }, - { 179581, true }, - { 179591, true }, - { 179604, true }, - { 179624, true }, - { 179633, true }, - { 179643, true }, - { 179664, false }, - { 179681, true }, - { 179701, true }, - { 179710, true }, - { 179723, true }, - { 179740, true }, - { 179754, true }, - { 179768, true }, - { 179780, true }, - { 179797, true }, - { 179812, true }, - { 179829, true }, - { 179845, true }, - { 179862, true }, - { 179878, true }, - { 179890, true }, - { 179901, false }, - { 179917, true }, + { 179535, true }, + { 179554, true }, + { 179568, true }, + { 179577, true }, + { 179592, true }, + { 179602, true }, + { 179615, true }, + { 179635, true }, + { 179644, true }, + { 179654, true }, + { 179675, false }, + { 179692, true }, + { 179712, true }, + { 179721, true }, + { 179734, true }, + { 179751, true }, + { 179765, true }, + { 179779, true }, + { 179791, true }, + { 179808, true }, + { 179823, true }, + { 179840, true }, + { 179856, true }, + { 179873, true }, + { 179889, true }, + { 179901, true }, + { 179912, false }, { 179928, true }, - { 179944, true }, - { 179959, true }, - { 179975, true }, - { 179988, true }, - { 179997, true }, - { 180010, true }, - { 180027, true }, - { 180039, true }, - { 180051, true }, - { 180063, true }, - { 180075, true }, - { 180084, true }, - { 180096, true }, - { 180111, true }, - { 180125, true }, - { 180137, true }, - { 180154, true }, - { 180166, true }, - { 180176, true }, - { 180192, true }, - { 180213, true }, - { 180231, true }, - { 180247, true }, - { 180263, true }, - { 180283, true }, - { 180298, true }, - { 180310, true }, - { 180325, true }, - { 180335, true }, - { 180350, true }, - { 180362, true }, - { 180374, true }, - { 180389, true }, - { 180403, true }, + { 179939, true }, + { 179955, true }, + { 179970, true }, + { 179986, true }, + { 179999, true }, + { 180008, true }, + { 180021, true }, + { 180038, true }, + { 180050, true }, + { 180062, true }, + { 180074, true }, + { 180086, true }, + { 180095, true }, + { 180107, true }, + { 180122, true }, + { 180136, true }, + { 180148, true }, + { 180165, true }, + { 180177, true }, + { 180187, true }, + { 180203, true }, + { 180224, true }, + { 180242, true }, + { 180258, true }, + { 180274, true }, + { 180294, true }, + { 180309, true }, + { 180321, true }, + { 180336, true }, + { 180346, true }, + { 180361, true }, + { 180373, true }, + { 180385, true }, + { 180400, true }, { 180414, true }, { 180425, true }, { 180436, true }, - { 180444, true }, - { 180457, true }, - { 180470, true }, - { 180487, true }, - { 180497, true }, - { 180510, true }, - { 180527, true }, - { 180541, true }, - { 180550, true }, - { 180565, true }, - { 180579, true }, - { 180592, true }, - { 180606, true }, - { 180620, true }, - { 180628, true }, - { 180645, true }, - { 180660, true }, - { 180675, true }, - { 180689, true }, - { 180705, true }, - { 180721, true }, - { 180735, true }, - { 180751, true }, - { 180773, true }, - { 180790, true }, - { 180803, true }, - { 180817, true }, - { 180833, false }, - { 180851, true }, - { 180866, true }, - { 180883, true }, - { 180898, true }, - { 180915, false }, - { 180941, true }, - { 180956, true }, - { 180974, true }, - { 180987, true }, - { 181000, true }, - { 181012, true }, - { 181031, true }, - { 181041, true }, - { 181057, true }, - { 181069, true }, - { 181091, false }, - { 181102, true }, - { 181119, true }, - { 181150, true }, - { 181160, true }, + { 180447, true }, + { 180455, true }, + { 180468, true }, + { 180481, true }, + { 180498, true }, + { 180508, true }, + { 180521, true }, + { 180538, true }, + { 180552, true }, + { 180561, true }, + { 180576, true }, + { 180590, true }, + { 180603, true }, + { 180617, true }, + { 180631, true }, + { 180639, true }, + { 180656, true }, + { 180671, true }, + { 180686, true }, + { 180700, true }, + { 180716, true }, + { 180732, true }, + { 180746, true }, + { 180762, true }, + { 180784, true }, + { 180801, true }, + { 180814, true }, + { 180828, true }, + { 180844, false }, + { 180862, true }, + { 180877, true }, + { 180894, true }, + { 180909, true }, + { 180926, false }, + { 180952, true }, + { 180967, true }, + { 180985, true }, + { 180998, true }, + { 181011, true }, + { 181023, true }, + { 181042, true }, + { 181052, true }, + { 181068, true }, + { 181080, true }, + { 181102, false }, + { 181113, true }, + { 181130, true }, + { 181161, true }, { 181171, true }, - { 181183, true }, - { 181197, true }, - { 181209, true }, - { 181217, true }, - { 181225, true }, - { 181236, false }, - { 181256, true }, - { 181274, true }, - { 181294, true }, - { 181309, true }, - { 181324, true }, - { 181341, false }, - { 181355, true }, - { 181375, true }, + { 181182, true }, + { 181194, true }, + { 181208, true }, + { 181220, true }, + { 181228, true }, + { 181236, true }, + { 181247, false }, + { 181267, true }, + { 181285, true }, + { 181305, true }, + { 181320, true }, + { 181335, true }, + { 181352, false }, + { 181366, true }, { 181386, true }, - { 181411, true }, - { 181432, true }, - { 181450, true }, - { 181465, true }, - { 181482, true }, - { 181507, true }, - { 181518, true }, - { 181529, true }, - { 181543, true }, - { 181556, false }, - { 181584, true }, - { 181596, true }, - { 181609, true }, - { 181622, false }, - { 181630, true }, - { 181640, true }, - { 181655, true }, + { 181397, true }, + { 181422, true }, + { 181443, true }, + { 181461, true }, + { 181476, true }, + { 181493, true }, + { 181509, true }, + { 181534, true }, + { 181545, true }, + { 181556, true }, + { 181570, true }, + { 181583, false }, + { 181611, true }, + { 181623, true }, + { 181636, true }, + { 181649, false }, + { 181657, true }, { 181667, true }, - { 181686, true }, - { 181698, true }, - { 181711, true }, - { 181724, true }, - { 181739, true }, - { 181752, true }, - { 181774, true }, - { 181788, true }, + { 181682, true }, + { 181694, true }, + { 181713, true }, + { 181725, true }, + { 181738, true }, + { 181751, true }, + { 181766, true }, + { 181779, true }, { 181801, true }, - { 181821, false }, - { 181838, true }, - { 181856, true }, - { 181870, true }, - { 181881, true }, - { 181892, true }, - { 181905, true }, - { 181922, true }, - { 181930, true }, - { 181945, true }, - { 181958, true }, + { 181815, true }, + { 181828, true }, + { 181848, false }, + { 181865, true }, + { 181883, true }, + { 181897, true }, + { 181908, true }, + { 181919, true }, + { 181932, true }, + { 181949, true }, + { 181957, true }, { 181972, true }, - { 181987, true }, - { 182012, true }, - { 182048, true }, - { 182061, true }, - { 182071, true }, - { 182086, true }, - { 182099, true }, - { 182121, true }, - { 182143, true }, - { 182161, true }, - { 182174, true }, - { 182185, true }, - { 182197, true }, - { 182215, true }, - { 182223, true }, - { 182256, true }, - { 182263, true }, - { 182280, true }, - { 182296, true }, - { 182313, true }, + { 181985, true }, + { 181999, true }, + { 182014, true }, + { 182039, true }, + { 182075, true }, + { 182088, true }, + { 182098, true }, + { 182113, true }, + { 182126, true }, + { 182148, true }, + { 182170, true }, + { 182188, true }, + { 182201, true }, + { 182212, true }, + { 182224, true }, + { 182242, true }, + { 182250, true }, + { 182283, true }, + { 182290, true }, + { 182307, true }, { 182323, true }, - { 182336, true }, - { 182354, false }, - { 182372, true }, - { 182390, true }, - { 182402, true }, - { 182414, true }, - { 182425, true }, - { 182438, true }, - { 182454, true }, - { 182468, true }, - { 182488, true }, - { 182502, true }, - { 182514, true }, - { 182534, true }, - { 182545, true }, - { 182562, true }, + { 182340, true }, + { 182350, true }, + { 182363, true }, + { 182381, false }, + { 182399, true }, + { 182417, true }, + { 182429, true }, + { 182441, true }, + { 182452, true }, + { 182465, true }, + { 182481, true }, + { 182495, true }, + { 182515, true }, + { 182529, true }, + { 182541, true }, + { 182561, true }, { 182572, true }, - { 182581, true }, - { 182592, true }, - { 182611, true }, - { 182628, true }, - { 182642, true }, - { 182656, true }, - { 182679, true }, - { 182699, true }, - { 182713, true }, - { 182727, true }, - { 182739, true }, - { 182751, true }, - { 182767, true }, - { 182781, true }, - { 182795, true }, - { 182804, true }, - { 182816, true }, - { 182828, true }, - { 182839, true }, - { 182848, true }, - { 182857, true }, - { 182868, true }, - { 182882, true }, - { 182888, true }, - { 182900, true }, - { 182913, true }, - { 182928, false }, - { 182955, true }, - { 182975, true }, - { 182985, true }, - { 182998, true }, - { 183011, true }, - { 183027, true }, - { 183048, true }, - { 183069, true }, - { 183088, true }, - { 183098, true }, - { 183110, true }, - { 183121, false }, - { 183129, true }, - { 183144, true }, - { 183158, true }, - { 183172, true }, - { 183184, true }, - { 183197, true }, - { 183207, true }, - { 183228, true }, - { 183240, true }, - { 183251, true }, - { 183271, true }, - { 183290, true }, - { 183301, true }, - { 183316, true }, - { 183341, false }, - { 183369, false }, - { 183381, true }, - { 183392, true }, - { 183403, true }, + { 182589, true }, + { 182599, true }, + { 182608, true }, + { 182619, true }, + { 182638, true }, + { 182655, true }, + { 182669, true }, + { 182683, true }, + { 182706, true }, + { 182726, true }, + { 182740, true }, + { 182754, true }, + { 182766, true }, + { 182778, true }, + { 182794, true }, + { 182808, true }, + { 182822, true }, + { 182831, true }, + { 182843, true }, + { 182855, true }, + { 182866, true }, + { 182875, true }, + { 182884, true }, + { 182895, true }, + { 182909, true }, + { 182915, true }, + { 182927, true }, + { 182940, true }, + { 182955, false }, + { 182982, true }, + { 183002, true }, + { 183012, true }, + { 183025, true }, + { 183038, true }, + { 183054, true }, + { 183075, true }, + { 183096, true }, + { 183115, true }, + { 183125, true }, + { 183137, true }, + { 183148, false }, + { 183156, true }, + { 183171, true }, + { 183185, true }, + { 183199, true }, + { 183211, true }, + { 183224, true }, + { 183234, true }, + { 183255, true }, + { 183267, true }, + { 183278, true }, + { 183298, true }, + { 183317, true }, + { 183328, true }, + { 183343, true }, + { 183368, false }, + { 183396, false }, + { 183408, true }, { 183419, true }, - { 183434, true }, - { 183449, true }, - { 183460, true }, - { 183477, true }, - { 183489, false }, - { 183506, true }, - { 183525, true }, - { 183541, true }, - { 183555, true }, - { 183570, true }, - { 183585, true }, - { 183601, true }, - { 183618, true }, - { 183641, true }, - { 183660, true }, - { 183674, true }, - { 183695, true }, - { 183715, true }, - { 183733, true }, - { 183752, true }, - { 183770, true }, - { 183788, true }, - { 183804, true }, - { 183819, false }, - { 183834, false }, - { 183848, true }, - { 183861, true }, - { 183877, true }, + { 183430, true }, + { 183446, true }, + { 183461, true }, + { 183476, true }, + { 183487, true }, + { 183504, true }, + { 183516, false }, + { 183533, true }, + { 183552, true }, + { 183568, true }, + { 183582, true }, + { 183597, true }, + { 183612, true }, + { 183628, true }, + { 183645, true }, + { 183668, true }, + { 183687, true }, + { 183701, true }, + { 183722, true }, + { 183742, true }, + { 183760, true }, + { 183779, true }, + { 183797, true }, + { 183815, true }, + { 183831, true }, + { 183846, false }, + { 183861, false }, + { 183875, true }, { 183888, true }, - { 183899, true }, - { 183911, true }, + { 183904, true }, + { 183915, true }, { 183926, true }, - { 183944, true }, - { 183962, true }, - { 183984, true }, - { 183998, true }, - { 184015, true }, - { 184034, true }, - { 184052, true }, - { 184073, true }, - { 184087, true }, - { 184099, true }, - { 184114, true }, - { 184130, true }, - { 184148, true }, - { 184158, true }, - { 184170, false }, - { 184181, true }, - { 184200, false }, - { 184219, true }, - { 184234, true }, - { 184247, false }, - { 184266, true }, - { 184277, true }, - { 184295, true }, - { 184309, true }, - { 184334, true }, - { 184349, true }, - { 184367, true }, - { 184382, true }, - { 184397, true }, - { 184414, true }, - { 184425, true }, - { 184435, true }, - { 184447, true }, - { 184461, true }, - { 184476, true }, - { 184485, true }, - { 184502, true }, - { 184517, false }, - { 184530, true }, - { 184542, true }, - { 184563, true }, - { 184576, true }, - { 184593, true }, - { 184613, true }, - { 184636, true }, - { 184655, true }, - { 184666, true }, - { 184676, false }, - { 184688, true }, - { 184703, true }, - { 184717, true }, - { 184731, true }, - { 184751, true }, - { 184774, true }, - { 184787, true }, - { 184805, true }, - { 184813, true }, - { 184820, true }, - { 184828, true }, - { 184843, true }, + { 183938, true }, + { 183953, true }, + { 183971, true }, + { 183989, true }, + { 184011, true }, + { 184025, true }, + { 184042, true }, + { 184061, true }, + { 184079, true }, + { 184100, true }, + { 184114, false }, + { 184126, true }, + { 184141, true }, + { 184157, true }, + { 184175, true }, + { 184185, true }, + { 184197, false }, + { 184208, true }, + { 184227, false }, + { 184246, true }, + { 184261, true }, + { 184274, false }, + { 184293, true }, + { 184304, true }, + { 184322, true }, + { 184336, true }, + { 184361, true }, + { 184376, true }, + { 184394, true }, + { 184409, true }, + { 184424, true }, + { 184441, true }, + { 184452, true }, + { 184462, true }, + { 184474, true }, + { 184488, true }, + { 184503, true }, + { 184512, true }, + { 184529, true }, + { 184544, false }, + { 184557, true }, + { 184569, true }, + { 184590, true }, + { 184603, true }, + { 184620, true }, + { 184640, true }, + { 184663, true }, + { 184682, true }, + { 184693, true }, + { 184703, false }, + { 184715, true }, + { 184730, true }, + { 184744, true }, + { 184758, true }, + { 184778, true }, + { 184801, true }, + { 184814, true }, + { 184832, true }, + { 184840, true }, + { 184847, true }, { 184855, true }, - { 184867, true }, - { 184884, true }, - { 184895, false }, - { 184912, true }, - { 184925, true }, - { 184936, false }, - { 184949, true }, - { 184964, false }, - { 184988, false }, - { 185000, true }, - { 185025, true }, - { 185034, true }, - { 185054, true }, - { 185071, true }, + { 184870, true }, + { 184882, true }, + { 184894, true }, + { 184911, true }, + { 184922, false }, + { 184939, true }, + { 184952, true }, + { 184963, false }, + { 184976, true }, + { 184991, false }, + { 185015, false }, + { 185027, true }, + { 185052, true }, + { 185061, true }, { 185081, true }, - { 185102, true }, - { 185111, true }, - { 185130, true }, - { 185148, true }, - { 185164, true }, - { 185179, true }, - { 185194, true }, - { 185209, true }, - { 185229, true }, - { 185242, true }, - { 185255, true }, - { 185264, true }, - { 185278, true }, - { 185301, true }, - { 185323, true }, - { 185349, true }, - { 185364, true }, - { 185379, true }, - { 185389, true }, - { 185403, true }, - { 185415, true }, - { 185438, true }, - { 185447, true }, - { 185457, true }, + { 185098, true }, + { 185108, true }, + { 185129, true }, + { 185138, true }, + { 185157, true }, + { 185175, true }, + { 185191, true }, + { 185206, true }, + { 185221, true }, + { 185236, true }, + { 185256, true }, + { 185269, true }, + { 185282, true }, + { 185291, true }, + { 185305, true }, + { 185328, true }, + { 185350, true }, + { 185376, true }, + { 185391, true }, + { 185406, true }, + { 185416, true }, + { 185430, true }, + { 185442, true }, { 185465, true }, - { 185481, true }, - { 185495, true }, - { 185508, true }, - { 185525, false }, - { 185543, true }, - { 185556, true }, - { 185567, true }, - { 185580, true }, - { 185591, true }, - { 185601, true }, - { 185616, true }, - { 185629, true }, - { 185645, true }, - { 185655, false }, - { 185665, true }, - { 185678, true }, - { 185693, true }, - { 185703, true }, - { 185719, true }, - { 185731, true }, - { 185740, true }, - { 185755, true }, - { 185766, true }, - { 185784, true }, - { 185804, true }, - { 185820, true }, - { 185837, true }, - { 185850, true }, - { 185860, true }, - { 185870, true }, - { 185884, true }, - { 185896, true }, - { 185909, true }, - { 185926, true }, - { 185941, true }, - { 185958, true }, - { 185970, true }, - { 185987, true }, - { 186001, true }, - { 186010, true }, - { 186026, true }, - { 186039, true }, - { 186052, true }, - { 186067, false }, - { 186079, true }, - { 186092, true }, - { 186102, true }, + { 185474, true }, + { 185484, true }, + { 185500, true }, + { 185514, true }, + { 185527, true }, + { 185544, false }, + { 185562, true }, + { 185575, true }, + { 185586, true }, + { 185599, true }, + { 185610, true }, + { 185620, true }, + { 185635, true }, + { 185648, true }, + { 185664, true }, + { 185674, false }, + { 185684, true }, + { 185697, true }, + { 185712, true }, + { 185722, true }, + { 185738, true }, + { 185750, true }, + { 185759, true }, + { 185774, true }, + { 185785, true }, + { 185803, true }, + { 185823, true }, + { 185839, true }, + { 185856, true }, + { 185869, true }, + { 185879, true }, + { 185889, true }, + { 185903, true }, + { 185915, true }, + { 185928, true }, + { 185945, true }, + { 185960, true }, + { 185977, true }, + { 185989, true }, + { 186006, true }, + { 186020, true }, + { 186029, true }, + { 186045, true }, + { 186058, true }, + { 186071, true }, + { 186086, false }, + { 186098, true }, { 186111, true }, - { 186123, true }, - { 186131, true }, - { 186139, true }, - { 186147, true }, - { 186153, true }, - { 186164, true }, - { 186179, true }, - { 186192, true }, - { 186207, true }, + { 186121, true }, + { 186130, true }, + { 186142, true }, + { 186150, true }, + { 186158, true }, + { 186166, true }, + { 186172, true }, + { 186183, true }, + { 186198, true }, + { 186211, true }, { 186226, true }, - { 186250, true }, - { 186263, true }, - { 186278, true }, - { 186302, true }, - { 186312, true }, - { 186324, true }, - { 186345, true }, - { 186360, false }, - { 186383, true }, - { 186404, true }, - { 186417, true }, - { 186430, true }, - { 186447, true }, - { 186461, true }, - { 186473, true }, - { 186492, true }, - { 186510, true }, - { 186534, false }, - { 186561, true }, - { 186587, true }, - { 186602, true }, - { 186619, true }, - { 186635, true }, - { 186652, true }, - { 186669, true }, - { 186684, true }, - { 186697, true }, - { 186708, true }, + { 186245, true }, + { 186269, true }, + { 186282, true }, + { 186297, true }, + { 186321, true }, + { 186331, true }, + { 186343, true }, + { 186359, true }, + { 186380, true }, + { 186395, false }, + { 186418, true }, + { 186439, true }, + { 186452, true }, + { 186465, true }, + { 186482, true }, + { 186496, true }, + { 186508, true }, + { 186527, true }, + { 186545, true }, + { 186569, false }, + { 186596, true }, + { 186622, true }, + { 186637, true }, + { 186654, true }, + { 186670, true }, + { 186687, true }, + { 186704, true }, { 186719, true }, - { 186729, true }, - { 186742, true }, - { 186760, true }, - { 186773, true }, - { 186787, true }, - { 186797, true }, + { 186732, true }, + { 186743, true }, + { 186754, true }, + { 186764, true }, + { 186777, true }, + { 186795, true }, { 186808, true }, - { 186817, true }, - { 186838, true }, + { 186822, true }, + { 186832, true }, + { 186843, true }, { 186852, true }, - { 186861, true }, - { 186868, true }, - { 186875, true }, - { 186883, true }, - { 186906, true }, - { 186919, true }, - { 186933, true }, - { 186946, true }, - { 186961, true }, - { 186976, true }, - { 186985, true }, - { 186993, true }, - { 187006, true }, - { 187014, true }, - { 187032, true }, - { 187044, true }, - { 187065, true }, - { 187081, true }, - { 187090, true }, - { 187103, true }, - { 187114, true }, - { 187126, true }, - { 187141, true }, - { 187150, true }, - { 187162, true }, - { 187173, true }, + { 186873, true }, + { 186887, true }, + { 186896, true }, + { 186903, true }, + { 186910, true }, + { 186918, true }, + { 186941, true }, + { 186954, true }, + { 186968, true }, + { 186981, true }, + { 186996, true }, + { 187011, true }, + { 187020, true }, + { 187028, true }, + { 187041, true }, + { 187049, true }, + { 187067, true }, + { 187079, true }, + { 187100, true }, + { 187116, true }, + { 187125, true }, + { 187138, true }, + { 187149, true }, + { 187161, true }, + { 187176, true }, { 187185, true }, - { 187198, true }, - { 187211, true }, - { 187226, true }, + { 187197, true }, + { 187208, true }, + { 187220, true }, + { 187233, true }, { 187246, true }, - { 187258, true }, - { 187275, true }, - { 187285, true }, - { 187292, true }, - { 187302, true }, - { 187314, true }, - { 187330, true }, - { 187345, true }, - { 187354, true }, - { 187368, true }, - { 187388, true }, - { 187400, true }, - { 187413, true }, - { 187427, true }, - { 187445, true }, - { 187452, true }, - { 187469, true }, - { 187486, true }, - { 187506, true }, - { 187525, true }, - { 187541, false }, - { 187559, true }, - { 187586, true }, - { 187603, true }, - { 187617, true }, - { 187631, true }, - { 187647, true }, - { 187662, false }, - { 187681, true }, - { 187699, true }, - { 187717, true }, - { 187735, true }, + { 187261, true }, + { 187281, true }, + { 187293, true }, + { 187310, true }, + { 187320, true }, + { 187327, true }, + { 187337, true }, + { 187349, true }, + { 187365, true }, + { 187380, true }, + { 187389, true }, + { 187403, true }, + { 187423, true }, + { 187435, true }, + { 187448, true }, + { 187462, true }, + { 187480, true }, + { 187487, true }, + { 187504, true }, + { 187521, true }, + { 187541, true }, + { 187560, true }, + { 187576, false }, + { 187594, true }, + { 187621, true }, + { 187638, true }, + { 187652, true }, + { 187666, true }, + { 187682, true }, + { 187697, false }, + { 187716, true }, + { 187734, true }, { 187752, true }, - { 187773, true }, + { 187770, true }, { 187787, true }, - { 187798, true }, - { 187811, true }, - { 187819, true }, - { 187829, true }, - { 187844, true }, - { 187859, true }, - { 187870, true }, + { 187808, true }, + { 187822, true }, + { 187833, true }, + { 187841, true }, + { 187851, true }, + { 187866, true }, + { 187881, true }, { 187892, true }, - { 187905, true }, - { 187920, true }, - { 187939, true }, - { 187965, true }, - { 187981, true }, - { 187999, true }, - { 188017, true }, - { 188032, true }, - { 188040, true }, - { 188053, true }, - { 188061, true }, - { 188072, true }, - { 188086, true }, - { 188100, true }, - { 188111, true }, - { 188127, true }, - { 188144, true }, - { 188154, true }, - { 188167, true }, - { 188185, true }, - { 188198, true }, - { 188217, false }, - { 188227, true }, - { 188243, true }, - { 188260, true }, - { 188276, true }, - { 188299, true }, - { 188324, true }, - { 188337, true }, - { 188348, true }, - { 188363, true }, - { 188375, true }, - { 188393, true }, - { 188418, true }, - { 188430, true }, - { 188442, true }, - { 188454, true }, - { 188465, true }, - { 188477, true }, - { 188495, true }, - { 188516, true }, - { 188532, true }, - { 188544, true }, - { 188558, true }, - { 188573, true }, - { 188586, true }, - { 188602, true }, - { 188616, false }, - { 188625, true }, - { 188643, true }, - { 188657, true }, - { 188667, false }, - { 188678, true }, - { 188686, false }, - { 188698, true }, - { 188715, true }, - { 188725, true }, - { 188736, true }, - { 188743, true }, - { 188754, true }, - { 188771, true }, - { 188788, true }, - { 188808, true }, - { 188823, true }, - { 188834, true }, - { 188843, false }, - { 188850, true }, - { 188860, true }, - { 188871, true }, - { 188887, true }, - { 188896, true }, - { 188911, true }, - { 188921, true }, - { 188942, true }, - { 188951, true }, - { 188969, true }, - { 188985, false }, - { 188998, true }, - { 189014, true }, - { 189026, true }, - { 189038, true }, - { 189058, true }, - { 189072, true }, - { 189088, true }, - { 189102, true }, - { 189117, true }, - { 189125, true }, - { 189138, true }, - { 189154, true }, - { 189167, true }, - { 189180, true }, - { 189194, true }, + { 187914, true }, + { 187927, true }, + { 187942, true }, + { 187961, true }, + { 187987, true }, + { 188003, true }, + { 188021, true }, + { 188039, true }, + { 188054, true }, + { 188062, true }, + { 188075, true }, + { 188083, true }, + { 188094, true }, + { 188108, true }, + { 188122, true }, + { 188133, true }, + { 188149, true }, + { 188166, true }, + { 188176, true }, + { 188189, true }, + { 188207, true }, + { 188220, true }, + { 188239, false }, + { 188249, true }, + { 188265, true }, + { 188282, true }, + { 188298, true }, + { 188321, true }, + { 188346, true }, + { 188359, true }, + { 188370, true }, + { 188385, true }, + { 188397, true }, + { 188415, true }, + { 188440, true }, + { 188452, true }, + { 188464, true }, + { 188476, true }, + { 188487, true }, + { 188499, true }, + { 188517, true }, + { 188538, true }, + { 188554, true }, + { 188566, true }, + { 188580, true }, + { 188595, true }, + { 188608, true }, + { 188624, true }, + { 188638, false }, + { 188647, true }, + { 188665, true }, + { 188679, true }, + { 188689, false }, + { 188700, true }, + { 188708, false }, + { 188720, true }, + { 188737, true }, + { 188747, true }, + { 188758, true }, + { 188765, true }, + { 188776, true }, + { 188793, true }, + { 188810, true }, + { 188830, true }, + { 188845, true }, + { 188856, true }, + { 188865, false }, + { 188872, true }, + { 188882, true }, + { 188893, true }, + { 188909, true }, + { 188918, true }, + { 188933, true }, + { 188943, true }, + { 188964, true }, + { 188973, true }, + { 188991, true }, + { 189007, false }, + { 189020, true }, + { 189036, true }, + { 189048, true }, + { 189060, true }, + { 189080, true }, + { 189094, true }, + { 189110, true }, + { 189124, true }, + { 189139, true }, + { 189147, true }, + { 189160, true }, + { 189176, true }, + { 189189, true }, + { 189202, true }, { 189216, true }, - { 189236, true }, - { 189257, true }, - { 189276, true }, - { 189292, true }, - { 189320, true }, - { 189337, true }, - { 189356, true }, - { 189380, true }, - { 189390, true }, - { 189399, true }, + { 189238, true }, + { 189258, true }, + { 189279, true }, + { 189298, true }, + { 189314, true }, + { 189342, true }, + { 189359, true }, + { 189378, true }, + { 189402, true }, { 189412, true }, { 189421, true }, - { 189427, true }, - { 189439, true }, - { 189456, true }, - { 189470, true }, - { 189489, true }, - { 189503, true }, - { 189517, false }, - { 189530, true }, - { 189543, true }, - { 189556, true }, - { 189574, true }, - { 189595, true }, - { 189621, false }, - { 189632, true }, - { 189645, true }, - { 189655, true }, - { 189674, true }, - { 189693, true }, - { 189710, true }, - { 189730, true }, - { 189746, true }, - { 189766, true }, - { 189775, true }, - { 189786, true }, - { 189795, true }, - { 189814, false }, - { 189830, false }, - { 189843, false }, - { 189856, true }, - { 189867, true }, - { 189882, true }, - { 189893, true }, - { 189912, true }, - { 189925, true }, - { 189937, true }, - { 189950, true }, + { 189434, true }, + { 189443, true }, + { 189449, true }, + { 189461, true }, + { 189478, true }, + { 189492, true }, + { 189511, true }, + { 189525, true }, + { 189539, false }, + { 189552, true }, + { 189565, true }, + { 189578, true }, + { 189596, true }, + { 189617, true }, + { 189643, false }, + { 189654, true }, + { 189667, true }, + { 189677, true }, + { 189696, true }, + { 189715, true }, + { 189732, true }, + { 189752, true }, + { 189768, true }, + { 189788, true }, + { 189797, true }, + { 189808, true }, + { 189817, true }, + { 189836, false }, + { 189852, false }, + { 189865, false }, + { 189878, true }, + { 189889, true }, + { 189904, true }, + { 189915, true }, + { 189934, true }, + { 189947, true }, { 189959, true }, { 189972, true }, - { 189987, true }, - { 190003, true }, - { 190017, true }, - { 190034, true }, - { 190043, true }, - { 190057, true }, - { 190081, true }, - { 190096, true }, - { 190112, true }, - { 190130, true }, - { 190147, true }, - { 190162, true }, - { 190180, true }, - { 190196, true }, - { 190209, true }, + { 189981, true }, + { 189994, true }, + { 190009, true }, + { 190025, true }, + { 190039, true }, + { 190056, true }, + { 190065, true }, + { 190079, true }, + { 190103, true }, + { 190118, true }, + { 190134, true }, + { 190152, true }, + { 190169, true }, + { 190184, true }, + { 190202, true }, { 190218, true }, { 190231, true }, - { 190251, true }, - { 190262, true }, - { 190276, true }, - { 190285, true }, - { 190294, true }, - { 190312, true }, - { 190326, true }, - { 190341, true }, - { 190361, true }, - { 190378, true }, - { 190395, true }, - { 190411, true }, - { 190423, true }, - { 190437, true }, - { 190451, true }, - { 190472, true }, - { 190497, false }, - { 190513, true }, - { 190532, true }, - { 190547, true }, - { 190557, true }, - { 190581, true }, - { 190593, true }, - { 190604, true }, - { 190617, true }, - { 190631, true }, - { 190640, true }, - { 190669, true }, - { 190694, true }, - { 190719, true }, - { 190748, true }, - { 190760, true }, - { 190776, true }, - { 190785, true }, - { 190797, true }, - { 190811, true }, - { 190825, true }, - { 190839, true }, - { 190852, true }, - { 190871, true }, - { 190884, true }, - { 190901, true }, - { 190910, true }, - { 190925, true }, - { 190943, true }, - { 190957, false }, - { 190968, true }, - { 190981, true }, - { 191001, false }, - { 191014, true }, - { 191024, true }, - { 191043, true }, - { 191056, true }, - { 191068, true }, + { 190240, true }, + { 190253, true }, + { 190273, true }, + { 190284, true }, + { 190298, true }, + { 190307, true }, + { 190316, true }, + { 190334, true }, + { 190348, true }, + { 190363, true }, + { 190383, true }, + { 190400, true }, + { 190417, true }, + { 190433, true }, + { 190445, true }, + { 190459, true }, + { 190473, true }, + { 190494, true }, + { 190519, false }, + { 190535, true }, + { 190554, true }, + { 190569, true }, + { 190579, true }, + { 190603, true }, + { 190615, true }, + { 190626, true }, + { 190639, true }, + { 190653, true }, + { 190662, true }, + { 190691, true }, + { 190716, true }, + { 190741, true }, + { 190770, true }, + { 190782, true }, + { 190798, true }, + { 190807, true }, + { 190819, true }, + { 190833, true }, + { 190847, true }, + { 190861, true }, + { 190874, true }, + { 190893, true }, + { 190906, true }, + { 190923, true }, + { 190932, true }, + { 190947, true }, + { 190965, true }, + { 190979, false }, + { 190990, true }, + { 191003, true }, + { 191023, false }, + { 191036, true }, + { 191046, true }, + { 191065, true }, + { 191078, true }, { 191090, true }, - { 191098, true }, - { 191109, true }, + { 191112, true }, { 191120, true }, { 191131, true }, - { 191141, true }, - { 191151, true }, - { 191160, true }, - { 191168, true }, - { 191174, false }, + { 191142, true }, + { 191153, true }, + { 191163, true }, + { 191173, true }, { 191182, true }, - { 191191, true }, - { 191200, true }, - { 191208, true }, - { 191218, true }, - { 191226, true }, - { 191245, true }, - { 191252, true }, - { 191277, true }, - { 191284, true }, - { 191297, true }, - { 191311, true }, - { 191321, true }, - { 191331, true }, - { 191350, true }, - { 191362, true }, - { 191377, true }, - { 191388, true }, - { 191400, true }, - { 191408, true }, - { 191421, true }, - { 191433, true }, - { 191452, true }, - { 191463, true }, - { 191490, true }, - { 191501, false }, + { 191190, true }, + { 191196, false }, + { 191204, true }, + { 191213, true }, + { 191222, true }, + { 191230, true }, + { 191240, true }, + { 191248, true }, + { 191267, true }, + { 191274, true }, + { 191299, true }, + { 191306, true }, + { 191319, true }, + { 191333, true }, + { 191343, true }, + { 191353, true }, + { 191372, true }, + { 191384, true }, + { 191399, true }, + { 191410, true }, + { 191422, true }, + { 191430, true }, + { 191443, true }, + { 191455, true }, + { 191474, true }, + { 191485, true }, { 191512, true }, - { 191527, true }, - { 191543, true }, + { 191523, false }, + { 191534, true }, + { 191549, true }, { 191565, true }, - { 191579, true }, - { 191592, true }, - { 191605, true }, - { 191624, true }, - { 191653, true }, - { 191669, true }, - { 191682, true }, - { 191702, false }, - { 191729, false }, - { 191745, true }, - { 191761, true }, - { 191776, true }, - { 191792, true }, - { 191810, true }, - { 191829, true }, - { 191838, true }, + { 191587, true }, + { 191601, true }, + { 191614, true }, + { 191627, true }, + { 191646, true }, + { 191675, true }, + { 191691, true }, + { 191704, true }, + { 191724, false }, + { 191751, false }, + { 191767, true }, + { 191783, true }, + { 191798, true }, + { 191814, true }, + { 191832, true }, { 191851, true }, - { 191868, true }, - { 191887, true }, - { 191900, true }, - { 191916, true }, - { 191934, true }, - { 191955, true }, - { 191968, true }, - { 191987, true }, - { 192014, true }, - { 192031, true }, - { 192045, true }, - { 192063, true }, - { 192081, true }, - { 192097, true }, - { 192115, true }, - { 192128, true }, - { 192144, true }, - { 192165, true }, - { 192175, true }, - { 192188, true }, + { 191860, true }, + { 191873, true }, + { 191890, true }, + { 191909, true }, + { 191922, true }, + { 191938, true }, + { 191956, true }, + { 191977, true }, + { 191990, true }, + { 192009, true }, + { 192036, true }, + { 192053, true }, + { 192067, true }, + { 192085, true }, + { 192103, true }, + { 192119, true }, + { 192137, true }, + { 192150, true }, + { 192166, true }, + { 192187, true }, { 192197, true }, - { 192208, true }, - { 192218, true }, - { 192231, true }, - { 192244, true }, - { 192260, true }, - { 192273, true }, - { 192287, true }, - { 192302, true }, - { 192316, true }, - { 192331, true }, - { 192343, true }, - { 192360, true }, - { 192376, true }, - { 192395, true }, - { 192411, true }, - { 192424, true }, - { 192439, true }, - { 192448, true }, - { 192458, true }, - { 192486, true }, - { 192498, false }, - { 192515, true }, - { 192533, true }, - { 192557, true }, - { 192581, true }, - { 192600, true }, - { 192614, true }, - { 192622, true }, - { 192633, true }, - { 192647, true }, - { 192659, true }, - { 192668, true }, - { 192678, true }, - { 192698, true }, - { 192712, true }, - { 192725, true }, - { 192745, true }, - { 192763, true }, - { 192775, true }, - { 192790, true }, - { 192805, true }, - { 192816, true }, - { 192841, true }, - { 192856, false }, - { 192873, true }, - { 192885, false }, - { 192908, true }, - { 192927, true }, - { 192944, true }, - { 192961, true }, - { 192974, true }, - { 192985, true }, - { 193007, true }, - { 193030, true }, - { 193048, true }, - { 193069, true }, - { 193091, true }, - { 193112, true }, - { 193133, true }, - { 193143, false }, - { 193157, true }, - { 193174, true }, - { 193194, true }, - { 193211, true }, - { 193221, true }, - { 193234, true }, - { 193249, true }, - { 193267, true }, - { 193278, true }, - { 193295, true }, - { 193311, true }, - { 193323, true }, - { 193360, true }, - { 193379, true }, - { 193393, true }, - { 193408, true }, - { 193423, false }, - { 193435, true }, - { 193452, false }, - { 193467, true }, - { 193480, true }, - { 193501, false }, - { 193513, false }, - { 193530, true }, - { 193547, true }, - { 193564, true }, - { 193577, true }, - { 193593, true }, - { 193609, true }, - { 193625, true }, - { 193638, true }, - { 193656, true }, - { 193666, true }, - { 193677, true }, - { 193693, true }, - { 193703, true }, - { 193722, true }, - { 193735, true }, - { 193752, true }, - { 193766, true }, - { 193779, true }, - { 193794, true }, - { 193805, true }, - { 193825, true }, - { 193838, true }, - { 193851, true }, - { 193863, true }, - { 193882, true }, - { 193895, true }, - { 193910, true }, - { 193921, true }, - { 193932, true }, - { 193942, true }, - { 193952, true }, - { 193974, true }, - { 193994, true }, - { 194011, true }, - { 194029, true }, - { 194042, true }, - { 194055, true }, - { 194070, true }, - { 194079, true }, - { 194090, true }, - { 194105, true }, - { 194121, true }, - { 194143, true }, - { 194159, true }, - { 194175, true }, - { 194199, true }, - { 194214, true }, - { 194227, true }, - { 194246, true }, - { 194256, true }, - { 194270, true }, - { 194281, true }, - { 194298, true }, - { 194310, true }, - { 194323, true }, - { 194340, true }, - { 194352, true }, - { 194369, true }, - { 194378, true }, - { 194398, true }, - { 194418, true }, - { 194435, true }, - { 194450, true }, - { 194476, true }, - { 194494, true }, - { 194504, true }, - { 194521, true }, - { 194533, true }, - { 194550, true }, - { 194565, true }, - { 194584, true }, - { 194601, true }, - { 194618, true }, - { 194629, true }, - { 194641, true }, - { 194653, true }, - { 194663, true }, - { 194672, true }, - { 194685, true }, - { 194700, true }, - { 194710, true }, - { 194722, true }, - { 194736, false }, - { 194745, true }, - { 194756, true }, - { 194773, true }, - { 194783, true }, - { 194793, true }, - { 194804, true }, - { 194813, true }, - { 194824, false }, - { 194837, true }, - { 194853, true }, - { 194865, true }, - { 194876, true }, - { 194890, false }, - { 194901, true }, - { 194924, true }, + { 192210, true }, + { 192219, true }, + { 192230, true }, + { 192240, true }, + { 192253, true }, + { 192266, true }, + { 192282, true }, + { 192295, true }, + { 192309, true }, + { 192324, true }, + { 192338, true }, + { 192353, true }, + { 192365, true }, + { 192382, true }, + { 192398, true }, + { 192417, true }, + { 192433, true }, + { 192446, true }, + { 192461, true }, + { 192470, true }, + { 192480, true }, + { 192492, false }, + { 192509, true }, + { 192527, true }, + { 192551, true }, + { 192575, true }, + { 192594, true }, + { 192608, true }, + { 192616, true }, + { 192627, true }, + { 192641, true }, + { 192653, true }, + { 192662, true }, + { 192672, true }, + { 192692, true }, + { 192706, true }, + { 192719, true }, + { 192739, true }, + { 192757, true }, + { 192769, true }, + { 192784, true }, + { 192799, true }, + { 192810, true }, + { 192835, true }, + { 192850, false }, + { 192867, true }, + { 192879, false }, + { 192902, true }, + { 192921, true }, + { 192938, true }, + { 192955, true }, + { 192968, true }, + { 192979, true }, + { 193001, true }, + { 193024, true }, + { 193042, true }, + { 193063, true }, + { 193085, true }, + { 193106, true }, + { 193127, true }, + { 193137, false }, + { 193151, true }, + { 193168, true }, + { 193188, true }, + { 193205, true }, + { 193215, true }, + { 193228, true }, + { 193243, true }, + { 193261, true }, + { 193272, true }, + { 193289, true }, + { 193305, true }, + { 193317, true }, + { 193354, true }, + { 193373, true }, + { 193387, true }, + { 193402, true }, + { 193417, false }, + { 193429, true }, + { 193446, false }, + { 193461, true }, + { 193474, true }, + { 193495, false }, + { 193507, false }, + { 193524, true }, + { 193541, true }, + { 193558, true }, + { 193571, true }, + { 193587, true }, + { 193603, true }, + { 193619, true }, + { 193632, true }, + { 193650, true }, + { 193660, true }, + { 193671, true }, + { 193687, true }, + { 193697, true }, + { 193716, true }, + { 193729, true }, + { 193746, true }, + { 193760, true }, + { 193773, true }, + { 193788, true }, + { 193799, true }, + { 193819, true }, + { 193832, true }, + { 193845, true }, + { 193857, true }, + { 193876, true }, + { 193889, true }, + { 193904, true }, + { 193915, true }, + { 193926, true }, + { 193936, true }, + { 193946, true }, + { 193968, true }, + { 193988, true }, + { 194005, true }, + { 194023, true }, + { 194036, true }, + { 194049, true }, + { 194064, true }, + { 194073, true }, + { 194084, true }, + { 194099, true }, + { 194115, true }, + { 194137, true }, + { 194153, true }, + { 194169, true }, + { 194193, true }, + { 194208, true }, + { 194221, true }, + { 194240, true }, + { 194250, true }, + { 194264, true }, + { 194275, true }, + { 194292, true }, + { 194304, true }, + { 194317, true }, + { 194334, true }, + { 194346, true }, + { 194363, true }, + { 194372, true }, + { 194392, true }, + { 194412, true }, + { 194429, true }, + { 194444, true }, + { 194470, true }, + { 194488, true }, + { 194498, true }, + { 194515, true }, + { 194527, true }, + { 194544, true }, + { 194559, true }, + { 194578, true }, + { 194595, true }, + { 194612, true }, + { 194623, true }, + { 194635, true }, + { 194647, true }, + { 194657, true }, + { 194666, true }, + { 194679, true }, + { 194694, true }, + { 194704, true }, + { 194718, false }, + { 194727, true }, + { 194738, true }, + { 194755, true }, + { 194765, true }, + { 194775, true }, + { 194786, true }, + { 194795, true }, + { 194806, false }, + { 194819, true }, + { 194835, true }, + { 194847, true }, + { 194858, true }, + { 194872, false }, + { 194883, true }, + { 194906, true }, + { 194928, true }, + { 194936, true }, { 194946, true }, - { 194954, true }, - { 194964, true }, - { 194976, true }, - { 194989, true }, - { 194997, true }, - { 195005, true }, - { 195020, true }, - { 195030, true }, - { 195046, true }, - { 195059, true }, - { 195068, true }, + { 194958, true }, + { 194971, true }, + { 194979, true }, + { 194987, true }, + { 195002, true }, + { 195012, true }, + { 195028, true }, + { 195041, true }, + { 195050, true }, + { 195065, true }, + { 195074, true }, { 195083, true }, { 195092, true }, - { 195101, true }, - { 195110, true }, - { 195129, true }, - { 195142, true }, - { 195157, true }, - { 195179, true }, - { 195195, true }, - { 195211, true }, - { 195224, true }, - { 195235, true }, - { 195247, true }, - { 195255, true }, - { 195269, true }, - { 195286, true }, - { 195299, true }, - { 195315, true }, - { 195336, true }, - { 195355, true }, - { 195372, true }, - { 195388, true }, - { 195401, true }, - { 195412, true }, - { 195426, true }, - { 195446, true }, - { 195470, true }, - { 195493, true }, - { 195504, true }, - { 195526, false }, - { 195539, true }, - { 195553, true }, - { 195567, false }, - { 195588, true }, - { 195598, true }, - { 195610, true }, - { 195622, true }, - { 195634, true }, - { 195653, true }, - { 195679, true }, - { 195692, true }, - { 195706, true }, - { 195723, true }, - { 195742, true }, - { 195759, true }, - { 195777, true }, - { 195792, true }, - { 195813, true }, - { 195827, true }, - { 195849, true }, - { 195868, true }, - { 195880, true }, - { 195893, true }, - { 195905, true }, - { 195929, true }, + { 195111, true }, + { 195124, true }, + { 195139, true }, + { 195161, true }, + { 195177, true }, + { 195193, true }, + { 195206, true }, + { 195217, true }, + { 195229, true }, + { 195237, true }, + { 195251, true }, + { 195268, true }, + { 195281, true }, + { 195297, true }, + { 195318, true }, + { 195337, true }, + { 195354, true }, + { 195370, true }, + { 195383, true }, + { 195394, true }, + { 195414, true }, + { 195438, true }, + { 195461, true }, + { 195472, true }, + { 195494, false }, + { 195507, true }, + { 195521, true }, + { 195535, false }, + { 195556, true }, + { 195566, true }, + { 195578, true }, + { 195590, true }, + { 195602, true }, + { 195621, true }, + { 195647, true }, + { 195660, true }, + { 195674, true }, + { 195691, true }, + { 195710, true }, + { 195727, true }, + { 195745, true }, + { 195760, true }, + { 195781, true }, + { 195795, true }, + { 195817, true }, + { 195836, true }, + { 195848, true }, + { 195861, true }, + { 195873, true }, + { 195897, true }, + { 195907, true }, + { 195922, true }, { 195939, true }, - { 195954, true }, - { 195971, true }, - { 195987, true }, - { 196005, true }, + { 195955, true }, + { 195973, true }, + { 195992, true }, + { 196009, true }, { 196024, true }, - { 196041, true }, - { 196056, true }, - { 196072, true }, - { 196099, true }, - { 196113, true }, - { 196129, true }, - { 196144, true }, - { 196157, true }, - { 196166, true }, - { 196182, true }, - { 196197, true }, - { 196210, true }, - { 196223, true }, - { 196239, true }, + { 196040, true }, + { 196067, true }, + { 196081, true }, + { 196097, true }, + { 196112, true }, + { 196125, true }, + { 196134, true }, + { 196150, true }, + { 196165, true }, + { 196178, true }, + { 196191, true }, + { 196207, true }, + { 196219, true }, + { 196236, true }, { 196251, true }, - { 196268, true }, - { 196283, true }, - { 196294, true }, - { 196306, true }, - { 196322, true }, - { 196345, true }, - { 196360, true }, - { 196370, true }, - { 196384, true }, - { 196393, true }, - { 196400, true }, - { 196414, true }, - { 196434, true }, - { 196445, true }, - { 196459, true }, - { 196472, false }, - { 196486, true }, - { 196494, true }, - { 196505, true }, - { 196523, true }, - { 196533, true }, - { 196550, true }, - { 196560, true }, - { 196571, true }, - { 196596, true }, - { 196610, true }, - { 196621, true }, - { 196632, true }, - { 196647, true }, - { 196662, true }, - { 196678, false }, - { 196689, true }, - { 196704, true }, - { 196719, false }, + { 196262, true }, + { 196274, true }, + { 196290, true }, + { 196313, true }, + { 196328, true }, + { 196338, true }, + { 196352, true }, + { 196361, true }, + { 196368, true }, + { 196382, true }, + { 196402, true }, + { 196413, true }, + { 196427, true }, + { 196440, false }, + { 196454, true }, + { 196462, true }, + { 196473, true }, + { 196491, true }, + { 196501, true }, + { 196518, true }, + { 196528, true }, + { 196539, true }, + { 196564, true }, + { 196578, true }, + { 196589, true }, + { 196600, true }, + { 196615, true }, + { 196630, true }, + { 196646, false }, + { 196657, true }, + { 196672, true }, + { 196687, false }, + { 196706, true }, + { 196717, true }, + { 196727, true }, { 196738, true }, - { 196749, true }, - { 196759, true }, - { 196770, true }, - { 196790, true }, + { 196758, true }, + { 196769, true }, + { 196776, true }, + { 196788, true }, { 196801, true }, - { 196808, true }, - { 196820, true }, - { 196833, true }, - { 196851, false }, - { 196861, true }, + { 196819, false }, + { 196829, true }, + { 196838, true }, + { 196848, true }, + { 196859, true }, { 196870, true }, - { 196880, true }, - { 196891, true }, - { 196902, true }, - { 196914, true }, - { 196925, true }, - { 196933, true }, - { 196943, true }, - { 196960, true }, - { 196977, true }, - { 196986, true }, - { 196993, true }, - { 197012, true }, - { 197023, true }, - { 197042, false }, - { 197053, true }, - { 197070, true }, - { 197087, true }, - { 197100, true }, + { 196882, true }, + { 196893, true }, + { 196901, true }, + { 196911, true }, + { 196928, true }, + { 196945, true }, + { 196954, true }, + { 196961, true }, + { 196980, true }, + { 196991, true }, + { 197010, false }, + { 197021, true }, + { 197038, true }, + { 197055, true }, + { 197068, true }, + { 197084, true }, + { 197095, true }, + { 197105, true }, { 197116, true }, - { 197127, true }, - { 197137, true }, - { 197148, true }, - { 197165, true }, - { 197182, false }, - { 197190, true }, - { 197199, false }, - { 197212, true }, - { 197223, false }, - { 197230, true }, - { 197240, true }, - { 197254, true }, - { 197263, true }, - { 197277, true }, - { 197297, false }, - { 197309, false }, - { 197325, true }, - { 197337, true }, - { 197356, true }, + { 197133, true }, + { 197150, false }, + { 197158, true }, + { 197167, false }, + { 197180, true }, + { 197191, false }, + { 197198, true }, + { 197208, true }, + { 197222, true }, + { 197231, true }, + { 197245, true }, + { 197265, false }, + { 197277, false }, + { 197293, true }, + { 197305, true }, + { 197324, true }, + { 197334, true }, + { 197358, true }, { 197366, true }, - { 197390, true }, - { 197398, true }, + { 197383, true }, + { 197399, true }, { 197415, true }, - { 197431, true }, - { 197447, true }, - { 197460, true }, - { 197469, true }, - { 197481, true }, - { 197494, true }, - { 197509, true }, - { 197523, true }, - { 197539, false }, - { 197554, true }, - { 197563, true }, - { 197583, true }, - { 197591, true }, - { 197605, true }, - { 197618, true }, - { 197629, true }, - { 197639, false }, - { 197649, true }, - { 197663, true }, - { 197675, true }, - { 197685, false }, - { 197698, true }, - { 197714, true }, - { 197736, true }, - { 197753, true }, - { 197766, true }, - { 197775, true }, - { 197784, true }, - { 197799, true }, - { 197813, true }, - { 197823, true }, - { 197833, true }, - { 197862, true }, - { 197883, true }, - { 197898, true }, - { 197912, true }, - { 197932, true }, - { 197948, true }, - { 197960, false }, - { 197976, true }, - { 197990, true }, - { 198005, true }, - { 198020, true }, - { 198034, true }, - { 198047, true }, - { 198058, true }, - { 198069, true }, - { 198085, true }, - { 198095, true }, - { 198119, false }, - { 198138, false }, - { 198150, true }, - { 198166, true }, + { 197428, true }, + { 197437, true }, + { 197449, true }, + { 197462, true }, + { 197477, true }, + { 197491, true }, + { 197507, false }, + { 197522, true }, + { 197531, true }, + { 197551, true }, + { 197559, true }, + { 197573, true }, + { 197586, true }, + { 197597, true }, + { 197607, false }, + { 197617, true }, + { 197631, true }, + { 197643, true }, + { 197653, false }, + { 197666, true }, + { 197682, true }, + { 197704, true }, + { 197721, true }, + { 197734, true }, + { 197743, true }, + { 197752, true }, + { 197767, true }, + { 197781, true }, + { 197791, true }, + { 197801, true }, + { 197830, true }, + { 197851, true }, + { 197866, true }, + { 197880, true }, + { 197900, true }, + { 197916, true }, + { 197928, false }, + { 197944, true }, + { 197958, true }, + { 197973, true }, + { 197988, true }, + { 198002, true }, + { 198015, true }, + { 198026, true }, + { 198037, true }, + { 198053, true }, + { 198063, true }, + { 198087, false }, + { 198106, false }, + { 198118, true }, + { 198134, true }, + { 198162, true }, { 198194, true }, - { 198226, true }, + { 198209, true }, + { 198221, true }, + { 198232, true }, { 198241, true }, - { 198253, true }, - { 198264, true }, - { 198273, true }, - { 198287, false }, - { 198300, true }, - { 198318, true }, - { 198326, true }, - { 198340, true }, - { 198354, true }, - { 198366, true }, - { 198387, true }, - { 198402, true }, - { 198418, false }, - { 198426, false }, - { 198438, true }, - { 198447, true }, - { 198457, true }, - { 198468, true }, + { 198255, false }, + { 198268, true }, + { 198286, true }, + { 198294, true }, + { 198308, true }, + { 198322, true }, + { 198334, true }, + { 198355, true }, + { 198370, true }, + { 198386, false }, + { 198394, false }, + { 198406, true }, + { 198415, true }, + { 198425, true }, + { 198436, true }, + { 198448, true }, + { 198464, true }, { 198480, true }, - { 198496, true }, + { 198490, true }, + { 198501, true }, { 198512, true }, - { 198522, true }, - { 198533, true }, - { 198544, true }, - { 198556, true }, - { 198566, true }, - { 198575, true }, - { 198594, true }, - { 198622, true }, + { 198524, true }, + { 198534, true }, + { 198543, true }, + { 198562, true }, + { 198590, true }, + { 198604, true }, + { 198618, true }, { 198636, true }, - { 198650, true }, - { 198668, true }, - { 198685, true }, - { 198701, true }, - { 198712, true }, - { 198727, true }, - { 198740, false }, - { 198756, true }, - { 198772, true }, - { 198785, true }, + { 198653, true }, + { 198669, true }, + { 198680, true }, + { 198695, true }, + { 198708, false }, + { 198724, true }, + { 198740, true }, + { 198753, true }, + { 198771, true }, + { 198789, true }, { 198803, true }, - { 198821, true }, - { 198835, true }, - { 198847, true }, - { 198862, true }, - { 198882, true }, + { 198815, true }, + { 198830, true }, + { 198850, true }, + { 198869, true }, + { 198888, true }, { 198901, true }, - { 198920, true }, - { 198933, true }, - { 198949, true }, - { 198962, true }, - { 198977, true }, - { 198993, true }, - { 199010, true }, - { 199026, true }, - { 199043, true }, - { 199056, true }, + { 198917, true }, + { 198930, true }, + { 198945, true }, + { 198961, true }, + { 198978, true }, + { 198994, true }, + { 199011, true }, + { 199024, true }, + { 199039, true }, + { 199058, true }, { 199071, true }, - { 199090, true }, - { 199103, true }, - { 199119, true }, - { 199130, true }, - { 199143, true }, - { 199157, true }, - { 199171, false }, - { 199187, true }, - { 199206, true }, - { 199226, true }, - { 199246, false }, + { 199087, true }, + { 199098, true }, + { 199111, true }, + { 199125, true }, + { 199139, false }, + { 199155, true }, + { 199174, true }, + { 199194, true }, + { 199214, true }, + { 199230, true }, + { 199245, true }, { 199262, true }, - { 199278, true }, - { 199293, true }, - { 199310, true }, - { 199331, true }, + { 199283, true }, + { 199300, true }, + { 199318, false }, + { 199337, true }, { 199348, true }, - { 199366, false }, - { 199385, true }, - { 199396, true }, - { 199412, true }, - { 199426, true }, - { 199442, true }, - { 199455, true }, - { 199469, true }, - { 199482, true }, - { 199495, true }, - { 199511, true }, - { 199522, true }, + { 199364, true }, + { 199378, true }, + { 199394, true }, + { 199407, true }, + { 199421, true }, + { 199434, true }, + { 199447, true }, + { 199463, true }, + { 199474, true }, + { 199483, true }, + { 199493, true }, + { 199504, true }, + { 199516, true }, { 199530, true }, { 199539, true }, - { 199549, true }, - { 199560, true }, - { 199572, true }, - { 199586, true }, - { 199595, true }, - { 199612, true }, - { 199621, true }, - { 199634, true }, - { 199653, true }, - { 199674, true }, - { 199693, true }, - { 199710, false }, - { 199725, false }, - { 199741, false }, - { 199753, true }, - { 199773, true }, - { 199786, true }, - { 199806, true }, - { 199828, true }, - { 199851, true }, - { 199869, true }, - { 199885, true }, - { 199897, true }, - { 199910, true }, - { 199922, true }, - { 199936, true }, - { 199945, true }, + { 199556, true }, + { 199565, true }, + { 199578, true }, + { 199597, true }, + { 199618, true }, + { 199637, true }, + { 199654, false }, + { 199669, false }, + { 199685, false }, + { 199697, true }, + { 199717, true }, + { 199730, true }, + { 199750, true }, + { 199772, true }, + { 199795, true }, + { 199813, true }, + { 199829, true }, + { 199841, true }, + { 199854, true }, + { 199866, true }, + { 199880, true }, + { 199889, true }, + { 199903, true }, + { 199911, true }, + { 199929, true }, + { 199939, true }, { 199959, true }, - { 199967, true }, - { 199985, true }, - { 199995, true }, - { 200015, true }, - { 200032, true }, - { 200052, true }, + { 199976, true }, + { 199996, true }, + { 200007, true }, + { 200020, true }, + { 200035, true }, + { 200047, true }, { 200063, true }, { 200076, true }, - { 200091, true }, - { 200103, true }, - { 200119, true }, + { 200093, true }, + { 200114, true }, + { 200122, true }, { 200132, true }, - { 200149, true }, - { 200170, true }, - { 200178, true }, - { 200188, true }, - { 200211, true }, - { 200223, true }, - { 200232, true }, - { 200242, true }, - { 200255, true }, - { 200265, true }, - { 200280, true }, - { 200293, false }, - { 200303, true }, - { 200317, true }, + { 200155, true }, + { 200167, true }, + { 200176, true }, + { 200186, true }, + { 200199, true }, + { 200209, true }, + { 200224, true }, + { 200237, false }, + { 200247, true }, + { 200261, true }, + { 200281, true }, + { 200294, true }, + { 200314, false }, { 200337, true }, { 200350, true }, - { 200370, false }, - { 200393, true }, - { 200406, true }, + { 200361, true }, + { 200372, true }, + { 200382, true }, + { 200407, true }, { 200417, true }, - { 200428, true }, - { 200438, true }, - { 200463, true }, - { 200473, true }, - { 200487, true }, - { 200501, false }, - { 200516, true }, - { 200530, true }, - { 200555, true }, - { 200569, true }, + { 200431, true }, + { 200445, false }, + { 200460, true }, + { 200474, true }, + { 200499, true }, + { 200513, true }, + { 200525, true }, + { 200537, true }, + { 200551, true }, + { 200561, false }, { 200581, true }, - { 200593, true }, - { 200607, true }, - { 200617, false }, - { 200637, true }, - { 200647, true }, - { 200661, true }, - { 200671, true }, - { 200684, true }, - { 200699, true }, - { 200708, true }, + { 200591, true }, + { 200605, true }, + { 200615, true }, + { 200628, true }, + { 200643, true }, + { 200652, true }, + { 200662, true }, + { 200676, true }, + { 200685, false }, + { 200696, true }, + { 200707, true }, { 200718, true }, - { 200732, true }, - { 200741, false }, - { 200752, true }, - { 200763, true }, + { 200729, true }, + { 200739, false }, + { 200759, true }, { 200774, true }, - { 200785, true }, - { 200795, false }, - { 200815, true }, - { 200830, true }, - { 200842, true }, - { 200854, true }, - { 200866, true }, - { 200885, true }, + { 200786, true }, + { 200798, true }, + { 200810, true }, + { 200829, true }, + { 200849, true }, + { 200859, true }, + { 200873, true }, + { 200888, true }, { 200905, true }, - { 200915, true }, - { 200929, true }, - { 200944, true }, - { 200961, true }, - { 200976, true }, - { 200984, true }, - { 201005, false }, - { 201023, true }, - { 201035, true }, - { 201057, true }, - { 201073, true }, - { 201088, true }, - { 201099, true }, - { 201121, true }, - { 201135, true }, - { 201156, true }, - { 201170, true }, - { 201187, true }, - { 201206, true }, - { 201225, true }, - { 201238, true }, - { 201258, true }, - { 201274, true }, - { 201300, true }, - { 201321, true }, - { 201340, true }, - { 201362, true }, - { 201386, true }, - { 201402, true }, - { 201427, true }, - { 201453, true }, - { 201464, true }, - { 201488, true }, - { 201514, true }, - { 201532, true }, - { 201543, true }, - { 201565, true }, - { 201586, false }, - { 201603, true }, - { 201620, true }, - { 201638, true }, - { 201648, true }, - { 201664, true }, - { 201686, true }, - { 201709, true }, - { 201721, true }, - { 201740, true }, - { 201758, true }, - { 201781, true }, - { 201794, true }, - { 201810, true }, - { 201828, true }, - { 201846, true }, - { 201872, true }, - { 201886, true }, - { 201904, true }, - { 201919, true }, - { 201936, true }, - { 201950, true }, - { 201977, true }, - { 201991, true }, - { 202009, true }, - { 202025, true }, - { 202041, true }, - { 202054, true }, - { 202074, true }, - { 202092, true }, - { 202111, true }, - { 202124, true }, - { 202160, true }, - { 202183, true }, - { 202203, true }, - { 202218, true }, - { 202235, true }, - { 202246, true }, - { 202264, true }, - { 202294, true }, - { 202310, true }, - { 202325, true }, - { 202340, true }, - { 202351, true }, - { 202365, true }, - { 202387, true }, + { 200920, true }, + { 200928, true }, + { 200949, false }, + { 200967, true }, + { 200979, true }, + { 201001, true }, + { 201017, true }, + { 201032, true }, + { 201043, true }, + { 201065, true }, + { 201079, true }, + { 201100, true }, + { 201114, true }, + { 201131, true }, + { 201150, true }, + { 201169, true }, + { 201182, true }, + { 201202, true }, + { 201218, true }, + { 201244, true }, + { 201265, true }, + { 201284, true }, + { 201306, true }, + { 201330, true }, + { 201346, true }, + { 201371, true }, + { 201397, true }, + { 201408, true }, + { 201432, true }, + { 201458, true }, + { 201476, true }, + { 201487, true }, + { 201509, true }, + { 201530, false }, + { 201547, true }, + { 201564, true }, + { 201582, true }, + { 201592, true }, + { 201608, true }, + { 201630, true }, + { 201653, true }, + { 201665, true }, + { 201684, true }, + { 201702, true }, + { 201725, true }, + { 201738, true }, + { 201754, true }, + { 201772, true }, + { 201790, true }, + { 201816, true }, + { 201830, true }, + { 201848, true }, + { 201863, true }, + { 201880, true }, + { 201894, true }, + { 201921, true }, + { 201935, true }, + { 201953, true }, + { 201969, true }, + { 201985, true }, + { 201998, true }, + { 202018, true }, + { 202036, true }, + { 202055, true }, + { 202068, true }, + { 202104, true }, + { 202127, true }, + { 202147, true }, + { 202162, true }, + { 202179, true }, + { 202190, true }, + { 202208, true }, + { 202238, true }, + { 202254, true }, + { 202269, true }, + { 202284, true }, + { 202295, true }, + { 202309, true }, + { 202331, true }, + { 202346, true }, + { 202361, true }, + { 202374, true }, + { 202389, true }, { 202402, true }, - { 202417, true }, - { 202430, true }, - { 202445, true }, - { 202458, true }, - { 202481, true }, - { 202490, true }, - { 202512, true }, - { 202522, true }, - { 202541, true }, - { 202565, true }, - { 202591, true }, - { 202609, true }, - { 202620, true }, - { 202637, true }, - { 202655, true }, - { 202671, true }, - { 202685, true }, - { 202698, true }, + { 202425, true }, + { 202434, true }, + { 202456, true }, + { 202466, true }, + { 202485, true }, + { 202509, true }, + { 202535, true }, + { 202553, true }, + { 202564, true }, + { 202581, true }, + { 202599, true }, + { 202615, true }, + { 202629, true }, + { 202642, true }, + { 202658, true }, + { 202677, true }, + { 202701, true }, { 202714, true }, - { 202733, true }, + { 202731, true }, + { 202742, true }, { 202757, true }, - { 202770, true }, - { 202787, true }, + { 202779, true }, { 202798, true }, - { 202813, true }, - { 202835, true }, - { 202854, true }, - { 202874, true }, - { 202891, false }, + { 202818, true }, + { 202835, false }, + { 202850, true }, + { 202868, true }, + { 202890, true }, { 202906, true }, - { 202924, true }, - { 202946, true }, - { 202962, true }, - { 202974, true }, - { 202986, true }, - { 202998, true }, - { 203014, true }, + { 202918, true }, + { 202930, true }, + { 202942, true }, + { 202958, true }, + { 202977, true }, + { 202997, true }, + { 203017, true }, { 203033, true }, - { 203053, true }, - { 203073, true }, - { 203089, true }, - { 203108, true }, - { 203138, false }, - { 203152, true }, - { 203169, true }, - { 203190, true }, - { 203210, true }, - { 203224, true }, - { 203242, true }, - { 203259, true }, - { 203275, true }, - { 203285, true }, - { 203296, true }, - { 203308, true }, - { 203327, true }, - { 203343, true }, - { 203363, true }, - { 203377, true }, - { 203390, true }, - { 203401, true }, - { 203422, true }, - { 203450, true }, - { 203466, true }, - { 203491, true }, - { 203508, true }, - { 203525, false }, - { 203540, true }, - { 203565, true }, - { 203574, true }, - { 203584, true }, - { 203596, true }, - { 203615, true }, - { 203634, true }, - { 203651, true }, - { 203668, true }, - { 203684, false }, - { 203702, true }, - { 203719, true }, - { 203732, true }, - { 203752, true }, - { 203776, true }, - { 203794, true }, - { 203815, true }, - { 203830, true }, - { 203845, true }, - { 203857, true }, - { 203882, true }, - { 203895, true }, - { 203917, true }, - { 203927, true }, - { 203944, true }, - { 203963, true }, - { 203976, true }, - { 203990, true }, - { 204003, true }, - { 204027, true }, - { 204049, true }, - { 204082, true }, - { 204097, true }, - { 204111, true }, - { 204120, true }, - { 204129, true }, - { 204143, true }, - { 204153, false }, - { 204167, true }, - { 204176, true }, + { 203052, true }, + { 203082, false }, + { 203096, true }, + { 203113, true }, + { 203134, true }, + { 203154, true }, + { 203168, true }, + { 203186, true }, + { 203203, true }, + { 203219, true }, + { 203229, true }, + { 203240, true }, + { 203252, true }, + { 203271, true }, + { 203287, true }, + { 203307, true }, + { 203321, true }, + { 203334, true }, + { 203345, true }, + { 203366, true }, + { 203394, true }, + { 203410, true }, + { 203423, true }, + { 203448, true }, + { 203465, true }, + { 203482, false }, + { 203497, true }, + { 203522, true }, + { 203531, true }, + { 203541, true }, + { 203553, true }, + { 203572, true }, + { 203591, true }, + { 203608, true }, + { 203625, true }, + { 203641, false }, + { 203659, true }, + { 203676, true }, + { 203689, true }, + { 203709, true }, + { 203733, true }, + { 203751, true }, + { 203772, true }, + { 203787, true }, + { 203802, true }, + { 203814, true }, + { 203839, true }, + { 203852, true }, + { 203874, true }, + { 203884, true }, + { 203901, true }, + { 203920, true }, + { 203933, true }, + { 203947, true }, + { 203960, true }, + { 203984, true }, + { 204006, true }, + { 204039, true }, + { 204054, true }, + { 204068, true }, + { 204077, true }, + { 204086, true }, + { 204100, true }, + { 204110, false }, + { 204124, true }, + { 204133, true }, + { 204144, true }, + { 204158, true }, + { 204169, true }, { 204187, true }, - { 204201, true }, - { 204212, true }, - { 204230, true }, - { 204245, true }, - { 204258, true }, - { 204268, true }, - { 204281, true }, - { 204301, true }, - { 204324, true }, - { 204331, true }, - { 204347, true }, - { 204365, true }, - { 204386, true }, - { 204398, true }, - { 204428, true }, - { 204441, true }, - { 204451, true }, - { 204463, true }, - { 204477, true }, - { 204491, true }, - { 204502, true }, - { 204521, true }, + { 204202, true }, + { 204215, true }, + { 204225, true }, + { 204238, true }, + { 204257, true }, + { 204277, true }, + { 204300, true }, + { 204307, true }, + { 204323, true }, + { 204341, true }, + { 204362, true }, + { 204374, true }, + { 204404, true }, + { 204417, true }, + { 204427, true }, + { 204439, true }, + { 204453, true }, + { 204467, true }, + { 204478, true }, + { 204497, true }, + { 204512, true }, + { 204524, true }, { 204536, true }, - { 204548, true }, - { 204560, true }, - { 204571, true }, - { 204586, true }, - { 204598, true }, - { 204614, true }, - { 204629, true }, - { 204645, true }, - { 204654, true }, - { 204668, true }, - { 204679, false }, - { 204694, true }, - { 204708, true }, - { 204724, true }, - { 204737, true }, - { 204757, true }, - { 204770, false }, - { 204790, true }, - { 204803, true }, - { 204817, true }, - { 204828, true }, - { 204845, true }, - { 204859, true }, - { 204871, true }, + { 204547, true }, + { 204562, true }, + { 204574, true }, + { 204590, true }, + { 204605, true }, + { 204621, true }, + { 204630, true }, + { 204644, true }, + { 204655, false }, + { 204670, true }, + { 204684, true }, + { 204700, true }, + { 204713, true }, + { 204733, true }, + { 204746, false }, + { 204766, true }, + { 204779, true }, + { 204793, true }, + { 204804, true }, + { 204821, true }, + { 204835, true }, + { 204847, true }, + { 204861, true }, + { 204873, true }, { 204885, true }, { 204897, true }, { 204909, true }, - { 204921, true }, - { 204933, true }, - { 204943, true }, - { 204956, true }, - { 204973, true }, - { 205000, true }, - { 205013, true }, - { 205031, true }, - { 205039, true }, - { 205051, true }, - { 205064, true }, - { 205091, true }, - { 205100, true }, - { 205109, true }, - { 205127, true }, - { 205134, true }, - { 205161, true }, - { 205169, true }, - { 205179, true }, - { 205187, true }, - { 205200, true }, - { 205209, true }, - { 205221, true }, - { 205234, true }, - { 205243, true }, - { 205253, true }, - { 205263, true }, - { 205273, true }, - { 205283, true }, - { 205293, true }, - { 205302, true }, - { 205309, true }, - { 205325, true }, - { 205342, true }, - { 205349, true }, - { 205363, true }, - { 205380, true }, - { 205392, true }, + { 204919, true }, + { 204932, true }, + { 204949, true }, + { 204976, true }, + { 204989, true }, + { 205007, true }, + { 205015, true }, + { 205027, true }, + { 205040, true }, + { 205067, true }, + { 205076, true }, + { 205085, true }, + { 205103, true }, + { 205110, true }, + { 205137, true }, + { 205145, true }, + { 205155, true }, + { 205164, true }, + { 205172, true }, + { 205185, true }, + { 205194, true }, + { 205206, true }, + { 205219, true }, + { 205228, true }, + { 205238, true }, + { 205248, true }, + { 205258, true }, + { 205268, true }, + { 205278, true }, + { 205287, true }, + { 205294, true }, + { 205310, true }, + { 205327, true }, + { 205334, true }, + { 205348, true }, + { 205365, true }, + { 205377, true }, + { 205394, true }, + { 205402, true }, { 205409, true }, - { 205417, true }, - { 205424, true }, - { 205433, true }, - { 205442, true }, - { 205454, true }, - { 205468, true }, - { 205485, true }, - { 205501, true }, - { 205517, true }, - { 205536, true }, + { 205418, true }, + { 205427, true }, + { 205439, true }, + { 205453, true }, + { 205470, true }, + { 205486, true }, + { 205502, true }, + { 205521, true }, + { 205539, true }, { 205554, true }, - { 205569, true }, - { 205587, true }, - { 205604, true }, - { 205614, true }, - { 205626, true }, - { 205644, true }, + { 205572, true }, + { 205589, true }, + { 205599, true }, + { 205611, true }, + { 205629, true }, + { 205646, true }, { 205661, true }, { 205676, true }, - { 205691, true }, - { 205703, true }, - { 205717, true }, - { 205725, true }, - { 205735, false }, - { 205760, true }, - { 205773, true }, + { 205688, true }, + { 205702, true }, + { 205710, true }, + { 205720, false }, + { 205745, true }, + { 205758, true }, + { 205768, true }, { 205783, true }, - { 205798, true }, - { 205810, true }, - { 205824, true }, - { 205833, true }, - { 205842, false }, - { 205854, true }, - { 205867, false }, + { 205795, true }, + { 205809, true }, + { 205818, true }, + { 205827, false }, + { 205839, true }, + { 205852, false }, + { 205885, true }, { 205900, true }, - { 205915, true }, - { 205926, true }, - { 205949, true }, - { 205962, true }, - { 205973, true }, - { 205987, true }, - { 206007, true }, - { 206020, true }, - { 206034, true }, - { 206047, true }, - { 206061, true }, - { 206079, true }, - { 206093, true }, + { 205911, true }, + { 205934, true }, + { 205947, true }, + { 205958, true }, + { 205972, true }, + { 205992, true }, + { 206005, true }, + { 206019, true }, + { 206032, true }, + { 206046, true }, + { 206064, true }, + { 206078, true }, + { 206094, true }, { 206109, true }, - { 206124, true }, - { 206146, true }, - { 206156, true }, - { 206168, true }, - { 206184, true }, - { 206196, true }, - { 206206, true }, - { 206219, true }, - { 206233, true }, - { 206244, true }, - { 206253, true }, - { 206261, true }, - { 206273, false }, - { 206281, true }, - { 206292, true }, - { 206308, true }, - { 206319, true }, - { 206332, true }, - { 206344, false }, - { 206358, true }, - { 206371, true }, - { 206382, true }, - { 206392, true }, - { 206406, true }, - { 206425, true }, - { 206436, true }, - { 206450, true }, - { 206461, true }, - { 206472, true }, - { 206483, true }, - { 206494, true }, - { 206505, true }, - { 206519, true }, + { 206131, true }, + { 206141, true }, + { 206153, true }, + { 206169, true }, + { 206181, true }, + { 206191, true }, + { 206204, true }, + { 206218, true }, + { 206229, true }, + { 206238, true }, + { 206246, true }, + { 206258, false }, + { 206266, true }, + { 206277, true }, + { 206293, true }, + { 206304, true }, + { 206317, true }, + { 206329, false }, + { 206343, true }, + { 206356, true }, + { 206367, true }, + { 206377, true }, + { 206391, true }, + { 206410, true }, + { 206421, true }, + { 206435, true }, + { 206446, true }, + { 206457, true }, + { 206468, true }, + { 206479, true }, + { 206490, true }, + { 206504, true }, + { 206516, true }, { 206531, true }, - { 206546, true }, + { 206545, true }, { 206560, true }, - { 206575, true }, - { 206588, true }, - { 206604, true }, - { 206613, true }, - { 206622, true }, - { 206636, true }, - { 206647, false }, - { 206663, true }, - { 206674, true }, - { 206685, true }, - { 206695, true }, - { 206711, false }, - { 206725, true }, - { 206738, true }, - { 206747, true }, - { 206757, true }, - { 206770, true }, - { 206784, true }, - { 206794, true }, - { 206807, true }, - { 206821, true }, - { 206833, true }, - { 206847, true }, - { 206868, true }, - { 206883, true }, - { 206897, true }, - { 206909, true }, - { 206924, false }, - { 206943, true }, - { 206953, true }, - { 206965, true }, - { 206975, true }, - { 206987, true }, - { 207004, true }, - { 207023, true }, - { 207032, false }, - { 207047, true }, - { 207065, true }, - { 207081, false }, - { 207093, true }, - { 207119, true }, - { 207130, true }, - { 207151, true }, - { 207166, true }, - { 207184, true }, - { 207201, true }, - { 207214, true }, - { 207230, true }, - { 207245, true }, - { 207265, true }, - { 207276, true }, - { 207291, true }, - { 207303, true }, - { 207314, true }, - { 207327, true }, - { 207345, true }, - { 207365, true }, - { 207384, true }, - { 207412, true }, - { 207426, true }, - { 207445, true }, - { 207466, true }, - { 207475, true }, - { 207499, false }, - { 207518, true }, - { 207532, true }, - { 207550, true }, - { 207565, true }, - { 207582, true }, - { 207602, true }, - { 207616, true }, - { 207626, true }, - { 207644, true }, - { 207657, true }, - { 207678, true }, - { 207690, true }, - { 207701, true }, - { 207716, true }, - { 207737, true }, - { 207756, true }, - { 207763, true }, - { 207775, true }, - { 207790, true }, - { 207806, true }, - { 207823, true }, - { 207845, true }, - { 207855, true }, - { 207867, true }, - { 207879, true }, - { 207896, true }, - { 207905, false }, - { 207918, false }, - { 207938, true }, - { 207948, true }, - { 207960, true }, - { 207977, true }, - { 207993, true }, - { 208008, true }, - { 208026, true }, - { 208039, true }, - { 208054, true }, - { 208067, true }, - { 208083, true }, - { 208101, true }, - { 208113, true }, - { 208132, true }, - { 208146, true }, - { 208159, true }, - { 208170, true }, - { 208190, true }, - { 208201, true }, - { 208220, true }, - { 208239, true }, - { 208249, true }, - { 208261, true }, - { 208281, true }, - { 208298, true }, - { 208311, true }, - { 208324, true }, - { 208337, true }, - { 208350, true }, - { 208363, true }, - { 208374, true }, - { 208386, true }, - { 208401, true }, - { 208411, true }, - { 208424, true }, - { 208442, true }, - { 208460, true }, - { 208479, true }, - { 208491, true }, - { 208504, true }, - { 208522, true }, - { 208544, true }, - { 208557, true }, - { 208574, true }, - { 208590, true }, - { 208618, true }, - { 208643, true }, - { 208675, true }, - { 208694, true }, - { 208714, true }, - { 208729, true }, - { 208749, true }, - { 208762, true }, - { 208778, true }, - { 208795, true }, - { 208812, true }, - { 208824, true }, - { 208837, true }, - { 208850, true }, - { 208875, true }, - { 208897, true }, - { 208915, true }, - { 208929, true }, + { 206573, true }, + { 206589, true }, + { 206598, true }, + { 206607, true }, + { 206621, true }, + { 206632, false }, + { 206648, true }, + { 206659, true }, + { 206670, true }, + { 206680, true }, + { 206696, false }, + { 206710, true }, + { 206723, true }, + { 206732, true }, + { 206742, true }, + { 206755, true }, + { 206765, true }, + { 206779, true }, + { 206789, true }, + { 206802, true }, + { 206816, true }, + { 206828, true }, + { 206842, true }, + { 206863, true }, + { 206878, true }, + { 206892, true }, + { 206904, true }, + { 206919, false }, + { 206938, true }, + { 206948, true }, + { 206960, true }, + { 206970, true }, + { 206982, true }, + { 206999, true }, + { 207018, true }, + { 207027, false }, + { 207042, true }, + { 207060, true }, + { 207076, false }, + { 207088, true }, + { 207114, true }, + { 207125, true }, + { 207146, true }, + { 207161, true }, + { 207179, true }, + { 207196, true }, + { 207209, true }, + { 207225, true }, + { 207240, true }, + { 207260, true }, + { 207271, true }, + { 207286, true }, + { 207298, true }, + { 207309, true }, + { 207322, true }, + { 207340, true }, + { 207360, true }, + { 207379, true }, + { 207407, true }, + { 207421, true }, + { 207440, true }, + { 207461, true }, + { 207470, true }, + { 207494, false }, + { 207513, true }, + { 207527, true }, + { 207545, true }, + { 207560, true }, + { 207577, true }, + { 207597, true }, + { 207611, true }, + { 207621, true }, + { 207639, true }, + { 207652, true }, + { 207673, true }, + { 207685, true }, + { 207696, true }, + { 207711, true }, + { 207732, true }, + { 207751, true }, + { 207758, true }, + { 207770, true }, + { 207785, true }, + { 207801, true }, + { 207818, true }, + { 207840, true }, + { 207850, true }, + { 207862, true }, + { 207874, true }, + { 207891, true }, + { 207900, false }, + { 207913, false }, + { 207933, true }, + { 207943, true }, + { 207955, true }, + { 207972, true }, + { 207988, true }, + { 208003, true }, + { 208021, true }, + { 208034, true }, + { 208049, true }, + { 208062, true }, + { 208078, true }, + { 208096, true }, + { 208108, true }, + { 208127, true }, + { 208141, true }, + { 208154, true }, + { 208165, true }, + { 208185, true }, + { 208196, true }, + { 208215, true }, + { 208234, true }, + { 208244, true }, + { 208256, true }, + { 208276, true }, + { 208293, true }, + { 208306, true }, + { 208319, true }, + { 208332, true }, + { 208345, true }, + { 208358, true }, + { 208369, true }, + { 208381, true }, + { 208396, true }, + { 208406, true }, + { 208419, true }, + { 208437, true }, + { 208455, true }, + { 208474, true }, + { 208486, true }, + { 208499, true }, + { 208517, true }, + { 208539, true }, + { 208552, true }, + { 208569, true }, + { 208585, true }, + { 208613, true }, + { 208638, true }, + { 208670, true }, + { 208689, true }, + { 208709, true }, + { 208724, true }, + { 208744, true }, + { 208757, true }, + { 208773, true }, + { 208790, true }, + { 208807, true }, + { 208819, true }, + { 208832, true }, + { 208845, true }, + { 208870, true }, + { 208888, true }, + { 208902, true }, + { 208923, true }, + { 208935, true }, { 208950, true }, - { 208962, true }, - { 208977, true }, + { 208967, true }, + { 208979, true }, { 208994, true }, - { 209006, true }, - { 209021, true }, - { 209032, true }, - { 209046, true }, - { 209065, true }, - { 209082, true }, - { 209097, true }, - { 209107, true }, - { 209119, true }, - { 209139, true }, - { 209153, true }, - { 209163, true }, - { 209176, true }, - { 209195, true }, - { 209209, true }, - { 209223, true }, - { 209237, true }, - { 209247, true }, - { 209259, true }, - { 209277, false }, - { 209285, true }, - { 209301, true }, - { 209313, true }, - { 209325, true }, - { 209336, true }, - { 209348, true }, - { 209357, true }, - { 209371, true }, - { 209385, true }, - { 209399, true }, - { 209417, true }, - { 209428, true }, - { 209436, true }, - { 209452, true }, - { 209467, true }, - { 209485, true }, - { 209505, true }, - { 209518, true }, - { 209526, true }, - { 209547, true }, - { 209558, true }, - { 209573, false }, - { 209591, false }, - { 209612, true }, - { 209621, true }, - { 209644, true }, - { 209667, true }, - { 209684, true }, - { 209696, true }, - { 209717, true }, - { 209743, true }, - { 209760, true }, - { 209777, true }, + { 209005, true }, + { 209019, true }, + { 209038, true }, + { 209055, true }, + { 209070, true }, + { 209080, true }, + { 209092, true }, + { 209112, true }, + { 209126, true }, + { 209136, true }, + { 209149, true }, + { 209168, true }, + { 209182, true }, + { 209196, true }, + { 209210, true }, + { 209220, true }, + { 209232, true }, + { 209250, false }, + { 209258, true }, + { 209274, true }, + { 209286, true }, + { 209298, true }, + { 209309, true }, + { 209321, true }, + { 209330, true }, + { 209344, true }, + { 209358, true }, + { 209372, true }, + { 209390, true }, + { 209401, true }, + { 209409, true }, + { 209425, true }, + { 209440, true }, + { 209458, true }, + { 209478, true }, + { 209491, true }, + { 209499, true }, + { 209520, true }, + { 209531, true }, + { 209546, false }, + { 209564, false }, + { 209585, true }, + { 209594, true }, + { 209617, true }, + { 209640, true }, + { 209657, true }, + { 209669, true }, + { 209690, true }, + { 209716, true }, + { 209733, true }, + { 209750, true }, + { 209770, true }, + { 209783, true }, { 209797, true }, - { 209810, true }, - { 209824, true }, - { 209846, true }, - { 209863, true }, - { 209883, true }, - { 209908, true }, - { 209933, true }, + { 209819, true }, + { 209836, true }, + { 209856, true }, + { 209881, true }, + { 209906, true }, + { 209932, true }, + { 209948, true }, { 209959, true }, - { 209975, true }, - { 209986, true }, - { 210001, true }, - { 210010, true }, - { 210021, true }, - { 210035, true }, - { 210044, true }, - { 210057, true }, - { 210079, true }, - { 210091, true }, - { 210099, true }, - { 210113, true }, - { 210121, true }, + { 209974, true }, + { 209983, true }, + { 209994, true }, + { 210008, true }, + { 210017, true }, + { 210030, true }, + { 210052, true }, + { 210064, true }, + { 210072, true }, + { 210086, true }, + { 210094, true }, + { 210105, true }, + { 210115, true }, + { 210125, true }, { 210132, true }, - { 210142, true }, - { 210152, true }, - { 210159, true }, - { 210170, true }, - { 210182, true }, - { 210192, true }, - { 210199, true }, - { 210211, true }, - { 210224, true }, - { 210233, true }, - { 210243, true }, - { 210253, true }, - { 210264, true }, - { 210275, true }, - { 210283, true }, - { 210296, true }, - { 210308, true }, - { 210319, true }, - { 210333, true }, - { 210359, false }, - { 210373, true }, - { 210389, true }, - { 210405, true }, - { 210418, true }, - { 210430, true }, - { 210443, true }, - { 210455, true }, - { 210476, true }, - { 210488, true }, - { 210498, true }, - { 210520, true }, - { 210551, true }, - { 210568, true }, - { 210581, true }, - { 210592, false }, - { 210603, true }, - { 210613, true }, - { 210625, true }, - { 210637, true }, - { 210651, true }, - { 210662, false }, - { 210675, false }, + { 210143, true }, + { 210155, true }, + { 210165, true }, + { 210172, true }, + { 210184, true }, + { 210197, true }, + { 210206, true }, + { 210216, true }, + { 210226, true }, + { 210237, true }, + { 210248, true }, + { 210256, true }, + { 210269, true }, + { 210281, true }, + { 210292, true }, + { 210306, true }, + { 210332, false }, + { 210346, true }, + { 210362, true }, + { 210378, true }, + { 210391, true }, + { 210403, true }, + { 210416, true }, + { 210428, true }, + { 210449, true }, + { 210461, true }, + { 210471, true }, + { 210493, true }, + { 210524, true }, + { 210541, true }, + { 210554, true }, + { 210565, false }, + { 210576, true }, + { 210586, true }, + { 210598, true }, + { 210610, true }, + { 210624, true }, + { 210635, false }, + { 210648, false }, + { 210668, true }, + { 210678, true }, + { 210686, false }, { 210695, true }, - { 210705, true }, - { 210713, false }, - { 210722, true }, - { 210735, true }, - { 210793, true }, - { 210839, true }, - { 210893, true }, - { 210940, true }, - { 210989, true }, - { 211034, true }, - { 211084, true }, - { 211138, true }, - { 211184, true }, - { 211231, true }, + { 210708, true }, + { 210766, true }, + { 210812, true }, + { 210866, true }, + { 210913, true }, + { 210962, true }, + { 211007, true }, + { 211057, true }, + { 211111, true }, + { 211157, true }, + { 211204, true }, + { 211258, true }, { 211285, true }, - { 211312, true }, - { 211345, true }, - { 211358, true }, - { 211371, true }, - { 211387, true }, - { 211410, true }, - { 211426, true }, - { 211439, true }, - { 211455, true }, - { 211465, true }, - { 211476, false }, - { 211488, true }, - { 211505, true }, - { 211522, true }, - { 211540, true }, - { 211554, true }, + { 211318, true }, + { 211331, true }, + { 211344, true }, + { 211360, true }, + { 211383, true }, + { 211399, true }, + { 211412, true }, + { 211428, true }, + { 211438, true }, + { 211449, false }, + { 211461, true }, + { 211478, true }, + { 211495, true }, + { 211513, true }, + { 211527, true }, + { 211545, true }, + { 211561, true }, { 211572, true }, - { 211588, true }, - { 211599, true }, - { 211610, true }, - { 211618, true }, - { 211628, true }, + { 211583, true }, + { 211591, true }, + { 211601, true }, + { 211608, true }, + { 211617, true }, + { 211625, true }, { 211635, true }, - { 211644, true }, - { 211652, true }, - { 211662, true }, + { 211642, true }, + { 211651, true }, { 211669, true }, - { 211678, true }, - { 211696, true }, - { 211712, true }, + { 211685, true }, + { 211704, true }, + { 211717, true }, { 211731, true }, - { 211744, true }, - { 211758, true }, - { 211770, true }, + { 211743, true }, + { 211757, true }, + { 211772, true }, { 211784, true }, - { 211799, true }, - { 211811, true }, - { 211824, true }, - { 211835, true }, - { 211845, true }, - { 211854, true }, - { 211863, true }, - { 211870, true }, - { 211877, true }, - { 211901, true }, - { 211915, true }, - { 211932, false }, - { 211947, true }, - { 211961, true }, - { 211973, true }, - { 211987, true }, - { 212004, true }, - { 212015, true }, - { 212027, true }, - { 212039, true }, - { 212050, true }, - { 212065, true }, - { 212075, true }, - { 212094, true }, - { 212106, true }, - { 212113, true }, - { 212129, true }, - { 212140, true }, - { 212155, true }, - { 212178, true }, - { 212185, true }, - { 212195, true }, - { 212206, true }, - { 212216, true }, - { 212228, true }, - { 212244, true }, - { 212251, true }, - { 212258, true }, - { 212270, true }, - { 212281, true }, - { 212291, true }, - { 212303, true }, - { 212313, false }, - { 212333, true }, - { 212356, true }, - { 212380, true }, - { 212390, false }, - { 212397, true }, - { 212410, true }, - { 212424, true }, - { 212438, true }, - { 212451, true }, - { 212462, true }, - { 212478, false }, - { 212499, true }, - { 212509, true }, - { 212520, true }, - { 212535, true }, - { 212549, true }, - { 212560, true }, - { 212574, true }, - { 212588, true }, - { 212597, true }, - { 212608, true }, - { 212623, true }, - { 212636, true }, - { 212651, true }, - { 212667, true }, - { 212681, true }, - { 212696, true }, - { 212710, true }, - { 212726, true }, - { 212742, true }, - { 212756, true }, - { 212770, true }, - { 212786, true }, - { 212802, true }, - { 212820, true }, - { 212838, true }, - { 212858, true }, - { 212877, true }, - { 212893, true }, - { 212908, true }, - { 212922, true }, - { 212942, true }, - { 212958, true }, - { 212973, true }, - { 212987, true }, - { 213018, true }, - { 213034, true }, - { 213045, true }, - { 213055, false }, - { 213079, true }, - { 213093, true }, - { 213107, true }, - { 213117, true }, - { 213134, true }, - { 213147, true }, - { 213160, true }, - { 213177, true }, - { 213194, false }, - { 213211, true }, - { 213224, true }, - { 213241, true }, - { 213262, true }, - { 213275, true }, - { 213288, true }, - { 213308, true }, - { 213326, true }, - { 213336, true }, - { 213349, true }, - { 213363, true }, - { 213377, false }, - { 213388, true }, - { 213405, true }, - { 213419, true }, - { 213438, true }, - { 213461, true }, - { 213489, true }, - { 213505, true }, - { 213517, true }, - { 213531, false }, - { 213544, true }, - { 213558, true }, - { 213568, true }, - { 213577, true }, - { 213589, true }, - { 213602, true }, - { 213618, true }, - { 213628, true }, - { 213643, true }, - { 213651, true }, - { 213662, true }, - { 213677, true }, - { 213694, true }, - { 213701, true }, - { 213711, true }, - { 213721, true }, - { 213742, true }, - { 213758, true }, - { 213777, true }, - { 213797, true }, - { 213812, true }, - { 213820, true }, - { 213839, true }, - { 213850, true }, - { 213866, false }, - { 213874, true }, - { 213882, true }, + { 211797, true }, + { 211808, true }, + { 211829, true }, + { 211839, true }, + { 211848, true }, + { 211857, true }, + { 211864, true }, + { 211871, true }, + { 211895, true }, + { 211909, true }, + { 211919, true }, + { 211936, false }, + { 211951, true }, + { 211965, true }, + { 211977, true }, + { 211991, true }, + { 212008, true }, + { 212019, true }, + { 212031, true }, + { 212043, true }, + { 212054, true }, + { 212069, true }, + { 212079, true }, + { 212098, true }, + { 212110, true }, + { 212117, true }, + { 212133, true }, + { 212144, true }, + { 212159, true }, + { 212182, true }, + { 212189, true }, + { 212199, true }, + { 212210, true }, + { 212220, true }, + { 212232, true }, + { 212248, true }, + { 212255, true }, + { 212262, true }, + { 212274, true }, + { 212285, true }, + { 212295, true }, + { 212307, true }, + { 212317, false }, + { 212337, true }, + { 212360, true }, + { 212384, true }, + { 212394, false }, + { 212401, true }, + { 212414, true }, + { 212428, true }, + { 212442, true }, + { 212455, true }, + { 212466, true }, + { 212482, false }, + { 212503, true }, + { 212513, true }, + { 212524, true }, + { 212539, true }, + { 212553, true }, + { 212564, true }, + { 212578, true }, + { 212592, true }, + { 212601, true }, + { 212612, true }, + { 212627, true }, + { 212640, true }, + { 212655, true }, + { 212671, true }, + { 212685, true }, + { 212700, true }, + { 212714, true }, + { 212730, true }, + { 212746, true }, + { 212760, true }, + { 212774, true }, + { 212790, true }, + { 212806, true }, + { 212824, true }, + { 212842, true }, + { 212862, true }, + { 212881, true }, + { 212897, true }, + { 212912, true }, + { 212926, true }, + { 212946, true }, + { 212962, true }, + { 212977, true }, + { 212991, true }, + { 213022, true }, + { 213038, true }, + { 213049, true }, + { 213059, false }, + { 213083, true }, + { 213097, true }, + { 213111, true }, + { 213121, true }, + { 213138, true }, + { 213151, true }, + { 213164, true }, + { 213181, true }, + { 213198, false }, + { 213215, true }, + { 213228, true }, + { 213245, true }, + { 213266, true }, + { 213279, true }, + { 213292, true }, + { 213312, true }, + { 213330, true }, + { 213340, true }, + { 213353, true }, + { 213367, true }, + { 213381, false }, + { 213392, true }, + { 213409, true }, + { 213423, true }, + { 213442, true }, + { 213465, true }, + { 213493, true }, + { 213509, true }, + { 213521, true }, + { 213535, false }, + { 213548, true }, + { 213562, true }, + { 213572, true }, + { 213581, true }, + { 213593, true }, + { 213606, true }, + { 213622, true }, + { 213632, true }, + { 213647, true }, + { 213655, true }, + { 213666, true }, + { 213681, true }, + { 213698, true }, + { 213705, true }, + { 213715, true }, + { 213725, true }, + { 213746, true }, + { 213762, true }, + { 213781, true }, + { 213801, true }, + { 213816, true }, + { 213824, true }, + { 213843, true }, + { 213854, true }, + { 213870, false }, + { 213878, true }, { 213893, true }, - { 213906, true }, - { 213917, true }, - { 213932, false }, - { 213952, true }, - { 213967, true }, - { 213989, true }, - { 213999, true }, - { 214014, true }, - { 214027, true }, - { 214038, true }, - { 214048, true }, - { 214060, true }, - { 214084, true }, - { 214097, true }, - { 214110, true }, - { 214122, true }, - { 214135, true }, - { 214149, true }, - { 214165, true }, - { 214181, true }, - { 214197, true }, + { 213901, true }, + { 213912, true }, + { 213925, true }, + { 213936, true }, + { 213951, false }, + { 213971, true }, + { 213986, true }, + { 214008, true }, + { 214018, true }, + { 214033, true }, + { 214046, true }, + { 214057, true }, + { 214067, true }, + { 214079, true }, + { 214103, true }, + { 214116, true }, + { 214129, true }, + { 214141, true }, + { 214154, true }, + { 214168, true }, + { 214184, true }, + { 214200, true }, { 214216, true }, - { 214236, true }, - { 214247, true }, - { 214257, true }, - { 214268, true }, + { 214235, true }, + { 214255, true }, + { 214266, true }, { 214276, true }, - { 214289, true }, - { 214299, true }, - { 214313, true }, - { 214328, true }, - { 214338, true }, - { 214356, true }, - { 214370, true }, - { 214382, true }, - { 214409, false }, - { 214418, true }, - { 214431, false }, - { 214454, true }, - { 214476, true }, - { 214487, true }, - { 214500, true }, - { 214507, true }, - { 214514, true }, - { 214525, true }, - { 214541, true }, - { 214554, true }, - { 214566, true }, - { 214576, true }, - { 214593, true }, - { 214608, true }, - { 214617, true }, - { 214628, true }, - { 214639, true }, - { 214657, true }, - { 214671, true }, - { 214683, false }, - { 214692, true }, - { 214702, true }, - { 214714, true }, - { 214726, true }, - { 214739, true }, - { 214755, true }, + { 214287, true }, + { 214295, true }, + { 214308, true }, + { 214318, true }, + { 214332, true }, + { 214347, true }, + { 214357, true }, + { 214375, true }, + { 214389, true }, + { 214401, true }, + { 214428, false }, + { 214437, true }, + { 214450, false }, + { 214473, true }, + { 214495, true }, + { 214506, true }, + { 214519, true }, + { 214526, true }, + { 214533, true }, + { 214544, true }, + { 214560, true }, + { 214573, true }, + { 214585, true }, + { 214595, true }, + { 214612, true }, + { 214627, true }, + { 214636, true }, + { 214647, true }, + { 214658, true }, + { 214676, true }, + { 214690, true }, + { 214702, false }, + { 214711, true }, + { 214721, true }, + { 214733, true }, + { 214745, true }, + { 214758, true }, { 214774, true }, { 214793, true }, { 214812, true }, - { 214827, true }, - { 214837, true }, - { 214855, true }, - { 214867, true }, + { 214831, true }, + { 214846, true }, + { 214856, true }, + { 214874, true }, { 214886, true }, - { 214898, true }, - { 214913, true }, - { 214922, true }, - { 214933, false }, - { 214943, true }, - { 214949, true }, - { 214958, true }, - { 214967, true }, - { 214975, true }, + { 214905, true }, + { 214917, true }, + { 214932, true }, + { 214941, true }, + { 214952, false }, + { 214962, true }, + { 214968, true }, + { 214977, true }, + { 214986, true }, { 214994, true }, - { 215007, true }, - { 215016, true }, - { 215030, true }, - { 215048, true }, - { 215060, true }, - { 215070, true }, - { 215094, true }, - { 215117, true }, - { 215137, true }, - { 215150, true }, - { 215166, true }, - { 215178, true }, - { 215192, true }, + { 215013, true }, + { 215026, true }, + { 215035, true }, + { 215049, true }, + { 215067, true }, + { 215079, true }, + { 215089, true }, + { 215113, true }, + { 215136, true }, + { 215156, true }, + { 215169, true }, + { 215185, true }, + { 215197, true }, { 215211, true }, - { 215221, true }, - { 215243, true }, - { 215256, true }, - { 215265, true }, - { 215276, true }, - { 215289, true }, - { 215300, true }, - { 215314, true }, - { 215328, true }, - { 215343, true }, - { 215357, true }, - { 215372, true }, - { 215395, false }, - { 215408, true }, - { 215420, true }, - { 215435, true }, - { 215447, true }, - { 215457, true }, - { 215471, true }, - { 215484, true }, - { 215497, true }, - { 215516, true }, - { 215528, true }, - { 215540, true }, - { 215556, true }, - { 215574, true }, - { 215600, true }, - { 215618, false }, - { 215631, true }, - { 215649, true }, - { 215659, true }, - { 215669, true }, - { 215680, true }, - { 215695, true }, - { 215707, true }, - { 215723, true }, - { 215731, true }, - { 215741, true }, - { 215751, true }, - { 215761, true }, - { 215773, true }, - { 215783, true }, - { 215793, true }, - { 215804, true }, - { 215824, true }, - { 215832, false }, - { 215853, true }, - { 215866, true }, - { 215875, true }, - { 215889, true }, - { 215899, true }, - { 215912, true }, - { 215922, true }, - { 215931, true }, - { 215947, false }, - { 215967, true }, - { 215977, true }, - { 215984, true }, - { 215994, true }, - { 216004, true }, - { 216019, true }, - { 216033, true }, - { 216050, true }, - { 216067, true }, - { 216087, true }, - { 216100, true }, + { 215230, true }, + { 215240, true }, + { 215262, true }, + { 215275, true }, + { 215284, true }, + { 215295, true }, + { 215308, true }, + { 215319, true }, + { 215333, true }, + { 215348, true }, + { 215362, true }, + { 215377, true }, + { 215400, false }, + { 215413, true }, + { 215425, true }, + { 215440, true }, + { 215452, true }, + { 215462, true }, + { 215476, true }, + { 215489, true }, + { 215502, true }, + { 215521, true }, + { 215533, true }, + { 215545, true }, + { 215561, true }, + { 215579, true }, + { 215605, true }, + { 215623, false }, + { 215636, true }, + { 215654, true }, + { 215664, true }, + { 215674, true }, + { 215685, true }, + { 215700, true }, + { 215712, true }, + { 215728, true }, + { 215736, true }, + { 215746, true }, + { 215756, true }, + { 215766, true }, + { 215778, true }, + { 215788, true }, + { 215798, true }, + { 215809, true }, + { 215829, true }, + { 215837, false }, + { 215858, true }, + { 215871, true }, + { 215880, true }, + { 215894, true }, + { 215904, true }, + { 215917, true }, + { 215927, true }, + { 215936, true }, + { 215952, true }, + { 215963, false }, + { 215983, true }, + { 215993, true }, + { 216000, true }, + { 216010, true }, + { 216020, true }, + { 216035, true }, + { 216049, true }, + { 216066, true }, + { 216083, true }, + { 216103, true }, { 216116, true }, - { 216146, true }, - { 216172, true }, - { 216180, true }, - { 216199, true }, - { 216213, true }, - { 216222, true }, - { 216241, true }, - { 216251, true }, - { 216272, true }, - { 216287, true }, - { 216300, true }, + { 216132, true }, + { 216162, true }, + { 216188, true }, + { 216196, true }, + { 216215, true }, + { 216229, true }, + { 216238, true }, + { 216257, true }, + { 216267, true }, + { 216288, true }, + { 216303, true }, { 216316, true }, - { 216328, true }, - { 216345, true }, - { 216356, true }, - { 216373, true }, - { 216391, true }, + { 216332, true }, + { 216344, true }, + { 216361, true }, + { 216372, true }, + { 216389, true }, { 216407, true }, - { 216427, true }, - { 216449, true }, - { 216462, true }, - { 216472, true }, - { 216494, true }, - { 216515, true }, - { 216536, true }, - { 216549, true }, - { 216573, true }, - { 216584, true }, - { 216596, true }, - { 216608, true }, - { 216618, true }, - { 216636, true }, - { 216648, false }, - { 216665, true }, - { 216697, true }, - { 216708, true }, - { 216718, true }, - { 216731, true }, - { 216740, true }, - { 216753, true }, - { 216764, true }, - { 216775, true }, - { 216785, true }, - { 216792, true }, - { 216804, true }, - { 216817, false }, - { 216829, true }, - { 216849, true }, - { 216862, true }, - { 216872, true }, - { 216885, true }, - { 216906, true }, - { 216923, true }, - { 216937, true }, - { 216954, true }, - { 216972, true }, - { 216979, true }, - { 216997, false }, - { 217015, false }, - { 217033, false }, - { 217050, true }, - { 217072, true }, - { 217085, true }, - { 217098, false }, - { 217113, false }, - { 217123, false }, - { 217137, true }, - { 217149, true }, - { 217170, true }, - { 217188, true }, - { 217203, true }, - { 217231, true }, - { 217256, true }, - { 217274, true }, - { 217290, true }, - { 217300, true }, - { 217328, true }, - { 217343, true }, - { 217354, true }, - { 217364, true }, - { 217387, false }, - { 217405, true }, - { 217420, true }, - { 217432, true }, - { 217445, true }, - { 217474, true }, - { 217492, true }, - { 217511, true }, - { 217528, true }, - { 217538, true }, - { 217549, true }, - { 217560, false }, - { 217575, true }, - { 217590, true }, - { 217608, true }, - { 217622, true }, - { 217637, true }, - { 217649, true }, - { 217672, true }, - { 217686, true }, - { 217711, true }, - { 217727, true }, - { 217751, true }, - { 217765, true }, - { 217776, true }, - { 217794, true }, - { 217818, true }, - { 217851, false }, - { 217874, true }, - { 217894, true }, - { 217911, true }, - { 217929, true }, - { 217949, true }, - { 217959, true }, - { 217972, true }, - { 217985, true }, - { 218002, true }, - { 218013, true }, - { 218024, true }, - { 218046, true }, - { 218064, false }, - { 218078, true }, - { 218092, true }, - { 218110, true }, - { 218130, true }, - { 218144, true }, - { 218153, true }, - { 218169, true }, - { 218182, true }, - { 218200, true }, - { 218212, true }, - { 218227, true }, - { 218240, true }, - { 218252, true }, - { 218264, true }, - { 218275, true }, - { 218286, true }, - { 218295, true }, - { 218308, true }, - { 218322, true }, - { 218333, true }, - { 218347, true }, - { 218358, true }, - { 218371, true }, - { 218385, true }, - { 218395, false }, - { 218408, true }, - { 218417, true }, - { 218434, true }, - { 218444, true }, - { 218454, true }, - { 218467, true }, - { 218476, true }, + { 216423, true }, + { 216443, true }, + { 216465, true }, + { 216478, true }, + { 216488, true }, + { 216510, true }, + { 216531, true }, + { 216552, true }, + { 216565, true }, + { 216589, true }, + { 216600, true }, + { 216612, true }, + { 216624, true }, + { 216634, true }, + { 216652, true }, + { 216664, false }, + { 216681, true }, + { 216713, true }, + { 216724, true }, + { 216734, true }, + { 216747, true }, + { 216756, true }, + { 216769, true }, + { 216780, true }, + { 216791, true }, + { 216801, true }, + { 216808, true }, + { 216820, true }, + { 216833, false }, + { 216845, true }, + { 216865, true }, + { 216878, true }, + { 216888, true }, + { 216901, true }, + { 216922, true }, + { 216939, true }, + { 216953, true }, + { 216970, true }, + { 216988, true }, + { 216995, true }, + { 217013, false }, + { 217031, false }, + { 217049, false }, + { 217066, true }, + { 217088, true }, + { 217101, true }, + { 217114, false }, + { 217129, false }, + { 217139, false }, + { 217153, true }, + { 217168, true }, + { 217180, true }, + { 217201, true }, + { 217219, true }, + { 217234, true }, + { 217262, true }, + { 217287, true }, + { 217305, true }, + { 217321, true }, + { 217331, true }, + { 217359, true }, + { 217374, true }, + { 217385, true }, + { 217395, true }, + { 217418, false }, + { 217436, true }, + { 217451, true }, + { 217463, true }, + { 217476, true }, + { 217505, true }, + { 217523, true }, + { 217542, true }, + { 217559, true }, + { 217569, true }, + { 217580, true }, + { 217591, false }, + { 217606, true }, + { 217621, true }, + { 217639, true }, + { 217653, true }, + { 217668, true }, + { 217691, true }, + { 217705, true }, + { 217730, true }, + { 217746, true }, + { 217770, true }, + { 217784, true }, + { 217795, true }, + { 217813, true }, + { 217837, true }, + { 217870, false }, + { 217893, true }, + { 217913, true }, + { 217930, true }, + { 217948, true }, + { 217968, true }, + { 217978, true }, + { 217991, true }, + { 218004, true }, + { 218021, true }, + { 218032, true }, + { 218043, true }, + { 218065, true }, + { 218083, false }, + { 218097, true }, + { 218111, true }, + { 218129, true }, + { 218149, true }, + { 218163, true }, + { 218172, true }, + { 218188, true }, + { 218201, true }, + { 218219, true }, + { 218231, true }, + { 218246, true }, + { 218259, true }, + { 218271, true }, + { 218283, true }, + { 218294, true }, + { 218305, true }, + { 218314, true }, + { 218327, true }, + { 218341, true }, + { 218352, true }, + { 218366, true }, + { 218377, true }, + { 218390, true }, + { 218404, true }, + { 218414, false }, + { 218427, true }, + { 218436, true }, + { 218453, true }, + { 218463, true }, + { 218473, true }, { 218486, true }, - { 218497, true }, - { 218507, true }, - { 218515, true }, - { 218523, false }, - { 218537, true }, - { 218545, false }, - { 218565, true }, - { 218575, true }, - { 218589, true }, - { 218603, true }, - { 218613, true }, - { 218624, true }, - { 218636, true }, - { 218647, true }, - { 218657, true }, - { 218666, true }, - { 218679, true }, - { 218691, true }, - { 218703, true }, - { 218714, true }, - { 218728, true }, - { 218740, true }, - { 218756, true }, - { 218771, true }, - { 218785, true }, - { 218794, true }, - { 218806, true }, - { 218816, true }, - { 218832, true }, - { 218847, true }, - { 218862, true }, - { 218878, true }, - { 218893, true }, - { 218915, true }, - { 218927, true }, - { 218934, true }, - { 218949, true }, - { 218960, true }, - { 218970, true }, - { 218985, true }, - { 218996, true }, - { 219010, true }, - { 219024, true }, - { 219035, true }, - { 219048, true }, - { 219059, false }, - { 219074, true }, - { 219090, true }, - { 219099, true }, - { 219109, true }, - { 219116, true }, - { 219127, true }, - { 219139, true }, - { 219161, true }, - { 219173, true }, - { 219187, true }, - { 219210, true }, - { 219245, true }, - { 219281, true }, - { 219314, true }, - { 219352, true }, - { 219387, true }, - { 219422, true }, - { 219462, true }, - { 219498, true }, - { 219541, true }, - { 219567, true }, - { 219580, true }, - { 219589, true }, - { 219599, true }, + { 218495, true }, + { 218505, true }, + { 218516, true }, + { 218526, true }, + { 218534, true }, + { 218542, false }, + { 218556, true }, + { 218564, false }, + { 218584, true }, + { 218594, true }, + { 218608, true }, + { 218622, true }, + { 218632, true }, + { 218643, true }, + { 218655, true }, + { 218667, true }, + { 218677, true }, + { 218686, true }, + { 218699, true }, + { 218711, true }, + { 218723, true }, + { 218734, true }, + { 218748, true }, + { 218760, true }, + { 218776, true }, + { 218791, true }, + { 218805, true }, + { 218814, true }, + { 218826, true }, + { 218836, true }, + { 218852, true }, + { 218867, true }, + { 218882, true }, + { 218898, true }, + { 218913, true }, + { 218935, true }, + { 218947, true }, + { 218954, true }, + { 218969, true }, + { 218980, true }, + { 218990, true }, + { 219005, true }, + { 219016, true }, + { 219030, true }, + { 219044, true }, + { 219055, true }, + { 219068, true }, + { 219079, false }, + { 219094, true }, + { 219110, true }, + { 219119, true }, + { 219129, true }, + { 219136, true }, + { 219147, true }, + { 219159, true }, + { 219181, true }, + { 219193, true }, + { 219207, true }, + { 219230, true }, + { 219265, true }, + { 219301, true }, + { 219334, true }, + { 219372, true }, + { 219407, true }, + { 219442, true }, + { 219482, true }, + { 219518, true }, + { 219561, true }, + { 219587, true }, + { 219600, true }, { 219609, true }, - { 219636, true }, - { 219645, true }, - { 219654, true }, - { 219671, true }, - { 219688, true }, - { 219700, true }, - { 219713, true }, - { 219726, true }, - { 219753, true }, - { 219760, true }, - { 219771, true }, - { 219788, true }, - { 219804, true }, - { 219815, true }, - { 219827, true }, - { 219840, true }, - { 219864, true }, - { 219876, true }, - { 219883, true }, - { 219894, true }, - { 219902, true }, - { 219912, true }, - { 219919, true }, + { 219619, true }, + { 219629, true }, + { 219656, true }, + { 219665, true }, + { 219674, true }, + { 219691, true }, + { 219708, true }, + { 219720, true }, + { 219733, true }, + { 219746, true }, + { 219773, true }, + { 219780, true }, + { 219791, true }, + { 219808, true }, + { 219824, true }, + { 219835, true }, + { 219847, true }, + { 219860, true }, + { 219884, true }, + { 219896, true }, + { 219903, true }, + { 219914, true }, + { 219922, true }, + { 219932, true }, { 219939, true }, - { 219951, true }, - { 219972, true }, - { 219983, true }, - { 219995, true }, - { 220005, true }, - { 220017, true }, - { 220039, true }, - { 220048, true }, - { 220056, true }, - { 220065, true }, - { 220074, true }, - { 220093, true }, - { 220107, true }, - { 220128, true }, - { 220141, true }, - { 220153, true }, - { 220177, true }, - { 220189, true }, - { 220207, true }, - { 220225, false }, - { 220239, true }, - { 220254, true }, - { 220269, true }, - { 220278, false }, - { 220295, true }, - { 220305, true }, - { 220319, true }, - { 220327, true }, - { 220338, true }, - { 220353, true }, - { 220369, true }, - { 220392, true }, - { 220402, true }, - { 220413, true }, - { 220423, true }, - { 220439, true }, - { 220450, true }, - { 220461, true }, - { 220473, true }, - { 220484, true }, - { 220498, true }, - { 220515, true }, - { 220531, true }, - { 220543, false }, - { 220562, true }, - { 220572, true }, - { 220590, true }, - { 220605, true }, - { 220628, true }, - { 220639, true }, - { 220656, true }, - { 220666, true }, - { 220682, true }, - { 220701, true }, - { 220716, true }, - { 220732, true }, - { 220749, true }, - { 220769, true }, - { 220781, true }, - { 220801, true }, - { 220816, true }, - { 220835, true }, - { 220844, true }, + { 219959, true }, + { 219971, true }, + { 219992, true }, + { 220003, true }, + { 220015, true }, + { 220025, true }, + { 220037, true }, + { 220059, true }, + { 220068, true }, + { 220076, true }, + { 220085, true }, + { 220094, true }, + { 220113, true }, + { 220127, true }, + { 220148, true }, + { 220161, true }, + { 220173, true }, + { 220197, true }, + { 220209, true }, + { 220227, true }, + { 220245, false }, + { 220259, true }, + { 220274, true }, + { 220289, true }, + { 220298, false }, + { 220315, true }, + { 220325, true }, + { 220339, true }, + { 220347, true }, + { 220358, true }, + { 220373, true }, + { 220389, true }, + { 220412, true }, + { 220422, true }, + { 220433, true }, + { 220443, true }, + { 220459, true }, + { 220470, true }, + { 220481, true }, + { 220493, true }, + { 220504, true }, + { 220518, true }, + { 220535, false }, + { 220551, true }, + { 220567, true }, + { 220579, false }, + { 220598, true }, + { 220608, true }, + { 220626, true }, + { 220641, true }, + { 220664, true }, + { 220675, true }, + { 220692, true }, + { 220702, true }, + { 220718, true }, + { 220737, true }, + { 220752, true }, + { 220768, true }, + { 220785, true }, + { 220805, true }, + { 220817, true }, + { 220832, true }, + { 220851, true }, { 220860, true }, - { 220877, true }, - { 220889, true }, - { 220901, true }, - { 220910, true }, - { 220920, true }, - { 220937, true }, - { 220955, true }, - { 220966, true }, - { 220974, true }, - { 220984, true }, - { 220999, true }, - { 221009, true }, - { 221019, false }, - { 221026, true }, - { 221036, true }, - { 221057, true }, - { 221077, true }, - { 221100, true }, - { 221120, true }, + { 220876, true }, + { 220893, true }, + { 220905, true }, + { 220917, true }, + { 220926, true }, + { 220936, true }, + { 220953, true }, + { 220971, true }, + { 220982, true }, + { 220990, true }, + { 221000, true }, + { 221015, true }, + { 221025, true }, + { 221035, false }, + { 221042, true }, + { 221052, true }, + { 221073, true }, + { 221093, true }, + { 221116, true }, { 221136, true }, - { 221151, true }, - { 221169, true }, - { 221180, false }, - { 221204, true }, - { 221223, true }, - { 221236, true }, + { 221152, true }, + { 221167, true }, + { 221185, true }, + { 221196, false }, + { 221220, true }, + { 221239, true }, { 221252, true }, { 221268, true }, - { 221282, true }, - { 221294, false }, - { 221308, false }, - { 221321, true }, - { 221335, true }, - { 221353, true }, - { 221376, true }, - { 221399, true }, - { 221412, true }, - { 221424, true }, - { 221435, true }, - { 221446, true }, - { 221461, true }, - { 221486, true }, - { 221519, true }, - { 221545, true }, - { 221579, true }, - { 221602, true }, - { 221615, true }, + { 221284, true }, + { 221298, true }, + { 221310, false }, + { 221324, false }, + { 221337, true }, + { 221351, true }, + { 221369, true }, + { 221392, true }, + { 221415, true }, + { 221428, true }, + { 221440, true }, + { 221451, true }, + { 221462, true }, + { 221477, true }, + { 221502, true }, + { 221535, true }, + { 221561, true }, + { 221595, true }, + { 221618, true }, { 221631, true }, - { 221643, true }, - { 221655, true }, - { 221671, false }, - { 221691, true }, - { 221704, false }, - { 221722, false }, - { 221745, true }, - { 221765, true }, + { 221647, true }, + { 221659, true }, + { 221671, true }, + { 221687, false }, + { 221707, true }, + { 221720, false }, + { 221738, false }, + { 221761, true }, { 221781, true }, - { 221795, true }, - { 221816, true }, - { 221831, false }, - { 221844, true }, - { 221861, true }, - { 221875, true }, - { 221888, true }, - { 221900, true }, - { 221912, true }, + { 221797, true }, + { 221811, true }, + { 221832, true }, + { 221847, false }, + { 221860, true }, + { 221877, true }, + { 221891, true }, + { 221904, true }, + { 221916, true }, { 221928, true }, - { 221943, false }, - { 221965, true }, - { 221985, true }, - { 221997, true }, - { 222018, true }, - { 222034, false }, - { 222046, true }, + { 221944, true }, + { 221959, false }, + { 221981, true }, + { 222001, true }, + { 222013, true }, + { 222034, true }, + { 222050, false }, { 222062, true }, - { 222080, true }, - { 222092, true }, - { 222106, true }, - { 222120, true }, - { 222137, true }, - { 222154, true }, - { 222168, true }, - { 222178, false }, - { 222192, true }, - { 222202, true }, - { 222223, true }, - { 222236, true }, - { 222254, true }, + { 222078, true }, + { 222096, true }, + { 222108, true }, + { 222122, true }, + { 222136, true }, + { 222153, true }, + { 222170, true }, + { 222184, true }, + { 222194, false }, + { 222208, true }, + { 222218, true }, + { 222239, true }, + { 222252, true }, { 222270, true }, - { 222283, true }, - { 222294, true }, - { 222307, true }, - { 222328, true }, - { 222339, true }, - { 222359, true }, - { 222376, true }, - { 222388, true }, - { 222402, true }, - { 222412, true }, - { 222429, true }, - { 222439, true }, - { 222448, true }, - { 222466, true }, - { 222474, true }, + { 222286, true }, + { 222299, true }, + { 222310, true }, + { 222323, true }, + { 222344, true }, + { 222355, true }, + { 222375, true }, + { 222392, true }, + { 222404, true }, + { 222418, true }, + { 222428, true }, + { 222445, true }, + { 222455, true }, + { 222464, true }, + { 222482, true }, { 222490, true }, { 222506, true }, { 222522, true }, - { 222543, true }, - { 222554, true }, - { 222567, true }, - { 222592, true }, - { 222607, true }, - { 222627, true }, - { 222641, true }, - { 222656, true }, - { 222678, true }, - { 222698, true }, - { 222713, true }, - { 222723, true }, - { 222736, true }, - { 222754, true }, - { 222769, true }, + { 222538, true }, + { 222559, true }, + { 222570, true }, + { 222583, true }, + { 222608, true }, + { 222623, true }, + { 222643, true }, + { 222657, true }, + { 222672, true }, + { 222694, true }, + { 222714, true }, + { 222729, true }, + { 222739, true }, + { 222752, true }, + { 222770, true }, { 222785, true }, { 222801, true }, { 222817, true }, - { 222828, true }, - { 222837, false }, - { 222847, true }, - { 222859, true }, - { 222876, true }, - { 222888, true }, + { 222833, true }, + { 222844, true }, + { 222853, false }, + { 222863, true }, + { 222875, true }, + { 222892, true }, { 222904, true }, { 222920, true }, - { 222937, true }, - { 222958, true }, - { 222970, true }, - { 222982, true }, - { 223001, false }, - { 223013, true }, - { 223025, true }, - { 223035, true }, - { 223050, true }, - { 223062, true }, - { 223076, true }, - { 223100, true }, - { 223112, true }, - { 223144, true }, - { 223165, true }, - { 223196, true }, - { 223221, true }, - { 223244, true }, - { 223255, true }, - { 223267, true }, - { 223282, true }, - { 223295, true }, - { 223308, true }, - { 223321, true }, - { 223331, true }, - { 223360, true }, - { 223383, true }, - { 223407, true }, - { 223434, true }, - { 223448, true }, - { 223471, true }, - { 223497, true }, - { 223525, true }, - { 223556, true }, - { 223581, true }, - { 223589, true }, - { 223596, true }, - { 223608, true }, - { 223616, true }, - { 223628, true }, - { 223650, true }, - { 223663, true }, - { 223684, true }, - { 223697, true }, - { 223718, true }, - { 223737, true }, - { 223758, true }, - { 223777, true }, - { 223788, true }, - { 223801, true }, - { 223817, false }, - { 223833, true }, - { 223841, true }, - { 223856, true }, - { 223873, false }, - { 223888, true }, + { 222936, true }, + { 222953, true }, + { 222974, true }, + { 222986, true }, + { 222998, true }, + { 223017, false }, + { 223029, true }, + { 223041, true }, + { 223051, true }, + { 223066, true }, + { 223078, true }, + { 223092, true }, + { 223116, true }, + { 223128, true }, + { 223160, true }, + { 223181, true }, + { 223212, true }, + { 223237, true }, + { 223260, true }, + { 223271, true }, + { 223283, true }, + { 223298, true }, + { 223311, true }, + { 223324, true }, + { 223337, true }, + { 223347, true }, + { 223376, true }, + { 223399, true }, + { 223423, true }, + { 223450, true }, + { 223464, true }, + { 223487, true }, + { 223513, true }, + { 223541, true }, + { 223572, true }, + { 223597, true }, + { 223605, true }, + { 223612, true }, + { 223624, true }, + { 223632, true }, + { 223644, true }, + { 223666, true }, + { 223679, true }, + { 223700, true }, + { 223713, true }, + { 223734, true }, + { 223753, true }, + { 223774, true }, + { 223793, true }, + { 223804, true }, + { 223817, true }, + { 223833, false }, + { 223849, true }, + { 223857, true }, + { 223872, true }, + { 223889, false }, { 223904, true }, - { 223914, true }, - { 223926, true }, + { 223920, true }, + { 223930, true }, { 223942, true }, - { 223956, false }, - { 223965, true }, - { 223977, true }, - { 223990, true }, - { 224008, true }, - { 224023, true }, - { 224045, true }, - { 224062, true }, - { 224084, true }, - { 224106, true }, - { 224120, true }, - { 224134, true }, - { 224141, true }, - { 224154, true }, - { 224167, true }, - { 224193, true }, - { 224205, true }, - { 224216, true }, - { 224242, true }, - { 224252, true }, - { 224262, false }, - { 224279, true }, - { 224291, true }, - { 224306, true }, - { 224315, true }, - { 224328, true }, - { 224338, true }, - { 224352, true }, - { 224369, true }, - { 224382, true }, - { 224394, true }, - { 224405, true }, - { 224415, true }, - { 224428, false }, - { 224444, true }, + { 223958, true }, + { 223972, false }, + { 223981, true }, + { 223993, true }, + { 224006, true }, + { 224024, true }, + { 224039, true }, + { 224061, true }, + { 224078, true }, + { 224100, true }, + { 224122, true }, + { 224136, true }, + { 224150, true }, + { 224157, true }, + { 224170, true }, + { 224183, true }, + { 224209, true }, + { 224221, true }, + { 224232, true }, + { 224258, true }, + { 224268, true }, + { 224278, false }, + { 224295, true }, + { 224307, true }, + { 224322, true }, + { 224331, true }, + { 224344, true }, + { 224354, true }, + { 224368, true }, + { 224385, true }, + { 224398, true }, + { 224410, true }, + { 224421, true }, + { 224431, true }, + { 224444, false }, { 224460, true }, - { 224474, false }, - { 224489, true }, - { 224502, false }, - { 224519, true }, - { 224533, true }, - { 224547, true }, - { 224561, true }, - { 224585, true }, - { 224598, true }, - { 224611, true }, - { 224625, true }, - { 224639, true }, - { 224654, true }, + { 224476, true }, + { 224490, false }, + { 224505, true }, + { 224518, false }, + { 224535, true }, + { 224549, true }, + { 224563, true }, + { 224577, true }, + { 224601, true }, + { 224614, true }, + { 224627, true }, + { 224641, true }, + { 224655, true }, { 224670, true }, - { 224685, true }, - { 224700, true }, - { 224718, true }, - { 224741, true }, - { 224753, true }, - { 224765, true }, - { 224784, true }, + { 224686, true }, + { 224701, true }, + { 224716, true }, + { 224734, true }, + { 224757, true }, + { 224769, true }, + { 224781, true }, { 224800, true }, - { 224815, true }, - { 224839, true }, - { 224856, true }, - { 224874, true }, - { 224893, true }, - { 224913, true }, - { 224928, true }, - { 224940, true }, - { 224957, true }, - { 224971, true }, - { 224988, true }, - { 224997, true }, - { 225010, true }, - { 225024, true }, - { 225039, true }, - { 225051, false }, - { 225064, true }, - { 225078, true }, - { 225091, true }, - { 225103, true }, - { 225115, false }, - { 225134, true }, - { 225156, true }, + { 224816, true }, + { 224831, true }, + { 224855, true }, + { 224872, true }, + { 224890, true }, + { 224909, true }, + { 224929, true }, + { 224944, true }, + { 224956, true }, + { 224973, true }, + { 224987, true }, + { 225004, true }, + { 225013, true }, + { 225026, true }, + { 225040, true }, + { 225055, true }, + { 225067, false }, + { 225080, true }, + { 225101, true }, + { 225115, true }, + { 225128, true }, + { 225140, true }, + { 225152, false }, { 225171, true }, - { 225190, true }, - { 225204, false }, - { 225215, true }, - { 225230, true }, - { 225246, true }, - { 225260, true }, - { 225272, true }, - { 225289, true }, - { 225307, true }, - { 225318, true }, - { 225325, true }, - { 225337, true }, - { 225345, true }, + { 225193, true }, + { 225208, true }, + { 225227, true }, + { 225241, false }, + { 225252, true }, + { 225267, true }, + { 225283, true }, + { 225297, true }, + { 225309, true }, + { 225326, true }, + { 225344, true }, { 225355, true }, - { 225365, true }, - { 225380, true }, - { 225399, true }, - { 225415, false }, - { 225425, true }, - { 225432, false }, - { 225444, true }, - { 225453, true }, - { 225467, true }, - { 225479, true }, - { 225487, true }, - { 225494, true }, + { 225362, true }, + { 225374, true }, + { 225382, true }, + { 225392, true }, + { 225402, true }, + { 225417, true }, + { 225436, true }, + { 225452, false }, + { 225462, true }, + { 225469, false }, + { 225481, true }, + { 225490, true }, { 225504, true }, { 225516, true }, - { 225527, true }, - { 225546, true }, - { 225554, true }, - { 225562, false }, - { 225574, true }, - { 225587, true }, - { 225602, true }, + { 225524, true }, + { 225531, true }, + { 225541, true }, + { 225553, true }, + { 225564, true }, + { 225583, true }, + { 225591, true }, + { 225599, false }, + { 225611, true }, { 225624, true }, - { 225636, true }, - { 225654, true }, - { 225670, true }, - { 225679, false }, - { 225696, true }, - { 225717, true }, - { 225738, true }, - { 225750, true }, - { 225766, true }, - { 225791, true }, - { 225817, true }, - { 225843, true }, + { 225639, true }, + { 225661, true }, + { 225673, true }, + { 225691, true }, + { 225707, true }, + { 225716, false }, + { 225733, true }, + { 225754, true }, + { 225775, true }, + { 225787, true }, + { 225803, true }, + { 225828, true }, { 225854, true }, - { 225866, true }, - { 225879, true }, - { 225892, true }, - { 225902, true }, - { 225911, true }, - { 225925, true }, - { 225945, true }, - { 225960, true }, - { 225976, true }, - { 225986, true }, - { 225998, true }, - { 226018, true }, - { 226040, true }, - { 226053, true }, - { 226072, true }, - { 226086, true }, - { 226098, true }, - { 226122, true }, - { 226139, false }, - { 226153, true }, - { 226166, true }, - { 226179, true }, - { 226198, true }, - { 226220, true }, - { 226238, true }, - { 226250, true }, - { 226265, true }, - { 226286, true }, - { 226311, true }, - { 226336, true }, - { 226352, true }, - { 226378, true }, - { 226398, true }, - { 226414, true }, - { 226427, true }, - { 226439, true }, - { 226457, true }, - { 226471, true }, - { 226482, true }, - { 226494, true }, - { 226504, true }, - { 226513, true }, - { 226527, true }, - { 226544, true }, - { 226555, true }, - { 226566, true }, - { 226574, true }, - { 226586, true }, - { 226599, true }, + { 225880, true }, + { 225891, true }, + { 225903, true }, + { 225916, true }, + { 225929, true }, + { 225939, true }, + { 225948, true }, + { 225962, true }, + { 225982, true }, + { 225997, true }, + { 226013, true }, + { 226023, true }, + { 226035, true }, + { 226055, true }, + { 226077, true }, + { 226090, true }, + { 226109, true }, + { 226123, true }, + { 226135, true }, + { 226159, true }, + { 226176, false }, + { 226190, true }, + { 226203, true }, + { 226216, true }, + { 226235, true }, + { 226257, true }, + { 226275, true }, + { 226287, true }, + { 226302, true }, + { 226323, true }, + { 226348, true }, + { 226373, true }, + { 226389, true }, + { 226415, true }, + { 226435, true }, + { 226448, true }, + { 226464, true }, + { 226477, true }, + { 226489, true }, + { 226507, true }, + { 226521, true }, + { 226540, true }, + { 226551, true }, + { 226563, true }, + { 226573, true }, + { 226582, true }, + { 226596, true }, { 226613, true }, - { 226630, true }, - { 226641, false }, - { 226653, true }, - { 226672, true }, - { 226685, true }, - { 226696, true }, - { 226707, true }, - { 226718, true }, - { 226731, true }, - { 226742, true }, + { 226624, true }, + { 226635, true }, + { 226643, true }, + { 226655, true }, + { 226668, true }, + { 226682, true }, + { 226699, true }, + { 226710, false }, + { 226722, true }, + { 226741, true }, { 226754, true }, - { 226764, true }, - { 226770, true }, - { 226780, true }, + { 226765, true }, + { 226776, true }, + { 226787, true }, { 226800, true }, - { 226810, true }, + { 226811, true }, + { 226823, true }, { 226833, true }, - { 226845, true }, - { 226864, true }, - { 226872, true }, - { 226880, true }, - { 226894, true }, - { 226906, true }, - { 226921, false }, - { 226934, true }, - { 226947, true }, - { 226958, true }, - { 226969, true }, - { 226985, true }, - { 226999, true }, - { 227009, true }, - { 227023, true }, - { 227030, true }, - { 227043, true }, - { 227060, true }, - { 227070, true }, + { 226839, true }, + { 226849, true }, + { 226869, true }, + { 226879, true }, + { 226902, true }, + { 226914, true }, + { 226933, true }, + { 226941, true }, + { 226949, true }, + { 226963, true }, + { 226975, true }, + { 226990, false }, + { 227003, true }, + { 227016, true }, + { 227027, true }, + { 227038, true }, + { 227054, true }, + { 227068, true }, { 227078, true }, - { 227093, true }, - { 227105, true }, - { 227121, true }, - { 227136, true }, - { 227146, true }, - { 227171, true }, - { 227179, true }, - { 227191, false }, - { 227202, false }, - { 227220, false }, - { 227233, true }, - { 227248, true }, - { 227262, true }, - { 227276, true }, - { 227293, true }, - { 227310, true }, - { 227325, true }, - { 227343, true }, - { 227361, true }, - { 227379, true }, - { 227393, true }, - { 227407, true }, - { 227421, true }, - { 227435, true }, - { 227449, false }, - { 227467, false }, - { 227490, false }, - { 227511, false }, - { 227530, true }, - { 227546, false }, - { 227562, false }, - { 227578, true }, - { 227600, true }, - { 227613, false }, - { 227630, false }, - { 227647, true }, - { 227664, false }, - { 227681, false }, - { 227695, false }, - { 227714, false }, + { 227092, true }, + { 227099, true }, + { 227112, true }, + { 227129, true }, + { 227139, true }, + { 227154, true }, + { 227166, true }, + { 227182, true }, + { 227197, true }, + { 227207, true }, + { 227232, true }, + { 227240, true }, + { 227252, false }, + { 227263, false }, + { 227281, false }, + { 227294, true }, + { 227309, true }, + { 227323, true }, + { 227337, true }, + { 227354, true }, + { 227371, true }, + { 227386, true }, + { 227404, true }, + { 227422, true }, + { 227440, true }, + { 227454, true }, + { 227468, true }, + { 227482, true }, + { 227496, true }, + { 227510, false }, + { 227528, false }, + { 227551, false }, + { 227572, false }, + { 227591, true }, + { 227607, false }, + { 227623, false }, + { 227639, true }, + { 227661, true }, + { 227674, false }, + { 227691, false }, + { 227708, true }, { 227725, false }, - { 227737, false }, - { 227749, false }, - { 227768, true }, + { 227742, false }, + { 227756, false }, + { 227775, false }, { 227786, false }, - { 227800, true }, - { 227816, false }, - { 227833, false }, - { 227850, false }, - { 227865, false }, - { 227881, true }, - { 227902, false }, - { 227921, false }, - { 227939, false }, - { 227959, true }, - { 227975, false }, - { 227990, true }, - { 228005, false }, - { 228029, true }, - { 228036, true }, - { 228055, false }, - { 228073, false }, - { 228088, true }, - { 228108, true }, - { 228129, false }, - { 228153, false }, - { 228172, false }, - { 228188, false }, - { 228203, false }, - { 228216, true }, - { 228232, false }, - { 228247, false }, - { 228261, false }, - { 228279, true }, - { 228290, true }, - { 228301, true }, - { 228309, true }, - { 228317, true }, - { 228332, true }, - { 228342, true }, - { 228355, true }, - { 228372, true }, - { 228388, true }, - { 228396, true }, - { 228407, true }, - { 228417, true }, - { 228427, true }, - { 228443, true }, - { 228448, true }, - { 228453, true }, - { 228463, true }, - { 228471, true }, - { 228480, true }, + { 227798, false }, + { 227810, false }, + { 227829, true }, + { 227847, false }, + { 227861, true }, + { 227877, false }, + { 227894, false }, + { 227911, false }, + { 227926, false }, + { 227942, true }, + { 227963, false }, + { 227982, false }, + { 228000, false }, + { 228020, true }, + { 228036, false }, + { 228051, true }, + { 228066, false }, + { 228090, true }, + { 228097, true }, + { 228116, false }, + { 228134, false }, + { 228149, true }, + { 228169, true }, + { 228190, false }, + { 228214, false }, + { 228233, false }, + { 228249, false }, + { 228264, false }, + { 228277, true }, + { 228293, false }, + { 228308, false }, + { 228322, false }, + { 228340, true }, + { 228351, true }, + { 228362, true }, + { 228370, true }, + { 228378, true }, + { 228393, true }, + { 228403, true }, + { 228416, true }, + { 228433, true }, + { 228449, true }, + { 228457, true }, + { 228468, true }, + { 228478, true }, { 228488, true }, - { 228508, true }, - { 228515, true }, - { 228534, true }, + { 228504, true }, + { 228509, true }, + { 228514, true }, + { 228524, true }, + { 228532, true }, { 228541, true }, - { 228548, true }, - { 228555, true }, - { 228564, true }, - { 228585, true }, - { 228605, true }, - { 228629, true }, - { 228636, true }, + { 228549, true }, + { 228569, true }, + { 228576, true }, + { 228595, true }, + { 228602, true }, + { 228609, true }, + { 228616, true }, + { 228625, true }, { 228646, true }, - { 228659, true }, - { 228676, true }, - { 228696, true }, - { 228702, true }, - { 228709, true }, - { 228721, true }, - { 228734, true }, - { 228749, false }, - { 228760, true }, - { 228771, true }, - { 228779, false }, - { 228798, true }, - { 228809, true }, - { 228820, true }, - { 228827, true }, - { 228838, true }, - { 228850, true }, - { 228869, true }, - { 228885, true }, - { 228897, true }, - { 228908, true }, - { 228921, true }, - { 228937, true }, - { 228951, true }, - { 228966, true }, - { 228981, true }, - { 228991, true }, - { 229001, true }, - { 229012, false }, - { 229022, true }, - { 229032, true }, - { 229043, true }, - { 229051, true }, - { 229059, true }, - { 229069, true }, - { 229078, false }, - { 229092, true }, - { 229102, true }, - { 229113, true }, - { 229121, true }, - { 229133, true }, - { 229144, true }, - { 229155, true }, - { 229167, true }, - { 229177, true }, - { 229185, true }, - { 229192, true }, - { 229199, true }, - { 229206, true }, - { 229224, true }, - { 229250, true }, - { 229276, true }, - { 229299, true }, - { 229330, true }, - { 229341, true }, - { 229357, true }, - { 229369, true }, - { 229388, true }, - { 229412, true }, - { 229438, true }, - { 229461, true }, - { 229480, true }, - { 229505, true }, - { 229530, true }, - { 229554, true }, - { 229594, true }, - { 229624, true }, - { 229635, true }, - { 229654, true }, + { 228666, true }, + { 228690, true }, + { 228697, true }, + { 228707, true }, + { 228720, true }, + { 228737, true }, + { 228757, true }, + { 228763, true }, + { 228770, true }, + { 228782, true }, + { 228795, true }, + { 228810, false }, + { 228821, true }, + { 228832, true }, + { 228840, false }, + { 228859, true }, + { 228870, true }, + { 228881, true }, + { 228888, true }, + { 228899, true }, + { 228911, true }, + { 228930, true }, + { 228946, true }, + { 228958, true }, + { 228969, true }, + { 228982, true }, + { 228998, true }, + { 229012, true }, + { 229027, true }, + { 229042, true }, + { 229052, true }, + { 229062, true }, + { 229073, false }, + { 229083, true }, + { 229093, true }, + { 229104, true }, + { 229112, true }, + { 229120, true }, + { 229130, true }, + { 229139, false }, + { 229153, true }, + { 229163, true }, + { 229174, true }, + { 229182, true }, + { 229194, true }, + { 229205, true }, + { 229216, true }, + { 229228, true }, + { 229238, true }, + { 229246, true }, + { 229253, true }, + { 229260, true }, + { 229267, true }, + { 229285, true }, + { 229311, true }, + { 229337, true }, + { 229360, true }, + { 229391, true }, + { 229402, true }, + { 229418, true }, + { 229430, true }, + { 229449, true }, + { 229473, true }, + { 229499, true }, + { 229522, true }, + { 229541, true }, + { 229566, true }, + { 229591, true }, + { 229615, true }, + { 229655, true }, { 229685, true }, - { 229696, false }, - { 229717, true }, - { 229735, true }, - { 229753, true }, - { 229771, true }, - { 229808, true }, - { 229831, true }, - { 229859, true }, - { 229874, true }, - { 229901, true }, - { 229915, true }, - { 229937, true }, + { 229696, true }, + { 229715, true }, + { 229746, true }, + { 229757, false }, + { 229778, true }, + { 229796, true }, + { 229814, true }, + { 229832, true }, + { 229869, true }, + { 229892, true }, + { 229920, true }, + { 229935, true }, { 229962, true }, - { 230004, true }, + { 229976, true }, + { 229998, true }, { 230023, true }, - { 230046, true }, - { 230062, true }, - { 230096, true }, - { 230120, true }, - { 230127, false }, - { 230134, true }, - { 230140, true }, - { 230151, true }, - { 230161, true }, - { 230171, true }, - { 230178, true }, - { 230185, true }, - { 230198, true }, - { 230205, true }, - { 230214, true }, - { 230228, true }, - { 230238, true }, - { 230248, true }, - { 230261, true }, - { 230274, true }, - { 230281, true }, - { 230288, true }, - { 230297, true }, - { 230304, true }, - { 230315, true }, - { 230324, true }, + { 230065, true }, + { 230084, true }, + { 230107, true }, + { 230123, true }, + { 230157, true }, + { 230181, true }, + { 230188, false }, + { 230195, true }, + { 230201, true }, + { 230212, true }, + { 230222, true }, + { 230232, true }, + { 230239, true }, + { 230246, true }, + { 230259, true }, + { 230266, true }, + { 230275, true }, + { 230289, true }, + { 230299, true }, + { 230309, true }, + { 230322, true }, { 230335, true }, - { 230351, true }, - { 230360, true }, - { 230373, true }, - { 230380, true }, - { 230390, true }, - { 230398, true }, - { 230409, true }, - { 230418, true }, - { 230428, true }, - { 230443, true }, - { 230453, true }, - { 230462, true }, - { 230482, true }, - { 230493, true }, + { 230342, true }, + { 230349, true }, + { 230358, true }, + { 230365, true }, + { 230376, true }, + { 230385, true }, + { 230396, true }, + { 230412, true }, + { 230421, true }, + { 230434, true }, + { 230441, true }, + { 230451, true }, + { 230459, true }, + { 230470, true }, + { 230479, true }, + { 230489, true }, { 230504, true }, - { 230518, true }, - { 230527, true }, + { 230514, true }, + { 230523, true }, { 230543, true }, - { 230550, true }, - { 230562, true }, - { 230572, true }, + { 230554, true }, + { 230565, true }, { 230579, true }, - { 230591, false }, - { 230602, true }, - { 230612, false }, - { 230624, true }, - { 230638, true }, - { 230651, true }, - { 230667, true }, - { 230682, true }, - { 230694, true }, - { 230707, false }, - { 230717, true }, - { 230729, true }, - { 230742, true }, - { 230764, true }, - { 230776, true }, - { 230788, true }, - { 230798, true }, - { 230806, true }, - { 230815, true }, - { 230827, true }, - { 230837, false }, - { 230845, true }, - { 230855, true }, - { 230864, true }, - { 230884, true }, - { 230899, true }, - { 230915, false }, - { 230930, false }, - { 230943, true }, - { 230957, true }, - { 230967, false }, - { 230976, true }, - { 230983, true }, - { 230999, true }, - { 231006, true }, - { 231016, true }, - { 231025, true }, - { 231033, true }, - { 231042, true }, - { 231053, true }, + { 230588, true }, + { 230604, true }, + { 230611, true }, + { 230623, true }, + { 230633, true }, + { 230640, true }, + { 230652, false }, + { 230663, true }, + { 230673, false }, + { 230685, true }, + { 230699, true }, + { 230712, true }, + { 230728, true }, + { 230743, true }, + { 230755, true }, + { 230768, false }, + { 230778, true }, + { 230790, true }, + { 230803, true }, + { 230825, true }, + { 230837, true }, + { 230849, true }, + { 230859, true }, + { 230867, true }, + { 230876, true }, + { 230888, true }, + { 230898, false }, + { 230906, true }, + { 230916, true }, + { 230925, true }, + { 230945, true }, + { 230960, true }, + { 230976, false }, + { 230991, false }, + { 231004, true }, + { 231018, true }, + { 231028, false }, + { 231037, true }, + { 231044, true }, + { 231060, true }, { 231067, true }, - { 231078, true }, - { 231100, true }, - { 231115, true }, - { 231122, true }, - { 231133, true }, - { 231141, true }, - { 231151, true }, - { 231164, true }, - { 231182, true }, - { 231194, false }, - { 231203, true }, - { 231217, true }, - { 231233, true }, - { 231257, true }, - { 231275, true }, - { 231286, true }, - { 231298, false }, - { 231313, true }, - { 231323, true }, - { 231335, true }, - { 231355, false }, - { 231365, true }, - { 231389, true }, - { 231400, true }, - { 231410, true }, - { 231422, true }, - { 231435, true }, - { 231452, true }, - { 231467, true }, - { 231480, true }, - { 231494, true }, - { 231509, true }, - { 231524, true }, - { 231536, true }, - { 231548, true }, - { 231562, true }, - { 231574, true }, + { 231077, true }, + { 231086, true }, + { 231094, true }, + { 231103, true }, + { 231114, true }, + { 231128, true }, + { 231139, true }, + { 231161, true }, + { 231176, true }, + { 231183, true }, + { 231194, true }, + { 231202, true }, + { 231212, true }, + { 231225, true }, + { 231243, true }, + { 231255, false }, + { 231264, true }, + { 231278, true }, + { 231294, true }, + { 231318, true }, + { 231336, true }, + { 231347, true }, + { 231359, false }, + { 231374, true }, + { 231384, true }, + { 231396, true }, + { 231416, false }, + { 231426, true }, + { 231450, true }, + { 231461, true }, + { 231471, true }, + { 231483, true }, + { 231496, true }, + { 231513, true }, + { 231528, true }, + { 231541, true }, + { 231555, true }, + { 231570, true }, { 231585, true }, - { 231595, true }, - { 231607, true }, - { 231620, true }, - { 231640, true }, - { 231658, true }, - { 231671, true }, - { 231686, true }, + { 231597, true }, + { 231609, true }, + { 231623, true }, + { 231635, true }, + { 231646, true }, + { 231656, true }, + { 231668, true }, + { 231681, true }, { 231701, true }, - { 231713, true }, - { 231722, true }, - { 231733, true }, - { 231755, true }, - { 231771, true }, - { 231791, true }, - { 231800, true }, - { 231808, true }, + { 231719, true }, + { 231732, true }, + { 231747, true }, + { 231762, true }, + { 231774, true }, + { 231783, true }, + { 231794, true }, { 231816, true }, - { 231829, true }, - { 231841, true }, - { 231856, true }, - { 231866, true }, + { 231832, true }, + { 231852, true }, + { 231861, true }, + { 231869, true }, { 231877, true }, - { 231893, true }, + { 231890, true }, { 231902, true }, - { 231911, true }, - { 231920, true }, - { 231935, true }, + { 231917, true }, + { 231927, true }, + { 231938, true }, { 231954, true }, - { 231967, true }, - { 231980, true }, - { 231989, true }, - { 232000, true }, - { 232014, true }, - { 232026, true }, - { 232044, true }, - { 232057, true }, - { 232065, true }, - { 232079, true }, - { 232091, true }, - { 232101, true }, - { 232108, true }, - { 232116, true }, - { 232124, true }, - { 232134, true }, - { 232143, true }, - { 232166, true }, - { 232179, true }, - { 232184, true }, - { 232194, true }, - { 232201, true }, - { 232208, true }, - { 232220, false }, - { 232239, true }, - { 232250, true }, - { 232266, true }, - { 232281, true }, - { 232296, true }, - { 232309, true }, - { 232322, true }, - { 232330, true }, - { 232340, true }, - { 232350, true }, - { 232365, true }, - { 232379, true }, - { 232407, true }, - { 232420, true }, - { 232433, true }, - { 232450, true }, - { 232458, true }, - { 232467, true }, - { 232480, true }, - { 232492, true }, - { 232499, true }, - { 232529, true }, - { 232540, true }, - { 232558, true }, - { 232566, true }, + { 231963, true }, + { 231972, true }, + { 231981, true }, + { 231996, true }, + { 232015, true }, + { 232028, true }, + { 232041, true }, + { 232050, true }, + { 232061, true }, + { 232075, true }, + { 232087, true }, + { 232105, true }, + { 232118, true }, + { 232126, true }, + { 232140, true }, + { 232152, true }, + { 232162, true }, + { 232169, true }, + { 232177, true }, + { 232185, true }, + { 232195, true }, + { 232204, true }, + { 232227, true }, + { 232240, true }, + { 232245, true }, + { 232255, true }, + { 232262, true }, + { 232269, true }, + { 232281, false }, + { 232300, true }, + { 232311, true }, + { 232327, true }, + { 232342, true }, + { 232357, true }, + { 232370, true }, + { 232383, true }, + { 232391, true }, + { 232401, true }, + { 232411, true }, + { 232426, true }, + { 232440, true }, + { 232468, true }, + { 232481, true }, + { 232494, true }, + { 232511, true }, + { 232519, true }, + { 232528, true }, + { 232541, true }, + { 232553, true }, + { 232560, true }, { 232590, true }, - { 232600, true }, - { 232612, true }, - { 232623, true }, - { 232635, true }, - { 232653, true }, - { 232662, true }, + { 232601, true }, + { 232619, true }, + { 232627, true }, + { 232651, true }, + { 232661, true }, { 232673, true }, - { 232685, true }, - { 232693, true }, - { 232700, true }, - { 232708, true }, - { 232719, true }, - { 232729, true }, - { 232738, true }, - { 232764, true }, - { 232776, true }, - { 232785, true }, - { 232810, true }, - { 232830, true }, - { 232852, true }, - { 232863, true }, - { 232874, true }, - { 232886, true }, - { 232899, true }, - { 232914, true }, - { 232932, true }, - { 232945, true }, + { 232684, true }, + { 232696, true }, + { 232714, true }, + { 232723, true }, + { 232734, true }, + { 232746, true }, + { 232754, true }, + { 232761, true }, + { 232769, true }, + { 232780, true }, + { 232790, true }, + { 232799, true }, + { 232825, true }, + { 232837, true }, + { 232846, true }, + { 232871, true }, + { 232891, true }, + { 232913, true }, + { 232924, true }, + { 232935, true }, + { 232947, true }, { 232960, true }, - { 232976, true }, - { 232994, true }, - { 233008, true }, - { 233018, true }, - { 233030, true }, - { 233038, true }, - { 233050, true }, - { 233062, true }, - { 233073, true }, - { 233085, true }, - { 233098, true }, - { 233109, true }, - { 233122, true }, + { 232975, true }, + { 232993, true }, + { 233006, true }, + { 233021, true }, + { 233037, true }, + { 233055, true }, + { 233069, true }, + { 233079, true }, + { 233091, true }, + { 233099, true }, + { 233111, true }, + { 233123, true }, { 233134, true }, - { 233146, false }, - { 233156, true }, - { 233167, true }, - { 233182, true }, + { 233146, true }, + { 233159, true }, + { 233170, true }, + { 233183, true }, { 233195, true }, - { 233206, true }, - { 233216, true }, - { 233223, true }, - { 233237, true }, - { 233249, true }, - { 233261, true }, + { 233207, false }, + { 233217, true }, + { 233228, true }, + { 233243, true }, + { 233256, true }, + { 233267, true }, { 233277, true }, - { 233292, true }, - { 233305, true }, - { 233317, true }, - { 233330, true }, - { 233345, true }, - { 233352, true }, - { 233367, false }, - { 233380, true }, - { 233392, true }, - { 233401, true }, + { 233284, true }, + { 233298, true }, + { 233310, true }, + { 233322, true }, + { 233338, true }, + { 233353, true }, + { 233366, true }, + { 233378, true }, + { 233391, true }, + { 233406, true }, { 233413, true }, - { 233421, true }, - { 233436, true }, - { 233451, true }, - { 233460, false }, - { 233468, true }, - { 233479, true }, - { 233487, true }, - { 233498, true }, - { 233509, true }, - { 233524, true }, - { 233541, true }, - { 233555, false }, - { 233567, true }, - { 233586, true }, - { 233604, true }, - { 233615, true }, - { 233635, true }, - { 233651, true }, - { 233666, true }, - { 233678, true }, - { 233688, true }, - { 233695, true }, - { 233706, true }, - { 233716, true }, - { 233722, true }, - { 233732, true }, - { 233747, true }, - { 233759, true }, - { 233771, true }, - { 233786, true }, - { 233797, true }, - { 233810, true }, - { 233817, true }, - { 233828, true }, - { 233839, true }, - { 233850, true }, - { 233861, true }, - { 233876, true }, + { 233428, false }, + { 233441, true }, + { 233453, true }, + { 233462, true }, + { 233474, true }, + { 233482, true }, + { 233497, true }, + { 233512, true }, + { 233521, false }, + { 233529, true }, + { 233540, true }, + { 233548, true }, + { 233559, true }, + { 233570, true }, + { 233585, true }, + { 233602, true }, + { 233616, false }, + { 233628, true }, + { 233647, true }, + { 233665, true }, + { 233676, true }, + { 233696, true }, + { 233712, true }, + { 233727, true }, + { 233739, true }, + { 233749, true }, + { 233756, true }, + { 233767, true }, + { 233777, true }, + { 233783, true }, + { 233793, true }, + { 233808, true }, + { 233820, true }, + { 233832, true }, + { 233847, true }, + { 233858, true }, + { 233871, true }, + { 233878, true }, + { 233889, true }, { 233900, true }, - { 233918, true }, - { 233931, true }, - { 233942, true }, - { 233957, true }, - { 233973, true }, - { 233982, true }, - { 233993, true }, - { 234009, true }, - { 234033, true }, - { 234048, true }, - { 234059, true }, - { 234069, true }, - { 234077, true }, - { 234094, true }, - { 234113, true }, - { 234124, true }, - { 234134, true }, - { 234144, true }, - { 234155, true }, - { 234163, true }, - { 234177, false }, - { 234184, true }, - { 234196, true }, - { 234205, true }, - { 234219, true }, - { 234227, true }, - { 234240, true }, - { 234254, true }, - { 234275, true }, - { 234289, true }, - { 234296, true }, - { 234307, true }, - { 234317, true }, - { 234327, true }, - { 234340, true }, - { 234348, true }, - { 234357, true }, - { 234370, true }, - { 234383, true }, - { 234396, true }, - { 234406, true }, - { 234417, true }, - { 234427, true }, - { 234436, true }, - { 234446, true }, + { 233911, true }, + { 233922, true }, + { 233937, true }, + { 233961, true }, + { 233979, true }, + { 233992, true }, + { 234003, true }, + { 234018, true }, + { 234034, true }, + { 234043, true }, + { 234054, true }, + { 234078, true }, + { 234093, true }, + { 234104, true }, + { 234114, true }, + { 234122, true }, + { 234139, true }, + { 234158, true }, + { 234169, true }, + { 234179, true }, + { 234189, true }, + { 234200, true }, + { 234208, true }, + { 234222, false }, + { 234229, true }, + { 234241, true }, + { 234250, true }, + { 234264, true }, + { 234272, true }, + { 234285, true }, + { 234299, true }, + { 234320, true }, + { 234334, true }, + { 234341, true }, + { 234352, true }, + { 234362, true }, + { 234372, true }, + { 234385, true }, + { 234393, true }, + { 234402, true }, + { 234415, true }, + { 234428, true }, + { 234441, true }, + { 234451, true }, + { 234462, true }, + { 234472, true }, + { 234481, true }, + { 234491, true }, }; From 7d72c6ef47a98796657c713d125cc25b1a38d746 Mon Sep 17 00:00:00 2001 From: ffxbld Date: Thu, 9 Feb 2017 07:37:08 -0800 Subject: [PATCH 107/112] No bug, Automated HPKP preload list update from host bld-linux64-spot-387 - 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 b889a0bedde8..a91185d1de37 100644 --- a/security/manager/ssl/StaticHPKPins.h +++ b/security/manager/ssl/StaticHPKPins.h @@ -1155,4 +1155,4 @@ static const TransportSecurityPreload kPublicKeyPinningPreloadList[] = { static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1495033969959000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1495121617234000); From 28a131c59fa4aaa40e172570695715e3db4c87f8 Mon Sep 17 00:00:00 2001 From: ffxbld Date: Thu, 9 Feb 2017 07:37:11 -0800 Subject: [PATCH 108/112] No bug, Automated blocklist update from host bld-linux64-spot-387 - a=blocklist-update --- browser/app/blocklist.xml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/browser/app/blocklist.xml b/browser/app/blocklist.xml index b0e0d71c11af..3bd28d0b6ff9 100644 --- a/browser/app/blocklist.xml +++ b/browser/app/blocklist.xml @@ -2143,12 +2143,16 @@ + + https://get.adobe.com/flashplayer/ - + + + https://get.adobe.com/flashplayer/ @@ -2202,7 +2206,9 @@ + + https://get.adobe.com/flashplayer/ @@ -2459,8 +2465,10 @@ https://get.adobe.com/flashplayer/ - + + + https://get.adobe.com/flashplayer/ @@ -2571,8 +2579,10 @@ - + + + https://get.adobe.com/flashplayer/ @@ -2640,8 +2650,10 @@ https://get.adobe.com/flashplayer/ - + + + https://get.adobe.com/flashplayer/ @@ -2810,7 +2822,9 @@ + + https://get.adobe.com/flashplayer/ @@ -3006,8 +3020,10 @@ https://get.adobe.com/reader - + + + https://get.adobe.com/flashplayer/ From 692e7261b9de1348fc54585fcbf135da6e23ad08 Mon Sep 17 00:00:00 2001 From: Jan de Mooij Date: Thu, 9 Feb 2017 19:25:43 +0100 Subject: [PATCH 109/112] Bug 1337871 - Clean up and optimize code for entering/leaving Baseline stub frames. r=evilpie --- js/src/jit/BaselineCacheIRCompiler.cpp | 204 ++++++++---------- js/src/jit/CacheIRCompiler.h | 1 + js/src/jit/SharedIC.cpp | 23 +- js/src/jit/arm/SharedICHelpers-arm.h | 21 -- js/src/jit/arm64/SharedICHelpers-arm64.h | 12 -- .../mips-shared/SharedICHelpers-mips-shared.h | 21 -- js/src/jit/none/SharedICHelpers-none.h | 2 - js/src/jit/x64/SharedICHelpers-x64.h | 50 +++-- js/src/jit/x86/SharedICHelpers-x86.h | 52 ++--- 9 files changed, 143 insertions(+), 243 deletions(-) diff --git a/js/src/jit/BaselineCacheIRCompiler.cpp b/js/src/jit/BaselineCacheIRCompiler.cpp index 3a89cafce477..bbea0d3a0868 100644 --- a/js/src/jit/BaselineCacheIRCompiler.cpp +++ b/js/src/jit/BaselineCacheIRCompiler.cpp @@ -32,10 +32,12 @@ CacheRegisterAllocator::addressOf(MacroAssembler& masm, BaselineFrameSlot slot) // BaselineCacheIRCompiler compiles CacheIR to BaselineIC native code. class MOZ_RAII BaselineCacheIRCompiler : public CacheIRCompiler { +#ifdef DEBUG // Some Baseline IC stubs can be used in IonMonkey through SharedStubs. // Those stubs have different machine code, so we need to track whether // we're compiling for Baseline or Ion. ICStubEngine engine_; +#endif uint32_t stubDataOffset_; bool inStubFrame_; @@ -43,8 +45,8 @@ class MOZ_RAII BaselineCacheIRCompiler : public CacheIRCompiler MOZ_MUST_USE bool callVM(MacroAssembler& masm, const VMFunction& fun); - MOZ_MUST_USE bool callTypeUpdateIC(AutoStubFrame& stubFrame, Register obj, ValueOperand val, - Register scratch, LiveGeneralRegisterSet saveRegs); + MOZ_MUST_USE bool callTypeUpdateIC(Register obj, ValueOperand val, Register scratch, + LiveGeneralRegisterSet saveRegs); MOZ_MUST_USE bool emitStoreSlotShared(bool isFixed); MOZ_MUST_USE bool emitAddAndStoreSlotShared(CacheOp op); @@ -55,7 +57,9 @@ class MOZ_RAII BaselineCacheIRCompiler : public CacheIRCompiler BaselineCacheIRCompiler(JSContext* cx, const CacheIRWriter& writer, ICStubEngine engine, uint32_t stubDataOffset) : CacheIRCompiler(cx, writer, Mode::Baseline), +#ifdef DEBUG engine_(engine), +#endif stubDataOffset_(stubDataOffset), inStubFrame_(false), makesGCCalls_(false) @@ -84,44 +88,35 @@ class MOZ_RAII BaselineCacheIRCompiler : public CacheIRCompiler enum class CallCanGC { CanGC, CanNotGC }; -// Instructions that have to perform a callVM require a stub frame. Use -// AutoStubFrame before allocating any registers, then call its enter() and -// leave() methods to enter/leave the stub frame. +// Instructions that have to perform a callVM require a stub frame. Call its +// enter() and leave() methods to enter/leave the stub frame. class MOZ_RAII AutoStubFrame { BaselineCacheIRCompiler& compiler; #ifdef DEBUG uint32_t framePushedAtEnterStubFrame_; #endif - Maybe tail; AutoStubFrame(const AutoStubFrame&) = delete; void operator=(const AutoStubFrame&) = delete; public: explicit AutoStubFrame(BaselineCacheIRCompiler& compiler) - : compiler(compiler), + : compiler(compiler) #ifdef DEBUG - framePushedAtEnterStubFrame_(0), + , framePushedAtEnterStubFrame_(0) #endif - tail() - { - // We use ICTailCallReg when entering the stub frame, so ensure it's not - // used for something else. - if (compiler.allocator.isAllocatable(ICTailCallReg)) - tail.emplace(compiler.allocator, compiler.masm, ICTailCallReg); - } + { } void enter(MacroAssembler& masm, Register scratch, CallCanGC canGC = CallCanGC::CanGC) { MOZ_ASSERT(compiler.allocator.stackPushed() == 0); - if (compiler.engine_ == ICStubEngine::Baseline) { - EmitBaselineEnterStubFrame(masm, scratch); + MOZ_ASSERT(compiler.engine_ == ICStubEngine::Baseline); + + EmitBaselineEnterStubFrame(masm, scratch); + #ifdef DEBUG - framePushedAtEnterStubFrame_ = masm.framePushed(); + framePushedAtEnterStubFrame_ = masm.framePushed(); #endif - } else { - EmitIonEnterStubFrame(masm, scratch); - } MOZ_ASSERT(!compiler.inStubFrame_); compiler.inStubFrame_ = true; @@ -132,17 +127,13 @@ class MOZ_RAII AutoStubFrame MOZ_ASSERT(compiler.inStubFrame_); compiler.inStubFrame_ = false; - if (compiler.engine_ == ICStubEngine::Baseline) { #ifdef DEBUG - masm.setFramePushed(framePushedAtEnterStubFrame_); - if (calledIntoIon) - masm.adjustFrame(sizeof(intptr_t)); // Calls into ion have this extra. + masm.setFramePushed(framePushedAtEnterStubFrame_); + if (calledIntoIon) + masm.adjustFrame(sizeof(intptr_t)); // Calls into ion have this extra. #endif - EmitBaselineLeaveStubFrame(masm, calledIntoIon); - } else { - EmitIonLeaveStubFrame(masm); - } + EmitBaselineLeaveStubFrame(masm, calledIntoIon); } #ifdef DEBUG @@ -162,10 +153,9 @@ BaselineCacheIRCompiler::callVM(MacroAssembler& masm, const VMFunction& fun) return false; MOZ_ASSERT(fun.expectTailCall == NonTailCall); - if (engine_ == ICStubEngine::Baseline) - EmitBaselineCallVM(code, masm); - else - EmitIonCallVM(code, fun.explicitStackSlots(), masm); + MOZ_ASSERT(engine_ == ICStubEngine::Baseline); + + EmitBaselineCallVM(code, masm); return true; } @@ -377,8 +367,6 @@ BaselineCacheIRCompiler::emitCallScriptedGetterResult() { MOZ_ASSERT(engine_ == ICStubEngine::Baseline); - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); Address getterAddr(stubAddress(reader.stubOffset())); @@ -400,6 +388,7 @@ BaselineCacheIRCompiler::emitCallScriptedGetterResult() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); // Align the stack such that the JitFrameLayout is aligned on @@ -444,8 +433,6 @@ static const VMFunction CallNativeGetterInfo = bool BaselineCacheIRCompiler::emitCallNativeGetterResult() { - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); Address getterAddr(stubAddress(reader.stubOffset())); @@ -453,6 +440,7 @@ BaselineCacheIRCompiler::emitCallNativeGetterResult() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); // Load the callee in the scratch register. @@ -475,8 +463,6 @@ static const VMFunction ProxyGetPropertyInfo = bool BaselineCacheIRCompiler::emitCallProxyGetResult() { - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); Address idAddr(stubAddress(reader.stubOffset())); @@ -484,6 +470,7 @@ BaselineCacheIRCompiler::emitCallProxyGetResult() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); // Load the jsid in the scratch register. @@ -506,8 +493,6 @@ static const VMFunction ProxyGetPropertyByValueInfo = bool BaselineCacheIRCompiler::emitCallProxyGetByValueResult() { - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); ValueOperand idVal = allocator.useValueRegister(masm, reader.valOperandId()); @@ -515,6 +500,7 @@ BaselineCacheIRCompiler::emitCallProxyGetByValueResult() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); masm.Push(idVal); @@ -671,8 +657,8 @@ BaselineCacheIRCompiler::emitLoadEnvironmentDynamicSlotResult() } bool -BaselineCacheIRCompiler::callTypeUpdateIC(AutoStubFrame& stubFrame, Register obj, ValueOperand val, - Register scratch, LiveGeneralRegisterSet saveRegs) +BaselineCacheIRCompiler::callTypeUpdateIC(Register obj, ValueOperand val, Register scratch, + LiveGeneralRegisterSet saveRegs) { // Ensure the stack is empty for the VM call below. allocator.discardStack(masm); @@ -703,6 +689,7 @@ BaselineCacheIRCompiler::callTypeUpdateIC(AutoStubFrame& stubFrame, Register obj Label done; masm.branch32(Assembler::Equal, scratch, Imm32(1), &done); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch, CallCanGC::CanNotGC); masm.PushRegsInMask(saveRegs); @@ -734,36 +721,35 @@ BaselineCacheIRCompiler::emitStoreSlotShared(bool isFixed) // Allocate the fixed registers first. These need to be fixed for // callTypeUpdateIC. - AutoStubFrame stubFrame(*this); - AutoScratchRegister scratch(allocator, masm, R1.scratchReg()); + AutoScratchRegister scratch1(allocator, masm, R1.scratchReg()); ValueOperand val = allocator.useFixedValueRegister(masm, reader.valOperandId(), R0); Register obj = allocator.useRegister(masm, objId); + Maybe scratch2; + if (!isFixed) + scratch2.emplace(allocator, masm); LiveGeneralRegisterSet saveRegs; saveRegs.add(obj); saveRegs.add(val); - if (!callTypeUpdateIC(stubFrame, obj, val, scratch, saveRegs)) + if (!callTypeUpdateIC(obj, val, scratch1, saveRegs)) return false; - masm.load32(offsetAddr, scratch); + masm.load32(offsetAddr, scratch1); if (isFixed) { - BaseIndex slot(obj, scratch, TimesOne); + BaseIndex slot(obj, scratch1, TimesOne); EmitPreBarrier(masm, slot, MIRType::Value); masm.storeValue(val, slot); } else { - // To avoid running out of registers on x86, use ICStubReg as scratch. - // We don't need it anymore. - Register slots = ICStubReg; - masm.loadPtr(Address(obj, NativeObject::offsetOfSlots()), slots); - BaseIndex slot(slots, scratch, TimesOne); + masm.loadPtr(Address(obj, NativeObject::offsetOfSlots()), scratch2.ref()); + BaseIndex slot(scratch2.ref(), scratch1, TimesOne); EmitPreBarrier(masm, slot, MIRType::Value); masm.storeValue(val, slot); } if (cx_->nursery().exists()) - BaselineEmitPostWriteBarrierSlot(masm, obj, val, scratch, LiveGeneralRegisterSet(), cx_); + BaselineEmitPostWriteBarrierSlot(masm, obj, val, scratch1, LiveGeneralRegisterSet(), cx_); return true; } @@ -787,11 +773,12 @@ BaselineCacheIRCompiler::emitAddAndStoreSlotShared(CacheOp op) // Allocate the fixed registers first. These need to be fixed for // callTypeUpdateIC. - AutoStubFrame stubFrame(*this); - AutoScratchRegister scratch(allocator, masm, R1.scratchReg()); + AutoScratchRegister scratch1(allocator, masm, R1.scratchReg()); ValueOperand val = allocator.useFixedValueRegister(masm, reader.valOperandId(), R0); Register obj = allocator.useRegister(masm, objId); + AutoScratchRegister scratch2(allocator, masm); + bool changeGroup = reader.readBool(); Address newGroupAddr = stubAddress(reader.stubOffset()); Address newShapeAddr = stubAddress(reader.stubOffset()); @@ -810,32 +797,28 @@ BaselineCacheIRCompiler::emitAddAndStoreSlotShared(CacheOp op) AllocatableRegisterSet regs(RegisterSet::Volatile()); LiveRegisterSet save(regs.asLiveSet()); - // Use ICStubReg as second scratch. - if (!save.has(ICStubReg)) - save.add(ICStubReg); - masm.PushRegsInMask(save); - masm.setupUnalignedABICall(scratch); - masm.loadJSContext(scratch); - masm.passABIArg(scratch); + masm.setupUnalignedABICall(scratch1); + masm.loadJSContext(scratch1); + masm.passABIArg(scratch1); masm.passABIArg(obj); - masm.load32(numNewSlotsAddr, ICStubReg); - masm.passABIArg(ICStubReg); + masm.load32(numNewSlotsAddr, scratch2); + masm.passABIArg(scratch2); masm.callWithABI(JS_FUNC_TO_DATA_PTR(void*, NativeObject::growSlotsDontReportOOM)); - masm.mov(ReturnReg, scratch); + masm.mov(ReturnReg, scratch1); LiveRegisterSet ignore; - ignore.add(scratch); + ignore.add(scratch1); masm.PopRegsInMaskIgnore(save, ignore); - masm.branchIfFalseBool(scratch, failure->label()); + masm.branchIfFalseBool(scratch1, failure->label()); } LiveGeneralRegisterSet saveRegs; saveRegs.add(obj); saveRegs.add(val); - if (!callTypeUpdateIC(stubFrame, obj, val, scratch, saveRegs)) + if (!callTypeUpdateIC(obj, val, scratch1, saveRegs)) return false; if (changeGroup) { @@ -843,47 +826,44 @@ BaselineCacheIRCompiler::emitAddAndStoreSlotShared(CacheOp op) // per the acquired properties analysis. Only change the group if the // old group still has a newScript. This only applies to PlainObjects. Label noGroupChange; - masm.loadPtr(Address(obj, JSObject::offsetOfGroup()), scratch); + masm.loadPtr(Address(obj, JSObject::offsetOfGroup()), scratch1); masm.branchPtr(Assembler::Equal, - Address(scratch, ObjectGroup::offsetOfAddendum()), + Address(scratch1, ObjectGroup::offsetOfAddendum()), ImmWord(0), &noGroupChange); // Reload the new group from the cache. - masm.loadPtr(newGroupAddr, scratch); + masm.loadPtr(newGroupAddr, scratch1); Address groupAddr(obj, JSObject::offsetOfGroup()); EmitPreBarrier(masm, groupAddr, MIRType::ObjectGroup); - masm.storePtr(scratch, groupAddr); + masm.storePtr(scratch1, groupAddr); masm.bind(&noGroupChange); } // Update the object's shape. Address shapeAddr(obj, ShapedObject::offsetOfShape()); - masm.loadPtr(newShapeAddr, scratch); + masm.loadPtr(newShapeAddr, scratch1); EmitPreBarrier(masm, shapeAddr, MIRType::Shape); - masm.storePtr(scratch, shapeAddr); + masm.storePtr(scratch1, shapeAddr); // Perform the store. No pre-barrier required since this is a new // initialization. - masm.load32(offsetAddr, scratch); + masm.load32(offsetAddr, scratch1); if (op == CacheOp::AddAndStoreFixedSlot) { - BaseIndex slot(obj, scratch, TimesOne); + BaseIndex slot(obj, scratch1, TimesOne); masm.storeValue(val, slot); } else { MOZ_ASSERT(op == CacheOp::AddAndStoreDynamicSlot || op == CacheOp::AllocateAndStoreDynamicSlot); - // To avoid running out of registers on x86, use ICStubReg as scratch. - // We don't need it anymore. - Register slots = ICStubReg; - masm.loadPtr(Address(obj, NativeObject::offsetOfSlots()), slots); - BaseIndex slot(slots, scratch, TimesOne); + masm.loadPtr(Address(obj, NativeObject::offsetOfSlots()), scratch2); + BaseIndex slot(scratch2, scratch1, TimesOne); masm.storeValue(val, slot); } if (cx_->nursery().exists()) - BaselineEmitPostWriteBarrierSlot(masm, obj, val, scratch, LiveGeneralRegisterSet(), cx_); + BaselineEmitPostWriteBarrierSlot(masm, obj, val, scratch1, LiveGeneralRegisterSet(), cx_); return true; } @@ -914,7 +894,6 @@ BaselineCacheIRCompiler::emitStoreUnboxedProperty() // Allocate the fixed registers first. These need to be fixed for // callTypeUpdateIC. - AutoStubFrame stubFrame(*this); AutoScratchRegister scratch(allocator, masm, R1.scratchReg()); ValueOperand val = allocator.useFixedValueRegister(masm, reader.valOperandId(), R0); @@ -925,7 +904,7 @@ BaselineCacheIRCompiler::emitStoreUnboxedProperty() LiveGeneralRegisterSet saveRegs; saveRegs.add(obj); saveRegs.add(val); - if (!callTypeUpdateIC(stubFrame, obj, val, scratch, saveRegs)) + if (!callTypeUpdateIC(obj, val, scratch, saveRegs)) return false; } @@ -954,18 +933,18 @@ BaselineCacheIRCompiler::emitStoreTypedObjectReferenceProperty() // Allocate the fixed registers first. These need to be fixed for // callTypeUpdateIC. - AutoStubFrame stubFrame(*this); AutoScratchRegister scratch1(allocator, masm, R1.scratchReg()); ValueOperand val = allocator.useFixedValueRegister(masm, reader.valOperandId(), R0); Register obj = allocator.useRegister(masm, objId); + AutoScratchRegister scratch2(allocator, masm); - // We don't need a type update IC if the property is always a string. + // We don't need a type update IC if the property is always a string.scratch if (type != ReferenceTypeDescr::TYPE_STRING) { LiveGeneralRegisterSet saveRegs; saveRegs.add(obj); saveRegs.add(val); - if (!callTypeUpdateIC(stubFrame, obj, val, scratch1, saveRegs)) + if (!callTypeUpdateIC(obj, val, scratch1, saveRegs)) return false; } @@ -974,10 +953,6 @@ BaselineCacheIRCompiler::emitStoreTypedObjectReferenceProperty() masm.addPtr(offsetAddr, scratch1); Address dest(scratch1, 0); - // To avoid running out of registers on x86, use ICStubReg as second - // scratch. It won't be used after this. - Register scratch2 = ICStubReg; - switch (type) { case ReferenceTypeDescr::TYPE_ANY: EmitPreBarrier(masm, dest, MIRType::Value); @@ -1043,8 +1018,6 @@ static const VMFunction CallNativeSetterInfo = bool BaselineCacheIRCompiler::emitCallNativeSetter() { - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); Address setterAddr(stubAddress(reader.stubOffset())); ValueOperand val = allocator.useValueRegister(masm, reader.valOperandId()); @@ -1053,6 +1026,7 @@ BaselineCacheIRCompiler::emitCallNativeSetter() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); // Load the callee in the scratch register. @@ -1072,31 +1046,30 @@ BaselineCacheIRCompiler::emitCallNativeSetter() bool BaselineCacheIRCompiler::emitCallScriptedSetter() { - AutoStubFrame stubFrame(*this); - - // We don't have many registers available on x86, so we use a single - // scratch register. - AutoScratchRegisterExcluding scratch(allocator, masm, ArgumentsRectifierReg); + AutoScratchRegisterExcluding scratch1(allocator, masm, ArgumentsRectifierReg); + AutoScratchRegister scratch2(allocator, masm); Register obj = allocator.useRegister(masm, reader.objOperandId()); Address setterAddr(stubAddress(reader.stubOffset())); ValueOperand val = allocator.useValueRegister(masm, reader.valOperandId()); - // First, ensure our setter is non-lazy and has JIT code. + // First, ensure our setter is non-lazy and has JIT code. This also loads + // the callee in scratch1. { FailurePath* failure; if (!addFailurePath(&failure)) return false; - masm.loadPtr(setterAddr, scratch); - masm.branchIfFunctionHasNoScript(scratch, failure->label()); - masm.loadPtr(Address(scratch, JSFunction::offsetOfNativeOrScript()), scratch); - masm.loadBaselineOrIonRaw(scratch, scratch, failure->label()); + masm.loadPtr(setterAddr, scratch1); + masm.branchIfFunctionHasNoScript(scratch1, failure->label()); + masm.loadPtr(Address(scratch1, JSFunction::offsetOfNativeOrScript()), scratch2); + masm.loadBaselineOrIonRaw(scratch2, scratch2, failure->label()); } allocator.discardStack(masm); - stubFrame.enter(masm, scratch); + AutoStubFrame stubFrame(*this); + stubFrame.enter(masm, scratch2); // Align the stack such that the JitFrameLayout is aligned on // JitStackAlignment. @@ -1109,37 +1082,35 @@ BaselineCacheIRCompiler::emitCallScriptedSetter() // Now that the object register is no longer needed, use it as second // scratch. - Register scratch2 = obj; EmitBaselineCreateStubFrameDescriptor(masm, scratch2, JitFrameLayout::Size()); masm.Push(Imm32(1)); // ActualArgc // Push callee. - masm.loadPtr(setterAddr, scratch); - masm.Push(scratch); + masm.Push(scratch1); // Push frame descriptor. masm.Push(scratch2); // Load callee->nargs in scratch2 and the JIT code in scratch. Label noUnderflow; - masm.load16ZeroExtend(Address(scratch, JSFunction::offsetOfNargs()), scratch2); - masm.loadPtr(Address(scratch, JSFunction::offsetOfNativeOrScript()), scratch); - masm.loadBaselineOrIonRaw(scratch, scratch, nullptr); + masm.load16ZeroExtend(Address(scratch1, JSFunction::offsetOfNargs()), scratch2); + masm.loadPtr(Address(scratch1, JSFunction::offsetOfNativeOrScript()), scratch1); + masm.loadBaselineOrIonRaw(scratch1, scratch1, nullptr); // Handle arguments underflow. masm.branch32(Assembler::BelowOrEqual, scratch2, Imm32(1), &noUnderflow); { // Call the arguments rectifier. - MOZ_ASSERT(ArgumentsRectifierReg != scratch); + MOZ_ASSERT(ArgumentsRectifierReg != scratch1); JitCode* argumentsRectifier = cx_->runtime()->jitRuntime()->getArgumentsRectifier(); - masm.movePtr(ImmGCPtr(argumentsRectifier), scratch); - masm.loadPtr(Address(scratch, JitCode::offsetOfCode()), scratch); + masm.movePtr(ImmGCPtr(argumentsRectifier), scratch1); + masm.loadPtr(Address(scratch1, JitCode::offsetOfCode()), scratch1); masm.movePtr(ImmWord(1), ArgumentsRectifierReg); } masm.bind(&noUnderflow); - masm.callJit(scratch); + masm.callJit(scratch1); stubFrame.leave(masm, true); return true; @@ -1152,8 +1123,6 @@ static const VMFunction SetArrayLengthInfo = bool BaselineCacheIRCompiler::emitCallSetArrayLength() { - AutoStubFrame stubFrame(*this); - Register obj = allocator.useRegister(masm, reader.objOperandId()); bool strict = reader.readBool(); ValueOperand val = allocator.useValueRegister(masm, reader.valOperandId()); @@ -1162,6 +1131,7 @@ BaselineCacheIRCompiler::emitCallSetArrayLength() allocator.discardStack(masm); + AutoStubFrame stubFrame(*this); stubFrame.enter(masm, scratch); masm.Push(Imm32(strict)); diff --git a/js/src/jit/CacheIRCompiler.h b/js/src/jit/CacheIRCompiler.h index 5f740153405c..2dff77559abc 100644 --- a/js/src/jit/CacheIRCompiler.h +++ b/js/src/jit/CacheIRCompiler.h @@ -355,6 +355,7 @@ class MOZ_RAII CacheRegisterAllocator void releaseRegister(Register reg) { MOZ_ASSERT(currentOpRegs_.has(reg)); availableRegs_.add(reg); + currentOpRegs_.take(reg); } void releaseValueRegister(ValueOperand reg) { #ifdef JS_NUNBOX32 diff --git a/js/src/jit/SharedIC.cpp b/js/src/jit/SharedIC.cpp index 047137cb0567..abf6297890e5 100644 --- a/js/src/jit/SharedIC.cpp +++ b/js/src/jit/SharedIC.cpp @@ -600,14 +600,11 @@ ICStubCompiler::callTypeUpdateIC(MacroAssembler& masm, uint32_t objectOffset) void ICStubCompiler::enterStubFrame(MacroAssembler& masm, Register scratch) { - if (engine_ == Engine::Baseline) { - EmitBaselineEnterStubFrame(masm, scratch); + MOZ_ASSERT(engine_ == Engine::Baseline); + EmitBaselineEnterStubFrame(masm, scratch); #ifdef DEBUG - framePushedAtEnterStubFrame_ = masm.framePushed(); + framePushedAtEnterStubFrame_ = masm.framePushed(); #endif - } else { - EmitIonEnterStubFrame(masm, scratch); - } MOZ_ASSERT(!inStubFrame_); inStubFrame_ = true; @@ -623,17 +620,13 @@ ICStubCompiler::leaveStubFrame(MacroAssembler& masm, bool calledIntoIon) MOZ_ASSERT(entersStubFrame_ && inStubFrame_); inStubFrame_ = false; - if (engine_ == Engine::Baseline) { + MOZ_ASSERT(engine_ == Engine::Baseline); #ifdef DEBUG - masm.setFramePushed(framePushedAtEnterStubFrame_); - if (calledIntoIon) - masm.adjustFrame(sizeof(intptr_t)); // Calls into ion have this extra. + masm.setFramePushed(framePushedAtEnterStubFrame_); + if (calledIntoIon) + masm.adjustFrame(sizeof(intptr_t)); // Calls into ion have this extra. #endif - - EmitBaselineLeaveStubFrame(masm, calledIntoIon); - } else { - EmitIonLeaveStubFrame(masm); - } + EmitBaselineLeaveStubFrame(masm, calledIntoIon); } void diff --git a/js/src/jit/arm/SharedICHelpers-arm.h b/js/src/jit/arm/SharedICHelpers-arm.h index c5464734d823..3329670c5950 100644 --- a/js/src/jit/arm/SharedICHelpers-arm.h +++ b/js/src/jit/arm/SharedICHelpers-arm.h @@ -199,20 +199,6 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) masm.checkStackAlignment(); } -inline void -EmitIonEnterStubFrame(MacroAssembler& masm, Register scratch) -{ - MOZ_ASSERT(ICTailCallReg == lr); - - // In arm the link register contains the return address, - // but in jit frames we expect it to be on the stack. As a result - // push the link register (which is actually part of the previous frame. - // Therefore using push instead of Push). - masm.push(ICTailCallReg); - - masm.Push(ICStubReg); -} - inline void EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) { @@ -240,13 +226,6 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) masm.Pop(scratch); } -inline void -EmitIonLeaveStubFrame(MacroAssembler& masm) -{ - masm.Pop(ICStubReg); - masm.pop(ICTailCallReg); // See EmitIonEnterStubFrame for explanation on pop/Pop. -} - inline void EmitStowICValues(MacroAssembler& masm, int values) { diff --git a/js/src/jit/arm64/SharedICHelpers-arm64.h b/js/src/jit/arm64/SharedICHelpers-arm64.h index 30f4a756826c..1639fcb36add 100644 --- a/js/src/jit/arm64/SharedICHelpers-arm64.h +++ b/js/src/jit/arm64/SharedICHelpers-arm64.h @@ -172,12 +172,6 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) masm.checkStackAlignment(); } -inline void -EmitIonEnterStubFrame(MacroAssembler& masm, Register scratch) -{ - MOZ_CRASH("Not implemented yet."); -} - inline void EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) { @@ -203,12 +197,6 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) masm.checkStackAlignment(); } -inline void -EmitIonLeaveStubFrame(MacroAssembler& masm) -{ - MOZ_CRASH("Not implemented yet."); -} - inline void EmitStowICValues(MacroAssembler& masm, int values) { diff --git a/js/src/jit/mips-shared/SharedICHelpers-mips-shared.h b/js/src/jit/mips-shared/SharedICHelpers-mips-shared.h index eefd8841e2b4..d9ccf3b93bd8 100644 --- a/js/src/jit/mips-shared/SharedICHelpers-mips-shared.h +++ b/js/src/jit/mips-shared/SharedICHelpers-mips-shared.h @@ -202,20 +202,6 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) masm.assertStackAlignment(sizeof(Value), 0); } -inline void -EmitIonEnterStubFrame(MacroAssembler& masm, Register scratch) -{ - MOZ_ASSERT(ICTailCallReg == ra); - - // In MIPS the ra register contains the return address, - // but in jit frames we expect it to be on the stack. As a result - // push the link register (which is actually part of the previous frame. - // Therefore using push instead of Push). - masm.push(ICTailCallReg); - - masm.Push(ICStubReg); -} - inline void EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) { @@ -245,13 +231,6 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) masm.addPtr(Imm32(STUB_FRAME_SIZE), StackPointer); } -inline void -EmitIonLeaveStubFrame(MacroAssembler& masm) -{ - masm.Pop(ICStubReg); - masm.pop(ICTailCallReg); // See EmitIonEnterStubFrame for explanation on pop/Pop. -} - inline void EmitStowICValues(MacroAssembler& masm, int values) { diff --git a/js/src/jit/none/SharedICHelpers-none.h b/js/src/jit/none/SharedICHelpers-none.h index 4e6f84b72dae..613eaef75799 100644 --- a/js/src/jit/none/SharedICHelpers-none.h +++ b/js/src/jit/none/SharedICHelpers-none.h @@ -26,9 +26,7 @@ inline void EmitBaselineCreateStubFrameDescriptor(MacroAssembler&, Register, uin inline void EmitBaselineCallVM(JitCode*, MacroAssembler&) { MOZ_CRASH(); } inline void EmitIonCallVM(JitCode*, size_t, MacroAssembler&) { MOZ_CRASH(); } inline void EmitBaselineEnterStubFrame(MacroAssembler&, Register) { MOZ_CRASH(); } -inline void EmitIonEnterStubFrame(MacroAssembler&, Register) { MOZ_CRASH(); } inline void EmitBaselineLeaveStubFrame(MacroAssembler&, bool v = false) { MOZ_CRASH(); } -inline void EmitIonLeaveStubFrame(MacroAssembler&) { MOZ_CRASH(); } inline void EmitStowICValues(MacroAssembler&, int) { MOZ_CRASH(); } inline void EmitUnstowICValues(MacroAssembler&, int, bool v = false) { MOZ_CRASH(); } inline void EmitCallTypeUpdateIC(MacroAssembler&, JitCode*, uint32_t) { MOZ_CRASH(); } diff --git a/js/src/jit/x64/SharedICHelpers-x64.h b/js/src/jit/x64/SharedICHelpers-x64.h index 27d2500f64a1..2a0e25f74b85 100644 --- a/js/src/jit/x64/SharedICHelpers-x64.h +++ b/js/src/jit/x64/SharedICHelpers-x64.h @@ -162,13 +162,23 @@ static const uint32_t STUB_FRAME_SAVED_STUB_OFFSET = sizeof(void*); inline void EmitBaselineEnterStubFrame(MacroAssembler& masm, Register) { - EmitRestoreTailCallReg(masm); - ScratchRegisterScope scratch(masm); - // Compute frame size. + // Compute frame size. Because the return address is still on the stack, + // this is: + // + // BaselineFrameReg + // + BaselineFrame::FramePointerOffset + // - BaselineStackReg + // - sizeof(return address) + // + // The two constants cancel each other out, so we can just calculate + // BaselineFrameReg - BaselineStackReg. + + static_assert(BaselineFrame::FramePointerOffset == sizeof(void*), + "FramePointerOffset must be the same as the return address size"); + masm.movq(BaselineFrameReg, scratch); - masm.addq(Imm32(BaselineFrame::FramePointerOffset), scratch); masm.subq(BaselineStackReg, scratch); masm.store32(scratch, Address(BaselineFrameReg, BaselineFrame::reverseOffsetOfFrameSize())); @@ -176,10 +186,12 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register) // Note: when making changes here, don't forget to update STUB_FRAME_SIZE // if needed. - // Push frame descriptor and return address. + // Push the return address that's currently on top of the stack. + masm.Push(Operand(BaselineStackReg, 0)); + + // Replace the original return address with the frame descriptor. masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS, BaselineStubFrameLayout::Size()); - masm.Push(scratch); - masm.Push(ICTailCallReg); + masm.storePtr(scratch, Address(BaselineStackReg, sizeof(uintptr_t))); // Save old frame pointer, stack pointer and stub reg. masm.Push(ICStubReg); @@ -187,13 +199,6 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register) masm.mov(BaselineStackReg, BaselineFrameReg); } -inline void -EmitIonEnterStubFrame(MacroAssembler& masm, Register) -{ - masm.loadPtr(Address(masm.getStackPointer(), 0), ICTailCallReg); - masm.Push(ICStubReg); -} - inline void EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) { @@ -213,18 +218,11 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) masm.Pop(BaselineFrameReg); masm.Pop(ICStubReg); - // Pop return address. - masm.Pop(ICTailCallReg); - - // Overwrite frame descriptor with return address, so that the stack matches - // the state before entering the stub frame. - masm.storePtr(ICTailCallReg, Address(BaselineStackReg, 0)); -} - -inline void -EmitIonLeaveStubFrame(MacroAssembler& masm) -{ - masm.Pop(ICStubReg); + // The return address is on top of the stack, followed by the frame + // descriptor. Use a pop instruction to overwrite the frame descriptor + // with the return address. Note that pop increments the stack pointer + // before computing the address. + masm.Pop(Operand(BaselineStackReg, 0)); } inline void diff --git a/js/src/jit/x86/SharedICHelpers-x86.h b/js/src/jit/x86/SharedICHelpers-x86.h index 684f9266f48d..323d4a1ae304 100644 --- a/js/src/jit/x86/SharedICHelpers-x86.h +++ b/js/src/jit/x86/SharedICHelpers-x86.h @@ -160,13 +160,21 @@ static const uint32_t STUB_FRAME_SAVED_STUB_OFFSET = sizeof(void*); inline void EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) { - MOZ_ASSERT(scratch != ICTailCallReg); + // Compute frame size. Because the return address is still on the stack, + // this is: + // + // BaselineFrameReg + // + BaselineFrame::FramePointerOffset + // - BaselineStackReg + // - sizeof(return address) + // + // The two constants cancel each other out, so we can just calculate + // BaselineFrameReg - BaselineStackReg. - EmitRestoreTailCallReg(masm); + static_assert(BaselineFrame::FramePointerOffset == sizeof(void*), + "FramePointerOffset must be the same as the return address size"); - // Compute frame size. masm.movl(BaselineFrameReg, scratch); - masm.addl(Imm32(BaselineFrame::FramePointerOffset), scratch); masm.subl(BaselineStackReg, scratch); masm.store32(scratch, Address(BaselineFrameReg, BaselineFrame::reverseOffsetOfFrameSize())); @@ -174,10 +182,12 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) // Note: when making changes here, don't forget to update STUB_FRAME_SIZE // if needed. - // Push frame descriptor and return address. + // Push the return address that's currently on top of the stack. + masm.Push(Operand(BaselineStackReg, 0)); + + // Replace the original return address with the frame descriptor. masm.makeFrameDescriptor(scratch, JitFrame_BaselineJS, BaselineStubFrameLayout::Size()); - masm.Push(scratch); - masm.Push(ICTailCallReg); + masm.storePtr(scratch, Address(BaselineStackReg, sizeof(uintptr_t))); // Save old frame pointer, stack pointer and stub reg. masm.Push(ICStubReg); @@ -185,15 +195,6 @@ EmitBaselineEnterStubFrame(MacroAssembler& masm, Register scratch) masm.mov(BaselineStackReg, BaselineFrameReg); } -inline void -EmitIonEnterStubFrame(MacroAssembler& masm, Register scratch) -{ - MOZ_ASSERT(scratch != ICTailCallReg); - - masm.loadPtr(Address(masm.getStackPointer(), 0), ICTailCallReg); - masm.Push(ICStubReg); -} - inline void EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) { @@ -202,7 +203,7 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) // If we performed a VM call, the descriptor has been popped already so // in that case we use the frame pointer. if (calledIntoIon) { - Register scratch = ICTailCallReg; + Register scratch = ICStubReg; masm.Pop(scratch); masm.shrl(Imm32(FRAMESIZE_SHIFT), scratch); masm.addl(scratch, BaselineStackReg); @@ -213,18 +214,11 @@ EmitBaselineLeaveStubFrame(MacroAssembler& masm, bool calledIntoIon = false) masm.Pop(BaselineFrameReg); masm.Pop(ICStubReg); - // Pop return address. - masm.Pop(ICTailCallReg); - - // Overwrite frame descriptor with return address, so that the stack matches - // the state before entering the stub frame. - masm.storePtr(ICTailCallReg, Address(BaselineStackReg, 0)); -} - -inline void -EmitIonLeaveStubFrame(MacroAssembler& masm) -{ - masm.Pop(ICStubReg); + // The return address is on top of the stack, followed by the frame + // descriptor. Use a pop instruction to overwrite the frame descriptor + // with the return address. Note that pop increments the stack pointer + // before computing the address. + masm.Pop(Operand(BaselineStackReg, 0)); } inline void From e84ea3a6847204e40aca3dc6f4ec9e69554d0b20 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Thu, 9 Feb 2017 21:22:40 +0100 Subject: [PATCH 110/112] Bug 605985 part 1 - Remove most default styling for checkbox and radio buttons and make the instrinsic size be zero for -moz-appearance:none checkbox/radios. r=dholbert --- layout/forms/nsFormControlFrame.cpp | 37 ++++++---------- layout/forms/nsFormControlFrame.h | 25 ++++++----- layout/style/res/forms.css | 65 +++++++++++++++++++++-------- 3 files changed, 73 insertions(+), 54 deletions(-) diff --git a/layout/forms/nsFormControlFrame.cpp b/layout/forms/nsFormControlFrame.cpp index d2dda1db5978..a31f2c541e19 100644 --- a/layout/forms/nsFormControlFrame.cpp +++ b/layout/forms/nsFormControlFrame.cpp @@ -49,7 +49,7 @@ nsFormControlFrame::GetMinISize(nsRenderingContext *aRenderingContext) { nscoord result; DISPLAY_MIN_WIDTH(this, result); - result = GetIntrinsicISize(); + result = StyleDisplay()->mAppearance == NS_THEME_NONE ? 0 : DefaultSize(); return result; } @@ -58,13 +58,13 @@ nsFormControlFrame::GetPrefISize(nsRenderingContext *aRenderingContext) { nscoord result; DISPLAY_PREF_WIDTH(this, result); - result = GetIntrinsicISize(); + result = StyleDisplay()->mAppearance == NS_THEME_NONE ? 0 : DefaultSize(); return result; } /* virtual */ LogicalSize -nsFormControlFrame::ComputeAutoSize(nsRenderingContext* aRenderingContext, +nsFormControlFrame::ComputeAutoSize(nsRenderingContext* aRC, WritingMode aWM, const LogicalSize& aCBSize, nscoord aAvailableISize, @@ -73,27 +73,16 @@ nsFormControlFrame::ComputeAutoSize(nsRenderingContext* aRenderingContext, const LogicalSize& aPadding, ComputeSizeFlags aFlags) { - const WritingMode wm = GetWritingMode(); - LogicalSize result(wm, GetIntrinsicISize(), GetIntrinsicBSize()); - return result.ConvertTo(aWM, wm); -} - -nscoord -nsFormControlFrame::GetIntrinsicISize() -{ - // Provide a reasonable default for sites that use an "auto" height. - // Note that if you change this, you should change the values in forms.css - // as well. This is the 13px default width minus the 2px default border. - return nsPresContext::CSSPixelsToAppUnits(13 - 2 * 2); -} - -nscoord -nsFormControlFrame::GetIntrinsicBSize() -{ - // Provide a reasonable default for sites that use an "auto" height. - // Note that if you change this, you should change the values in forms.css - // as well. This is the 13px default width minus the 2px default border. - return nsPresContext::CSSPixelsToAppUnits(13 - 2 * 2); + LogicalSize size(aWM, 0, 0); + if (StyleDisplay()->mAppearance == NS_THEME_NONE) { + return size; + } + // Note: this call always set the BSize to NS_UNCONSTRAINEDSIZE. + size = nsAtomicContainerFrame::ComputeAutoSize(aRC, aWM, aCBSize, + aAvailableISize, aMargin, + aBorder, aPadding, aFlags); + size.BSize(aWM) = DefaultSize(); + return size; } nscoord diff --git a/layout/forms/nsFormControlFrame.h b/layout/forms/nsFormControlFrame.h index fd3e95d936c1..4d9a46259ca5 100644 --- a/layout/forms/nsFormControlFrame.h +++ b/layout/forms/nsFormControlFrame.h @@ -108,20 +108,19 @@ protected: virtual ~nsFormControlFrame(); - nscoord GetIntrinsicISize(); - nscoord GetIntrinsicBSize(); - -// -//------------------------------------------------------------------------------------- -// Utility methods for managing checkboxes and radiobuttons -//------------------------------------------------------------------------------------- -// - /** - * Get the state of the checked attribute. - * @param aState set to true if the checked attribute is set, - * false if the checked attribute has been removed - */ + static nscoord DefaultSize() + { + // XXXmats We have traditionally always returned 9px for GetMin/PrefISize + // but we might want to factor in what the theme says, something like: + // GetMinimumWidgetSize - GetWidgetPadding - GetWidgetBorder. + return nsPresContext::CSSPixelsToAppUnits(9); + } + /** + * Get the state of the checked attribute. + * @param aState set to true if the checked attribute is set, + * false if the checked attribute has been removed + */ void GetCurrentCheckState(bool* aState); }; diff --git a/layout/style/res/forms.css b/layout/style/res/forms.css index 7e87e165841a..c69f82531c3d 100644 --- a/layout/style/res/forms.css +++ b/layout/style/res/forms.css @@ -551,7 +551,6 @@ input[type="radio"] { margin-block-end: 0px; margin-inline-start: 5px; margin-inline-end: 3px; - border-radius: 100%; } /* check boxes */ @@ -561,11 +560,46 @@ input[type="checkbox"] { margin-block-end: 3px; margin-inline-start: 4px; margin-inline-end: 3px; - border-radius: 0; } /* common features of radio buttons and check boxes */ +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + cursor: default; + /* unset some values from the general 'input' rule above: */ + padding: unset; + -moz-binding: unset; + border: unset; + background-color: unset; +} + +input[type="radio"]:disabled, +input[type="radio"]:disabled:active, +input[type="radio"]:disabled:hover, +input[type="radio"]:disabled:hover:active, +input[type="checkbox"]:disabled, +input[type="checkbox"]:disabled:active, +input[type="checkbox"]:disabled:hover, +input[type="checkbox"]:disabled:hover:active { + cursor: inherit; +} + +%if defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GONK) +/* + * These platforms doesn't have any theming support and thus appearance:none + * is the same as any other appearance value. + * XXX This is not web-compatible and should be fixed. + */ +input[type="radio"] { + border-radius: 100%; +} + +input[type="checkbox"] { + border-radius: 0; +} + /* NOTE: The width, height, border-width, and padding here must all add up the way nsFormControlFrame::GetIntrinsic(Width|Height) expects them to, or they will not come out with total width equal @@ -573,12 +607,8 @@ input[type="checkbox"] { (Should we maybe set !important on width and height, then?) */ input[type="radio"], input[type="checkbox"] { - box-sizing: border-box; inline-size: 13px; block-size: 13px; - cursor: default; - padding: 0; - -moz-binding: none; border: 2px inset ThreeDLightShadow; background-repeat: no-repeat; background-position: center; @@ -594,19 +624,8 @@ input[type="checkbox"]:disabled:hover, input[type="checkbox"]:disabled:hover:active { padding: 1px; border: 1px inset ThreeDShadow; - cursor: inherit; } -% On Mac, the native theme takes care of this. -% See nsNativeThemeCocoa::ThemeDrawsFocusForWidget. -%ifndef XP_MACOSX -input[type="checkbox"]:-moz-focusring, -input[type="radio"]:-moz-focusring { - /* Don't specify the outline-color, we should always use initial value. */ - outline: 1px dotted; -} -%endif - input[type="checkbox"]:hover:active, input[type="radio"]:hover:active { background-color: ThreeDFace; @@ -645,6 +664,18 @@ input[type="checkbox"]:indeterminate:disabled { background-image: url(indeterminate-checkmark.svg#disabled); } +%endif /* defined(MOZ_WIDGET_ANDROID) || defined(MOZ_WIDGET_GONK) */ + +% On Mac, the native theme takes care of this. +% See nsNativeThemeCocoa::ThemeDrawsFocusForWidget. +%ifndef XP_MACOSX +input[type="checkbox"]:-moz-focusring, +input[type="radio"]:-moz-focusring { + /* Don't specify the outline-color, we should always use initial value. */ + outline: 1px dotted; +} +%endif + input[type="search"] { box-sizing: border-box; } From 53a46a63564edb3b318d1252266b12baf660f4d0 Mon Sep 17 00:00:00 2001 From: "L. David Baron" Date: Thu, 9 Feb 2017 21:22:40 +0100 Subject: [PATCH 111/112] Bug 605985 part 2 - Make -moz-appearance:none on radio and checkbox inputs make them non-replaced elements. r=dholbert --- layout/base/nsCSSFrameConstructor.cpp | 19 ++++++++++++++++++- layout/style/res/forms.css | 2 ++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/layout/base/nsCSSFrameConstructor.cpp b/layout/base/nsCSSFrameConstructor.cpp index 280515956b58..6c2980780524 100644 --- a/layout/base/nsCSSFrameConstructor.cpp +++ b/layout/base/nsCSSFrameConstructor.cpp @@ -101,6 +101,7 @@ #include "nsBackdropFrame.h" #include "nsTransitionManager.h" #include "DetailsFrame.h" +#include "nsThemeConstants.h" #ifdef MOZ_XUL #include "nsIRootBox.h" @@ -3704,7 +3705,23 @@ nsCSSFrameConstructor::FindInputData(Element* aElement, nsCOMPtr control = do_QueryInterface(aElement); NS_ASSERTION(control, "input doesn't implement nsIFormControl?"); - return FindDataByInt(control->GetType(), aElement, aStyleContext, + auto controlType = control->GetType(); + + // Note that Android/Gonk widgets don't have theming support and thus + // appearance:none is the same as any other appearance value. + // So this chunk doesn't apply there: +#if !defined(MOZ_WIDGET_ANDROID) && !defined(MOZ_WIDGET_GONK) + // radio and checkbox inputs with appearance:none should be constructed + // by display type. (Note that we're not checking that appearance is + // not (respectively) NS_THEME_RADIO and NS_THEME_CHECKBOX.) + if ((controlType == NS_FORM_INPUT_CHECKBOX || + controlType == NS_FORM_INPUT_RADIO) && + aStyleContext->StyleDisplay()->mAppearance == NS_THEME_NONE) { + return nullptr; + } +#endif + + return FindDataByInt(controlType, aElement, aStyleContext, sInputData, ArrayLength(sInputData)); } diff --git a/layout/style/res/forms.css b/layout/style/res/forms.css index c69f82531c3d..2130a62a0e82 100644 --- a/layout/style/res/forms.css +++ b/layout/style/res/forms.css @@ -546,6 +546,7 @@ input[type="file"]:dir(rtl) > xul|label { /* radio buttons */ input[type="radio"] { + display: inline-block; -moz-appearance: radio; margin-block-start: 3px; margin-block-end: 0px; @@ -555,6 +556,7 @@ input[type="radio"] { /* check boxes */ input[type="checkbox"] { + display: inline-block; -moz-appearance: checkbox; margin-block-start: 3px; margin-block-end: 3px; From a06eb5c98da305ff1ca4a230c93718a6d0a33337 Mon Sep 17 00:00:00 2001 From: Mats Palmgren Date: Thu, 9 Feb 2017 21:22:40 +0100 Subject: [PATCH 112/112] Bug 605985 part 3 - The expected result for all checkboxes and radios with -moz-appearance:none is about:blank now (except on Android). --HG-- rename : layout/reftests/forms/input/checkbox/checked.html => layout/reftests/forms/input/checkbox/checked-appearance-none.html rename : layout/reftests/forms/input/checkbox/checked-notref.html => layout/reftests/forms/input/checkbox/unchecked-appearance-none.html rename : layout/reftests/forms/input/radio/checked.html => layout/reftests/forms/input/radio/checked-appearance-none.html rename : layout/reftests/forms/input/radio/checked-notref.html => layout/reftests/forms/input/radio/unchecked-appearance-none.html --- dom/tests/mochitest/general/test_focusrings.xul | 2 +- .../forms/input/checkbox/checkbox-baseline-ref.html | 9 +++++++++ .../forms/input/checkbox/checkbox-baseline.html | 10 ++++++++++ .../{checked.html => checked-appearance-none.html} | 0 layout/reftests/forms/input/checkbox/reftest.list | 10 +++++----- ...cked-notref.html => unchecked-appearance-none.html} | 0 .../{checked.html => checked-appearance-none.html} | 0 layout/reftests/forms/input/radio/reftest.list | 5 ++--- ...cked-notref.html => unchecked-appearance-none.html} | 0 9 files changed, 27 insertions(+), 9 deletions(-) rename layout/reftests/forms/input/checkbox/{checked.html => checked-appearance-none.html} (100%) rename layout/reftests/forms/input/checkbox/{checked-notref.html => unchecked-appearance-none.html} (100%) rename layout/reftests/forms/input/radio/{checked.html => checked-appearance-none.html} (100%) rename layout/reftests/forms/input/radio/{checked-notref.html => unchecked-appearance-none.html} (100%) diff --git a/dom/tests/mochitest/general/test_focusrings.xul b/dom/tests/mochitest/general/test_focusrings.xul index 1e3896b8baed..1833b9393eb7 100644 --- a/dom/tests/mochitest/general/test_focusrings.xul +++ b/dom/tests/mochitest/general/test_focusrings.xul @@ -168,7 +168,7 @@ SimpleTest.waitForFocus(runTest);