The `ViewportTurboRendererExtension` is now extracted from `@blocksuite/affine-shared` to `@blocksuite/affine-gfx-turbo-renderer` with minimal dependencies, mirroring the gfx text package in #10378.
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS40IiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
This PR performs a significant architectural refactoring by extracting rich text functionality into a dedicated package. Here are the key changes:
1. **New Package Creation**
- Created a new package `@blocksuite/affine-rich-text` to house rich text related functionality
- Moved rich text components, utilities, and types from `@blocksuite/affine-components` to this new package
2. **Dependency Updates**
- Updated multiple block packages to include the new `@blocksuite/affine-rich-text` as a direct dependency:
- block-callout
- block-code
- block-database
- block-edgeless-text
- block-embed
- block-list
- block-note
- block-paragraph
3. **Import Path Updates**
- Refactored all imports that previously referenced rich text functionality from `@blocksuite/affine-components/rich-text` to now use `@blocksuite/affine-rich-text`
- Updated imports for components like:
- DefaultInlineManagerExtension
- RichText types and interfaces
- Text manipulation utilities (focusTextModel, textKeymap, etc.)
- Reference node components and providers
4. **Build Configuration Updates**
- Added references to the new rich text package in the `tsconfig.json` files of all affected packages
- Maintained workspace dependencies using the `workspace:*` version specifier
The primary motivation appears to be:
1. Better separation of concerns by isolating rich text functionality
2. Improved maintainability through more modular package structure
3. Clearer dependencies between packages
4. Potential for better tree-shaking and bundle optimization
This is primarily an architectural improvement that should make the codebase more maintainable and better organized.
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@googleapis/androidpublisher](https://redirect.github.com/googleapis/google-api-nodejs-client) | [`^22.0.0` -> `^24.0.0`](https://renovatebot.com/diffs/npm/@googleapis%2fandroidpublisher/22.0.0/24.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>googleapis/google-api-nodejs-client (@​googleapis/androidpublisher)</summary>
### [`v24.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12400-2023-08-09)
##### ⚠ BREAKING CHANGES
- **youtube:** This release has breaking changes.
- **workloadmanager:** This release has breaking changes.
- **smartdevicemanagement:** This release has breaking changes.
- **serviceusage:** This release has breaking changes.
- **servicedirectory:** This release has breaking changes.
- **retail:** This release has breaking changes.
- **networkconnectivity:** This release has breaking changes.
- **monitoring:** This release has breaking changes.
- **gkeonprem:** This release has breaking changes.
- **gkehub:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **contactcenteraiplatform:** This release has breaking changes.
- **compute:** This release has breaking changes.
- **checks:** This release has breaking changes.
- **bigtableadmin:** This release has breaking changes.
- **bigquery:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
- **androidmanagement:** This release has breaking changes.
- **analyticsadmin:** This release has breaking changes.
- migate to Node 14
##### Features
- **admin:** update the API ([1bc7f53](1bc7f53857))
- **analyticsadmin:** update the API ([8f479e1](8f479e1550))
- **analyticshub:** update the API ([427f865](427f8657bc))
- **androidmanagement:** update the API ([d885722](d885722fa7))
- **artifactregistry:** update the API ([d70a33e](d70a33e42e))
- **assuredworkloads:** update the API ([321cff7](321cff70dc))
- **beyondcorp:** update the API ([ad95808](ad95808585))
- **bigquerydatatransfer:** update the API ([b290e4a](b290e4a24d))
- **bigquery:** update the API ([3a1ca66](3a1ca661f4))
- **bigtableadmin:** update the API ([4f1fb0c](4f1fb0cac0))
- **chat:** update the API ([c594a3b](c594a3b012))
- **checks:** update the API ([b9c4657](b9c46572eb))
- **cloudbuild:** update the API ([1d791a8](1d791a8bc5))
- **clouddeploy:** update the API ([c733347](c7333472fd))
- **cloudfunctions:** update the API ([0255d75](0255d75e4b))
- **compute:** update the API ([0237e76](0237e76d5b))
- **connectors:** update the API ([cc40ccb](cc40ccbdeb))
- **contactcenteraiplatform:** update the API ([6778c8d](6778c8ddfa))
- **containeranalysis:** update the API ([a74b5e3](a74b5e3e99))
- **container:** update the API ([1f06a76](1f06a76ec8))
- **content:** update the API ([b5af676](b5af676bbb))
- **contentwarehouse:** update the API ([ac9b754](ac9b7543ce))
- **datacatalog:** update the API ([747a4af](747a4af6ff))
- **dataflow:** update the API ([a62940f](a62940fdc1))
- **dataform:** update the API ([d1a0a72](d1a0a72df8))
- **datamigration:** update the API ([5037d65](5037d6562b))
- **dataplex:** update the API ([ef7bc25](ef7bc250fb))
- **dataproc:** update the API ([1c699db](1c699db9ce))
- **datastore:** update the API ([80a30a0](80a30a04e2))
- **datastream:** update the API ([2c1c784](2c1c784b89))
- **dialogflow:** update the API ([bac62ef](bac62ef9ff))
- **discoveryengine:** update the API ([d8debb8](d8debb8863))
- **discovery:** update the API ([c82eebd](c82eebd5f1))
- **displayvideo:** update the API ([bbc4d65](bbc4d65427))
- **documentai:** update the API ([8ac40a0](8ac40a004e))
- **drivelabels:** update the API ([5ef5d03](5ef5d030b1))
- **drive:** update the API ([2432651](243265177f))
- **firebaseappcheck:** update the API ([7c4888c](7c4888c182))
- **firebase:** update the API ([fdafcaa](fdafcaa969))
- **firestore:** update the API ([7a14283](7a14283031))
- **games:** update the API ([55fed7d](55fed7d4ec))
- **gkebackup:** update the API ([8d1ac26](8d1ac26eb6))
- **gkehub:** update the API ([81d36c9](81d36c9368))
- **gkeonprem:** update the API ([7412e91](7412e91ccd))
- **healthcare:** update the API ([1d0354c](1d0354c855))
- **migrationcenter:** update the API ([f4cb381](f4cb38184d))
- **monitoring:** update the API ([f5bf72c](f5bf72c5a7))
- **networkconnectivity:** update the API ([23894c5](23894c5f96))
- **networksecurity:** update the API ([d9f4f91](d9f4f9174f))
- **notebooks:** update the API ([9498d86](9498d86aaf))
- **ondemandscanning:** update the API ([0ec83f3](0ec83f316b))
- **osconfig:** update the API ([e1ca8d0](e1ca8d031e))
- **oslogin:** update the API ([cf32530](cf32530418))
- **policysimulator:** update the API ([7c67951](7c6795150e))
- **pubsub:** update the API ([27c5439](27c5439336))
- regenerate index files ([7e6a0e5](7e6a0e582b))
- **retail:** update the API ([4dcd52b](4dcd52b6a7))
- **securitycenter:** update the API ([82cf038](82cf0380c5))
- **serviceconsumermanagement:** update the API ([da52b7e](da52b7ef38))
- **servicecontrol:** update the API ([d246968](d24696820f))
- **servicedirectory:** update the API ([70389d9](70389d96ea))
- **servicemanagement:** update the API ([6fdca08](6fdca087b3))
- **servicenetworking:** update the API ([d4784d0](d4784d07dd))
- **serviceusage:** update the API ([cf72cfd](cf72cfd02b))
- **smartdevicemanagement:** update the API ([cc5c86e](cc5c86e758))
- **sqladmin:** update the API ([0c9f7b6](0c9f7b666d))
- **tagmanager:** update the API ([42c3b97](42c3b97d78))
- **toolresults:** update the API ([d07c878](d07c8782d3))
- **tpu:** update the API ([6109722](61097227dc))
- **trafficdirector:** update the API ([d07ac95](d07ac95641))
- **vault:** update the API ([e1d2dc4](e1d2dc4ca3))
- **verifiedaccess:** update the API ([d8e2234](d8e22343e2))
- **videointelligence:** update the API ([158ae35](158ae35e73))
- **vmmigration:** update the API ([3adbd55](3adbd5557e))
- **workloadmanager:** update the API ([2f089aa](2f089aa056))
- **youtube:** update the API ([83aac2f](83aac2f393))
##### Bug Fixes
- **abusiveexperiencereport:** update the API ([51e5811](51e581179d))
- **acceleratedmobilepageurl:** update the API ([a6a2a06](a6a2a06ff1))
- **accessapproval:** update the API ([5194181](519418151e))
- **accesscontextmanager:** update the API ([28aebba](28aebba030))
- **acmedns:** update the API ([c6b1bcb](c6b1bcb8c3))
- add headers to tests ([d88a219](d88a2193ee))
- **adexchangebuyer2:** update the API ([436e422](436e422f45))
- **adexchangebuyer:** update the API ([de73406](de73406cfe))
- **adexperiencereport:** update the API ([3363255](3363255135))
- **admob:** update the API ([d249550](d249550bd5))
- **adsensehost:** update the API ([0a088ff](0a088ff891))
- **adsense:** update the API ([e1f10f6](e1f10f6ecf))
- **advisorynotifications:** update the API ([d8350ff](d8350ff286))
- **aiplatform:** update the API ([7feb2e8](7feb2e8bf0))
- **alertcenter:** update the API ([a073124](a07312469e))
- **analyticsdata:** update the API ([43bedd1](43bedd114a))
- **analyticsreporting:** update the API ([2d68b5a](2d68b5aa54))
- **analytics:** update the API ([64c4b07](64c4b07238))
- **androiddeviceprovisioning:** update the API ([ba02075](ba02075615))
- **androidenterprise:** update the API ([93f7c0c](93f7c0c999))
- **androidpublisher:** update the API ([8d35576](8d35576047))
- **apigateway:** update the API ([fc58d33](fc58d331a6))
- **apigeeregistry:** update the API ([b57542e](b57542e40b))
- **apikeys:** update the API ([18e475b](18e475be06))
- **appengine:** update the API ([67a3448](67a3448d66))
- **appsactivity:** update the API ([f8ba6ee](f8ba6ee70c))
- **area120tables:** update the API ([6ae8d8d](6ae8d8d8be))
- **authorizedbuyersmarketplace:** update the API ([61d943b](61d943be06))
- **baremetalsolution:** update the API ([269dae8](269dae821f))
- **batch:** update the API ([7aa7cc7](7aa7cc702d))
- **bigqueryconnection:** update the API ([bb288b1](bb288b1195))
- **bigqueryreservation:** update the API ([4e77b1d](4e77b1d162))
- **billingbudgets:** update the API ([0f799e6](0f799e65a5))
- **binaryauthorization:** update the API ([deb6c10](deb6c10db6))
- **blockchainnodeengine:** update the API ([b6bd10a](b6bd10a35c))
- **blogger:** update the API ([975da3e](975da3e0ed))
- **books:** update the API ([4bef344](4bef344a07))
- **businessprofileperformance:** update the API ([5b313f4](5b313f4920))
- **calendar:** update the API ([006efbc](006efbc7fa))
- **certificatemanager:** update the API ([7d91857](7d91857b20))
- **chromemanagement:** update the API ([fd29c85](fd29c85f37))
- **chromepolicy:** update the API ([f51e0db](f51e0db2dc))
- **chromeuxreport:** update the API ([fd7db9e](fd7db9edc4))
- **civicinfo:** update the API ([a1f55b2](a1f55b245d))
- **classroom:** update the API ([7603333](7603333575))
- **cloudasset:** update the API ([1ffdfc2](1ffdfc2b30))
- **cloudbilling:** update the API ([46cbf0e](46cbf0ef91))
- **cloudchannel:** update the API ([e563d83](e563d832be))
- **clouddebugger:** update the API ([faad469](faad4698e5))
- **clouderrorreporting:** update the API ([afa4dec](afa4dec030))
- **cloudidentity:** update the API ([2610c07](2610c07173))
- **cloudiot:** update the API ([49105a6](49105a65ea))
- **cloudkms:** update the API ([208f1da](208f1daac6))
- **cloudprofiler:** update the API ([25cdd90](25cdd90c33))
- **cloudresourcemanager:** update the API ([493ac8c](493ac8ce90))
- **cloudscheduler:** update the API ([58070d7](58070d75a2))
- **cloudsearch:** update the API ([d732a80](d732a80357))
- **cloudshell:** update the API ([f098eb8](f098eb8765))
- **cloudsupport:** update the API ([16514b9](16514b97fc))
- **cloudtasks:** update the API ([12a7fe1](12a7fe1b93))
- **cloudtrace:** update the API ([85adc52](85adc52814))
- **composer:** update the API ([746d876](746d876c78))
- **contactcenterinsights:** update the API ([03a34b1](03a34b14b6))
- **customsearch:** update the API ([13ef993](13ef993800))
- **datafusion:** update the API ([d74fb78](d74fb78629))
- **datalabeling:** update the API ([ed7e0cb](ed7e0cb989))
- **datalineage:** update the API ([7be88ab](7be88abd11))
- **datapipelines:** update the API ([68131e2](68131e2960))
- **deploymentmanager:** update the API ([7a36c72](7a36c726f7))
- **dfareporting:** update the API ([f9c9934](f9c9934688))
- **digitalassetlinks:** update the API ([ef3f085](ef3f0859be))
- **dlp:** update the API ([75eb667](75eb6671c3))
- **dns:** update the API ([6e63b36](6e63b36afb))
- **docs:** update the API ([9cdab2d](9cdab2d96b))
- **domainsrdap:** update the API ([13b01b1](13b01b1767))
- **domains:** update the API ([884519b](884519bf3a))
- **doubleclickbidmanager:** update the API ([73d0bed](73d0bedb16))
- **doubleclicksearch:** update the API ([fa8cb1f](fa8cb1f4aa))
- **driveactivity:** update the API ([13487f9](13487f9ce2))
- **essentialcontacts:** update the API ([5fab60a](5fab60a961))
- **eventarc:** update the API ([d615c48](d615c48812))
- **factchecktools:** update the API ([6f372f1](6f372f19cc))
- **fcmdata:** update the API ([3b19295](3b192956b2))
- **fcm:** update the API ([e099c42](e099c42993))
- **file:** update the API ([9bbf034](9bbf0348a0))
- **firebaseappdistribution:** update the API ([8da0eb4](8da0eb460f))
- **firebasedatabase:** update the API ([4032b62](4032b62921))
- **firebasedynamiclinks:** update the API ([9d96aea](9d96aeafe1))
- **firebasehosting:** update the API ([c23f76b](c23f76bf5e))
- **firebaseml:** update the API ([048c48e](048c48e88b))
- **firebaserules:** update the API ([5e24b10](5e24b105f7))
- **firebasestorage:** update the API ([ea95e22](ea95e22fb2))
- **fitness:** update the API ([7c544ff](7c544ffc24))
- **forms:** update the API ([8ba614a](8ba614a2aa))
- **gamesConfiguration:** update the API ([8d46262](8d46262831))
- **gameservices:** update the API ([900a2fa](900a2fac5c))
- **gamesManagement:** update the API ([7997150](799715027a))
- **genomics:** update the API ([c64bc84](c64bc848cb))
- **gmailpostmastertools:** update the API ([3b25276](3b25276be0))
- **gmail:** update the API ([6ee8730](6ee873005b))
- **groupsmigration:** update the API ([e0c396e](e0c396e9d0))
- **groupssettings:** update the API ([8400a0e](8400a0e998))
- **homegraph:** update the API ([c77f44b](c77f44b726))
- **iamcredentials:** update the API ([b806bd9](b806bd9fb9))
- **iam:** update the API ([6ad470f](6ad470ffbb))
- **iap:** update the API ([8b998a0](8b998a0914))
- **ideahub:** update the API ([1540d50](1540d50df9))
- **identitytoolkit:** update the API ([4d7a874](4d7a874025))
- **ids:** update the API ([428dc29](428dc29375))
- **indexing:** update the API ([782806a](782806a470))
- **integrations:** update the API ([96dd8fd](96dd8fd2c1))
- **jobs:** update the API ([10826fa](10826fa6de))
- **kgsearch:** update the API ([9cee192](9cee192c08))
- **kmsinventory:** update the API ([9492458](9492458165))
- **language:** update the API ([585690a](585690a033))
- **libraryagent:** update the API ([9251716](9251716a73))
- **licensing:** update the API ([c5271b5](c5271b559e))
- **lifesciences:** update the API ([145d7ce](145d7ce4d4))
- **localservices:** update the API ([db5b627](db5b6271a4))
- **logging:** update the API ([df73435](df73435d7d))
- **managedidentities:** update the API ([1814dfa](1814dfa9e3))
- **manufacturers:** update the API ([c6c1398](c6c1398806))
- **memcache:** update the API ([05013bb](05013bb4d2))
- **metastore:** update the API ([45b0b5d](45b0b5d84f))
- **ml:** update the API ([9e1be4a](9e1be4aed4))
- **mybusinessaccountmanagement:** update the API ([6bc90e9](6bc90e9575))
- **mybusinessbusinesscalls:** update the API ([13ec9e0](13ec9e001a))
- **mybusinessbusinessinformation:** update the API ([565b3fa](565b3fa86b))
- **mybusinesslodging:** update the API ([006bd5a](006bd5a42d))
- **mybusinessnotifications:** update the API ([78e33ee](78e33ee568))
- **mybusinessplaceactions:** update the API ([bc8e5c7](bc8e5c7259))
- **mybusinessqanda:** update the API ([0ca91b1](0ca91b1e04))
- **mybusinessverifications:** update the API ([d5de2b9](d5de2b9692))
- **networkmanagement:** update the API ([533642b](533642ba85))
- **networkservices:** update the API ([8133c74](8133c7471e))
- **oauth2:** update the API ([5097e00](5097e00e9b))
- **orgpolicy:** update the API ([4f1d852](4f1d85203a))
- **pagespeedonline:** update the API ([fb574b4](fb574b4740))
- **paymentsresellersubscription:** update the API ([ecff656](ecff6566f2))
- **people:** update the API ([abebf9f](abebf9f738))
- **places:** update the API ([1582524](1582524f23))
- **playablelocations:** update the API ([711c349](711c349182))
- **playcustomapp:** update the API ([d96f5b2](d96f5b2af3))
- **playdeveloperreporting:** update the API ([e05bcaf](e05bcaf6c0))
- **playintegrity:** update the API ([7c9edd3](7c9edd37f9))
- **plus:** update the API ([ecac7a8](ecac7a88cd))
- **policyanalyzer:** update the API ([98148bf](98148bf5d9))
- **policytroubleshooter:** update the API ([36a5273](36a52733f6))
- **poly:** update the API ([807484d](807484d57a))
- **privateca:** update the API ([b654769](b654769dd2))
- **prod_tt_sasportal:** update the API ([b8c3705](b8c3705040))
- **publicca:** update the API ([f3361e6](f3361e6e1d))
- **pubsublite:** update the API ([87e148d](87e148d025))
- **readerrevenuesubscriptionlinking:** update the API ([6eb57e9](6eb57e9d2f))
- **realtimebidding:** update the API ([dbcfad2](dbcfad26ca))
- **recaptchaenterprise:** update the API ([3af6e62](3af6e62c11))
- **recommendationengine:** update the API ([b5323d8](b5323d877e))
- **recommender:** update the API ([bf6eed9](bf6eed9745))
- **redis:** update the API ([6879c13](6879c133e0))
- **remotebuildexecution:** update the API ([911cd0a](911cd0a68e))
- **reseller:** update the API ([e7ec5d3](e7ec5d33b9))
- **resourcesettings:** update the API ([c2c0c9e](c2c0c9ecd6))
- **runtimeconfig:** update the API ([7866c3a](7866c3a9b9))
- **run:** update the API ([2ed76fe](2ed76fe355))
- **safebrowsing:** update the API ([fe23d83](fe23d83559))
- **sasportal:** update the API ([ca33e9c](ca33e9c71f))
- **script:** update the API ([207587b](207587b2b7))
- **searchads360:** update the API ([8ed1df1](8ed1df140b))
- **searchconsole:** update the API ([208d0a5](208d0a5dc7))
- **secretmanager:** update the API ([426f146](426f146ac7))
- **sheets:** update the API ([3333f83](3333f83473))
- **siteVerification:** update the API ([760447c](760447c313))
- **slides:** update the API ([5e4d08c](5e4d08cfae))
- **sourcerepo:** update the API ([f803061](f803061d79))
- **spanner:** update the API ([8fe5e93](8fe5e9303a))
- **speech:** update the API ([34b7185](34b7185e75))
- **sql:** update the API ([b29a348](b29a34873e))
- **storagetransfer:** update the API ([d4e4820](d4e48203dd))
- **storage:** update the API ([20860bc](20860bc1ab))
- **streetviewpublish:** update the API ([1c6bb94](1c6bb94e2e))
- **sts:** update the API ([5765d2a](5765d2a4a1))
- **tasks:** update the API ([0eac80e](0eac80eb8e))
- **testing:** update the API ([fd787ed](fd787ed8f2))
- **texttospeech:** update the API ([9981feb](9981feb93e))
- **transcoder:** update the API ([851586c](851586c418))
- **translate:** update the API ([e11cc5e](e11cc5eea6))
- **travelimpactmodel:** update the API ([75a5352](75a5352631))
- **vectortile:** update the API ([4d94932](4d949325d9))
- **versionhistory:** update the API ([bb2ceec](bb2ceec5dd))
- **vision:** update the API ([afea669](afea6697bc))
- **vpcaccess:** update the API ([da58970](da5897041f))
- **webfonts:** update the API ([f0a4421](f0a4421760))
- **webmasters:** update the API ([d4143d6](d4143d6ab0))
- **webrisk:** update the API ([d4cc69b](d4cc69bca7))
- **websecurityscanner:** update the API ([9960a3a](9960a3aff2))
- **workflowexecutions:** update the API ([b3488ab](b3488abe18))
- **workflows:** update the API ([0b82237](0b82237e45))
- **workstations:** update the API ([a5f5488](a5f5488c31))
- **youtubeAnalytics:** update the API ([203afe6](203afe652d))
- **youtubereporting:** update the API ([48b6016](48b6016a38))
##### Miscellaneous Chores
- migate to Node 14 ([0967781](09677817aa))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->