blob: 4ab7a76bdbfc5072f23c2732348f2b26dcfcea69 [file] [log] [blame]
// chrome/common/search/search.mojom.h is auto generated by mojom_bindings_generator.py, do not edit
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_COMMON_SEARCH_SEARCH_MOJOM_H_
#define CHROME_COMMON_SEARCH_SEARCH_MOJOM_H_
#include <stdint.h>
#include <limits>
#include <type_traits>
#include <utility>
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "mojo/public/cpp/bindings/clone_traits.h"
#include "mojo/public/cpp/bindings/equals_traits.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/struct_ptr.h"
#include "mojo/public/cpp/bindings/struct_traits.h"
#include "mojo/public/cpp/bindings/union_traits.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"
#include "chrome/common/search/search.mojom-shared.h"
#include "chrome/common/search/search.mojom-forward.h"
#include "mojo/public/mojom/base/string16.mojom-forward.h"
#include "mojo/public/mojom/base/time.mojom-forward.h"
#include "url/mojom/url.mojom.h"
#include <string>
#include <vector>
#include "mojo/public/cpp/bindings/lib/control_message_handler.h"
#include "mojo/public/cpp/bindings/raw_ptr_impl_ref_traits.h"
#include "mojo/public/cpp/bindings/lib/native_enum_serialization.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"
#include "chrome/common/search/instant_types.h"
#include "chrome/common/search/ntp_logging_events.h"
#include "components/ntp_tiles/ntp_tile_impression.h"
#include "components/omnibox/common/omnibox_focus_state.h"
#ifdef KYTHE_IS_RUNNING
#pragma kythe_inline_metadata "Metadata comment"
#endif
namespace search {
namespace mojom {
class EmbeddedSearchConnectorProxy;
template <typename ImplRefTraits>
class EmbeddedSearchConnectorStub;
class EmbeddedSearchConnectorRequestValidator;
// @generated_from: search.mojom.EmbeddedSearchConnector
class EmbeddedSearchConnector
: public EmbeddedSearchConnectorInterfaceBase {
public:
static const char Name_[];
static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = true;
static constexpr bool HasSyncMethods_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = EmbeddedSearchConnectorInterfaceBase;
using Proxy_ = EmbeddedSearchConnectorProxy;
template <typename ImplRefTraits>
using Stub_ = EmbeddedSearchConnectorStub<ImplRefTraits>;
using RequestValidator_ = EmbeddedSearchConnectorRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kConnectMinVersion = 0,
};
// crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK
// with not having this data in traces there.
#if !BUILDFLAG(IS_FUCHSIA)
struct Connect_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~EmbeddedSearchConnector() = default;
// @generated_from: search.mojom.EmbeddedSearchConnector.Connect
virtual void Connect(::mojo::PendingAssociatedReceiver<EmbeddedSearch> embedded_search, ::mojo::PendingAssociatedRemote<EmbeddedSearchClient> client) = 0;
};
class EmbeddedSearchProxy;
template <typename ImplRefTraits>
class EmbeddedSearchStub;
class EmbeddedSearchRequestValidator;
// @generated_from: search.mojom.EmbeddedSearch
class EmbeddedSearch
: public EmbeddedSearchInterfaceBase {
public:
static const char Name_[];
static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasSyncMethods_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = EmbeddedSearchInterfaceBase;
using Proxy_ = EmbeddedSearchProxy;
template <typename ImplRefTraits>
using Stub_ = EmbeddedSearchStub<ImplRefTraits>;
using RequestValidator_ = EmbeddedSearchRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kFocusOmniboxMinVersion = 0,
kDeleteMostVisitedItemMinVersion = 0,
kUndoAllMostVisitedDeletionsMinVersion = 0,
kUndoMostVisitedDeletionMinVersion = 0,
};
// crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK
// with not having this data in traces there.
#if !BUILDFLAG(IS_FUCHSIA)
struct FocusOmnibox_Sym {
NOINLINE static void IPCSymbol();
};
struct DeleteMostVisitedItem_Sym {
NOINLINE static void IPCSymbol();
};
struct UndoAllMostVisitedDeletions_Sym {
NOINLINE static void IPCSymbol();
};
struct UndoMostVisitedDeletion_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~EmbeddedSearch() = default;
// @generated_from: search.mojom.EmbeddedSearch.FocusOmnibox
virtual void FocusOmnibox(int32_t page_seq_no, bool focus) = 0;
// @generated_from: search.mojom.EmbeddedSearch.DeleteMostVisitedItem
virtual void DeleteMostVisitedItem(int32_t page_seq_no, const ::GURL& url) = 0;
// @generated_from: search.mojom.EmbeddedSearch.UndoAllMostVisitedDeletions
virtual void UndoAllMostVisitedDeletions(int32_t page_seq_no) = 0;
// @generated_from: search.mojom.EmbeddedSearch.UndoMostVisitedDeletion
virtual void UndoMostVisitedDeletion(int32_t page_seq_no, const ::GURL& url) = 0;
};
class EmbeddedSearchClientProxy;
template <typename ImplRefTraits>
class EmbeddedSearchClientStub;
class EmbeddedSearchClientRequestValidator;
// @generated_from: search.mojom.EmbeddedSearchClient
class EmbeddedSearchClient
: public EmbeddedSearchClientInterfaceBase {
public:
static const char Name_[];
static std::pair<uint32_t, const void*> MessageToMethodInfo_(mojo::Message& message);
static const char* MessageToMethodName_(mojo::Message& message);
static constexpr uint32_t Version_ = 0;
static constexpr bool PassesAssociatedKinds_ = false;
static constexpr bool HasSyncMethods_ = false;
static constexpr bool HasUninterruptableMethods_ = false;
using Base_ = EmbeddedSearchClientInterfaceBase;
using Proxy_ = EmbeddedSearchClientProxy;
template <typename ImplRefTraits>
using Stub_ = EmbeddedSearchClientStub<ImplRefTraits>;
using RequestValidator_ = EmbeddedSearchClientRequestValidator;
using ResponseValidator_ = mojo::PassThroughFilter;
enum MethodMinVersions : uint32_t {
kSetPageSequenceNumberMinVersion = 0,
kFocusChangedMinVersion = 0,
kMostVisitedInfoChangedMinVersion = 0,
kSetInputInProgressMinVersion = 0,
kThemeChangedMinVersion = 0,
};
// crbug.com/1340245 - this causes binary size bloat on Fuchsia, and we're OK
// with not having this data in traces there.
#if !BUILDFLAG(IS_FUCHSIA)
struct SetPageSequenceNumber_Sym {
NOINLINE static void IPCSymbol();
};
struct FocusChanged_Sym {
NOINLINE static void IPCSymbol();
};
struct MostVisitedInfoChanged_Sym {
NOINLINE static void IPCSymbol();
};
struct SetInputInProgress_Sym {
NOINLINE static void IPCSymbol();
};
struct ThemeChanged_Sym {
NOINLINE static void IPCSymbol();
};
#endif // !BUILDFLAG(IS_FUCHSIA)
virtual ~EmbeddedSearchClient() = default;
// @generated_from: search.mojom.EmbeddedSearchClient.SetPageSequenceNumber
virtual void SetPageSequenceNumber(int32_t page_seq_no) = 0;
// @generated_from: search.mojom.EmbeddedSearchClient.FocusChanged
virtual void FocusChanged(::OmniboxFocusState new_focus_state, ::OmniboxFocusChangeReason reason) = 0;
// @generated_from: search.mojom.EmbeddedSearchClient.MostVisitedInfoChanged
virtual void MostVisitedInfoChanged(const ::InstantMostVisitedInfo& most_visited_info) = 0;
// @generated_from: search.mojom.EmbeddedSearchClient.SetInputInProgress
virtual void SetInputInProgress(bool input_in_progress) = 0;
// @generated_from: search.mojom.EmbeddedSearchClient.ThemeChanged
virtual void ThemeChanged(const ::NtpTheme& theme) = 0;
};
// @generated_from: search.mojom.EmbeddedSearchConnector
class EmbeddedSearchConnectorProxy
: public EmbeddedSearchConnector {
public:
using InterfaceType = EmbeddedSearchConnector;
explicit EmbeddedSearchConnectorProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: search.mojom.EmbeddedSearchConnector.Connect
void Connect(::mojo::PendingAssociatedReceiver<EmbeddedSearch> embedded_search, ::mojo::PendingAssociatedRemote<EmbeddedSearchClient> client) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: search.mojom.EmbeddedSearch
class EmbeddedSearchProxy
: public EmbeddedSearch {
public:
using InterfaceType = EmbeddedSearch;
explicit EmbeddedSearchProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: search.mojom.EmbeddedSearch.FocusOmnibox
void FocusOmnibox(int32_t page_seq_no, bool focus) final;
// @generated_from: search.mojom.EmbeddedSearch.DeleteMostVisitedItem
void DeleteMostVisitedItem(int32_t page_seq_no, const ::GURL& url) final;
// @generated_from: search.mojom.EmbeddedSearch.UndoAllMostVisitedDeletions
void UndoAllMostVisitedDeletions(int32_t page_seq_no) final;
// @generated_from: search.mojom.EmbeddedSearch.UndoMostVisitedDeletion
void UndoMostVisitedDeletion(int32_t page_seq_no, const ::GURL& url) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
// @generated_from: search.mojom.EmbeddedSearchClient
class EmbeddedSearchClientProxy
: public EmbeddedSearchClient {
public:
using InterfaceType = EmbeddedSearchClient;
explicit EmbeddedSearchClientProxy(mojo::MessageReceiverWithResponder* receiver);
// @generated_from: search.mojom.EmbeddedSearchClient.SetPageSequenceNumber
void SetPageSequenceNumber(int32_t page_seq_no) final;
// @generated_from: search.mojom.EmbeddedSearchClient.FocusChanged
void FocusChanged(::OmniboxFocusState new_focus_state, ::OmniboxFocusChangeReason reason) final;
// @generated_from: search.mojom.EmbeddedSearchClient.MostVisitedInfoChanged
void MostVisitedInfoChanged(const ::InstantMostVisitedInfo& most_visited_info) final;
// @generated_from: search.mojom.EmbeddedSearchClient.SetInputInProgress
void SetInputInProgress(bool input_in_progress) final;
// @generated_from: search.mojom.EmbeddedSearchClient.ThemeChanged
void ThemeChanged(const ::NtpTheme& theme) final;
private:
mojo::MessageReceiverWithResponder* receiver_;
};
class EmbeddedSearchConnectorStubDispatch {
public:
static bool Accept(EmbeddedSearchConnector* impl, mojo::Message* message);
static bool AcceptWithResponder(
EmbeddedSearchConnector* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<EmbeddedSearchConnector>>
class EmbeddedSearchConnectorStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
EmbeddedSearchConnectorStub() = default;
~EmbeddedSearchConnectorStub() override = default;
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchConnectorStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchConnectorStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class EmbeddedSearchStubDispatch {
public:
static bool Accept(EmbeddedSearch* impl, mojo::Message* message);
static bool AcceptWithResponder(
EmbeddedSearch* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<EmbeddedSearch>>
class EmbeddedSearchStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
EmbeddedSearchStub() = default;
~EmbeddedSearchStub() override = default;
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class EmbeddedSearchClientStubDispatch {
public:
static bool Accept(EmbeddedSearchClient* impl, mojo::Message* message);
static bool AcceptWithResponder(
EmbeddedSearchClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder);
};
template <typename ImplRefTraits =
mojo::RawPtrImplRefTraits<EmbeddedSearchClient>>
class EmbeddedSearchClientStub
: public mojo::MessageReceiverWithResponderStatus {
public:
using ImplPointerType = typename ImplRefTraits::PointerType;
EmbeddedSearchClientStub() = default;
~EmbeddedSearchClientStub() override = default;
void set_sink(ImplPointerType sink) { sink_ = std::move(sink); }
ImplPointerType& sink() { return sink_; }
bool Accept(mojo::Message* message) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchClientStubDispatch::Accept(
ImplRefTraits::GetRawPointer(&sink_), message);
}
bool AcceptWithResponder(
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override {
if (ImplRefTraits::IsNull(sink_))
return false;
return EmbeddedSearchClientStubDispatch::AcceptWithResponder(
ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder));
}
private:
ImplPointerType sink_;
};
class EmbeddedSearchConnectorRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class EmbeddedSearchRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
class EmbeddedSearchClientRequestValidator : public mojo::MessageReceiver {
public:
bool Accept(mojo::Message* message) override;
};
} // namespace mojom
} // namespace search
namespace mojo {
} // namespace mojo
#endif // CHROME_COMMON_SEARCH_SEARCH_MOJOM_H_
/* Metadata comment
eyJtZXRhIjogW3siZW5kIjogMjAyOSwgImJlZ2luIjogMjAwNiwgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJjaENvbm5l
Y3RvciJ9fSwgeyJlbmQiOiAzMjY1LCAiYmVnaW4iOiAzMjU4LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoQ29ubmVj
dG9yLkNvbm5lY3QifX0sIHsiZW5kIjogMzYwMiwgImJlZ2luIjogMzU4OCwgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJj
aCJ9fSwgeyJlbmQiOiA1MTc4LCAiYmVnaW4iOiA1MTY2LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2Uv
Z2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6
ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJt
b2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoLkZvY3VzT21u
aWJveCJ9fSwgeyJlbmQiOiA1MzI3LCAiYmVnaW4iOiA1MzA2LCAiZWRnZSI6ICIlL2t5dGhlL2Vk
Z2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1
cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6
ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoLkRlbGV0
ZU1vc3RWaXNpdGVkSXRlbSJ9fSwgeyJlbmQiOiA1NDk1LCAiYmVnaW4iOiA1NDY4LCAiZWRnZSI6
ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5h
bWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIs
ICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVk
U2VhcmNoLlVuZG9BbGxNb3N0VmlzaXRlZERlbGV0aW9ucyJ9fSwgeyJlbmQiOiA1NjM2LCAiYmVn
aW4iOiA1NjEzLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5j
aG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2Uu
Y29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2Vh
cmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoLlVuZG9Nb3N0VmlzaXRlZERlbGV0aW9uIn19LCB7ImVu
ZCI6IDU5MTQsICJiZWdpbiI6IDU4OTQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
Z25hdHVyZSI6ICJzZWFyY2gubW9qb20uRW1iZWRkZWRTZWFyY2hDbGllbnQifX0sIHsiZW5kIjog
NzYzNCwgImJlZ2luIjogNzYxMywgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0
eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29v
Z2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0
dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJjaENsaWVudC5TZXRQYWdlU2VxdWVuY2VO
dW1iZXIifX0sIHsiZW5kIjogNzc1OSwgImJlZ2luIjogNzc0NywgImVkZ2UiOiAiJS9reXRoZS9l
ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
OiAibW9qb20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJjaENsaWVu
dC5Gb2N1c0NoYW5nZWQifX0sIHsiZW5kIjogNzk1NSwgImJlZ2luIjogNzkzMywgImVkZ2UiOiAi
JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l
IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi
bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNl
YXJjaENsaWVudC5Nb3N0VmlzaXRlZEluZm9DaGFuZ2VkIn19LCB7ImVuZCI6IDgxMjIsICJiZWdp
biI6IDgxMDQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNo
b3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5j
b20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJzZWFy
Y2gubW9qb20uRW1iZWRkZWRTZWFyY2hDbGllbnQuU2V0SW5wdXRJblByb2dyZXNzIn19LCB7ImVu
ZCI6IDgyNTAsICJiZWdpbiI6IDgyMzgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMi
LCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVt
Lmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNp
Z25hdHVyZSI6ICJzZWFyY2gubW9qb20uRW1iZWRkZWRTZWFyY2hDbGllbnQuVGhlbWVDaGFuZ2Vk
In19LCB7ImVuZCI6IDg2NDcsICJiZWdpbiI6IDg2NDAsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog
ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v
am9tIiwgInNpZ25hdHVyZSI6ICJzZWFyY2gubW9qb20uRW1iZWRkZWRTZWFyY2hDb25uZWN0b3Iu
Q29ubmVjdCJ9fSwgeyJlbmQiOiA5MTY2LCAiYmVnaW4iOiA5MTU0LCAiZWRnZSI6ICIlL2t5dGhl
L2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNv
cnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFn
ZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoLkZv
Y3VzT21uaWJveCJ9fSwgeyJlbmQiOiA5MzA4LCAiYmVnaW4iOiA5Mjg3LCAiZWRnZSI6ICIlL2t5
dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7
ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5n
dWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNo
LkRlbGV0ZU1vc3RWaXNpdGVkSXRlbSJ9fSwgeyJlbmQiOiA5NDY5LCAiYmVnaW4iOiA5NDQyLCAi
ZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMi
LCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVt
L3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVt
YmVkZGVkU2VhcmNoLlVuZG9BbGxNb3N0VmlzaXRlZERlbGV0aW9ucyJ9fSwgeyJlbmQiOiA5NjAz
LCAiYmVnaW4iOiA5NTgwLCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
OiAic2VhcmNoLm1vam9tLkVtYmVkZGVkU2VhcmNoLlVuZG9Nb3N0VmlzaXRlZERlbGV0aW9uIn19
LCB7ImVuZCI6IDEwMDg3LCAiYmVnaW4iOiAxMDA2NiwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dl
bmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAi
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9q
b20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJjaENsaWVudC5TZXRQ
YWdlU2VxdWVuY2VOdW1iZXIifX0sIHsiZW5kIjogMTAyMDUsICJiZWdpbiI6IDEwMTkzLCAiZWRn
ZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAi
dm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3Ny
YyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAic2VhcmNoLm1vam9tLkVtYmVk
ZGVkU2VhcmNoQ2xpZW50LkZvY3VzQ2hhbmdlZCJ9fSwgeyJlbmQiOiAxMDM5NCwgImJlZ2luIjog
MTAzNzIsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3Jf
ZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJzZWFyY2gu
bW9qb20uRW1iZWRkZWRTZWFyY2hDbGllbnQuTW9zdFZpc2l0ZWRJbmZvQ2hhbmdlZCJ9fSwgeyJl
bmQiOiAxMDU1NCwgImJlZ2luIjogMTA1MzYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0
ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9t
aXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwg
InNpZ25hdHVyZSI6ICJzZWFyY2gubW9qb20uRW1iZWRkZWRTZWFyY2hDbGllbnQuU2V0SW5wdXRJ
blByb2dyZXNzIn19LCB7ImVuZCI6IDEwNjc1LCAiYmVnaW4iOiAxMDY2MywgImVkZ2UiOiAiJS9r
eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogInNlYXJjaC5tb2pvbS5FbWJlZGRlZFNlYXJj
aENsaWVudC5UaGVtZUNoYW5nZWQifX1dLCAidHlwZSI6ICJreXRoZTAifQ==
*/