diff --git a/src/biz/workspace/publish_dup.rs b/src/biz/workspace/publish_dup.rs index d72ef1fa8..a3b8bec5a 100644 --- a/src/biz/workspace/publish_dup.rs +++ b/src/biz/workspace/publish_dup.rs @@ -340,7 +340,9 @@ impl PublishCollabDuplicator { ViewLayout::Document => { let doc_collab = collab_from_doc_state(published_blob, "")?; let doc = Document::open(doc_collab).map_err(|e| AppError::Unhandled(e.to_string()))?; - let new_doc_view = self.deep_copy_doc(new_view_id, doc, metadata).await?; + let new_doc_view = self + .deep_copy_doc(publish_view_id, new_view_id, doc, metadata) + .await?; Ok(Some(new_doc_view)) }, ViewLayout::Grid | ViewLayout::Board | ViewLayout::Calendar => { @@ -360,6 +362,7 @@ impl PublishCollabDuplicator { async fn deep_copy_doc<'a>( &mut self, + pub_view_id: &str, new_view_id: String, doc: Document, metadata: PublishViewMetaData, @@ -376,7 +379,7 @@ impl PublishCollabDuplicator { } if let Err(err) = self - .deep_copy_doc_databases(&mut doc_data, &mut ret_view) + .deep_copy_doc_databases(pub_view_id, &mut doc_data, &mut ret_view) .await { tracing::error!("failed to deep copy doc databases: {}", err); @@ -493,6 +496,7 @@ impl PublishCollabDuplicator { async fn deep_copy_doc_databases( &mut self, + pub_view_id: &str, doc_data: &mut DocumentData, ret_view: &mut View, ) -> Result<(), AppError> { @@ -517,29 +521,82 @@ impl PublishCollabDuplicator { .as_str() .ok_or_else(|| AppError::RecordNotFound("view_id not a string".to_string()))?; - if let Some((new_view_id, new_parent_id)) = self - .deep_copy_database_inline_doc(block_view_id, block_parent_id, &ret_view.id) - .await? - { - block.data.insert( - "view_id".to_string(), - serde_json::Value::String(new_view_id), - ); - block.data.insert( - "parent_id".to_string(), - serde_json::Value::String(new_parent_id), - ); + if pub_view_id == block_parent_id { + // inline database in doc + if let Some(new_view_id) = self + .deep_copy_inline_database_in_doc(block_view_id, &ret_view.id) + .await? + { + block.data.insert( + "view_id".to_string(), + serde_json::Value::String(new_view_id), + ); + block.data.insert( + "parent_id".to_string(), + serde_json::Value::String(ret_view.id.clone()), + ); + } else { + tracing::warn!("deep_copy_doc_databases: view not found: {}", block_view_id); + } } else { - tracing::warn!("deep_copy_doc_databases: view not found: {}", block_view_id); + // reference to database + if let Some((new_view_id, new_parent_id)) = self + .deep_copy_ref_database_in_doc(block_view_id, block_parent_id, &ret_view.id) + .await? + { + block.data.insert( + "view_id".to_string(), + serde_json::Value::String(new_view_id), + ); + block.data.insert( + "parent_id".to_string(), + serde_json::Value::String(new_parent_id), + ); + } else { + tracing::warn!("deep_copy_doc_databases: view not found: {}", block_view_id); + } } } Ok(()) } - /// deep copy database for doc + /// deep copy inline database for doc + /// returns new view_id + /// parent_view_id is assumed to be doc itself + async fn deep_copy_inline_database_in_doc<'a>( + &mut self, + view_id: &str, + doc_view_id: &String, + ) -> Result, AppError> { + let (metadata, published_blob) = match self + .get_published_data_for_view_id(&view_id.parse()?) + .await? + { + Some(published_data) => published_data, + None => { + tracing::warn!("No published collab data found for view_id: {}", view_id); + return Ok(None); + }, + }; + + let published_db = serde_json::from_slice::(&published_blob)?; + let mut parent_view = self + .deep_copy_database_view(gen_view_id(), published_db, &metadata, view_id) + .await?; + let parent_view_id = parent_view.id.clone(); + if parent_view.parent_view_id.is_empty() { + parent_view.parent_view_id.clone_from(doc_view_id); + self + .views_to_add + .insert(parent_view.id.clone(), parent_view); + } + Ok(Some(parent_view_id)) + } + + /// deep copy referenced database for doc /// returns new (view_id, parent_id) - async fn deep_copy_database_inline_doc<'a>( + async fn deep_copy_ref_database_in_doc<'a>( &mut self, view_id: &str, parent_id: &str, diff --git a/tests/workspace/publish.rs b/tests/workspace/publish.rs index 8f901d2ee..c7f5c1087 100644 --- a/tests/workspace/publish.rs +++ b/tests/workspace/publish.rs @@ -5,6 +5,7 @@ use appflowy_cloud::biz::workspace::publish_dup::{ use collab::util::MapExt; use collab_database::views::ViewMap; use collab_database::workspace_database::WorkspaceDatabaseBody; +use collab_document::document::Document; use collab_entity::CollabType; use collab_folder::{CollabOrigin, Folder}; use shared_entity::dto::publish_dto::PublishDatabaseData; @@ -933,7 +934,6 @@ async fn duplicate_to_workspace_doc_inline_database() { .into_iter() .find(|v| v.name == "View of grid1") .unwrap(); - println!("{:#?}", view_of_grid1_fv); assert_ne!(view_of_grid1_fv.view_id, view_of_grid_1_view_id.to_string()); { @@ -985,6 +985,124 @@ async fn duplicate_to_workspace_doc_inline_database() { } } +#[tokio::test] +async fn duplicate_to_workspace_db_embedded_in_doc() { + let client_1 = TestClient::new_user().await; + let workspace_id = client_1.workspace_id().await; + + // embedded doc with db + // database is created in the doc, not linked from a separate view + let doc_with_embedded_db_view_id: uuid::Uuid = uuid::Uuid::new_v4(); + let doc_with_embedded_db_metadata: PublishViewMetaData = + serde_json::from_str(published_data::DOC_WITH_EMBEDDED_DB_META).unwrap(); + let doc_with_embedded_db_blob = hex::decode(published_data::DOC_WITH_EMBEDDED_DB_HEX).unwrap(); + + // user will also need to publish the database (even though it is embedded) + // uuid must be fixed because it is referenced in the doc + let embedded_db_view_id: uuid::Uuid = "bb221175-14da-4a05-a09d-595e42d2350f".parse().unwrap(); + let embedded_db_metadata: PublishViewMetaData = + serde_json::from_str(published_data::EMBEDDED_DB_META).unwrap(); + let embedded_db_blob = hex::decode(published_data::EMBEDDED_DB_HEX).unwrap(); + + client_1 + .api_client + .publish_collabs( + &workspace_id, + vec![ + PublishCollabItem { + meta: PublishCollabMetadata { + view_id: doc_with_embedded_db_view_id, + publish_name: "doc-with-embedded-db".to_string(), + metadata: doc_with_embedded_db_metadata.clone(), + }, + data: doc_with_embedded_db_blob, + }, + PublishCollabItem { + meta: PublishCollabMetadata { + view_id: embedded_db_view_id, + publish_name: "embedded-db".to_string(), + metadata: embedded_db_metadata.clone(), + }, + data: embedded_db_blob, + }, + ], + ) + .await + .unwrap(); + + { + let mut client_2 = TestClient::new_user().await; + let workspace_id_2 = client_2.workspace_id().await; + + // Open workspace to trigger group creation + client_2 + .open_collab(&workspace_id_2, &workspace_id_2, CollabType::Folder) + .await; + + let fv = client_2 + .api_client + .get_workspace_folder(&workspace_id_2, Some(5)) + .await + .unwrap(); + + // duplicate doc_with_embedded_db to workspace2 + // Result fv should be: + // . + // ├── Getting Started (existing) + // └── db_with_embedded_db (inside should contain the database) + client_2 + .api_client + .duplicate_published_to_workspace( + &workspace_id_2, + &PublishedDuplicate { + published_view_id: doc_with_embedded_db_view_id.to_string(), + dest_view_id: fv.view_id, // use the root view + }, + ) + .await + .unwrap(); + + { + let fv = client_2 + .api_client + .get_workspace_folder(&workspace_id_2, Some(5)) + .await + .unwrap(); + println!("{:#?}", fv); + let doc_with_embedded_db = fv + .children + .into_iter() + .find(|v| v.name == "docwithembeddeddb") + .unwrap(); + let collab_resp = client_2 + .get_collab(QueryCollabParams { + workspace_id: workspace_id_2.clone(), + inner: QueryCollab { + object_id: doc_with_embedded_db.view_id.clone(), + collab_type: CollabType::Folder, + }, + }) + .await + .unwrap(); + + let doc_collab = + collab_from_doc_state(collab_resp.encode_collab.doc_state.to_vec(), "").unwrap(); + let doc = Document::open(doc_collab).unwrap(); + let doc_data = doc.get_document_data().unwrap(); + let grid = doc_data + .blocks + .iter() + .find(|(_k, b)| b.ty == "grid") + .unwrap() + .1; + + // because it is embedded, the database parent's id is the view id of the doc + let parent_id = grid.data.get("parent_id").unwrap().as_str().unwrap(); + assert_ne!(parent_id, doc_with_embedded_db.view_id.clone()); + } + } +} + fn get_database_id_and_row_ids(published_db_blob: &[u8]) -> (String, HashSet) { let pub_db_data = serde_json::from_slice::(published_db_blob).unwrap(); let db_collab = collab_from_doc_state(pub_db_data.database_collab, "").unwrap(); diff --git a/tests/workspace/published_data.rs b/tests/workspace/published_data.rs index 6f0ff3e81..ebbc2da59 100644 --- a/tests/workspace/published_data.rs +++ b/tests/workspace/published_data.rs @@ -348,3 +348,152 @@ pub const VIEW_OF_GRID1_META: &str = r#" "#; pub const VIEW_OF_GRID_1_DB_DATA: &str = "7b2264617461626173655f636f6c6c6162223a5b34392c31372c3233312c3139322c3138392c3234312c31352c302c3136312c3235322c3231352c3137372c3136352c31332c312c312c33392c302c3235322c3231352c3137372c3136352c31332c332c33362c3130302c35362c35332c35362c35372c3130312c35372c35362c34352c35362c35362c3130322c39392c34352c35322c35302c3130312c35322c34352c35362c35362c35362c39392c34352c39382c34382c35312c35312c35312c35362c39382c3130322c35302c35302c39382c39382c312c34302c302c3233312c3139322c3138392c3234312c31352c312c322c3130352c3130302c312c3131392c33362c3130302c35362c35332c35362c35372c3130312c35372c35362c34352c35362c35362c3130322c39392c34352c35322c35302c3130312c35322c34352c35362c35362c35362c39392c34352c39382c34382c35312c35312c35312c35362c39382c3130322c35302c35302c39382c39382c34302c302c3233312c3139322c3138392c3234312c31352c312c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c34302c302c3233312c3139322c3138392c3234312c31352c312c342c3131302c39372c3130392c3130312c312c3131392c31332c38362c3130352c3130312c3131392c33322c3131312c3130322c33322c3130332c3131342c3130352c3130302c34392c34302c302c3233312c3139322c3138392c3234312c31352c312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c302c34302c302c3233312c3139322c3138392c3234312c31352c312c31312c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c39352c39372c3131362c312c3132352c302c33392c302c3233312c3139322c3138392c3234312c31352c312c31352c3130382c39372c3132312c3131312c3131372c3131362c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c34302c302c3233312c3139322c3138392c3234312c31352c312c362c3130382c39372c3132312c3131312c3131372c3131362c312c3132322c302c302c302c302c302c302c302c302c33392c302c3233312c3139322c3138392c3234312c31352c312c31342c3130322c3130352c3130312c3130382c3130302c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c33392c302c3233312c3139322c3138392c3234312c31352c312c372c3130322c3130352c3130382c3131362c3130312c3131342c3131352c302c33392c302c3233312c3139322c3138392c3234312c31352c312c362c3130332c3131342c3131312c3131372c3131322c3131352c302c33392c302c3233312c3139322c3138392c3234312c31352c312c352c3131352c3131312c3131342c3131362c3131352c302c33392c302c3233312c3139322c3138392c3234312c31352c312c31322c3130322c3130352c3130312c3130382c3130302c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3233312c3139322c3138392c3234312c31352c31332c332c3131382c312c322c3130352c3130302c3131392c362c3131332c37302c3131332c3131302c38362c3130312c3131382c312c322c3130352c3130302c3131392c362c34392c37312c37362c37302c37312c3131332c3131382c312c322c3130352c3130302c3131392c362c3131352c36382c37342c3131362c3132312c37362c33392c302c3233312c3139322c3138392c3234312c31352c312c31302c3131342c3131312c3131392c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3233312c3139322c3138392c3234312c31352c31372c332c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c3130312c35312c34392c35312c3130322c34382c34382c35372c34352c34392c39372c35342c39392c34352c35322c3130322c35352c35322c34352c39372c39392c39392c39382c34352c34392c35302c39382c3130312c35302c35342c35322c34392c39372c39372c35342c35312c3131382c322c322c3130352c3130302c3131392c33362c35372c35362c35332c39382c35302c39392c35302c35322c34352c3130312c35362c35302c35342c34352c35322c39372c35352c35332c34352c39372c35362c34392c35302c34352c39382c3130312c34392c35372c35362c34392c35302c35372c34392c39372c39392c35312c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c39382c39372c35322c3130312c3130302c34382c35362c39372c34352c35342c3130302c34382c35342c34352c35322c35302c34382c3130312c34352c35372c34382c39382c34392c34352c3130322c35372c35342c3130312c35342c35312c3130302c35322c35342c35322c3130312c35352c312c3133312c3233382c3136322c3139372c31352c302c3136312c3233322c3233322c3234342c3136322c31352c302c312c312c3233322c3233322c3234342c3136322c31352c302c3136312c3231352c3136312c3133362c3233322c31322c302c312c312c3231352c3233392c3138352c3138392c31342c302c3136312c3231352c3233302c3134382c3136332c342c302c312c312c3233362c3235352c3137392c3135392c31342c302c3136312c3231312c3139392c3133312c3235302c31302c302c312c312c3135352c3232332c3235302c3134382c31342c302c3136312c3233312c3139322c3138392c3234312c31352c302c312c312c3133312c3231382c3137312c3230372c31332c302c3136312c3135312c3232342c3134332c3137312c392c302c312c312c3136372c3133392c3234382c3139372c31332c302c3136312c3134362c3133382c3231332c3234342c362c302c312c36392c3235322c3231352c3137372c3136352c31332c302c33392c312c342c3130302c39372c3131362c39372c382c3130302c39372c3131362c39372c39382c39372c3131352c3130312c312c33332c302c3235322c3231352c3137372c3136352c31332c302c322c3130352c3130302c312c33392c302c3235322c3231352c3137372c3136352c31332c302c362c3130322c3130352c3130312c3130382c3130302c3131352c312c33392c302c3235322c3231352c3137372c3136352c31332c302c352c3131382c3130352c3130312c3131392c3131352c312c33392c302c3235322c3231352c3137372c3136352c31332c302c352c3130392c3130312c3131362c39372c3131352c312c34302c302c3235322c3231352c3137372c3136352c31332c342c332c3130352c3130352c3130302c312c3131392c33362c35362c3130312c34382c35342c35302c3130322c35342c34392c34352c3130302c35352c39372c3130312c34352c35322c3130322c35322c39382c34352c35362c35342c35372c39392c34352c3130322c35322c35322c39392c35322c35312c34392c35322c35372c35312c35372c35372c33392c302c3235322c3231352c3137372c3136352c31332c322c362c3131332c37302c3131332c3131302c38362c3130312c312c34302c302c3235322c3231352c3137372c3136352c31332c362c322c3130352c3130302c312c3131392c362c3131332c37302c3131332c3131302c38362c3130312c34302c302c3235322c3231352c3137372c3136352c31332c362c342c3131302c39372c3130392c3130312c312c3131392c342c37382c39372c3130392c3130312c34302c302c3235322c3231352c3137372c3136352c31332c362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c34302c302c3235322c3231352c3137372c3136352c31332c362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3133312c3134362c3136332c3233362c31322c34302c302c3235322c3231352c3137372c3136352c31332c362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132302c34302c302c3235322c3231352c3137372c3136352c31332c362c322c3131362c3132312c312c3132352c302c33392c302c3235322c3231352c3137372c3136352c31332c362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235322c3231352c3137372c3136352c31332c31332c312c34382c312c34302c302c3235322c3231352c3137372c3136352c31332c31342c342c3130302c39372c3131362c39372c312c3131392c302c33392c302c3235322c3231352c3137372c3136352c31332c322c362c34392c37312c37362c37302c37312c3131332c312c34302c302c3235322c3231352c3137372c3136352c31332c31362c322c3130352c3130302c312c3131392c362c34392c37312c37362c37302c37312c3131332c34302c302c3235322c3231352c3137372c3136352c31332c31362c342c3131302c39372c3130392c3130312c312c3131392c342c38342c3132312c3131322c3130312c34302c302c3235322c3231352c3137372c3136352c31332c31362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c33332c302c3235322c3231352c3137372c3136352c31332c31362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c34302c302c3235322c3231352c3137372c3136352c31332c31362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3235322c3231352c3137372c3136352c31332c31362c322c3131362c3132312c312c3132352c332c33392c302c3235322c3231352c3137372c3136352c31332c31362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235322c3231352c3137372c3136352c31332c32332c312c35312c312c33332c302c3235322c3231352c3137372c3136352c31332c32342c372c39392c3131312c3131302c3131362c3130312c3131302c3131362c312c33392c302c3235322c3231352c3137372c3136352c31332c322c362c3131352c36382c37342c3131362c3132312c37362c312c34302c302c3235322c3231352c3137372c3136352c31332c32362c322c3130352c3130302c312c3131392c362c3131352c36382c37342c3131362c3132312c37362c34302c302c3235322c3231352c3137372c3136352c31332c32362c342c3131302c39372c3130392c3130312c312c3131392c342c36382c3131312c3131302c3130312c34302c302c3235322c3231352c3137372c3136352c31332c32362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c34302c302c3235322c3231352c3137372c3136352c31332c32362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3133312c3134362c3136332c3233362c31322c34302c302c3235322c3231352c3137372c3136352c31332c32362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3235322c3231352c3137372c3136352c31332c32362c322c3131362c3132312c312c3132352c352c33392c302c3235322c3231352c3137372c3136352c31332c32362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3235322c3231352c3137372c3136352c31332c33332c312c35332c312c33392c302c3235322c3231352c3137372c3136352c31332c332c33362c35362c3130312c34382c35342c35302c3130322c35342c34392c34352c3130302c35352c39372c3130312c34352c35322c3130322c35322c39382c34352c35362c35342c35372c39392c34352c3130322c35322c35322c39392c35322c35312c34392c35322c35372c35312c35372c35372c312c34302c302c3235322c3231352c3137372c3136352c31332c33352c322c3130352c3130302c312c3131392c33362c35362c3130312c34382c35342c35302c3130322c35342c34392c34352c3130302c35352c39372c3130312c34352c35322c3130322c35322c39382c34352c35362c35342c35372c39392c34352c3130322c35322c35322c39392c35322c35312c34392c35322c35372c35312c35372c35372c34302c302c3235322c3231352c3137372c3136352c31332c33352c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c34302c302c3235322c3231352c3137372c3136352c31332c33352c342c3131302c39372c3130392c3130312c312c3131392c382c38352c3131302c3131362c3130352c3131362c3130382c3130312c3130302c34302c302c3235322c3231352c3137372c3136352c31332c33352c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c34302c302c3235322c3231352c3137372c3136352c31332c33352c31312c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c33392c302c3235322c3231352c3137372c3136352c31332c33352c31352c3130382c39372c3132312c3131312c3131372c3131362c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c34302c302c3235322c3231352c3137372c3136352c31332c33352c362c3130382c39372c3132312c3131312c3131372c3131362c312c3132322c302c302c302c302c302c302c302c302c33392c302c3235322c3231352c3137372c3136352c31332c33352c31342c3130322c3130352c3130312c3130382c3130302c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c33392c302c3235322c3231352c3137372c3136352c31332c34332c362c3131332c37302c3131332c3131302c38362c3130312c312c34302c302c3235322c3231352c3137372c3136352c31332c34342c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132352c302c34302c302c3235322c3231352c3137372c3136352c31332c34342c352c3131392c3130352c3130302c3131362c3130342c312c3132352c3135302c322c34302c302c3235322c3231352c3137372c3136352c31332c34342c342c3131392c3131342c39372c3131322c312c3132302c33392c302c3235322c3231352c3137372c3136352c31332c34332c362c3131352c36382c37342c3131362c3132312c37362c312c34302c302c3235322c3231352c3137372c3136352c31332c34382c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132352c302c34302c302c3235322c3231352c3137372c3136352c31332c34382c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3235322c3231352c3137372c3136352c31332c34382c352c3131392c3130352c3130302c3131362c3130342c312c3132352c3135302c322c33392c302c3235322c3231352c3137372c3136352c31332c34332c362c34392c37312c37362c37302c37312c3131332c312c34302c302c3235322c3231352c3137372c3136352c31332c35322c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132352c302c34302c302c3235322c3231352c3137372c3136352c31332c35322c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3235322c3231352c3137372c3136352c31332c35322c352c3131392c3130352c3130302c3131362c3130342c312c3132352c3135302c322c33392c302c3235322c3231352c3137372c3136352c31332c33352c372c3130322c3130352c3130382c3131362c3130312c3131342c3131352c302c33392c302c3235322c3231352c3137372c3136352c31332c33352c362c3130332c3131342c3131312c3131372c3131322c3131352c302c33392c302c3235322c3231352c3137372c3136352c31332c33352c352c3131352c3131312c3131342c3131362c3131352c302c33392c302c3235322c3231352c3137372c3136352c31332c33352c31322c3130322c3130352c3130312c3130382c3130302c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3235322c3231352c3137372c3136352c31332c35392c332c3131382c312c322c3130352c3130302c3131392c362c3131332c37302c3131332c3131302c38362c3130312c3131382c312c322c3130352c3130302c3131392c362c34392c37312c37362c37302c37312c3131332c3131382c312c322c3130352c3130302c3131392c362c3131352c36382c37342c3131362c3132312c37362c33392c302c3235322c3231352c3137372c3136352c31332c33352c31302c3131342c3131312c3131392c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3235322c3231352c3137372c3136352c31332c36332c332c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c3130312c35312c34392c35312c3130322c34382c34382c35372c34352c34392c39372c35342c39392c34352c35322c3130322c35352c35322c34352c39372c39392c39392c39382c34352c34392c35302c39382c3130312c35302c35342c35322c34392c39372c39372c35342c35312c3131382c322c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c322c3130352c3130302c3131392c33362c35372c35362c35332c39382c35302c39392c35302c35322c34352c3130312c35362c35302c35342c34352c35322c39372c35352c35332c34352c39372c35362c34392c35302c34352c39382c3130312c34392c35372c35362c34392c35302c35372c34392c39372c39392c35312c3131382c322c322c3130352c3130302c3131392c33362c39382c39372c35322c3130312c3130302c34382c35362c39372c34352c35342c3130302c34382c35342c34352c35322c35302c34382c3130312c34352c35372c34382c39382c34392c34352c3130322c35372c35342c3130312c35342c35312c3130302c35322c35342c35322c3130312c35352c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3136312c3235322c3231352c3137372c3136352c31332c32302c312c3136312c3235322c3231352c3137372c3136352c31332c32352c312c3136312c3235322c3231352c3137372c3136352c31332c36372c312c3136312c3235322c3231352c3137372c3136352c31332c36382c312c3136382c3235322c3231352c3137372c3136352c31332c36392c312c3132352c3134382c3134362c3136332c3233362c31322c3136382c3235322c3231352c3137372c3136352c31332c37302c312c3131392c3136322c312c3132332c33342c3131312c3131322c3131362c3130352c3131312c3131302c3131352c33342c35382c39312c3132332c33342c3130352c3130302c33342c35382c33342c35352c35342c39392c3130382c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c39392c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c37362c3130352c3130332c3130342c3131362c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c3132312c3130312c3131302c34352c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130382c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c38322c3131322c34382c35332c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130342c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3131372c3131342c3131322c3130382c3130312c33342c3132352c39332c34342c33342c3130302c3130352c3131352c39372c39382c3130382c3130312c39352c39392c3131312c3130382c3131312c3131342c33342c35382c3130322c39372c3130382c3131352c3130312c3132352c312c3235332c3139382c3135372c3136312c31332c302c3136312c3133322c3234332c3138332c3234322c31302c302c312c312c3234372c3234312c3233392c3233332c31322c302c3136312c3231352c3136312c3133362c3233322c31322c302c312c312c3231352c3136312c3133362c3233322c31322c302c3136312c3135352c3232332c3235302c3134382c31342c302c312c312c3136342c3235352c3133352c3135392c31322c302c3136312c3234372c3234312c3233392c3233332c31322c302c312c312c3136302c3136332c3230342c3230302c31312c302c3136312c3233312c3139322c3138392c3234312c31352c302c312c312c3133352c3134322c3234302c3139332c31312c302c3136312c3137382c3135302c3234332c3136312c382c302c312c312c3233302c3233322c3136332c3139302c31312c302c3136312c3138302c3133302c3231352c3232312c352c302c312c312c3231302c3133382c3230362c3133342c31312c302c3136312c3233312c3139322c3138392c3234312c31352c302c312c312c3232302c3137372c3136382c3235332c31302c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c32392c312c3231312c3139392c3133312c3235302c31302c302c3136312c3230322c3136332c3230382c3137302c392c302c312c312c3133322c3234332c3138332c3234322c31302c302c3136312c3233302c3233322c3136332c3139302c31312c302c312c312c3138302c3137302c3137352c3135362c31302c302c3136312c3232382c3232392c3232392c3138342c382c302c312c312c3138312c3133362c3136392c3134332c31302c302c3136312c3135312c3232342c3134332c3137312c392c302c312c312c3135312c3232342c3134332c3137312c392c302c3136312c3232392c3133372c3133322c3234372c312c302c312c312c3233352c3136332c3230382c3137302c392c302c3136312c3233322c3233322c3234342c3136322c31352c302c312c312c3230322c3136332c3230382c3137302c392c302c3136312c3234382c3137332c3230362c3230312c322c302c312c312c3232382c3232392c3232392c3138342c382c302c3136312c3137382c3135302c3234332c3136312c382c302c312c312c3233342c3139382c3234332c3138312c382c302c3136312c3234382c3137332c3230362c3230312c322c302c312c312c3137362c3234302c3233302c3137392c382c302c3136312c3135352c3232332c3235302c3134382c31342c302c312c312c3137382c3135302c3234332c3136312c382c302c3136312c3232392c3133372c3133322c3234372c312c302c312c312c3132392c3135332c3139322c3233352c372c302c3136312c3235332c3139382c3135372c3136312c31332c302c312c312c3132382c3132392c3134392c3231352c372c302c3136312c3233322c3233322c3234342c3136322c31352c302c312c312c3234312c3134312c3232332c3137362c372c302c3136312c3230322c3136332c3230382c3137302c392c302c312c312c3134362c3133382c3231332c3234342c362c302c3136312c3133352c3134322c3234302c3139332c31312c302c312c312c3133382c3233312c3232392c3232392c362c302c3136312c3133322c3232352c3134382c3135392c332c302c312c312c3230342c3231322c3235332c3230372c362c302c3136312c3233312c3139322c3138392c3234312c31352c302c312c312c3233302c3136342c3134362c3234392c352c302c3136382c3132392c3135332c3139322c3233352c372c302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c312c3138302c3133302c3231352c3232312c352c302c3136312c3231352c3233392c3138352c3138392c31342c302c312c312c3139352c3232392c3137372c3231322c352c302c3136312c3234382c3137332c3230362c3230312c322c302c312c312c3231352c3233302c3134382c3136332c342c302c3136312c3133312c3231382c3137312c3230372c31332c302c312c322c3138352c3235322c3133372c3235352c332c302c3136312c3232302c3137372c3136382c3235332c31302c32382c332c3136382c3138352c3235322c3133372c3235352c332c322c312c3132322c302c302c302c302c3130322c3139392c332c36342c312c3133322c3232352c3134382c3135392c332c302c3136312c3235322c3231352c3137372c3136352c31332c312c312c312c3232312c3134392c3135382c3232392c322c302c3136312c3137362c3234302c3233302c3137392c382c302c312c312c3133392c3137342c3133352c3230332c322c302c3136312c3138312c3133362c3136392c3134332c31302c302c312c312c3234382c3137332c3230362c3230312c322c302c3136312c3133312c3233382c3136322c3139372c31352c302c312c312c3232392c3133372c3133322c3234372c312c302c3136312c3135382c3231382c3136342c3130302c302c312c312c3135342c3230302c3135312c3130392c302c3136312c3231312c3139392c3133312c3235302c31302c302c312c312c3135382c3231382c3136342c3130302c302c3136312c3233362c3235352c3137392c3135392c31342c302c312c312c3136362c3230342c3135322c35372c302c3136312c3233322c3233322c3234342c3136322c31352c302c312c312c3132392c3233382c3134322c34392c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c3137322c312c34382c3132382c3132392c3134392c3231352c372c312c302c312c3132392c3233382c3134322c34392c312c302c3137322c312c3132392c3135332c3139322c3233352c372c312c302c312c3133312c3233382c3136322c3139372c31352c312c302c312c3133322c3232352c3134382c3135392c332c312c302c312c3139352c3232392c3137372c3231322c352c312c302c312c3133312c3231382c3137312c3230372c31332c312c302c312c3133352c3134322c3234302c3139332c31312c312c302c312c3133322c3234332c3138332c3234322c31302c312c302c312c3133382c3233312c3232392c3232392c362c312c302c312c3230322c3136332c3230382c3137302c392c312c302c312c3230342c3231322c3235332c3230372c362c312c302c312c3133392c3137342c3133352c3230332c322c312c302c312c3231302c3133382c3230362c3133342c31312c312c302c312c3231312c3139392c3133312c3235302c31302c312c302c312c3134362c3133382c3231332c3234342c362c312c302c312c3231352c3136312c3133362c3233322c31322c312c302c312c3135312c3232342c3134332c3137312c392c312c302c312c3231352c3233302c3134382c3136332c342c312c302c312c3135342c3230302c3135312c3130392c312c302c312c3135352c3232332c3235302c3134382c31342c312c302c312c3232302c3137372c3136382c3235332c31302c312c302c32392c3232312c3134392c3135382c3232392c322c312c302c312c3135382c3231382c3136342c3130302c312c302c312c3231352c3233392c3138352c3138392c31342c312c302c312c3136302c3136332c3230342c3230302c31312c312c302c312c3136342c3235352c3133352c3135392c31322c312c302c312c3232392c3133372c3133322c3234372c312c312c302c312c3136362c3230342c3135322c35372c312c302c312c3233312c3139322c3138392c3234312c31352c312c302c312c3233322c3233322c3234342c3136322c31352c312c302c312c3232382c3232392c3232392c3138342c382c312c302c312c3233342c3139382c3234332c3138312c382c312c302c312c3233352c3136332c3230382c3137302c392c312c302c312c3233362c3235352c3137392c3135392c31342c312c302c312c3136372c3133392c3234382c3139372c31332c312c302c312c3233302c3233322c3136332c3139302c31312c312c302c312c3137362c3234302c3233302c3137392c382c312c302c312c3234312c3134312c3232332c3137362c372c312c302c312c3137382c3135302c3234332c3136312c382c312c302c312c3138302c3137302c3137352c3135362c31302c312c302c312c3138312c3133362c3136392c3134332c31302c312c302c312c3138302c3133302c3231352c3232312c352c312c302c312c3234372c3234312c3233392c3233332c31322c312c302c312c3234382c3137332c3230362c3230312c322c312c302c312c3138352c3235322c3133372c3235352c332c312c302c332c3235322c3231352c3137372c3136352c31332c342c312c312c32302c312c32352c312c36372c342c3235332c3139382c3135372c3136312c31332c312c302c315d2c2264617461626173655f726f775f636f6c6c616273223a7b2239383562326332342d653832362d346137352d613831322d626531393831323931616333223a5b352c322c3232362c3231392c3136302c3138332c31352c302c3136312c3136392c3137332c3138372c3132382c352c312c312c3136382c3232362c3231392c3136302c3138332c31352c302c312c3132322c302c302c302c302c3130322c3139392c332c36302c312c3234362c3139362c3138322c3230392c31332c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c31302c312c3134302c3138302c3232362c3232352c382c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c37312c32382c3232312c3134382c3233312c3139322c352c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3232312c3134382c3233312c3139322c352c302c322c3130352c3130302c312c3131392c33362c35372c35362c35332c39382c35302c39392c35302c35322c34352c3130312c35362c35302c35342c34352c35322c39372c35352c35332c34352c39372c35362c34392c35302c34352c39382c3130312c34392c35372c35362c34392c35302c35372c34392c39372c39392c35312c34302c302c3232312c3134382c3233312c3139322c352c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c34302c302c3232312c3134382c3233312c3139322c352c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132352c36302c34302c302c3232312c3134382c3233312c3139322c352c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3232312c3134382c3233312c3139322c352c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c33332c302c3232312c3134382c3233312c3139322c352c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3232312c3134382c3233312c3139322c352c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3232312c3134382c3233312c3139322c352c382c312c33392c302c3232312c3134382c3233312c3139322c352c392c362c3131332c37302c3131332c3131302c38362c3130312c312c34302c302c3232312c3134382c3233312c3139322c352c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134342c3134362c3136332c3233362c31322c34302c302c3232312c3134382c3233312c3139322c352c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c302c34302c302c3232312c3134382c3233312c3139322c352c31312c342c3130302c39372c3131362c39372c312c3131392c312c3130382c34302c302c3232312c3134382c3233312c3139322c352c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134342c3134362c3136332c3233362c31322c3136312c3232312c3134382c3233312c3139322c352c31302c312c33392c302c3232312c3134382c3233312c3139322c352c392c362c34392c37312c37362c37302c37312c3131332c312c34302c302c3232312c3134382c3233312c3139322c352c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134372c3134362c3136332c3233362c31322c34302c302c3232312c3134382c3233312c3139322c352c31372c342c3130302c39372c3131362c39372c312c3131392c342c3132312c3130312c3131302c34352c34302c302c3232312c3134382c3233312c3139322c352c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c332c34302c302c3232312c3134382c3233312c3139322c352c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134372c3134362c3136332c3233362c31322c3136382c3232312c3134382c3233312c3139322c352c31362c312c3132352c3135302c3134362c3136332c3233362c31322c33392c302c3232312c3134382c3233312c3139322c352c392c362c3131352c36382c37342c3131362c3132312c37362c312c34302c302c3232312c3134382c3233312c3139322c352c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3135302c3134362c3136332c3233362c31322c34302c302c3232312c3134382c3233312c3139322c352c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c352c34302c302c3232312c3134382c3233312c3139322c352c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3232312c3134382c3233312c3139322c352c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3135302c3134362c3136332c3233362c31322c312c3136392c3137332c3138372c3132382c352c302c3136312c3234362c3139362c3138322c3230392c31332c392c322c352c3136392c3137332c3138372c3132382c352c312c302c322c3232362c3231392c3136302c3138332c31352c312c302c312c3134302c3138302c3232362c3232352c382c312c302c37312c3232312c3134382c3233312c3139322c352c332c382c312c31302c312c31362c312c3234362c3139362c3138322c3230392c31332c312c302c31305d2c2265333133663030392d316136632d346637342d616363622d313262653236343161613633223a5b352c32382c3134342c3139342c3136382c3230352c31322c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3134342c3139342c3136382c3230352c31322c302c322c3130352c3130302c312c3131392c33362c3130312c35312c34392c35312c3130322c34382c34382c35372c34352c34392c39372c35342c39392c34352c35322c3130322c35352c35322c34352c39372c39392c39392c39382c34352c34392c35302c39382c3130312c35302c35342c35322c34392c39372c39372c35342c35312c34302c302c3134342c3139342c3136382c3230352c31322c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c34302c302c3134342c3139342c3136382c3230352c31322c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132352c36302c34302c302c3134342c3139342c3136382c3230352c31322c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3134342c3139342c3136382c3230352c31322c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c33332c302c3134342c3139342c3136382c3230352c31322c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3134342c3139342c3136382c3230352c31322c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3134342c3139342c3136382c3230352c31322c382c312c33392c302c3134342c3139342c3136382c3230352c31322c392c362c3131332c37302c3131332c3131302c38362c3130312c312c34302c302c3134342c3139342c3136382c3230352c31322c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134342c3134362c3136332c3233362c31322c34302c302c3134342c3139342c3136382c3230352c31322c31312c342c3130302c39372c3131362c39372c312c3131392c312c3130342c34302c302c3134342c3139342c3136382c3230352c31322c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c302c34302c302c3134342c3139342c3136382c3230352c31322c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134342c3134362c3136332c3233362c31322c3136312c3134342c3139342c3136382c3230352c31322c31302c312c33392c302c3134342c3139342c3136382c3230352c31322c392c362c34392c37312c37362c37302c37312c3131332c312c34302c302c3134342c3139342c3136382c3230352c31322c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134362c3134362c3136332c3233362c31322c34302c302c3134342c3139342c3136382c3230352c31322c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c332c34302c302c3134342c3139342c3136382c3230352c31322c31372c342c3130302c39372c3131362c39372c312c3131392c342c38322c3131322c34382c35332c34302c302c3134342c3139342c3136382c3230352c31322c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134362c3134362c3136332c3233362c31322c3136312c3134342c3139342c3136382c3230352c31322c31362c312c33392c302c3134342c3139342c3136382c3230352c31322c392c362c3131352c36382c37342c3131362c3132312c37362c312c34302c302c3134342c3139342c3136382c3230352c31322c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3135302c3134362c3136332c3233362c31322c33332c302c3134342c3139342c3136382c3230352c31322c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c33332c302c3134342c3139342c3136382c3230352c31322c32332c342c3130302c39372c3131362c39372c312c33332c302c3134342c3139342c3136382c3230352c31322c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c312c3133382c3137392c3133362c3138382c372c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c31322c372c3230332c3135362c3230322c3231372c352c302c3136312c3134342c3139342c3136382c3230352c31322c32322c312c3136382c3134342c3139342c3136382c3230352c31322c32352c312c3132322c302c302c302c302c302c302c302c352c3136312c3134342c3139342c3136382c3230352c31322c32362c312c3136312c3134342c3139342c3136382c3230352c31322c32372c312c3136382c3230332c3135362c3230322c3231372c352c302c312c3132322c302c302c302c302c3130322c3139382c3232372c3230312c3136382c3230332c3135362c3230322c3231372c352c322c312c3131392c332c38392c3130312c3131352c3136382c3230332c3135362c3230322c3231372c352c332c312c3132322c302c302c302c302c3130322c3139382c3232372c3230312c312c3233352c3135362c3137352c3234362c322c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c36392c322c3137312c3138312c3133302c3135352c322c302c3136312c3133382c3137392c3133362c3138382c372c31312c322c3136382c3137312c3138312c3133302c3135352c322c312c312c3132322c302c302c302c302c3130322c3139392c332c36302c352c3134342c3139342c3136382c3230352c31322c352c382c312c31302c312c31362c312c32322c312c32352c332c3133382c3137392c3133362c3138382c372c312c302c31322c3233352c3135362c3137352c3234362c322c312c302c36392c3230332c3135362c3230322c3231372c352c322c302c312c322c322c3137312c3138312c3133302c3135352c322c312c302c325d2c2262613465643038612d366430362d343230652d393062312d663936653633643436346537223a5b352c322c3234352c3133302c3138312c3232302c31352c302c3136312c3135362c3233302c3232362c3135312c372c312c312c3136382c3234352c3133302c3138312c3232302c31352c302c312c3132322c302c302c302c302c3130322c3139392c332c36302c312c3135362c3233302c3232362c3135312c372c302c3136312c3234302c3135312c3234342c3137332c352c392c322c312c3234302c3135312c3234342c3137332c352c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c31302c312c3231352c3132382c3138392c3133302c322c302c33332c312c342c3130392c3130312c3131362c39372c31322c3130382c39372c3131352c3131362c39352c3131352c3132312c3131302c39392c39352c39372c3131362c36372c32382c3135322c3133382c3233302c36302c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3135322c3133382c3233302c36302c302c322c3130352c3130302c312c3131392c33362c39382c39372c35322c3130312c3130302c34382c35362c39372c34352c35342c3130302c34382c35342c34352c35322c35302c34382c3130312c34352c35372c34382c39382c34392c34352c3130322c35372c35342c3130312c35342c35312c3130302c35322c35342c35322c3130312c35352c34302c302c3135322c3133382c3233302c36302c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35332c39372c35362c34392c39382c35342c35332c39382c34352c3130322c39382c3130312c35362c34352c35322c35332c35322c3130322c34352c39382c35312c3130312c39392c34352c35352c35372c35332c39392c35342c3130322c34392c3130322c35342c35312c3130322c34392c34302c302c3135322c3133382c3233302c36302c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132352c36302c34302c302c3135322c3133382c3233302c36302c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3135322c3133382c3233302c36302c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3133312c3134362c3136332c3233362c31322c33332c302c3135322c3133382c3233302c36302c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3135322c3133382c3233302c36302c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3135322c3133382c3233302c36302c382c312c33392c302c3135322c3133382c3233302c36302c392c362c3131332c37302c3131332c3131302c38362c3130312c312c34302c302c3135322c3133382c3233302c36302c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134352c3134362c3136332c3233362c31322c34302c302c3135322c3133382c3233302c36302c31312c342c3130302c39372c3131362c39372c312c3131392c312c39392c34302c302c3135322c3133382c3233302c36302c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c302c34302c302c3135322c3133382c3233302c36302c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134352c3134362c3136332c3233362c31322c3136312c3135322c3133382c3233302c36302c31302c312c33392c302c3135322c3133382c3233302c36302c392c362c34392c37312c37362c37302c37312c3131332c312c34302c302c3135322c3133382c3233302c36302c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134382c3134362c3136332c3233362c31322c34302c302c3135322c3133382c3233302c36302c31372c342c3130302c39372c3131362c39372c312c3131392c342c35352c35342c39392c3130382c34302c302c3135322c3133382c3233302c36302c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c332c34302c302c3135322c3133382c3233302c36302c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134382c3134362c3136332c3233362c31322c3136382c3135322c3133382c3233302c36302c31362c312c3132352c3134392c3134362c3136332c3233362c31322c33392c302c3135322c3133382c3233302c36302c392c362c3131352c36382c37342c3131362c3132312c37362c312c34302c302c3135322c3133382c3233302c36302c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132352c3134392c3134362c3136332c3233362c31322c34302c302c3135322c3133382c3233302c36302c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3135322c3133382c3233302c36302c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132352c352c34302c302c3135322c3133382c3233302c36302c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132352c3134392c3134362c3136332c3233362c31322c352c3135322c3133382c3233302c36302c332c382c312c31302c312c31362c312c3234302c3135312c3234342c3137332c352c312c302c31302c3135362c3233302c3232362c3135312c372c312c302c322c3234352c3133302c3138312c3232302c31352c312c302c312c3231352c3132382c3138392c3133302c322c312c302c36375d7d2c2264617461626173655f726f775f646f63756d656e745f636f6c6c616273223a7b7d2c2276697369626c655f64617461626173655f766965775f696473223a5b2264383538396539382d383866632d343265342d383838632d623033333338626632326262225d2c2264617461626173655f72656c6174696f6e73223a7b2233663964653338372d636131382d343232622d393262662d306263353231613461653339223a2233396332633365662d386431332d343339632d616166392d336534623434663363313434222c2235613831623635622d666265382d343534662d623365632d373935633666316636336631223a2238653036326636312d643761652d346634622d383639632d663434633433313439333939227d7d"; + +pub const DOC_WITH_EMBEDDED_DB_META: &str = r#" +{ + "view": { + "icon": { + "ty": 0, + "value": "🦐" + }, + "name": "docwithembeddeddb", + "extra": null, + "layout": 0, + "view_id": "070e5934-3c9d-4c96-96e7-f2ff0cb25762", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381188 + }, + "child_views": [ + { + "icon": null, + "name": "embeddeddb", + "extra": null, + "layout": 1, + "view_id": "bb221175-14da-4a05-a09d-595e42d2350f", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381197 + } + ], + "ancestor_views": [ + { + "icon": null, + "name": "Workspace", + "extra": null, + "layout": 0, + "view_id": "d69262ac-87e1-41e0-af26-3841c598c0c6", + "created_at": 1725353187, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725353187 + }, + { + "icon": null, + "name": "somespac", + "extra": "{\"is_space\":true,\"space_icon\":\"interface_essential/home-3\",\"space_icon_color\":\"0xFFA34AFD\",\"space_permission\":0,\"space_created_at\":1725353187638}", + "layout": 0, + "view_id": "e53a1ec9-5a29-4b3c-9c04-4d33eed40561", + "created_at": 1725381129, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381129 + }, + { + "icon": { + "ty": 0, + "value": "🦐" + }, + "name": "docwithembeddeddb", + "extra": null, + "layout": 0, + "view_id": "070e5934-3c9d-4c96-96e7-f2ff0cb25762", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381188 + } + ] +} + +"#; +pub const DOC_WITH_EMBEDDED_DB_HEX: &str = "0301ece2869f09000100b1add37919060becfb839d070081ece2869f0905042700b1add3790106543777574255012800ecfb839d07040269640177065437775742552800ecfb839d0704027479017704677269642800ecfb839d070406706172656e7401772430303038353664302d383061642d353232302d383764632d3738303363303931303961652800ecfb839d0704086368696c6472656e0177063155666854692800ecfb839d070404646174610177657b22706172656e745f6964223a2230373065353933342d336339642d346339362d393665372d663266663063623235373632222c22766965775f6964223a2262623232313137352d313464612d346130352d613039642d353935653432643233353066227d2800ecfb839d07040b65787465726e616c5f6964017e2800ecfb839d07040d65787465726e616c5f74797065017e2700b1add37903063155666854690048b1add379180177065437775742551ab1add379002701046461746108646f63756d656e74012700b1add3790006626c6f636b73012700b1add37900046d657461012700b1add379020c6368696c6472656e5f6d6170012700b1add3790208746578745f6d6170012800b1add3790007706167655f696401772430303038353664302d383061642d353232302d383764632d3738303363303931303961652700b1add379012430303038353664302d383061642d353232302d383764632d373830336330393130396165012800b1add3790602696401772430303038353664302d383061642d353232302d383764632d3738303363303931303961652800b1add37906027479017704706167652800b1add3790606706172656e740177002800b1add37906086368696c6472656e01772430303038353664302d383061642d353232302d383764632d3738303363303931303961652800b1add3790604646174610177027b7d2800b1add379060b65787465726e616c5f6964017e2800b1add379060d65787465726e616c5f74797065017e2700b1add379032430303038353664302d383061642d353232302d383764632d373830336330393130396165002700b1add379010a33785a73455a7a6d5037012800b1add3790f02696401770a33785a73455a7a6d50372800b1add3790f0274790177097061726167726170682800b1add3790f06706172656e7401772430303038353664302d383061642d353232302d383764632d3738303363303931303961652800b1add3790f086368696c6472656e01770a73393351416c59546a662800b1add3790f04646174610177027b7d2800b1add3790f0b65787465726e616c5f696401770a7173323547534c70756f2800b1add3790f0d65787465726e616c5f74797065017704746578742700b1add379030a73393351416c59546a66000800b1add3790e01770a33785a73455a7a6d50372700b1add379040a7173323547534c70756f0202ece2869f09010006ecfb839d07010004"; + +pub const EMBEDDED_DB_META: &str = r#" +{ + "view": { + "icon": null, + "name": "embeddeddb", + "extra": null, + "layout": 1, + "view_id": "bb221175-14da-4a05-a09d-595e42d2350f", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381215 + }, + "child_views": [], + "ancestor_views": [ + { + "icon": null, + "name": "Workspace", + "extra": null, + "layout": 0, + "view_id": "d69262ac-87e1-41e0-af26-3841c598c0c6", + "created_at": 1725353187, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725353187 + }, + { + "icon": null, + "name": "somespac", + "extra": "{\"is_space\":true,\"space_icon\":\"interface_essential/home-3\",\"space_icon_color\":\"0xFFA34AFD\",\"space_permission\":0,\"space_created_at\":1725353187638}", + "layout": 0, + "view_id": "e53a1ec9-5a29-4b3c-9c04-4d33eed40561", + "created_at": 1725381129, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381129 + }, + { + "icon": { + "ty": 0, + "value": "🦐" + }, + "name": "docwithembeddeddb", + "extra": null, + "layout": 0, + "view_id": "070e5934-3c9d-4c96-96e7-f2ff0cb25762", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381188 + }, + { + "icon": null, + "name": "embeddeddb", + "extra": null, + "layout": 1, + "view_id": "bb221175-14da-4a05-a09d-595e42d2350f", + "created_at": 1725381188, + "created_by": 311828434584080384, + "child_views": null, + "last_edited_by": 311828434584080384, + "last_edited_time": 1725381215 + } + ] +} +"#; +pub const EMBEDDED_DB_HEX: &str="7b2264617461626173655f636f6c6c6162223a5b312c36392c3234332c3136312c3234382c3231342c352c302c33392c312c342c3130302c39372c3131362c39372c382c3130302c39372c3131362c39372c39382c39372c3131352c3130312c312c34302c302c3234332c3136312c3234382c3231342c352c302c322c3130352c3130302c312c3131392c33362c35312c35372c34392c39392c35342c39372c35302c34392c34352c39392c34382c35322c39382c34352c35322c34382c35372c39382c34352c35362c35302c35322c34382c34352c3130312c35332c35302c35372c35312c39372c35332c34392c39382c35322c35342c35342c33392c302c3234332c3136312c3234382c3231342c352c302c362c3130322c3130352c3130312c3130382c3130302c3131352c312c33392c302c3234332c3136312c3234382c3231342c352c302c352c3131382c3130352c3130312c3131392c3131352c312c33392c302c3234332c3136312c3234382c3231342c352c302c352c3130392c3130312c3131362c39372c3131352c312c34302c302c3234332c3136312c3234382c3231342c352c342c332c3130352c3130352c3130302c312c3131392c33362c39382c39382c35302c35302c34392c34392c35352c35332c34352c34392c35322c3130302c39372c34352c35322c39372c34382c35332c34352c39372c34382c35372c3130302c34352c35332c35372c35332c3130312c35322c35302c3130302c35302c35312c35332c34382c3130322c33392c302c3234332c3136312c3234382c3231342c352c322c362c36352c3131382c38362c36392c38372c3132322c312c34302c302c3234332c3136312c3234382c3231342c352c362c322c3130352c3130302c312c3131392c362c36352c3131382c38362c36392c38372c3132322c34302c302c3234332c3136312c3234382c3231342c352c362c342c3131302c39372c3130392c3130312c312c3131392c342c37382c39372c3130392c3130312c34302c302c3234332c3136312c3234382c3231342c352c362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c34302c302c3234332c3136312c3234382c3231342c352c362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c36382c34302c302c3234332c3136312c3234382c3231342c352c362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132302c34302c302c3234332c3136312c3234382c3231342c352c362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3234332c3136312c3234382c3231342c352c362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3234332c3136312c3234382c3231342c352c31332c312c34382c312c34302c302c3234332c3136312c3234382c3231342c352c31342c342c3130302c39372c3131362c39372c312c3131392c302c33392c302c3234332c3136312c3234382c3231342c352c322c362c34392c3131332c37392c38322c35372c37382c312c34302c302c3234332c3136312c3234382c3231342c352c31362c322c3130352c3130302c312c3131392c362c34392c3131332c37392c38322c35372c37382c34302c302c3234332c3136312c3234382c3231342c352c31362c342c3131302c39372c3130392c3130312c312c3131392c342c38342c3132312c3131322c3130312c34302c302c3234332c3136312c3234382c3231342c352c31362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c33332c302c3234332c3136312c3234382c3231342c352c31362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c34302c302c3234332c3136312c3234382c3231342c352c31362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3234332c3136312c3234382c3231342c352c31362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c332c33392c302c3234332c3136312c3234382c3231342c352c31362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3234332c3136312c3234382c3231342c352c32332c312c35312c312c33332c302c3234332c3136312c3234382c3231342c352c32342c372c39392c3131312c3131302c3131362c3130312c3131302c3131362c312c33392c302c3234332c3136312c3234382c3231342c352c322c362c38362c3131322c3130302c38392c34352c36352c312c34302c302c3234332c3136312c3234382c3231342c352c32362c322c3130352c3130302c312c3131392c362c38362c3131322c3130302c38392c34352c36352c34302c302c3234332c3136312c3234382c3231342c352c32362c342c3131302c39372c3130392c3130312c312c3131392c342c36382c3131312c3131302c3130312c34302c302c3234332c3136312c3234382c3231342c352c32362c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c34302c302c3234332c3136312c3234382c3231342c352c32362c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c36382c34302c302c3234332c3136312c3234382c3231342c352c32362c31302c3130352c3131352c39352c3131322c3131342c3130352c3130392c39372c3131342c3132312c312c3132312c34302c302c3234332c3136312c3234382c3231342c352c32362c322c3131362c3132312c312c3132322c302c302c302c302c302c302c302c352c33392c302c3234332c3136312c3234382c3231342c352c32362c31312c3131362c3132312c3131322c3130312c39352c3131312c3131322c3131362c3130352c3131312c3131302c312c33392c302c3234332c3136312c3234382c3231342c352c33332c312c35332c312c33392c302c3234332c3136312c3234382c3231342c352c332c33362c39382c39382c35302c35302c34392c34392c35352c35332c34352c34392c35322c3130302c39372c34352c35322c39372c34382c35332c34352c39372c34382c35372c3130302c34352c35332c35372c35332c3130312c35322c35302c3130302c35302c35312c35332c34382c3130322c312c34302c302c3234332c3136312c3234382c3231342c352c33352c322c3130352c3130302c312c3131392c33362c39382c39382c35302c35302c34392c34392c35352c35332c34352c34392c35322c3130302c39372c34352c35322c39372c34382c35332c34352c39372c34382c35372c3130302c34352c35332c35372c35332c3130312c35322c35302c3130302c35302c35312c35332c34382c3130322c34302c302c3234332c3136312c3234382c3231342c352c33352c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35312c35372c34392c39392c35342c39372c35302c34392c34352c39392c34382c35322c39382c34352c35322c34382c35372c39382c34352c35362c35302c35322c34382c34352c3130312c35332c35302c35372c35312c39372c35332c34392c39382c35322c35342c35342c34302c302c3234332c3136312c3234382c3231342c352c33352c342c3131302c39372c3130392c3130312c312c3131392c382c38352c3131302c3131362c3130352c3131362c3130382c3130312c3130302c34302c302c3234332c3136312c3234382c3231342c352c33352c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c34302c302c3234332c3136312c3234382c3231342c352c33352c31312c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c33392c302c3234332c3136312c3234382c3231342c352c33352c31352c3130382c39372c3132312c3131312c3131372c3131362c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c34302c302c3234332c3136312c3234382c3231342c352c33352c362c3130382c39372c3132312c3131312c3131372c3131362c312c3132322c302c302c302c302c302c302c302c302c33392c302c3234332c3136312c3234382c3231342c352c33352c31342c3130322c3130352c3130312c3130382c3130302c39352c3131352c3130312c3131362c3131362c3130352c3131302c3130332c3131352c312c33392c302c3234332c3136312c3234382c3231342c352c34332c362c38362c3131322c3130302c38392c34352c36352c312c34302c302c3234332c3136312c3234382c3231342c352c34342c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3234332c3136312c3234382c3231342c352c34342c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3234332c3136312c3234382c3231342c352c34342c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3234332c3136312c3234382c3231342c352c34332c362c36352c3131382c38362c36392c38372c3132322c312c34302c302c3234332c3136312c3234382c3231342c352c34382c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3234332c3136312c3234382c3231342c352c34382c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3234332c3136312c3234382c3231342c352c34382c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c33392c302c3234332c3136312c3234382c3231342c352c34332c362c34392c3131332c37392c38322c35372c37382c312c34302c302c3234332c3136312c3234382c3231342c352c35322c342c3131392c3131342c39372c3131322c312c3132302c34302c302c3234332c3136312c3234382c3231342c352c35322c352c3131392c3130352c3130302c3131362c3130342c312c3132322c302c302c302c302c302c302c302c3135302c34302c302c3234332c3136312c3234382c3231342c352c35322c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132322c302c302c302c302c302c302c302c302c33392c302c3234332c3136312c3234382c3231342c352c33352c372c3130322c3130352c3130382c3131362c3130312c3131342c3131352c302c33392c302c3234332c3136312c3234382c3231342c352c33352c362c3130332c3131342c3131312c3131372c3131322c3131352c302c33392c302c3234332c3136312c3234382c3231342c352c33352c352c3131352c3131312c3131342c3131362c3131352c302c33392c302c3234332c3136312c3234382c3231342c352c33352c31322c3130322c3130352c3130312c3130382c3130302c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3234332c3136312c3234382c3231342c352c35392c332c3131382c312c322c3130352c3130302c3131392c362c36352c3131382c38362c36392c38372c3132322c3131382c312c322c3130352c3130302c3131392c362c34392c3131332c37392c38322c35372c37382c3131382c312c322c3130352c3130302c3131392c362c38362c3131322c3130302c38392c34352c36352c33392c302c3234332c3136312c3234382c3231342c352c33352c31302c3131342c3131312c3131392c39352c3131312c3131342c3130302c3130312c3131342c3131352c302c382c302c3234332c3136312c3234382c3231342c352c36332c332c3131382c322c322c3130352c3130302c3131392c33362c35312c35332c35362c35352c3130322c35332c39372c35322c34352c3130302c39372c35312c35342c34352c35322c35372c34392c35372c34352c39372c35342c35372c35302c34352c35322c35362c3130322c39392c35352c35322c35352c35372c35302c34382c35322c3130302c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3131382c322c322c3130352c3130302c3131392c33362c3130302c35352c3130302c35372c35342c34392c35342c35342c34352c3130322c39382c35342c35332c34352c35322c35352c34392c35312c34352c39372c39382c35312c35342c34352c35372c35372c39382c35322c35302c34392c3130302c35302c35312c35362c39372c39392c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3131382c322c322c3130352c3130302c3131392c33362c35302c3130312c35342c35362c35302c35322c35372c35302c34352c3130302c39372c3130302c39372c34352c35322c35332c35332c35342c34352c35362c35342c35322c35332c34352c35312c35302c34382c3130302c3130312c35302c35302c34382c35362c35302c35362c39372c362c3130342c3130312c3130352c3130332c3130342c3131362c3132352c36302c3136312c3234332c3136312c3234382c3231342c352c32302c312c3136312c3234332c3136312c3234382c3231342c352c32352c312c3136312c3234332c3136312c3234382c3231342c352c36372c312c3136312c3234332c3136312c3234382c3231342c352c36382c312c3136382c3234332c3136312c3234382c3231342c352c36392c312c3132322c302c302c302c302c3130322c3231352c35382c38352c3136382c3234332c3136312c3234382c3231342c352c37302c312c3131392c3136322c312c3132332c33342c3131312c3131322c3131362c3130352c3131312c3131302c3131352c33342c35382c39312c3132332c33342c3130352c3130302c33342c35382c33342c35322c37352c3131362c36372c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c39392c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c37362c3130352c3130332c3130342c3131362c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c37362c3131302c36372c37382c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130342c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3130352c3131302c3130372c33342c3132352c34342c3132332c33342c3130352c3130302c33342c35382c33342c3130352c35312c38372c38302c33342c34342c33342c3131302c39372c3130392c3130312c33342c35382c33342c3130382c33342c34342c33342c39392c3131312c3130382c3131312c3131342c33342c35382c33342c38302c3131372c3131342c3131322c3130382c3130312c33342c3132352c39332c34342c33342c3130302c3130352c3131352c39372c39382c3130382c3130312c39352c39392c3131312c3130382c3131312c3131342c33342c35382c3130322c39372c3130382c3131352c3130312c3132352c312c3234332c3136312c3234382c3231342c352c332c32302c312c32352c312c36372c345d2c2264617461626173655f726f775f636f6c6c616273223a7b2232653638323439322d646164612d343535362d383634352d333230646532323038323861223a5b312c32382c3133302c3234372c3232382c3231382c31332c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3133302c3234372c3232382c3231382c31332c302c322c3130352c3130302c312c3131392c33362c35302c3130312c35342c35362c35302c35322c35372c35302c34352c3130302c39372c3130302c39372c34352c35322c35332c35332c35342c34352c35362c35342c35322c35332c34352c35312c35302c34382c3130302c3130312c35302c35302c34382c35362c35302c35362c39372c34302c302c3133302c3234372c3232382c3231382c31332c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35312c35372c34392c39392c35342c39372c35302c34392c34352c39392c34382c35322c39382c34352c35322c34382c35372c39382c34352c35362c35302c35322c34382c34352c3130312c35332c35302c35372c35312c39372c35332c34392c39382c35322c35342c35342c34302c302c3133302c3234372c3232382c3231382c31332c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3133302c3234372c3232382c3231382c31332c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3133302c3234372c3232382c3231382c31332c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c33332c302c3133302c3234372c3232382c3231382c31332c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3133302c3234372c3232382c3231382c31332c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3133302c3234372c3232382c3231382c31332c382c312c33392c302c3133302c3234372c3232382c3231382c31332c392c362c36352c3131382c38362c36392c38372c3132322c312c34302c302c3133302c3234372c3232382c3231382c31332c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38312c34302c302c3133302c3234372c3232382c3231382c31332c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3133302c3234372c3232382c3231382c31332c31312c342c3130302c39372c3131362c39372c312c3131392c312c39392c34302c302c3133302c3234372c3232382c3231382c31332c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38312c3136312c3133302c3234372c3232382c3231382c31332c31302c312c33392c302c3133302c3234372c3232382c3231382c31332c392c362c34392c3131332c37392c38322c35372c37382c312c34302c302c3133302c3234372c3232382c3231382c31332c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38352c34302c302c3133302c3234372c3232382c3231382c31332c31372c342c3130302c39372c3131362c39372c312c3131392c342c35322c37352c3131362c36372c34302c302c3133302c3234372c3232382c3231382c31332c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3133302c3234372c3232382c3231382c31332c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38352c3136382c3133302c3234372c3232382c3231382c31332c31362c312c3132322c302c302c302c302c3130322c3231352c35382c38372c33392c302c3133302c3234372c3232382c3231382c31332c392c362c38362c3131322c3130302c38392c34352c36352c312c34302c302c3133302c3234372c3232382c3231382c31332c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38372c34302c302c3133302c3234372c3232382c3231382c31332c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3133302c3234372c3232382c3231382c31332c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3133302c3234372c3232382c3231382c31332c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38372c312c3133302c3234372c3232382c3231382c31332c332c382c312c31302c312c31362c315d2c2233353837663561342d646133362d343931392d613639322d343866633734373932303464223a5b312c32382c3139362c3233382c3233372c3136382c322c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3139362c3233382c3233372c3136382c322c302c322c3130352c3130302c312c3131392c33362c35312c35332c35362c35352c3130322c35332c39372c35322c34352c3130302c39372c35312c35342c34352c35322c35372c34392c35372c34352c39372c35342c35372c35302c34352c35322c35362c3130322c39392c35352c35322c35352c35372c35302c34382c35322c3130302c34302c302c3139362c3233382c3233372c3136382c322c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35312c35372c34392c39392c35342c39372c35302c34392c34352c39392c34382c35322c39382c34352c35322c34382c35372c39382c34352c35362c35302c35322c34382c34352c3130312c35332c35302c35372c35312c39372c35332c34392c39382c35322c35342c35342c34302c302c3139362c3233382c3233372c3136382c322c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3139362c3233382c3233372c3136382c322c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3139362c3233382c3233372c3136382c322c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c33332c302c3139362c3233382c3233372c3136382c322c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3139362c3233382c3233372c3136382c322c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3139362c3233382c3233372c3136382c322c382c312c33392c302c3139362c3233382c3233372c3136382c322c392c362c36352c3131382c38362c36392c38372c3132322c312c34302c302c3139362c3233382c3233372c3136382c322c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38302c34302c302c3139362c3233382c3233372c3136382c322c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3139362c3233382c3233372c3136382c322c31312c342c3130302c39372c3131362c39372c312c3131392c312c3130382c34302c302c3139362c3233382c3233372c3136382c322c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38302c3136312c3139362c3233382c3233372c3136382c322c31302c312c33392c302c3139362c3233382c3233372c3136382c322c392c362c34392c3131332c37392c38322c35372c37382c312c34302c302c3139362c3233382c3233372c3136382c322c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38312c34302c302c3139362c3233382c3233372c3136382c322c31372c342c3130302c39372c3131362c39372c312c3131392c342c3130352c35312c38372c38302c34302c302c3139362c3233382c3233372c3136382c322c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3139362c3233382c3233372c3136382c322c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38312c3136382c3139362c3233382c3233372c3136382c322c31362c312c3132322c302c302c302c302c3130322c3231352c35382c38372c33392c302c3139362c3233382c3233372c3136382c322c392c362c38362c3131322c3130302c38392c34352c36352c312c34302c302c3139362c3233382c3233372c3136382c322c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38372c34302c302c3139362c3233382c3233372c3136382c322c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3139362c3233382c3233372c3136382c322c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3139362c3233382c3233372c3136382c322c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38372c312c3139362c3233382c3233372c3136382c322c332c382c312c31302c312c31362c315d2c2264376439363136362d666236352d343731332d616233362d393962343231643233386163223a5b312c32382c3232372c3133392c3136332c3138332c382c302c33392c312c342c3130302c39372c3131362c39372c342c3130302c39372c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c342c3130392c3130312c3131362c39372c312c33392c312c342c3130302c39372c3131362c39372c372c39392c3131312c3130392c3130392c3130312c3131302c3131362c302c34302c302c3232372c3133392c3136332c3138332c382c302c322c3130352c3130302c312c3131392c33362c3130302c35352c3130302c35372c35342c34392c35342c35342c34352c3130322c39382c35342c35332c34352c35322c35352c34392c35312c34352c39372c39382c35312c35342c34352c35372c35372c39382c35322c35302c34392c3130302c35302c35312c35362c39372c39392c34302c302c3232372c3133392c3136332c3138332c382c302c31312c3130302c39372c3131362c39372c39382c39372c3131352c3130312c39352c3130352c3130302c312c3131392c33362c35312c35372c34392c39392c35342c39372c35302c34392c34352c39392c34382c35322c39382c34352c35322c34382c35372c39382c34352c35362c35302c35322c34382c34352c3130312c35332c35302c35372c35312c39372c35332c34392c39382c35322c35342c35342c34302c302c3232372c3133392c3136332c3138332c382c302c362c3130342c3130312c3130352c3130332c3130342c3131362c312c3132322c302c302c302c302c302c302c302c36302c34302c302c3232372c3133392c3136332c3138332c382c302c31302c3131382c3130352c3131352c3130352c39382c3130352c3130382c3130352c3131362c3132312c312c3132302c34302c302c3232372c3133392c3136332c3138332c382c302c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c36382c33332c302c3232372c3133392c3136332c3138332c382c302c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c33392c302c3232372c3133392c3136332c3138332c382c302c352c39392c3130312c3130382c3130382c3131352c312c3136312c3232372c3133392c3136332c3138332c382c382c312c33392c302c3232372c3133392c3136332c3138332c382c392c362c36352c3131382c38362c36392c38372c3132322c312c34302c302c3232372c3133392c3136332c3138332c382c31312c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38302c34302c302c3232372c3133392c3136332c3138332c382c31312c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c302c34302c302c3232372c3133392c3136332c3138332c382c31312c342c3130302c39372c3131362c39372c312c3131392c312c3130342c34302c302c3232372c3133392c3136332c3138332c382c31312c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38302c3136312c3232372c3133392c3136332c3138332c382c31302c312c33392c302c3232372c3133392c3136332c3138332c382c392c362c34392c3131332c37392c38322c35372c37382c312c34302c302c3232372c3133392c3136332c3138332c382c31372c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38332c34302c302c3232372c3133392c3136332c3138332c382c31372c342c3130302c39372c3131362c39372c312c3131392c342c37362c3131302c36372c37382c34302c302c3232372c3133392c3136332c3138332c382c31372c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c332c34302c302c3232372c3133392c3136332c3138332c382c31372c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38332c3136382c3232372c3133392c3136332c3138332c382c31362c312c3132322c302c302c302c302c3130322c3231352c35382c38362c33392c302c3232372c3133392c3136332c3138332c382c392c362c38362c3131322c3130302c38392c34352c36352c312c34302c302c3232372c3133392c3136332c3138332c382c32332c31302c39392c3131342c3130312c39372c3131362c3130312c3130302c39352c39372c3131362c312c3132322c302c302c302c302c3130322c3231352c35382c38362c34302c302c3232372c3133392c3136332c3138332c382c32332c31302c3130322c3130352c3130312c3130382c3130302c39352c3131362c3132312c3131322c3130312c312c3132322c302c302c302c302c302c302c302c352c34302c302c3232372c3133392c3136332c3138332c382c32332c342c3130302c39372c3131362c39372c312c3131392c332c38392c3130312c3131352c34302c302c3232372c3133392c3136332c3138332c382c32332c31332c3130382c39372c3131352c3131362c39352c3130392c3131312c3130302c3130352c3130322c3130352c3130312c3130302c312c3132322c302c302c302c302c3130322c3231352c35382c38362c312c3232372c3133392c3136332c3138332c382c332c382c312c31302c312c31362c315d7d2c2264617461626173655f726f775f646f63756d656e745f636f6c6c616273223a7b7d2c2276697369626c655f64617461626173655f766965775f696473223a5b2262623232313137352d313464612d346130352d613039642d353935653432643233353066225d2c2264617461626173655f72656c6174696f6e73223a7b2238326434313761652d386561322d343333392d613661302d623737383937626530303039223a2233623562616633622d383765372d346565322d613037382d326263376664666233663533222c2233393163366132312d633034622d343039622d383234302d653532393361353162343636223a2262623232313137352d313464612d346130352d613039642d353935653432643233353066222c2235393764343563382d353435302d346564332d383533382d376666653963383465363335223a2261323331663763392d366432662d343666322d396663312d633362653763616636616335227d7d";