| // 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 MOJO_PUBLIC_INTERFACES_BINDINGS_TESTS_TEST_SYNC_METHODS_MOJOM_BLINK_H_ |
| #define MOJO_PUBLIC_INTERFACES_BINDINGS_TESTS_TEST_SYNC_METHODS_MOJOM_BLINK_H_ |
| |
| #include <stdint.h> |
| |
| #include <limits> |
| #include <type_traits> |
| #include <utility> |
| |
| #include "base/callback.h" |
| #include "base/macros.h" |
| #include "base/optional.h" |
| |
| #include "mojo/public/cpp/bindings/mojo_buildflags.h" |
| #if BUILDFLAG(MOJO_TRACE_ENABLED) |
| #include "base/trace_event/trace_event.h" |
| #endif |
| #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 "mojo/public/interfaces/bindings/tests/test_sync_methods.mojom-shared.h" |
| #include "mojo/public/interfaces/bindings/tests/test_sync_methods.mojom-blink-forward.h" |
| |
| #include "mojo/public/cpp/bindings/lib/wtf_clone_equals_util.h" |
| #include "mojo/public/cpp/bindings/lib/wtf_hash_util.h" |
| #include "third_party/blink/renderer/platform/wtf/hash_functions.h" |
| #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" |
| |
| #include "mojo/public/cpp/bindings/associated_interface_ptr.h" |
| #include "mojo/public/cpp/bindings/associated_interface_ptr_info.h" |
| #include "mojo/public/cpp/bindings/associated_interface_request.h" |
| #include "mojo/public/cpp/bindings/interface_ptr.h" |
| #include "mojo/public/cpp/bindings/interface_request.h" |
| #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/thread_safe_interface_ptr.h" |
| |
| |
| #include "mojo/public/cpp/bindings/lib/native_enum_serialization.h" |
| #include "mojo/public/cpp/bindings/lib/native_struct_serialization.h" |
| |
| #ifdef KYTHE_IS_RUNNING |
| #pragma kythe_inline_metadata "Metadata comment" |
| #endif |
| |
| |
| namespace mojo { |
| namespace test { |
| namespace blink { |
| |
| class TestSyncCodeGenerationProxy; |
| |
| template <typename ImplRefTraits> |
| class TestSyncCodeGenerationStub; |
| |
| class TestSyncCodeGenerationRequestValidator; |
| class TestSyncCodeGenerationResponseValidator; |
| |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration |
| class TestSyncCodeGeneration |
| : public TestSyncCodeGenerationInterfaceBase { |
| public: |
| static const char Name_[]; |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = true; |
| |
| using Base_ = TestSyncCodeGenerationInterfaceBase; |
| using Proxy_ = TestSyncCodeGenerationProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = TestSyncCodeGenerationStub<ImplRefTraits>; |
| |
| using RequestValidator_ = TestSyncCodeGenerationRequestValidator; |
| using ResponseValidator_ = TestSyncCodeGenerationResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kNoInputMinVersion = 0, |
| kNoOutputMinVersion = 0, |
| kNoInOutMinVersion = 0, |
| kHaveInOutMinVersion = 0, |
| }; |
| virtual ~TestSyncCodeGeneration() {} |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoInput |
| virtual bool NoInput(int32_t* out_result); |
| |
| using NoInputCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoInput |
| virtual void NoInput(NoInputCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoOutput |
| virtual bool NoOutput(int32_t value); |
| |
| using NoOutputCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoOutput |
| virtual void NoOutput(int32_t value, NoOutputCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoInOut |
| virtual bool NoInOut(); |
| |
| using NoInOutCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.NoInOut |
| virtual void NoInOut(NoInOutCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.HaveInOut |
| virtual bool HaveInOut(int32_t value1, int32_t value2, int32_t* out_result1, int32_t* out_result2); |
| |
| using HaveInOutCallback = base::OnceCallback<void(int32_t, int32_t)>; |
| |
| // @generated_from: mojo.test.TestSyncCodeGeneration.HaveInOut |
| virtual void HaveInOut(int32_t value1, int32_t value2, HaveInOutCallback callback) = 0; |
| }; |
| |
| class TestSyncProxy; |
| |
| template <typename ImplRefTraits> |
| class TestSyncStub; |
| |
| class TestSyncRequestValidator; |
| class TestSyncResponseValidator; |
| |
| |
| // @generated_from: mojo.test.TestSync |
| class TestSync |
| : public TestSyncInterfaceBase { |
| public: |
| static const char Name_[]; |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = false; |
| static constexpr bool HasSyncMethods_ = true; |
| |
| using Base_ = TestSyncInterfaceBase; |
| using Proxy_ = TestSyncProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = TestSyncStub<ImplRefTraits>; |
| |
| using RequestValidator_ = TestSyncRequestValidator; |
| using ResponseValidator_ = TestSyncResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kPingMinVersion = 0, |
| kEchoMinVersion = 0, |
| kAsyncEchoMinVersion = 0, |
| }; |
| virtual ~TestSync() {} |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSync.Ping |
| virtual bool Ping(); |
| |
| using PingCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: mojo.test.TestSync.Ping |
| virtual void Ping(PingCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSync.Echo |
| virtual bool Echo(int32_t value, int32_t* out_result); |
| |
| using EchoCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: mojo.test.TestSync.Echo |
| virtual void Echo(int32_t value, EchoCallback callback) = 0; |
| |
| |
| using AsyncEchoCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: mojo.test.TestSync.AsyncEcho |
| virtual void AsyncEcho(int32_t value, AsyncEchoCallback callback) = 0; |
| }; |
| |
| class TestSyncMasterProxy; |
| |
| template <typename ImplRefTraits> |
| class TestSyncMasterStub; |
| |
| class TestSyncMasterRequestValidator; |
| class TestSyncMasterResponseValidator; |
| |
| |
| // @generated_from: mojo.test.TestSyncMaster |
| class TestSyncMaster |
| : public TestSyncMasterInterfaceBase { |
| public: |
| static const char Name_[]; |
| static constexpr uint32_t Version_ = 0; |
| static constexpr bool PassesAssociatedKinds_ = true; |
| static constexpr bool HasSyncMethods_ = true; |
| |
| using Base_ = TestSyncMasterInterfaceBase; |
| using Proxy_ = TestSyncMasterProxy; |
| |
| template <typename ImplRefTraits> |
| using Stub_ = TestSyncMasterStub<ImplRefTraits>; |
| |
| using RequestValidator_ = TestSyncMasterRequestValidator; |
| using ResponseValidator_ = TestSyncMasterResponseValidator; |
| enum MethodMinVersions : uint32_t { |
| kPingMinVersion = 0, |
| kEchoMinVersion = 0, |
| kAsyncEchoMinVersion = 0, |
| kSendRemoteMinVersion = 0, |
| kSendReceiverMinVersion = 0, |
| }; |
| virtual ~TestSyncMaster() {} |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncMaster.Ping |
| virtual bool Ping(); |
| |
| using PingCallback = base::OnceCallback<void()>; |
| |
| // @generated_from: mojo.test.TestSyncMaster.Ping |
| virtual void Ping(PingCallback callback) = 0; |
| |
| // Sync method. This signature is used by the client side; the service side |
| // should implement the signature with callback below. |
| |
| // @generated_from: mojo.test.TestSyncMaster.Echo |
| virtual bool Echo(int32_t value, int32_t* out_result); |
| |
| using EchoCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: mojo.test.TestSyncMaster.Echo |
| virtual void Echo(int32_t value, EchoCallback callback) = 0; |
| |
| |
| using AsyncEchoCallback = base::OnceCallback<void(int32_t)>; |
| |
| // @generated_from: mojo.test.TestSyncMaster.AsyncEcho |
| virtual void AsyncEcho(int32_t value, AsyncEchoCallback callback) = 0; |
| |
| |
| // @generated_from: mojo.test.TestSyncMaster.SendRemote |
| virtual void SendRemote(mojo::PendingAssociatedRemote<TestSync> remote) = 0; |
| |
| |
| // @generated_from: mojo.test.TestSyncMaster.SendReceiver |
| virtual void SendReceiver(mojo::PendingAssociatedReceiver<TestSync> receiver) = 0; |
| }; |
| |
| class TestSyncCodeGenerationProxy |
| : public TestSyncCodeGeneration { |
| public: |
| using InterfaceType = TestSyncCodeGeneration; |
| |
| explicit TestSyncCodeGenerationProxy(mojo::MessageReceiverWithResponder* receiver); |
| bool NoInput(int32_t* out_result) final; |
| void NoInput(NoInputCallback callback) final; |
| bool NoOutput(int32_t value) final; |
| void NoOutput(int32_t value, NoOutputCallback callback) final; |
| bool NoInOut() final; |
| void NoInOut(NoInOutCallback callback) final; |
| bool HaveInOut(int32_t value1, int32_t value2, int32_t* out_result1, int32_t* out_result2) final; |
| void HaveInOut(int32_t value1, int32_t value2, HaveInOutCallback callback) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| |
| class TestSyncProxy |
| : public TestSync { |
| public: |
| using InterfaceType = TestSync; |
| |
| explicit TestSyncProxy(mojo::MessageReceiverWithResponder* receiver); |
| bool Ping() final; |
| void Ping(PingCallback callback) final; |
| bool Echo(int32_t value, int32_t* out_result) final; |
| void Echo(int32_t value, EchoCallback callback) final; |
| void AsyncEcho(int32_t value, AsyncEchoCallback callback) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| |
| class TestSyncMasterProxy |
| : public TestSyncMaster { |
| public: |
| using InterfaceType = TestSyncMaster; |
| |
| explicit TestSyncMasterProxy(mojo::MessageReceiverWithResponder* receiver); |
| bool Ping() final; |
| void Ping(PingCallback callback) final; |
| bool Echo(int32_t value, int32_t* out_result) final; |
| void Echo(int32_t value, EchoCallback callback) final; |
| void AsyncEcho(int32_t value, AsyncEchoCallback callback) final; |
| void SendRemote(mojo::PendingAssociatedRemote<TestSync> remote) final; |
| void SendReceiver(mojo::PendingAssociatedReceiver<TestSync> receiver) final; |
| |
| private: |
| mojo::MessageReceiverWithResponder* receiver_; |
| }; |
| class TestSyncCodeGenerationStubDispatch { |
| public: |
| static bool Accept(TestSyncCodeGeneration* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| TestSyncCodeGeneration* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<TestSyncCodeGeneration>> |
| class TestSyncCodeGenerationStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| TestSyncCodeGenerationStub() {} |
| ~TestSyncCodeGenerationStub() override {} |
| |
| 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 TestSyncCodeGenerationStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return TestSyncCodeGenerationStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class TestSyncStubDispatch { |
| public: |
| static bool Accept(TestSync* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| TestSync* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<TestSync>> |
| class TestSyncStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| TestSyncStub() {} |
| ~TestSyncStub() override {} |
| |
| 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 TestSyncStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return TestSyncStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class TestSyncMasterStubDispatch { |
| public: |
| static bool Accept(TestSyncMaster* impl, mojo::Message* message); |
| static bool AcceptWithResponder( |
| TestSyncMaster* impl, |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder); |
| }; |
| |
| template <typename ImplRefTraits = |
| mojo::RawPtrImplRefTraits<TestSyncMaster>> |
| class TestSyncMasterStub |
| : public mojo::MessageReceiverWithResponderStatus { |
| public: |
| using ImplPointerType = typename ImplRefTraits::PointerType; |
| |
| TestSyncMasterStub() {} |
| ~TestSyncMasterStub() override {} |
| |
| 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 TestSyncMasterStubDispatch::Accept( |
| ImplRefTraits::GetRawPointer(&sink_), message); |
| } |
| |
| bool AcceptWithResponder( |
| mojo::Message* message, |
| std::unique_ptr<mojo::MessageReceiverWithStatus> responder) override { |
| if (ImplRefTraits::IsNull(sink_)) |
| return false; |
| return TestSyncMasterStubDispatch::AcceptWithResponder( |
| ImplRefTraits::GetRawPointer(&sink_), message, std::move(responder)); |
| } |
| |
| private: |
| ImplPointerType sink_; |
| }; |
| class TestSyncCodeGenerationRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TestSyncRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TestSyncMasterRequestValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TestSyncCodeGenerationResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TestSyncResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| class TestSyncMasterResponseValidator : public mojo::MessageReceiver { |
| public: |
| bool Accept(mojo::Message* message) override; |
| }; |
| |
| |
| |
| |
| |
| } // namespace blink |
| } // namespace test |
| } // namespace mojo |
| |
| namespace mojo { |
| |
| } // namespace mojo |
| |
| #endif // MOJO_PUBLIC_INTERFACES_BINDINGS_TESTS_TEST_SYNC_METHODS_MOJOM_BLINK_H_
|
| /* Metadata comment
|
| eyJtZXRhIjogW3siZW5kIjogMjQyMSwgImJlZ2luIjogMjM5OSwgImVkZ2UiOiAiJS9reXRoZS9l
|
| ZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3Jw
|
| dXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2Ui
|
| OiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3luY0NvZGVHZW5lcmF0aW9u
|
| In19LCB7ImVuZCI6IDM0MTEsICJiZWdpbiI6IDM0MDQsICJlZGdlIjogIiUva3l0aGUvZWRnZS9n
|
| ZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjog
|
| ImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1v
|
| am9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNDb2RlR2VuZXJhdGlvbi5Ob0lu
|
| cHV0In19LCB7ImVuZCI6IDM1ODIsICJiZWdpbiI6IDM1NzUsICJlZGdlIjogIiUva3l0aGUvZWRn
|
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
|
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
|
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNDb2RlR2VuZXJhdGlvbi5O
|
| b0lucHV0In19LCB7ImVuZCI6IDM4MzgsICJiZWdpbiI6IDM4MzAsICJlZGdlIjogIiUva3l0aGUv
|
| ZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29y
|
| cHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdl
|
| IjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNDb2RlR2VuZXJhdGlv
|
| bi5Ob091dHB1dCJ9fSwgeyJlbmQiOiAzOTk5LCAiYmVnaW4iOiAzOTkxLCAiZWRnZSI6ICIlL2t5
|
| dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7
|
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5n
|
| dWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50ZXN0LlRlc3RTeW5jQ29kZUdlbmVy
|
| YXRpb24uTm9PdXRwdXQifX0sIHsiZW5kIjogNDI2OSwgImJlZ2luIjogNDI2MiwgImVkZ2UiOiAi
|
| JS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1l
|
| IjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAi
|
| bGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3luY0NvZGVH
|
| ZW5lcmF0aW9uLk5vSW5PdXQifX0sIHsiZW5kIjogNDQxNCwgImJlZ2luIjogNDQwNywgImVkZ2Ui
|
| OiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZu
|
| YW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMi
|
| LCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3luY0Nv
|
| ZGVHZW5lcmF0aW9uLk5vSW5PdXQifX0sIHsiZW5kIjogNDY3MiwgImJlZ2luIjogNDY2MywgImVk
|
| Z2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwg
|
| InZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9z
|
| cmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3lu
|
| Y0NvZGVHZW5lcmF0aW9uLkhhdmVJbk91dCJ9fSwgeyJlbmQiOiA0OTEzLCAiYmVnaW4iOiA0OTA0
|
| LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmlu
|
| ZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9t
|
| aXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50ZXN0LlRl
|
| c3RTeW5jQ29kZUdlbmVyYXRpb24uSGF2ZUluT3V0In19LCB7ImVuZCI6IDUxODEsICJiZWdpbiI6
|
| IDUxNzMsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3Jf
|
| ZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
|
| Y2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRl
|
| c3QuVGVzdFN5bmMifX0sIHsiZW5kIjogNjAxOCwgImJlZ2luIjogNjAxNCwgImVkZ2UiOiAiJS9r
|
| eXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjog
|
| eyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFu
|
| Z3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3luYy5QaW5nIn19
|
| LCB7ImVuZCI6IDYxNDAsICJiZWdpbiI6IDYxMzYsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5l
|
| cmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNo
|
| cm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9t
|
| IiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmMuUGluZyJ9fSwgeyJlbmQiOiA2Mzcx
|
| LCAiYmVnaW4iOiA2MzY3LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUi
|
| OiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVz
|
| b3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUi
|
| OiAibW9qby50ZXN0LlRlc3RTeW5jLkVjaG8ifX0sIHsiZW5kIjogNjUzNCwgImJlZ2luIjogNjUz
|
| MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZp
|
| bmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJv
|
| bWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5U
|
| ZXN0U3luYy5FY2hvIn19LCB7ImVuZCI6IDY3MTksICJiZWdpbiI6IDY3MTAsICJlZGdlIjogIiUv
|
| a3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6
|
| IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxh
|
| bmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmMuQXN5bmNF
|
| Y2hvIn19LCB7ImVuZCI6IDcwMDYsICJiZWdpbiI6IDY5OTIsICJlZGdlIjogIiUva3l0aGUvZWRn
|
| ZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVz
|
| IjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjog
|
| Im1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNNYXN0ZXIifX0sIHsiZW5k
|
| IjogNzk1NCwgImJlZ2luIjogNzk1MCwgImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIs
|
| ICJ0eXBlIjogImFuY2hvcl9kZWZpbmVzIiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0u
|
| Z29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2ln
|
| bmF0dXJlIjogIm1vam8udGVzdC5UZXN0U3luY01hc3Rlci5QaW5nIn19LCB7ImVuZCI6IDgwODIs
|
| ICJiZWdpbiI6IDgwNzgsICJlZGdlIjogIiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6
|
| ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNv
|
| dXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6
|
| ICJtb2pvLnRlc3QuVGVzdFN5bmNNYXN0ZXIuUGluZyJ9fSwgeyJlbmQiOiA4MzE5LCAiYmVnaW4i
|
| OiA4MzE1LCAiZWRnZSI6ICIlL2t5dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9y
|
| X2RlZmluZXMiLCAidm5hbWUiOiB7ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29t
|
| L2Nocm9taXVtL3NyYyIsICJsYW5ndWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50
|
| ZXN0LlRlc3RTeW5jTWFzdGVyLkVjaG8ifX0sIHsiZW5kIjogODQ4OCwgImJlZ2luIjogODQ4NCwg
|
| ImVkZ2UiOiAiJS9reXRoZS9lZGdlL2dlbmVyYXRlcyIsICJ0eXBlIjogImFuY2hvcl9kZWZpbmVz
|
| IiwgInZuYW1lIjogeyJjb3JwdXMiOiAiY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1
|
| bS9zcmMiLCAibGFuZ3VhZ2UiOiAibW9qb20iLCAic2lnbmF0dXJlIjogIm1vam8udGVzdC5UZXN0
|
| U3luY01hc3Rlci5FY2hvIn19LCB7ImVuZCI6IDg2NzksICJiZWdpbiI6IDg2NzAsICJlZGdlIjog
|
| IiUva3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFt
|
| ZSI6IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwg
|
| Imxhbmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNNYXN0
|
| ZXIuQXN5bmNFY2hvIn19LCB7ImVuZCI6IDg4MTMsICJiZWdpbiI6IDg4MDMsICJlZGdlIjogIiUv
|
| a3l0aGUvZWRnZS9nZW5lcmF0ZXMiLCAidHlwZSI6ICJhbmNob3JfZGVmaW5lcyIsICJ2bmFtZSI6
|
| IHsiY29ycHVzIjogImNocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjIiwgImxh
|
| bmd1YWdlIjogIm1vam9tIiwgInNpZ25hdHVyZSI6ICJtb2pvLnRlc3QuVGVzdFN5bmNNYXN0ZXIu
|
| U2VuZFJlbW90ZSJ9fSwgeyJlbmQiOiA4OTU2LCAiYmVnaW4iOiA4OTQ0LCAiZWRnZSI6ICIlL2t5
|
| dGhlL2VkZ2UvZ2VuZXJhdGVzIiwgInR5cGUiOiAiYW5jaG9yX2RlZmluZXMiLCAidm5hbWUiOiB7
|
| ImNvcnB1cyI6ICJjaHJvbWl1bS5nb29nbGVzb3VyY2UuY29tL2Nocm9taXVtL3NyYyIsICJsYW5n
|
| dWFnZSI6ICJtb2pvbSIsICJzaWduYXR1cmUiOiAibW9qby50ZXN0LlRlc3RTeW5jTWFzdGVyLlNl
|
| bmRSZWNlaXZlciJ9fV0sICJ0eXBlIjogImt5dGhlMCJ9
|
| */ |