diff --git a/deps/db/src/logseq/db/common/delete_blocks.cljs b/deps/db/src/logseq/db/common/delete_blocks.cljs index eccfb479a4..e57e4c05be 100644 --- a/deps/db/src/logseq/db/common/delete_blocks.cljs +++ b/deps/db/src/logseq/db/common/delete_blocks.cljs @@ -39,8 +39,7 @@ tx (cond-> (mapcat (fn [block] - [[:db/retract (:db/id ref) :block/refs (:db/id block)] - [:db/retract (:db/id ref) :block/path-refs (:db/id block)]]) retracted-blocks) + [[:db/retract (:db/id ref) :block/refs (:db/id block)]]) retracted-blocks) replaced-title (conj [:db/add id :block/title replaced-title]))] tx)) diff --git a/deps/db/src/logseq/db/common/entity_plus.cljc b/deps/db/src/logseq/db/common/entity_plus.cljc index 4f33540a74..dda21c576a 100644 --- a/deps/db/src/logseq/db/common/entity_plus.cljc +++ b/deps/db/src/logseq/db/common/entity_plus.cljc @@ -33,7 +33,7 @@ it means `(db/entity :block/title)` always return same result" #{:block/link :block/updated-at :block/refs :block/closed-value-property :block/created-at :block/collapsed? :block/tags :block/title - :block/path-refs :block/parent :block/order :block/page + :block/parent :block/order :block/page :logseq.property/created-from-property :logseq.property/icon diff --git a/deps/db/src/logseq/db/common/initial_data.cljs b/deps/db/src/logseq/db/common/initial_data.cljs index c30970f1aa..0ffb504540 100644 --- a/deps/db/src/logseq/db/common/initial_data.cljs +++ b/deps/db/src/logseq/db/common/initial_data.cljs @@ -141,8 +141,7 @@ identity (fn [e] (keep (fn [[k v]] - (when (and (not (contains? #{:block/path-refs} k)) - (or (empty? properties) (properties k))) + (when (or (empty? properties) (properties k)) (let [v' (cond (= k :block/parent) (:db/id v) diff --git a/deps/db/src/logseq/db/common/reference.cljs b/deps/db/src/logseq/db/common/reference.cljs index 4e9a62e774..a9ac4f6621 100644 --- a/deps/db/src/logseq/db/common/reference.cljs +++ b/deps/db/src/logseq/db/common/reference.cljs @@ -8,7 +8,8 @@ [logseq.db :as ldb] [logseq.db.common.entity-plus :as entity-plus] [logseq.db.common.initial-data :as common-initial-data] - [logseq.db.frontend.class :as db-class])) + [logseq.db.frontend.class :as db-class] + [logseq.db.frontend.rules :as rules])) (defn get-filters [db page] @@ -36,32 +37,39 @@ (log/error :syntax/filters e))))))) (defn- build-include-exclude-query - [variable includes excludes] + [includes excludes] (concat (for [include includes] - [variable :block/path-refs include]) + (list 'has-ref '?b include)) (for [exclude excludes] - (list 'not [variable :block/path-refs exclude])))) + (list 'not (list 'has-ref '?b exclude))))) (defn- filter-refs-query - [attribute includes excludes class-ids] + [includes excludes class-ids] (let [clauses (concat - (build-include-exclude-query '?b includes excludes) + (build-include-exclude-query includes excludes) (for [class-id class-ids] (list 'not ['?b :block/tags class-id])))] (into [:find '[?b ...] - :in '$ '[?id ...] + :in '$ '% '[?id ...] :where - ['?b attribute '?id]] + (list 'has-ref '?b '?id)] clauses))) +(defn- get-path-refs + [db entity] + (let [refs (mapcat :block/refs (ldb/get-block-parents db (:block/uuid entity))) + block-page (:block/page entity)] + (->> (cond->> refs (some? block-page) (cons block-page)) + distinct))) + (defn- get-ref-pages-count [db id ref-blocks children-ids] (when (seq ref-blocks) (let [children (->> children-ids (map (fn [id] (d/entity db id))))] - (->> (concat (mapcat :block/path-refs ref-blocks) - (mapcat :block/refs children)) + (->> (concat (mapcat #(get-path-refs db %) ref-blocks) + (mapcat :block/refs (concat ref-blocks children))) frequencies (keep (fn [[ref size]] (when (and (ldb/page? ref) @@ -99,7 +107,12 @@ (set (conj class-children id)))) full-ref-block-ids (->> (mapcat (fn [id] (map :db/id (:block/_refs (d/entity db id)))) ids) set) - matched-ref-block-ids (set (d/q (filter-refs-query :block/path-refs includes excludes class-ids) db ids)) + matched-ref-block-ids (set (d/q (filter-refs-query includes excludes class-ids) + db + (rules/extract-rules rules/db-query-dsl-rules + [:has-ref] + {:deps rules/rules-dependencies}) + ids)) matched-refs-with-children-ids (let [*result (atom #{})] (doseq [ref-id matched-ref-block-ids] (get-block-parents-until-top-ref db id ref-id full-ref-block-ids *result)) diff --git a/deps/db/src/logseq/db/file_based/rules.cljc b/deps/db/src/logseq/db/file_based/rules.cljc index be84806e4f..afc70dfb71 100644 --- a/deps/db/src/logseq/db/file_based/rules.cljc +++ b/deps/db/src/logseq/db/file_based/rules.cljc @@ -14,13 +14,7 @@ "Rules used by frontend.db.query-dsl for file graphs. The symbols ?b and ?p respectively refer to block and page. Do not alter them as they are programmatically built by the query-dsl ns" - {:block-parent - '[[(block-parent ?p ?c) - [?c :block/parent ?p]] - [(block-parent ?p ?c) - [?t :block/parent ?p] - (block-parent ?t ?c)]] - :page-property + {:page-property '[(page-property ?p ?key ?val) [?p :block/name] [?p :block/properties ?prop] @@ -95,5 +89,5 @@ :page-ref '[(page-ref ?b ?page-name) - [?b :block/path-refs ?br] - [?br :block/name ?page-name]]}) + [?br :block/name ?page-name] + (has-ref ?b ?br)]}) diff --git a/deps/db/src/logseq/db/file_based/schema.cljs b/deps/db/src/logseq/db/file_based/schema.cljs index b00c15c473..42be0e1c7b 100644 --- a/deps/db/src/logseq/db/file_based/schema.cljs +++ b/deps/db/src/logseq/db/file_based/schema.cljs @@ -28,10 +28,6 @@ ;; reference blocks :block/refs {:db/valueType :db.type/ref :db/cardinality :db.cardinality/many} - ;; referenced pages inherited from the parents - :block/path-refs {:db/valueType :db.type/ref - :db/cardinality :db.cardinality/many} - :block/tags {:db/valueType :db.type/ref :db/cardinality :db.cardinality/many} diff --git a/deps/db/src/logseq/db/frontend/malli_schema.cljs b/deps/db/src/logseq/db/frontend/malli_schema.cljs index b13055d94d..f71ff76341 100644 --- a/deps/db/src/logseq/db/frontend/malli_schema.cljs +++ b/deps/db/src/logseq/db/frontend/malli_schema.cljs @@ -273,8 +273,7 @@ (def page-attrs "Common attributes for pages" [[:block/name :string] - [:block/title :string] - [:block/path-refs {:optional true} [:set :int]]]) + [:block/title :string]]) (def property-attrs "Common attributes for properties" @@ -387,7 +386,6 @@ [:block/order block-order] ;; refs [:block/page :int] - [:block/path-refs {:optional true} [:set :int]] [:block/link {:optional true} :int] [:logseq.property/created-from-property {:optional true} :int]]) @@ -399,8 +397,7 @@ [[:block/title :string] [:block/parent :int] ;; These blocks only associate with pages of type "whiteboard" - [:block/page :int] - [:block/path-refs {:optional true} [:set :int]]] + [:block/page :int]] page-or-block-attrs))) (def property-value-block diff --git a/deps/db/src/logseq/db/frontend/property.cljs b/deps/db/src/logseq/db/frontend/property.cljs index 2c94a813b6..537afd44f3 100644 --- a/deps/db/src/logseq/db/frontend/property.cljs +++ b/deps/db/src/logseq/db/frontend/property.cljs @@ -106,12 +106,6 @@ :cardinality :many :public? false :hide? true}} - :block/path-refs {:title "Node path references" - :attribute :block/path-refs - :schema {:type :entity - :cardinality :many - :public? false - :hide? true}} :block/link {:title "Node links to" :attribute :block/link :schema {:type :entity @@ -584,7 +578,7 @@ "Internal properties that are also db schema attributes" #{:block/alias :block/tags :block/parent :block/order :block/collapsed? :block/page - :block/refs :block/path-refs :block/link + :block/refs :block/link :block/title :block/closed-value-property :block/journal-day :block/created-at :block/updated-at}) diff --git a/deps/db/src/logseq/db/frontend/rules.cljc b/deps/db/src/logseq/db/frontend/rules.cljc index e4cd561567..0c0bd3a363 100644 --- a/deps/db/src/logseq/db/frontend/rules.cljc +++ b/deps/db/src/logseq/db/frontend/rules.cljc @@ -30,7 +30,14 @@ [?e2 :block/alias ?e3]] [(alias ?e3 ?e1) [?e1 :block/alias ?e2] - [?e2 :block/alias ?e3]]]}) + [?e2 :block/alias ?e3]]] + + :has-ref + '[[(has-ref ?b ?r) + [?b :block/refs ?r]] + [(has-ref ?b ?r) + (parent ?p ?b) + [?p :block/refs ?r]]]}) ;; Rules writing advice ;; ==================== @@ -239,7 +246,9 @@ "For db graphs, a map of rule names and the rules they depend on. If this map becomes long or brittle, we could do scan rules for their deps with something like find-rules-in-where" - {:task #{:simple-query-property} + {:has-ref #{:parent} + :page-ref #{:has-ref} + :task #{:simple-query-property} :priority #{:simple-query-property} :property-missing-value #{:object-has-class-property} :has-property-or-object-property #{:object-has-class-property} diff --git a/deps/db/src/logseq/db/frontend/schema.cljs b/deps/db/src/logseq/db/frontend/schema.cljs index 9863aaa439..3f5d32d5cb 100644 --- a/deps/db/src/logseq/db/frontend/schema.cljs +++ b/deps/db/src/logseq/db/frontend/schema.cljs @@ -37,7 +37,7 @@ (map (juxt :major :minor) [(parse-schema-version x) (parse-schema-version y)]))) -(def version (parse-schema-version "65.10")) +(def version (parse-schema-version "65.11")) (defn major-version "Return a number. diff --git a/deps/graph-parser/src/logseq/graph_parser/whiteboard.cljs b/deps/graph-parser/src/logseq/graph_parser/whiteboard.cljs index 22591d2eaf..714f2315cf 100644 --- a/deps/graph-parser/src/logseq/graph_parser/whiteboard.cljs +++ b/deps/graph-parser/src/logseq/graph_parser/whiteboard.cljs @@ -47,12 +47,9 @@ (concat portal-refs shape-link-refs))) (defn- with-whiteboard-block-refs - [shape page-id] + [shape] (let [refs (or (get-shape-refs shape) [])] - (merge {:block/refs (if (seq refs) refs []) - :block/path-refs (if (seq refs) - (conj refs page-id) - [])}))) + {:block/refs (if (seq refs) refs [])})) (defn- with-whiteboard-content "Main purpose of this function is to populate contents when shapes are used as references in outliner." @@ -72,7 +69,7 @@ (merge (when shape? (merge {:block/uuid (uuid (:id shape))} - (with-whiteboard-block-refs shape page-id) + (with-whiteboard-block-refs shape) (with-whiteboard-content shape))) (when (nil? (:block/parent block)) {:block/parent page-id}) (when (nil? (:block/format block)) {:block/format :markdown}) ;; TODO: read from config diff --git a/deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs b/deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs index 313a861f62..fa61961c49 100644 --- a/deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs +++ b/deps/graph-parser/test/logseq/graph_parser/exporter_test.cljs @@ -196,7 +196,7 @@ ;; This graph will contain basic examples of different features to import (p/let [file-graph-dir "test/resources/exporter-test-graph" conn (db-test/create-conn) - ;; Calculate refs and path-refs like frontend + ;; Calculate refs like frontend _ (db-pipeline/add-listener conn) assets (atom []) {:keys [import-state]} (import-file-graph-to-db file-graph-dir conn {:assets assets :convert-all-tags? true})] @@ -587,16 +587,12 @@ (is (= "multiline block\na 2nd\nand a 3rd" (:block/title (db-test/find-block-by-content @conn #"multiline block")))) (is (= "logbook block" (:block/title (db-test/find-block-by-content @conn #"logbook block"))))) - (testing ":block/refs and :block/path-refs" + (testing ":block/refs" (let [page (db-test/find-page-by-title @conn "chat-gpt")] (is (set/subset? #{"type" "LargeLanguageModel"} (->> page :block/refs (map #(:block/title (d/entity @conn (:db/id %)))) set)) - "Page has correct property and property value :block/refs") - (is (set/subset? - #{"type" "LargeLanguageModel"} - (->> page :block/path-refs (map #(:block/title (d/entity @conn (:db/id %)))) set)) - "Page has correct property and property value :block/path-refs")) + "Page has correct property and property value :block/refs")) (let [block (db-test/find-block-by-content @conn "old todo block")] (is (set/subset? @@ -605,14 +601,7 @@ :block/refs (map #(:db/ident (d/entity @conn (:db/id %)))) set)) - "Block has correct task tag and property :block/refs") - (is (set/subset? - #{:logseq.property/status :logseq.class/Task} - (->> block - :block/path-refs - (map #(:db/ident (d/entity @conn (:db/id %)))) - set)) - "Block has correct task tag and property :block/path-refs"))) + "Block has correct task tag and property :block/refs"))) (testing "whiteboards" (let [block-with-props (db-test/find-block-by-content @conn #"block with props")] diff --git a/deps/outliner/src/logseq/outliner/core.cljs b/deps/outliner/src/logseq/outliner/core.cljs index df39467b79..a72bb62c24 100644 --- a/deps/outliner/src/logseq/outliner/core.cljs +++ b/deps/outliner/src/logseq/outliner/core.cljs @@ -285,7 +285,7 @@ collapse-or-expand? (= outliner-op :collapse-expand-blocks) m* (cond-> (-> data' - (dissoc :block/children :block/meta :block/unordered :block/path-refs + (dissoc :block/children :block/meta :block/unordered :block.temp/ast-title :block.temp/ast-body :block/level :block.temp/load-status :block.temp/has-children?) common-util/remove-nils @@ -761,7 +761,7 @@ :block/title (or (:block/raw-title e) (:block/title e))} b) b) - dissoc-keys (concat [:block/tx-id :block/path-refs] + dissoc-keys (concat [:block/tx-id] (when (contains? #{:insert-template-blocks :paste} outliner-op) [:block/refs]))] (apply dissoc b dissoc-keys)) diff --git a/deps/outliner/src/logseq/outliner/pipeline.cljs b/deps/outliner/src/logseq/outliner/pipeline.cljs index 77cd3e1cb9..37769da0e7 100644 --- a/deps/outliner/src/logseq/outliner/pipeline.cljs +++ b/deps/outliner/src/logseq/outliner/pipeline.cljs @@ -1,7 +1,6 @@ (ns logseq.outliner.pipeline "Core fns for use with frontend worker and node" - (:require [clojure.set :as set] - [datascript.core :as d] + (:require [datascript.core :as d] [datascript.impl.entity :as de] [logseq.common.util.date-time :as date-time-util] [logseq.db :as ldb] @@ -19,103 +18,6 @@ :block/uuid (:v d)})) datoms)) -(defn- calculate-children-refs - [db-after children new-refs] - (let [;; Builds map of children ids to their parent id and :block/refs ids - children-maps (into {} - (keep (fn [id] - (when-let [entity (d/entity db-after [:block/uuid id])] - (let [from-property (:logseq.property/created-from-property entity) - default? (= :default (:logseq.property/type from-property)) - page? (ldb/page? entity)] - (when-not (or page? (and from-property (not default?))) - [(:db/id entity) - {:parent-id (get-in entity [:block/parent :db/id]) - :block-ref-ids (map :db/id (:block/refs entity))}])))) - children)) - children-refs (map (fn [[id {:keys [block-ref-ids] :as child-map}]] - {:db/id id - ;; Recalculate :block/path-refs as db contains stale data for this attribute - :block/path-refs - (set/union - ;; Refs from top-level parent - new-refs - ;; Refs from current block - block-ref-ids - ;; Refs from parents in between top-level - ;; parent and current block - (loop [parent-refs #{} - parent-id (:parent-id child-map)] - (if-let [parent (children-maps parent-id)] - (recur (into parent-refs (:block-ref-ids parent)) - (:parent-id parent)) - ;; exits when top-level parent is reached - (remove nil? parent-refs))))}) - children-maps)] - children-refs)) - -;; TODO: it'll be great if we can calculate the :block/path-refs before any -;; outliner transaction, this way we can group together the real outliner tx -;; and the new path-refs changes, which makes both undo/redo and -;; react-query/refresh! easier. - -;; TODO: also need to consider whiteboard transactions - -;; Steps: -;; 1. For each changed block, new-refs = its page + :block/refs + parents :block/refs -;; 2. Its children' block/path-refs might need to be updated too. -(defn- compute-block-path-refs - [{:keys [db-before db-after]} blocks*] - (let [*computed-ids (atom #{}) - blocks (remove (fn [block] - (let [from-property (:logseq.property/created-from-property block) - default? (= :default (:logseq.property/type from-property))] - (and from-property (not default?)))) - blocks*)] - (->> - (mapcat (fn [block] - (when-not (@*computed-ids (:block/uuid block)) - (let [page? (ldb/page? block) - from-property (:logseq.property/created-from-property block) - parents' (when-not page? - (ldb/get-block-parents db-after (:block/uuid block) {})) - parents-refs (->> (cond->> - (mapcat :block/path-refs parents') - from-property - (remove (fn [parent] (and (ldb/property? parent) (not= (:db/id parent) (:db/id from-property)))))) - (map :db/id)) - old-refs (if db-before - (set (map :db/id (:block/path-refs (d/entity db-before (:db/id block))))) - #{}) - new-refs (->> - (concat - (some-> (:db/id (:block/page block)) vector) - (map :db/id (:block/refs block)) - parents-refs) - (remove nil?) - set) - refs-changed? (not= old-refs new-refs) - children (when refs-changed? - (when-not page? - (ldb/get-block-children-ids db-after (:block/uuid block)))) - children-refs (when children - (calculate-children-refs db-after children new-refs))] - (swap! *computed-ids set/union (set (cons (:block/uuid block) children))) - (concat - (when (and (seq new-refs) refs-changed? (d/entity db-after (:db/id block))) - [{:db/id (:db/id block) - :block/path-refs new-refs}]) - children-refs)))) - blocks) - distinct))) - -(defn ^:api compute-block-path-refs-tx - "Main fn for computing path-refs" - [tx-report blocks] - (let [refs-tx (compute-block-path-refs tx-report blocks) - truncate-refs-tx (map (fn [m] [:db/retract (:db/id m) :block/path-refs]) refs-tx)] - (concat truncate-refs-tx refs-tx))) - (defn- ref->eid "ref: entity, map, int, eid" [ref] @@ -234,17 +136,10 @@ blocks)) (defn transact-new-db-graph-refs - "Transacts :block/refs and :block/path-refs for a new or imported DB graph" + "Transacts :block/refs for a new or imported DB graph" [conn tx-report] (let [{:keys [blocks]} (ds-report/get-blocks-and-pages tx-report) refs-tx-report (when-let [refs-tx (and (seq blocks) (rebuild-block-refs-tx tx-report blocks))] (ldb/transact! conn refs-tx {:pipeline-replace? true - ::original-tx-meta (:tx-meta tx-report)})) - blocks' (if refs-tx-report - (keep (fn [b] (d/entity (:db-after refs-tx-report) (:db/id b))) blocks) - blocks) - block-path-refs-tx (distinct (compute-block-path-refs-tx tx-report blocks')) - path-refs-tx-report (when (seq block-path-refs-tx) - (ldb/transact! conn block-path-refs-tx {:pipeline-replace? true}))] - {:refs-tx-report refs-tx-report - :path-refs-tx-export path-refs-tx-report})) + ::original-tx-meta (:tx-meta tx-report)}))] + refs-tx-report)) diff --git a/deps/outliner/test/logseq/outliner/pipeline_test.cljs b/deps/outliner/test/logseq/outliner/pipeline_test.cljs index 6d9d345282..b41cf9feeb 100644 --- a/deps/outliner/test/logseq/outliner/pipeline_test.cljs +++ b/deps/outliner/test/logseq/outliner/pipeline_test.cljs @@ -1,65 +1,9 @@ (ns logseq.outliner.pipeline-test - (:require [cljs.test :refer [deftest is testing]] - [clojure.set :as set] - [clojure.string :as string] - [datascript.core :as d] + (:require [cljs.test :refer [deftest is]] [logseq.common.util.page-ref :as page-ref] - [logseq.db.frontend.schema :as db-schema] - [logseq.db.sqlite.build :as sqlite-build] - [logseq.db.sqlite.create-graph :as sqlite-create-graph] [logseq.db.test.helper :as db-test] - [logseq.outliner.db-pipeline :as db-pipeline] [logseq.outliner.pipeline :as outliner-pipeline])) -(defn- get-blocks [db] - (->> (d/q '[:find (pull ?b [* {:block/path-refs [:block/name :db/id]}]) - :in $ - :where - [?b :block/page] - [?b :block/title] - [(missing? $ ?b :logseq.property/built-in?)]] - db) - (map first))) - -(deftest compute-block-path-refs-tx - (testing "when a block's :refs change, descendants of block have correct :block/path-refs" - (let [conn (d/create-conn db-schema/schema) - ;; needed in order for path-refs to be setup correctly with init data - _ (db-pipeline/add-listener conn) - _ (d/transact! conn (sqlite-create-graph/build-db-initial-data "{}")) - _ (sqlite-build/create-blocks - conn - [{:page {:block/title "bar"}} - {:page {:block/title "page1"} - :blocks [{:block/title "parent [[foo]]" - :build/children - [{:block/title "child [[baz]]" - :build/children - [{:block/title "grandchild [[bing]]"}]}]}]}]) - blocks (get-blocks @conn) - ;; Update parent block to replace 'foo' with 'bar' ref - new-tag-id (ffirst (d/q '[:find ?b :where [?b :block/title "bar"]] @conn)) - modified-blocks (map #(if (string/starts-with? (:block/title %) "parent") - (assoc % - :block/refs [{:db/id new-tag-id}] - :block/path-refs [{:db/id new-tag-id}]) - %) - blocks) - refs-tx (outliner-pipeline/compute-block-path-refs-tx {:db-after @conn} modified-blocks) - _ (d/transact! conn refs-tx {:pipeline-replace? true}) - updated-blocks (->> (get-blocks @conn) - ;; Only keep enough of content to uniquely identify block - (map #(hash-map :block/title (re-find #"\w+" (:block/title %)) - :path-ref-names (set (map :block/name (:block/path-refs %)))))) - page-tag-refs #{"page" "tags"}] - (is (= [{:block/title "parent" - :path-ref-names (set/union page-tag-refs #{"page1" "bar"})} - {:block/title "child" - :path-ref-names (set/union page-tag-refs #{"page1" "bar" "baz"})} - {:block/title "grandchild" - :path-ref-names (set/union page-tag-refs #{"page1" "bar" "baz" "bing"})}] - updated-blocks))))) - (deftest block-content-refs (let [conn (db-test/create-conn-with-blocks [{:page {:block/title "page1"} :blocks [{:block/title "b1"}]}]) diff --git a/docs/dev-practices.md b/docs/dev-practices.md index 0b388d947b..316bb3fb77 100644 --- a/docs/dev-practices.md +++ b/docs/dev-practices.md @@ -353,7 +353,7 @@ These tasks are specific to database graphs. For these tasks there is a one time ```sh $ bb dev:db-query woot '[:find (pull ?b [*]) :where (block-content ?b "Dogma")]' DB contains 833 datoms - [{:block/tx-id 536870923, :block/link #:db{:id 100065}, :block/uuid #uuid "65565c26-f972-4400-bce4-a15df488784d", :block/updated-at 1700158508564, :block/order "a0", :block/refs [#:db{:id 100064}], :block/created-at 1700158502056, :block/format :markdown, :block/tags [#:db{:id 100064}], :block/title "Dogma #[[65565c2a-b1c5-4dc8-a0f0-81b786bc5c6d]]", :db/id 100090, :block/path-refs [#:db{:id 100051} #:db{:id 100064}], :block/parent #:db{:id 100051}, :block/page #:db{:id 100051}}] + [{:block/tx-id 536870923, :block/link #:db{:id 100065}, :block/uuid #uuid "65565c26-f972-4400-bce4-a15df488784d", :block/updated-at 1700158508564, :block/order "a0", :block/refs [#:db{:id 100064}], :block/created-at 1700158502056, :block/format :markdown, :block/tags [#:db{:id 100064}], :block/title "Dogma #[[65565c2a-b1c5-4dc8-a0f0-81b786bc5c6d]]", :db/id 100090, :block/parent #:db{:id 100051}, :block/page #:db{:id 100051}}] ``` * `dev:db-transact` - Run a `d/transact!` against the queried results of a DB graph @@ -424,9 +424,6 @@ These tasks are specific to database graphs. For these tasks there is a one time [162 :block/format :markdown 536871037 true] [162 :block/page 149 536871037 true] [162 :block/parent 149 536871037 true] - [162 :block/path-refs 108 536871044 true] - [162 :block/path-refs 149 536871044 true] - [162 :block/path-refs 160 536871044 true] [162 :block/properties {#uuid "21be4275-bba9-48b8-9351-c9ca27883159" @@ -462,9 +459,6 @@ These tasks are specific to database graphs. For these tasks there is a one time [162 :block/order "a0" 536871037 true] [162 :block/page 149 536871037 true] [162 :block/parent 149 536871037 true] - [162 :block/path-refs 108 536871044 true] - [162 :block/path-refs 149 536871044 true] - [162 :block/path-refs 160 536871044 true] [162 :block/properties {#uuid "21be4275-bba9-48b8-9351-c9ca27883159" diff --git a/src/main/frontend/db/debug.cljs b/src/main/frontend/db/debug.cljs index c2e197b86d..9f8d98ff51 100644 --- a/src/main/frontend/db/debug.cljs +++ b/src/main/frontend/db/debug.cljs @@ -1,7 +1,7 @@ (ns ^:no-doc frontend.db.debug - (:require [frontend.db.utils :as db-utils] + (:require [datascript.core :as d] [frontend.db :as db] - [datascript.core :as d])) + [frontend.db.utils :as db-utils])) ;; shortcut for query a block with string ref (defn qb @@ -16,8 +16,7 @@ (:block/page block)] (:block/tags block) (:block/alias block) - (:block/refs block) - (:block/path-refs block)) + (:block/refs block)) (remove nil?) (some (fn [x] (and diff --git a/src/main/frontend/db/file_based/model.cljs b/src/main/frontend/db/file_based/model.cljs index 55e262aa44..93aa2a8fc9 100644 --- a/src/main/frontend/db/file_based/model.cljs +++ b/src/main/frontend/db/file_based/model.cljs @@ -20,7 +20,6 @@ :block/format :block/refs :block/_refs - :block/path-refs :block/tags :block/link :block/title diff --git a/src/main/frontend/db/model.cljs b/src/main/frontend/db/model.cljs index 159f1cf374..ba1e4ff774 100644 --- a/src/main/frontend/db/model.cljs +++ b/src/main/frontend/db/model.cljs @@ -381,10 +381,11 @@ independent of format as format specific heading characters are stripped" (->> (d/q '[:find [(pull ?block ?block-attrs) ...] - :in $ [?ref-page ...] ?block-attrs + :in $ % [?ref-page ...] ?block-attrs :where - [?block :block/path-refs ?ref-page]] + (has-ref ?block ?ref-page)] db + (rules/extract-rules rules/db-query-dsl-rules [:parent :has-ref]) pages (butlast file-model/file-graph-block-attrs)) (remove (fn [block] (= page-id (:db/id (:block/page block))))) diff --git a/src/main/frontend/db/query_dsl.cljs b/src/main/frontend/db/query_dsl.cljs index 87dd1e55f1..29a9c1e520 100644 --- a/src/main/frontend/db/query_dsl.cljs +++ b/src/main/frontend/db/query_dsl.cljs @@ -699,11 +699,16 @@ Some bindings in this fn: ;; [(not (page-ref ?b "page 2"))] (keyword (ffirst result)) (keyword (first result)))] - (add-bindings! (if (= key :and) (rest result) result) opts)))] + (add-bindings! (if (= key :and) (rest result) result) opts))) + extract-rules (fn [rules] + (rules/extract-rules rules/db-query-dsl-rules rules {:deps rules/rules-dependencies}))] {:query result' :rules (if db-graph? - (rules/extract-rules rules/db-query-dsl-rules rules {:deps rules/rules-dependencies}) - (mapv file-rules/query-dsl-rules rules)) + (extract-rules rules) + (->> (concat (map file-rules/query-dsl-rules (remove #{:page-ref} rules)) + (when (some #{:page-ref} rules) + (extract-rules [:page-ref]))) + vec)) :sort-by @sort-by :blocks? (boolean @blocks?) :sample sample}))) diff --git a/src/main/frontend/undo_redo.cljs b/src/main/frontend/undo_redo.cljs index 2bf049bbf9..37efa2d8be 100644 --- a/src/main/frontend/undo_redo.cljs +++ b/src/main/frontend/undo_redo.cljs @@ -340,8 +340,7 @@ (filter (fn [id] (and (nil? (d/entity db-before id)) (d/entity db-after id))) all-ids)) - tx-data' (->> (remove (fn [d] (contains? #{:block/path-refs} (:a d))) tx-data) - vec) + tx-data' (vec tx-data) editor-info @state/*editor-info _ (reset! state/*editor-info nil) op (->> [(when editor-info [::record-editor-info editor-info]) diff --git a/src/main/frontend/worker/db/migrate.cljs b/src/main/frontend/worker/db/migrate.cljs index c86caadf5b..5e10b6a663 100644 --- a/src/main/frontend/worker/db/migrate.cljs +++ b/src/main/frontend/worker/db/migrate.cljs @@ -293,8 +293,7 @@ [[:db/add id :db/ident (db-class/create-user-class-ident-from-name db title)] [:db/add id :logseq.property.class/extends :logseq.class/Root] [:db/retract id :block/tags :logseq.class/Page] - [:db/retract id :block/refs :logseq.class/Page] - [:db/retract id :block/path-refs :logseq.class/Page]])) + [:db/retract id :block/refs :logseq.class/Page]])) class-ids))) (defn fix-using-properties-as-tags @@ -354,6 +353,14 @@ :block/name (common-util/page-name-sanity-lc (:block/title page))}))) pages))) +(defn- remove-block-path-refs-datoms + [db] + (->> (d/datoms db :avet :block/path-refs) + (map :e) + (distinct) + (map (fn [id] + [:db/retract id :block/path-refs])))) + (def schema-version->updates "A vec of tuples defining datascript migrations. Each tuple consists of the schema version integer and a migration map. A migration map can have keys of :properties, :classes @@ -368,7 +375,8 @@ ["65.7" {:fix add-quick-add-page}] ["65.8" {:fix add-missing-page-name}] ["65.9" {:properties [:logseq.property.embedding/hnsw-label-updated-at]}] - ["65.10" {:properties [:block/journal-day :logseq.property.view/sort-groups-by-property :logseq.property.view/sort-groups-desc?]}]]) + ["65.10" {:properties [:block/journal-day :logseq.property.view/sort-groups-by-property :logseq.property.view/sort-groups-desc?]}] + ["65.11" {:fix remove-block-path-refs-datoms}]]) (let [[major minor] (last (sort (map (comp (juxt :major :minor) db-schema/parse-schema-version first) schema-version->updates)))] diff --git a/src/main/frontend/worker/db_listener.cljs b/src/main/frontend/worker/db_listener.cljs index f6933714be..4b3ee0a07a 100644 --- a/src/main/frontend/worker/db_listener.cljs +++ b/src/main/frontend/worker/db_listener.cljs @@ -19,27 +19,28 @@ "Return tx-report" [repo conn {:keys [tx-meta] :as tx-report}] (when repo (worker-state/set-db-latest-tx-time! repo)) - (let [{:keys [from-disk?]} tx-meta - result (worker-pipeline/invoke-hooks repo conn tx-report (worker-state/get-context)) - tx-report' (:tx-report result)] - (when (and result (not (:rtc-download-graph? tx-meta))) - (let [data (merge - {:request-id (:request-id tx-meta) - :repo repo - :tx-data (:tx-data tx-report') - :tx-meta tx-meta} - (dissoc result :tx-report))] - (shared-service/broadcast-to-clients! :sync-db-changes data)) + (when-not (:rtc-download-graph? tx-meta) + (let [{:keys [from-disk?]} tx-meta + result (worker-pipeline/invoke-hooks repo conn tx-report (worker-state/get-context)) + tx-report' (:tx-report result)] + (when result + (let [data (merge + {:request-id (:request-id tx-meta) + :repo repo + :tx-data (:tx-data tx-report') + :tx-meta tx-meta} + (dissoc result :tx-report))] + (shared-service/broadcast-to-clients! :sync-db-changes data)) - (when-not from-disk? - (p/do! + (when-not from-disk? + (p/do! ;; Sync SQLite search - (let [{:keys [blocks-to-remove-set blocks-to-add]} (search/sync-search-indice repo tx-report')] - (when (seq blocks-to-remove-set) - ((@thread-api/*thread-apis :thread-api/search-delete-blocks) repo blocks-to-remove-set)) - (when (seq blocks-to-add) - ((@thread-api/*thread-apis :thread-api/search-upsert-blocks) repo blocks-to-add)))))) - tx-report')) + (let [{:keys [blocks-to-remove-set blocks-to-add]} (search/sync-search-indice repo tx-report')] + (when (seq blocks-to-remove-set) + ((@thread-api/*thread-apis :thread-api/search-delete-blocks) repo blocks-to-remove-set)) + (when (seq blocks-to-add) + ((@thread-api/*thread-apis :thread-api/search-upsert-blocks) repo blocks-to-add)))))) + tx-report'))) (comment (defmethod listen-db-changes :debug-listen-db-changes diff --git a/src/main/frontend/worker/handler/page/file_based/rename.cljs b/src/main/frontend/worker/handler/page/file_based/rename.cljs index 1390046eb5..c65b00c441 100644 --- a/src/main/frontend/worker/handler/page/file_based/rename.cljs +++ b/src/main/frontend/worker/handler/page/file_based/rename.cljs @@ -172,7 +172,7 @@ (when (and from-page to-page (not= from-page-name to-page-name)) (let [datoms (d/datoms @conn :avet :block/page from-id) block-eids (mapv :e datoms) - blocks (d/pull-many db '[:db/id :block/page :block/refs :block/path-refs :block/order :block/parent] block-eids) + blocks (d/pull-many db '[:db/id :block/page :block/refs :block/order :block/parent] block-eids) blocks-tx-data (map (fn [block] (let [id (:db/id block)] (cond-> diff --git a/src/main/frontend/worker/pipeline.cljs b/src/main/frontend/worker/pipeline.cljs index 7ba5c5eb17..9006208fe1 100644 --- a/src/main/frontend/worker/pipeline.cljs +++ b/src/main/frontend/worker/pipeline.cljs @@ -36,14 +36,6 @@ (contains? #{:collapse-expand-blocks :delete-blocks} outliner-op) (:undo? tx-meta) (:redo? tx-meta))))) -(defn- compute-block-path-refs-tx - [{:keys [tx-meta] :as tx-report} blocks] - (when (or (:rtc-tx? tx-meta) - (and (:outliner-op tx-meta) (refs-need-recalculated? tx-meta)) - (:from-disk? tx-meta) - (:new-graph? tx-meta)) - (outliner-pipeline/compute-block-path-refs-tx tx-report blocks))) - (defn- rebuild-block-refs [repo {:keys [tx-meta db-after]} blocks] (when (or (and (:outliner-op tx-meta) (refs-need-recalculated? tx-meta)) @@ -302,19 +294,16 @@ (:added d)) (when-let [display-type (ldb/get-display-type-by-class-ident (:db/ident (d/entity db (:v d))))] [(cond-> - {:db/id (:e d) - :logseq.property.node/display-type display-type} + {:db/id (:e d) + :logseq.property.node/display-type display-type} (and (= display-type :code) (d/entity db :logseq.kv/latest-code-lang)) (assoc :logseq.property.code/lang (:kv/value (d/entity db :logseq.kv/latest-code-lang))))]))) datoms))) (defn- invoke-hooks-for-imported-graph [conn {:keys [tx-meta] :as tx-report}] - (let [{:keys [refs-tx-report path-refs-tx-report]} - (outliner-pipeline/transact-new-db-graph-refs conn tx-report) - full-tx-data (concat (:tx-data tx-report) - (:tx-data refs-tx-report) - (:tx-data path-refs-tx-report)) - final-tx-report (-> (or path-refs-tx-report refs-tx-report tx-report) + (let [refs-tx-report (outliner-pipeline/transact-new-db-graph-refs conn tx-report) + full-tx-data (concat (:tx-data tx-report) (:tx-data refs-tx-report)) + final-tx-report (-> (or refs-tx-report tx-report) (assoc :tx-data full-tx-data :tx-meta tx-meta :db-before (:db-before tx-report)))] @@ -447,11 +436,6 @@ :skip-store? true})) replace-tx (let [db-after (or (:db-after refs-tx-report) (:db-after tx-report*))] (concat - ;; block path refs - (when (seq blocks') - (let [blocks' (keep (fn [b] (d/entity db-after (:db/id b))) blocks')] - (compute-block-path-refs-tx tx-report* blocks'))) - ;; update block/tx-id (let [updated-blocks (remove (fn [b] (contains? deleted-block-ids (:db/id b))) (concat pages blocks)) @@ -492,17 +476,7 @@ (let [{:keys [from-disk? new-graph?]} tx-meta] (cond (or from-disk? new-graph?) - (let [{:keys [blocks]} (ds-report/get-blocks-and-pages tx-report) - path-refs (distinct (compute-block-path-refs-tx tx-report blocks)) - tx-report' (if (seq path-refs) - (ldb/transact! conn path-refs {:pipeline-replace? true}) - tx-report) - full-tx-data (concat (:tx-data tx-report) (:tx-data tx-report')) - final-tx-report (assoc tx-report' - :tx-meta (:tx-meta tx-report) - :tx-data full-tx-data - :db-before (:db-before tx-report))] - {:tx-report final-tx-report}) + {:tx-report tx-report} (or (::gp-exporter/new-graph? tx-meta) (::sqlite-export/imported-data? tx-meta)) (invoke-hooks-for-imported-graph conn tx-report) diff --git a/src/main/frontend/worker/react.cljs b/src/main/frontend/worker/react.cljs index 1ebe15aad1..3633596839 100644 --- a/src/main/frontend/worker/react.cljs +++ b/src/main/frontend/worker/react.cljs @@ -36,7 +36,7 @@ (map :v) (distinct)) refs (->> (filter (fn [datom] - (when (contains? #{:block/refs :block/path-refs} (:a datom)) + (when (contains? #{:block/refs} (:a datom)) (not= (:v datom) (:db/id (:block/page (d/entity db-after (:e datom))))))) tx-data) (map :v) @@ -67,13 +67,13 @@ blocks [(when-let [parent-id (:db/id (:block/parent block))] [::block parent-id]) [::block (:db/id block)]] - path-refs (:block/path-refs block) - path-refs' (->> (keep (fn [ref] - (when-not (= (:db/id ref) page-id) - [[::refs (:db/id ref)] - [::block (:db/id ref)]])) path-refs) - (apply concat))] - (concat blocks path-refs'))) + block-refs (:block/refs block) + refs (->> (keep (fn [ref] + (when-not (= (:db/id ref) page-id) + [[::refs (:db/id ref)] + [::block (:db/id ref)]])) block-refs) + (apply concat))] + (concat blocks refs))) block-entities) (mapcat diff --git a/src/main/frontend/worker/rtc/client.cljs b/src/main/frontend/worker/rtc/client.cljs index 4bb0e2e49f..e076ebc745 100644 --- a/src/main/frontend/worker/rtc/client.cljs +++ b/src/main/frontend/worker/rtc/client.cljs @@ -15,7 +15,8 @@ [frontend.worker.rtc.ws-util :as ws-util] [logseq.db :as ldb] [logseq.db.frontend.schema :as db-schema] - [missionary.core :as m])) + [missionary.core :as m] + [tick.core :as tick])) (defn- new-task--register-graph-updates [get-ws-create-task graph-uuid major-schema-version repo] @@ -34,61 +35,78 @@ (throw (ex-info "remote graph is still creating" {:missionary/retry true} e)) (throw e)))))) -(defn- ensure-register-graph-updates* +(def ^:private *register-graph-updates-sent + "ws -> [bool, added-inst, [graph-uuid,major-schema-version,repo]]" + (atom {})) + +(defn- clean-old-keys-in-sent! + [] + (let [hours-ago (tick/<< (tick/instant) (tick/new-duration 3 :hours)) + old-ks + (keep (fn [[k [_ added-inst]]] + (when (tick/< added-inst hours-ago) + k)) + @*register-graph-updates-sent)] + (doseq [k old-ks] + (swap! *register-graph-updates-sent dissoc k)))) + +(defn ensure-register-graph-updates--memoized "Return a task: get or create a mws(missionary wrapped websocket). see also `ws/get-mws-create`. But ensure `register-graph-updates` and `calibrate-graph-skeleton` has been sent" [get-ws-create-task graph-uuid major-schema-version repo conn *last-calibrate-t *online-users *server-schema-version add-log-fn] - (assert (some? graph-uuid)) - (let [*sent (atom {}) ;; ws->bool - ] - (m/sp - (let [ws (m/? get-ws-create-task)] - (when-not (contains? @*sent ws) - (swap! *sent assoc ws false)) - (when (not (@*sent ws)) - (let [recv-flow (ws/recv-flow (m/? get-ws-create-task))] - (c.m/run-task :update-online-user-when-register-graph-updates - (m/sp - (when-let [online-users (:online-users - (m/? - (m/timeout - (m/reduce - (fn [_ v] - (when (= "online-users-updated" (:req-id v)) - (reduced v))) - recv-flow) - 10000)))] - (reset! *online-users online-users))) - :succ (constantly nil))) - (let [{:keys [max-remote-schema-version]} + (m/sp + (let [ws (m/? get-ws-create-task) + sent-3rd-value [graph-uuid major-schema-version repo] + origin-v (@*register-graph-updates-sent ws)] + (when (or (nil? origin-v) + (not= (last origin-v) sent-3rd-value)) + (swap! *register-graph-updates-sent assoc ws [false (tick/instant) sent-3rd-value]) + (clean-old-keys-in-sent!)) + (when (not (first (@*register-graph-updates-sent ws))) + (swap! *register-graph-updates-sent assoc-in [ws 0] true) + (let [recv-flow (ws/recv-flow (m/? get-ws-create-task))] + (c.m/run-task :update-online-user-when-register-graph-updates + (m/sp + (when-let [online-users (:online-users + (m/? + (m/timeout + (m/reduce + (fn [_ v] + (when (= "online-users-updated" (:req-id v)) + (reduced v))) + recv-flow) + 10000)))] + (reset! *online-users online-users))) + :succ (constantly nil))) + (let [{:keys [max-remote-schema-version]} + (try (m/? (c.m/backoff - {:delay-seq - ;retry 5 times if remote-graph is creating (4000 8000 16000 32000 64000) + {:delay-seq ;retry 5 times if remote-graph is creating (4000 8000 16000 32000 64000) (take 5 (drop 2 c.m/delays)) :reset-flow worker-flows/online-event-flow} - (new-task--register-graph-updates get-ws-create-task graph-uuid major-schema-version repo)))] - (when max-remote-schema-version - (add-log-fn :rtc.log/higher-remote-schema-version-exists - {:sub-type (r.branch-graph/compare-schemas - max-remote-schema-version db-schema/version major-schema-version) - :repo repo - :graph-uuid graph-uuid - :remote-schema-version max-remote-schema-version}))) - (let [t (client-op/get-local-tx repo)] - (when (or (nil? @*last-calibrate-t) - (< 500 (- t @*last-calibrate-t))) - (let [{:keys [server-schema-version _server-builtin-db-idents]} - (m/? (r.skeleton/new-task--calibrate-graph-skeleton - get-ws-create-task graph-uuid major-schema-version @conn))] - (reset! *server-schema-version server-schema-version)) - (reset! *last-calibrate-t t))) - (swap! *sent assoc ws true)) - ws)))) - -(def ensure-register-graph-updates (memoize ensure-register-graph-updates*)) + (new-task--register-graph-updates get-ws-create-task graph-uuid major-schema-version repo))) + (catch :default e + (swap! *register-graph-updates-sent assoc-in [ws 0] false) + (throw e)))] + (when max-remote-schema-version + (add-log-fn :rtc.log/higher-remote-schema-version-exists + {:sub-type (r.branch-graph/compare-schemas + max-remote-schema-version db-schema/version major-schema-version) + :repo repo + :graph-uuid graph-uuid + :remote-schema-version max-remote-schema-version}))) + (let [t (client-op/get-local-tx repo)] + (when (or (nil? @*last-calibrate-t) + (< 500 (- t @*last-calibrate-t))) + (let [{:keys [server-schema-version _server-builtin-db-idents]} + (m/? (r.skeleton/new-task--calibrate-graph-skeleton + get-ws-create-task graph-uuid major-schema-version @conn))] + (reset! *server-schema-version server-schema-version)) + (reset! *last-calibrate-t t)))) + ws))) (defn- ->pos [parent-uuid order] diff --git a/src/main/frontend/worker/rtc/core.cljs b/src/main/frontend/worker/rtc/core.cljs index 46da562dd1..22449b3901 100644 --- a/src/main/frontend/worker/rtc/core.cljs +++ b/src/main/frontend/worker/rtc/core.cljs @@ -230,7 +230,7 @@ (rtc-log-and-state/rtc-log type (assoc message :graph-uuid graph-uuid))) {:keys [*current-ws get-ws-create-task]} (gen-get-ws-create-map--memoized ws-url) - get-ws-create-task (r.client/ensure-register-graph-updates + get-ws-create-task (r.client/ensure-register-graph-updates--memoized get-ws-create-task graph-uuid major-schema-version repo conn *last-calibrate-t *online-users *server-schema-version add-log-fn) {:keys [assets-sync-loop-task]} diff --git a/src/rtc_e2e_test/example.cljs b/src/rtc_e2e_test/example.cljs index 972a1b6b37..6a1af2b4e5 100644 --- a/src/rtc_e2e_test/example.cljs +++ b/src/rtc_e2e_test/example.cljs @@ -3,6 +3,6 @@ ;; (datascript.transit/write-transit-str db) (def example-db-transit - "[\"~#datascript/DB\",[\"^ \",\"~:schema\",[\"^ \",\"~i32\",\"~:logseq.property.journal/title-format\",\"~i64\",\"~:logseq.class/Query\",\"~:logseq.property.view/type.table\",[\"^ \",\"~:db/ident\",\"^6\"],\"~:file/created-at\",[\"^ \"],\"~i1\",\"~:logseq.kv/db-type\",\"~i33\",\"~:logseq.property/status\",\"~i65\",\"~:logseq.class/Advanced-Query\",\"~:logseq.property.fsrs/state\",[\"^ \",\"~:db/index\",true,\"~:db/cardinality\",\"~:db.cardinality/one\",\"^7\",\"^>\"],\"~:logseq.kv/graph-initial-schema-version\",[\"^ \",\"^7\",\"^B\"],\"~:block/tx-id\",[\"^ \"],\"~i2\",\"~:logseq.kv/schema-version\",\"~i34\",\"~:logseq.property/status.backlog\",\"~i66\",\"~:logseq.class/Card\",\"~:logseq.property.pdf/file-path\",[\"^ \",\"^?\",true,\"~:db/valueType\",\"~:db.type/ref\",\"^@\",\"^A\",\"^7\",\"^I\"],\"~:logseq.property.table/sorting\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^L\"],\"~i3\",\"^B\",\"~i35\",\"~:logseq.property/status.todo\",\"~i67\",\"~:logseq.class/Cards\",\"~:logseq.property/public\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^Q\"],\"~i4\",\"~:logseq.kv/graph-created-at\",\"~i36\",\"~:logseq.property/status.doing\",\"~:logseq.property/priority.low\",[\"^ \",\"^7\",\"^U\"],\"~:file/content\",[\"^ \"],\"~:logseq.property/priority.high\",[\"^ \",\"^7\",\"^W\"],\"~i5\",\"~:logseq.property/empty-placeholder\",\"~i37\",\"~:logseq.property/status.in-review\",\"~:logseq.property/priority.urgent\",[\"^ \",\"^7\",\"^[\"],\"~:logseq.property/hl-color\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^10\"],\"~:logseq.property.table/sized-columns\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^11\"],\"~:block/alias\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"~:db.cardinality/many\",\"^7\",\"^12\"],\"~i6\",\"~:logseq.class/Root\",\"~i38\",\"~:logseq.property/status.done\",\"~:kv/value\",[\"^ \"],\"~i7\",\"~:logseq.property/built-in?\",\"~i39\",\"~:logseq.property/status.canceled\",\"~:logseq.property.linked-references/includes\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1;\"],\"~:block/link\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~:logseq.property.view/type\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1=\"],\"~:logseq.property/heading\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1>\"],\"~i8\",\"^12\",\"~i40\",\"~:logseq.property/priority\",\"~:block/uuid\",[\"^ \",\"~:db/unique\",\"~:db.unique/identity\"],\"~:logseq.property.table/hidden-columns\",[\"^ \",\"^?\",true,\"^@\",\"^13\",\"^7\",\"^1D\"],\"~i9\",\"~:block/tags\",\"~i41\",\"^U\",\"~:block/updated-at\",[\"^ \",\"^?\",true],\"~:asset/uuid\",[\"^ \",\"^1B\",\"^1C\"],\"~i10\",\"~:logseq.property.class/extends\",\"~i42\",\"~:logseq.property/priority.medium\",\"~:logseq.property.view/type.list\",[\"^ \",\"^7\",\"^1M\"],\"^1L\",[\"^ \",\"^7\",\"^1L\"],\"~i11\",\"~:logseq.property.class/properties\",\"~:file/size\",[\"^ \"],\"~i43\",\"^W\",\"~:block/refs\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^H\",[\"^ \",\"^7\",\"^H\"],\"^1@\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1@\"],\"~i12\",\"~:logseq.property.class/hide-from-node\",\"~i44\",\"^[\",\"^T\",[\"^ \",\"^7\",\"^T\"],\"^D\",[\"^ \",\"^7\",\"^D\"],\"~:logseq.property.pdf/hl-page\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1V\"],\"~:logseq.property/hl-type\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1W\"],\"~i13\",\"~:logseq.property/query\",\"~i45\",\"~:logseq.property/deadline\",\"~:block/closed-value-property\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^Z\",[\"^ \",\"^7\",\"^Z\"],\"~i14\",\"~:logseq.property/page-tags\",\"~:file/last-modified-at\",[\"^ \"],\"~i46\",\"~:logseq.property/icon\",\"^16\",[\"^ \",\"^7\",\"^16\"],\"^1O\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1O\"],\"^1:\",[\"^ \",\"^7\",\"^1:\"],\"~i15\",\"~:logseq.property/background-color\",\"~i47\",\"^Q\",\"~:block/created-at\",[\"^ \",\"^?\",true],\"^22\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^22\"],\"^N\",[\"^ \",\"^7\",\"^N\"],\"~:logseq.class/Task\",[\"^ \",\"^7\",\"^2:\"],\"~:block/collapsed?\",[\"^ \"],\"~:logseq.property.tldraw/page\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2<\"],\"~i16\",\"~:logseq.property/background-image\",\"~i48\",\"~:logseq.property/exclude-from-graph-view\",\"~:logseq.property/value\",[\"^ \"],\"^18\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^18\"],\"~:block/schema\",[\"^ \"],\"~i17\",\"^1>\",\"~i49\",\"~:logseq.property/description\",\"^1T\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1T\"],\"~:logseq.property.linked-references/excludes\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^2F\"],\"~:logseq.property/ls-type\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2G\"],\"^P\",[\"^ \",\"^7\",\"^P\"],\"~:logseq.property/view-for\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2H\"],\"~i18\",\"~:logseq.property/created-from-property\",\"^1Y\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1Y\"],\"~i50\",\"^1=\",\"^27\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^27\"],\"~:block/journal-day\",[\"^ \",\"^?\",true],\"~i19\",\"^2G\",\"^14\",[\"^ \",\"^7\",\"^14\"],\"~i51\",\"^6\",\"~:block/format\",[\"^ \"],\"^X\",[\"^ \",\"^7\",\"^X\"],\"~i20\",\"^1W\",\"~i52\",\"^1M\",\"^1E\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1E\"],\"~:block/title\",[\"^ \",\"^?\",true],\"~:logseq.property.tldraw/shape\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2S\"],\"~:asset/meta\",[\"^ \"],\"^1[\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1[\"],\"~i21\",\"^10\",\"~i53\",\"^L\",\"^2J\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2J\"],\"^25\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^25\"],\"~i22\",\"^1V\",\"~i54\",\"~:logseq.property.table/filters\",\"^R\",[\"^ \",\"^7\",\"^R\"],\"~i23\",\"~:logseq.property.pdf/hl-stamp\",\"~i55\",\"^1D\",\"~:logseq.property/order-list-type\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^31\"],\"^2@\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2@\"],\"~i24\",\"~:logseq.property.pdf/hl-value\",\"~i56\",\"~:logseq.property.table/ordered-columns\",\"^2>\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2>\"],\"^7\",[\"^ \",\"^1B\",\"^1C\"],\"~:property/schema.classes\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^2E\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2E\"],\"~:block/path-refs\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"~:block/parent\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~i25\",\"~:logseq.property.pdf/file\",\"~i57\",\"^11\",\"~:block/type\",[\"^ \",\"^?\",true],\"~:logseq.class/Journal\",[\"^ \",\"^7\",\"^3=\"],\"~i26\",\"^I\",\"~i58\",\"^2H\",\"^33\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^33\"],\"^5\",[\"^ \",\"^7\",\"^5\"],\"~i27\",\"^31\",\"~i59\",\"~:logseq.property.asset/remote-metadata\",\"^3B\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3B\"],\"^2[\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2[\"],\"~:block/order\",[\"^ \",\"^?\",true],\"^;\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^;\"],\"~:logseq.property.fsrs/due\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3D\"],\"~i28\",\"^1;\",\"~i60\",\"^3D\",\"~:block/page\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~:block/name\",[\"^ \",\"^?\",true],\"^35\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^35\"],\"~:file/path\",[\"^ \",\"^1B\",\"^1C\"],\"~i29\",\"^2F\",\"~i61\",\"^>\",\"^F\",[\"^ \",\"^7\",\"^F\"],\"^1J\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1J\"],\"~i30\",\"^2<\",\"~i62\",\"^2:\",\"^3:\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^3:\"],\"^3\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3\"],\"^=\",[\"^ \",\"^7\",\"^=\"],\"~i31\",\"^2S\",\"~i63\",\"^3=\",\"^9\",[\"^ \",\"^7\",\"^9\"],\"^2Y\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2Y\"]],\"~:datoms\",[\"~#list\",[[\"~#datascript/Datom\",[1,\"^7\",\"^9\",536870913]],[\"^3R\",[1,\"^17\",\"db\",536870913]],[\"^3R\",[2,\"^7\",\"^D\",536870913]],[\"^3R\",[2,\"^17\",25,536870913]],[\"^3R\",[3,\"^7\",\"^B\",536870913]],[\"^3R\",[3,\"^17\",25,536870913]],[\"^3R\",[4,\"^7\",\"^R\",536870913]],[\"^3R\",[4,\"^17\",1727187033523,536870913]],[\"^3R\",[5,\"^7\",\"^X\",536870913]],[\"^3R\",[6,\"^29\",1727187033526,536870913]],[\"^3R\",[6,\"^2O\",\"~:markdown\",536870913]],[\"^3R\",[6,\"^3H\",\"root tag\",536870913]],[\"^3R\",[6,\"^2R\",\"Root Tag\",536870913]],[\"^3R\",[6,\"^3<\",\"class\",536870913]],[\"^3R\",[6,\"^1G\",1727187033526,536870913]],[\"^3R\",[6,\"^1A\",\"~u00000002-2737-8382-7000-000000000000\",536870913]],[\"^3R\",[6,\"^7\",\"^14\",536870913]],[\"^3R\",[6,\"^18\",true,536870913]],[\"^3R\",[7,\"^29\",1727187033523,536870913]],[\"^3R\",[7,\"^2O\",\"^3S\",536870913]],[\"^3R\",[7,\"^3H\",\"built-in?\",536870913]],[\"^3R\",[7,\"^3C\",\"bNP\",536870913]],[\"^3R\",[7,\"^2B\",[\"^ \",\"~:type\",\"~:checkbox\",\"~:hide?\",true],536870913]],[\"^3R\",[7,\"^2R\",\"built-in?\",536870913]],[\"^3R\",[7,\"^3<\",\"property\",536870913]],[\"^3R\",[7,\"^1G\",1727187033523,536870913]],[\"^3R\",[7,\"^1A\",\"~u00000002-1125-9581-6000-000000000000\",536870913]],[\"^3R\",[7,\"^@\",\"^A\",536870913]],[\"^3R\",[7,\"^7\",\"^18\",536870913]],[\"^3R\",[7,\"^?\",true,536870913]],[\"^3R\",[7,\"^18\",true,536870913]],[\"^3R\",[8,\"^29\",1727187033524,536870913]],[\"^3R\",[8,\"^2O\",\"^3S\",536870913]],[\"^3R\",[8,\"^3H\",\"alias\",536870913]],[\"^3R\",[8,\"^3C\",\"bNQ\",536870913]],[\"^3R\",[8,\"^2B\",[\"^ \",\"^3T\",\"~:page\",\"~:view-context\",\"^3W\",\"~:public?\",true],536870913]],[\"^3R\",[8,\"^2R\",\"Alias\",536870913]],[\"^3R\",[8,\"^3<\",\"property\",536870913]],[\"^3R\",[8,\"^1G\",1727187033524,536870913]],[\"^3R\",[8,\"^1A\",\"~u00000002-2112-6446-9900-000000000000\",536870913]],[\"^3R\",[8,\"^@\",\"^13\",536870913]],[\"^3R\",[8,\"^7\",\"^12\",536870913]],[\"^3R\",[8,\"^?\",true,536870913]],[\"^3R\",[8,\"^J\",\"^K\",536870913]],[\"^3R\",[8,\"^18\",true,536870913]],[\"^3R\",[9,\"^29\",1727187033524,536870913]],[\"^3R\",[9,\"^2O\",\"^3S\",536870913]],[\"^3R\",[9,\"^3H\",\"tags\",536870913]],[\"^3R\",[9,\"^3C\",\"bNR\",536870913]],[\"^3R\",[9,\"^2B\",[\"^ \",\"^3T\",\"~:class\",\"^3Y\",true],536870913]],[\"^3R\",[9,\"^2R\",\"Tags\",536870913]],[\"^3R\",[9,\"^3<\",\"property\",536870913]],[\"^3R\",[9,\"^1G\",1727187033524,536870913]],[\"^3R\",[9,\"^1A\",\"~u00000002-1814-9483-4000-000000000000\",536870913]],[\"^3R\",[9,\"^@\",\"^13\",536870913]],[\"^3R\",[9,\"^7\",\"^1E\",536870913]],[\"^3R\",[9,\"^?\",true,536870913]],[\"^3R\",[9,\"^J\",\"^K\",536870913]],[\"^3R\",[9,\"^18\",true,536870913]],[\"^3R\",[9,\"^36\",6,536870913]],[\"^3R\",[10,\"^29\",1727187033524,536870913]],[\"^3R\",[10,\"^2O\",\"^3S\",536870913]],[\"^3R\",[10,\"^3H\",\"parent\",536870913]],[\"^3R\",[10,\"^3C\",\"bNS\",536870913]],[\"^3R\",[10,\"^2B\",[\"^ \",\"^3T\",\"~:node\",\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[10,\"^2R\",\"Parent\",536870913]],[\"^3R\",[10,\"^3<\",\"property\",536870913]],[\"^3R\",[10,\"^1G\",1727187033524,536870913]],[\"^3R\",[10,\"^1A\",\"~u00000002-1779-8450-9000-000000000000\",536870913]],[\"^3R\",[10,\"^@\",\"^A\",536870913]],[\"^3R\",[10,\"^7\",\"^1J\",536870913]],[\"^3R\",[10,\"^?\",true,536870913]],[\"^3R\",[10,\"^J\",\"^K\",536870913]],[\"^3R\",[10,\"^18\",true,536870913]],[\"^3R\",[11,\"^29\",1727187033524,536870913]],[\"^3R\",[11,\"^2O\",\"^3S\",536870913]],[\"^3R\",[11,\"^3H\",\"tag properties\",536870913]],[\"^3R\",[11,\"^3C\",\"bNT\",536870913]],[\"^3R\",[11,\"^2B\",[\"^ \",\"^3T\",\"~:property\",\"^3Y\",true,\"^3X\",\"~:never\"],536870913]],[\"^3R\",[11,\"^2R\",\"Tag Properties\",536870913]],[\"^3R\",[11,\"^3<\",\"property\",536870913]],[\"^3R\",[11,\"^1G\",1727187033524,536870913]],[\"^3R\",[11,\"^1A\",\"~u00000002-2123-7120-5000-000000000000\",536870913]],[\"^3R\",[11,\"^@\",\"^13\",536870913]],[\"^3R\",[11,\"^7\",\"^1O\",536870913]],[\"^3R\",[11,\"^?\",true,536870913]],[\"^3R\",[11,\"^J\",\"^K\",536870913]],[\"^3R\",[11,\"^18\",true,536870913]],[\"^3R\",[12,\"^29\",1727187033524,536870913]],[\"^3R\",[12,\"^2O\",\"^3S\",536870913]],[\"^3R\",[12,\"^3H\",\"hide from node\",536870913]],[\"^3R\",[12,\"^3C\",\"bNU\",536870913]],[\"^3R\",[12,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3Y\",true,\"^3X\",\"^3Z\"],536870913]],[\"^3R\",[12,\"^2R\",\"Hide from Node\",536870913]],[\"^3R\",[12,\"^3<\",\"property\",536870913]],[\"^3R\",[12,\"^1G\",1727187033524,536870913]],[\"^3R\",[12,\"^1A\",\"~u00000002-2610-3727-0000-000000000000\",536870913]],[\"^3R\",[12,\"^@\",\"^A\",536870913]],[\"^3R\",[12,\"^7\",\"^1T\",536870913]],[\"^3R\",[12,\"^?\",true,536870913]],[\"^3R\",[12,\"^18\",true,536870913]],[\"^3R\",[13,\"^29\",1727187033524,536870913]],[\"^3R\",[13,\"^2O\",\"^3S\",536870913]],[\"^3R\",[13,\"^3H\",\"query\",536870913]],[\"^3R\",[13,\"^3C\",\"bNV\",536870913]],[\"^3R\",[13,\"^2B\",[\"^ \",\"^3T\",\"~:default\",\"^3Y\",true,\"^3X\",\"~:block\"],536870913]],[\"^3R\",[13,\"^2R\",\"Query\",536870913]],[\"^3R\",[13,\"^3<\",\"property\",536870913]],[\"^3R\",[13,\"^1G\",1727187033524,536870913]],[\"^3R\",[13,\"^1A\",\"~u00000002-9741-4126-0000-000000000000\",536870913]],[\"^3R\",[13,\"^@\",\"^A\",536870913]],[\"^3R\",[13,\"^7\",\"^1Y\",536870913]],[\"^3R\",[13,\"^?\",true,536870913]],[\"^3R\",[13,\"^J\",\"^K\",536870913]],[\"^3R\",[13,\"^18\",true,536870913]],[\"^3R\",[14,\"^29\",1727187033524,536870913]],[\"^3R\",[14,\"^2O\",\"^3S\",536870913]],[\"^3R\",[14,\"^3H\",\"page tags\",536870913]],[\"^3R\",[14,\"^3C\",\"bNW\",536870913]],[\"^3R\",[14,\"^2B\",[\"^ \",\"^3T\",\"^3W\",\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[14,\"^2R\",\"Page Tags\",536870913]],[\"^3R\",[14,\"^3<\",\"property\",536870913]],[\"^3R\",[14,\"^1G\",1727187033524,536870913]],[\"^3R\",[14,\"^1A\",\"~u00000002-2133-5311-8500-000000000000\",536870913]],[\"^3R\",[14,\"^@\",\"^13\",536870913]],[\"^3R\",[14,\"^7\",\"^22\",536870913]],[\"^3R\",[14,\"^?\",true,536870913]],[\"^3R\",[14,\"^J\",\"^K\",536870913]],[\"^3R\",[14,\"^18\",true,536870913]],[\"^3R\",[15,\"^29\",1727187033524,536870913]],[\"^3R\",[15,\"^2O\",\"^3S\",536870913]],[\"^3R\",[15,\"^3H\",\"background-color\",536870913]],[\"^3R\",[15,\"^3C\",\"bNX\",536870913]],[\"^3R\",[15,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[15,\"^2R\",\"background-color\",536870913]],[\"^3R\",[15,\"^3<\",\"property\",536870913]],[\"^3R\",[15,\"^1G\",1727187033524,536870913]],[\"^3R\",[15,\"^1A\",\"~u00000002-5191-2660-6000-000000000000\",536870913]],[\"^3R\",[15,\"^@\",\"^A\",536870913]],[\"^3R\",[15,\"^7\",\"^27\",536870913]],[\"^3R\",[15,\"^?\",true,536870913]],[\"^3R\",[15,\"^J\",\"^K\",536870913]],[\"^3R\",[15,\"^18\",true,536870913]],[\"^3R\",[16,\"^29\",1727187033524,536870913]],[\"^3R\",[16,\"^2O\",\"^3S\",536870913]],[\"^3R\",[16,\"^3H\",\"background-image\",536870913]],[\"^3R\",[16,\"^3C\",\"bNY\",536870913]],[\"^3R\",[16,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3X\",\"^43\",\"^3Y\",true],536870913]],[\"^3R\",[16,\"^2R\",\"background-image\",536870913]],[\"^3R\",[16,\"^3<\",\"property\",536870913]],[\"^3R\",[16,\"^1G\",1727187033524,536870913]],[\"^3R\",[16,\"^1A\",\"~u00000002-2513-1712-8000-000000000000\",536870913]],[\"^3R\",[16,\"^@\",\"^A\",536870913]],[\"^3R\",[16,\"^7\",\"^2>\",536870913]],[\"^3R\",[16,\"^?\",true,536870913]],[\"^3R\",[16,\"^J\",\"^K\",536870913]],[\"^3R\",[16,\"^18\",true,536870913]],[\"^3R\",[17,\"^29\",1727187033524,536870913]],[\"^3R\",[17,\"^2O\",\"^3S\",536870913]],[\"^3R\",[17,\"^3H\",\"heading\",536870913]],[\"^3R\",[17,\"^3C\",\"bNZ\",536870913]],[\"^3R\",[17,\"^2B\",[\"^ \",\"^3T\",\"~:any\",\"^3V\",true],536870913]],[\"^3R\",[17,\"^2R\",\"heading\",536870913]],[\"^3R\",[17,\"^3<\",\"property\",536870913]],[\"^3R\",[17,\"^1G\",1727187033524,536870913]],[\"^3R\",[17,\"^1A\",\"~u00000002-1858-7494-1500-000000000000\",536870913]],[\"^3R\",[17,\"^@\",\"^A\",536870913]],[\"^3R\",[17,\"^7\",\"^1>\",536870913]],[\"^3R\",[17,\"^?\",true,536870913]],[\"^3R\",[17,\"^18\",true,536870913]],[\"^3R\",[18,\"^29\",1727187033524,536870913]],[\"^3R\",[18,\"^2O\",\"^3S\",536870913]],[\"^3R\",[18,\"^3H\",\"created-from-property\",536870913]],[\"^3R\",[18,\"^3C\",\"bNa\",536870913]],[\"^3R\",[18,\"^2B\",[\"^ \",\"^3T\",\"~:entity\",\"^3V\",true],536870913]],[\"^3R\",[18,\"^2R\",\"created-from-property\",536870913]],[\"^3R\",[18,\"^3<\",\"property\",536870913]],[\"^3R\",[18,\"^1G\",1727187033524,536870913]],[\"^3R\",[18,\"^1A\",\"~u00000002-8618-9226-7000-000000000000\",536870913]],[\"^3R\",[18,\"^@\",\"^A\",536870913]],[\"^3R\",[18,\"^7\",\"^2J\",536870913]],[\"^3R\",[18,\"^?\",true,536870913]],[\"^3R\",[18,\"^J\",\"^K\",536870913]],[\"^3R\",[18,\"^18\",true,536870913]],[\"^3R\",[19,\"^29\",1727187033524,536870913]],[\"^3R\",[19,\"^2O\",\"^3S\",536870913]],[\"^3R\",[19,\"^3H\",\"ls-type\",536870913]],[\"^3R\",[19,\"^3C\",\"bNb\",536870913]],[\"^3R\",[19,\"^2B\",[\"^ \",\"^3T\",\"~:keyword\",\"^3V\",true],536870913]],[\"^3R\",[19,\"^2R\",\"ls-type\",536870913]],[\"^3R\",[19,\"^3<\",\"property\",536870913]],[\"^3R\",[19,\"^1G\",1727187033524,536870913]],[\"^3R\",[19,\"^1A\",\"~u00000002-3269-7934-5000-000000000000\",536870913]],[\"^3R\",[19,\"^@\",\"^A\",536870913]],[\"^3R\",[19,\"^7\",\"^2G\",536870913]],[\"^3R\",[19,\"^?\",true,536870913]],[\"^3R\",[19,\"^18\",true,536870913]],[\"^3R\",[20,\"^29\",1727187033524,536870913]],[\"^3R\",[20,\"^2O\",\"^3S\",536870913]],[\"^3R\",[20,\"^3H\",\"hl-type\",536870913]],[\"^3R\",[20,\"^3C\",\"bNc\",536870913]],[\"^3R\",[20,\"^2B\",[\"^ \",\"^3T\",\"^46\",\"^3V\",true],536870913]],[\"^3R\",[20,\"^2R\",\"hl-type\",536870913]],[\"^3R\",[20,\"^3<\",\"property\",536870913]],[\"^3R\",[20,\"^1G\",1727187033524,536870913]],[\"^3R\",[20,\"^1A\",\"~u00000002-2083-0223-8000-000000000000\",536870913]],[\"^3R\",[20,\"^@\",\"^A\",536870913]],[\"^3R\",[20,\"^7\",\"^1W\",536870913]],[\"^3R\",[20,\"^?\",true,536870913]],[\"^3R\",[20,\"^18\",true,536870913]],[\"^3R\",[21,\"^29\",1727187033524,536870913]],[\"^3R\",[21,\"^2O\",\"^3S\",536870913]],[\"^3R\",[21,\"^3H\",\"hl-color\",536870913]],[\"^3R\",[21,\"^3C\",\"bNd\",536870913]],[\"^3R\",[21,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[21,\"^2R\",\"hl-color\",536870913]],[\"^3R\",[21,\"^3<\",\"property\",536870913]],[\"^3R\",[21,\"^1G\",1727187033524,536870913]],[\"^3R\",[21,\"^1A\",\"~u00000002-2137-2691-4700-000000000000\",536870913]],[\"^3R\",[21,\"^@\",\"^A\",536870913]],[\"^3R\",[21,\"^7\",\"^10\",536870913]],[\"^3R\",[21,\"^?\",true,536870913]],[\"^3R\",[21,\"^J\",\"^K\",536870913]],[\"^3R\",[21,\"^18\",true,536870913]],[\"^3R\",[22,\"^29\",1727187033524,536870913]],[\"^3R\",[22,\"^2O\",\"^3S\",536870913]],[\"^3R\",[22,\"^3H\",\"hl-page\",536870913]],[\"^3R\",[22,\"^3C\",\"bNe\",536870913]],[\"^3R\",[22,\"^2B\",[\"^ \",\"^3T\",\"~:number\",\"^3V\",true],536870913]],[\"^3R\",[22,\"^2R\",\"hl-page\",536870913]],[\"^3R\",[22,\"^3<\",\"property\",536870913]],[\"^3R\",[22,\"^1G\",1727187033524,536870913]],[\"^3R\",[22,\"^1A\",\"~u00000002-7532-8459-6000-000000000000\",536870913]],[\"^3R\",[22,\"^@\",\"^A\",536870913]],[\"^3R\",[22,\"^7\",\"^1V\",536870913]],[\"^3R\",[22,\"^?\",true,536870913]],[\"^3R\",[22,\"^J\",\"^K\",536870913]],[\"^3R\",[22,\"^18\",true,536870913]],[\"^3R\",[23,\"^29\",1727187033524,536870913]],[\"^3R\",[23,\"^2O\",\"^3S\",536870913]],[\"^3R\",[23,\"^3H\",\"hl-stamp\",536870913]],[\"^3R\",[23,\"^3C\",\"bNf\",536870913]],[\"^3R\",[23,\"^2B\",[\"^ \",\"^3T\",\"^47\",\"^3V\",true],536870913]],[\"^3R\",[23,\"^2R\",\"hl-stamp\",536870913]],[\"^3R\",[23,\"^3<\",\"property\",536870913]],[\"^3R\",[23,\"^1G\",1727187033524,536870913]],[\"^3R\",[23,\"^1A\",\"~u00000002-1293-4649-2300-000000000000\",536870913]],[\"^3R\",[23,\"^@\",\"^A\",536870913]],[\"^3R\",[23,\"^7\",\"^2[\",536870913]],[\"^3R\",[23,\"^?\",true,536870913]],[\"^3R\",[23,\"^J\",\"^K\",536870913]],[\"^3R\",[23,\"^18\",true,536870913]],[\"^3R\",[24,\"^29\",1727187033524,536870913]],[\"^3R\",[24,\"^2O\",\"^3S\",536870913]],[\"^3R\",[24,\"^3H\",\"hl-value\",536870913]],[\"^3R\",[24,\"^3C\",\"bNg\",536870913]],[\"^3R\",[24,\"^2B\",[\"^ \",\"^3T\",\"~:map\",\"^3V\",true],536870913]],[\"^3R\",[24,\"^2R\",\"hl-value\",536870913]],[\"^3R\",[24,\"^3<\",\"property\",536870913]],[\"^3R\",[24,\"^1G\",1727187033524,536870913]],[\"^3R\",[24,\"^1A\",\"~u00000002-5458-2940-2000-000000000000\",536870913]],[\"^3R\",[24,\"^@\",\"^A\",536870913]],[\"^3R\",[24,\"^7\",\"^33\",536870913]],[\"^3R\",[24,\"^?\",true,536870913]],[\"^3R\",[24,\"^18\",true,536870913]],[\"^3R\",[25,\"^29\",1727187033525,536870913]],[\"^3R\",[25,\"^2O\",\"^3S\",536870913]],[\"^3R\",[25,\"^3H\",\"file\",536870913]],[\"^3R\",[25,\"^3C\",\"bNh\",536870913]],[\"^3R\",[25,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true,\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[25,\"^2R\",\"file\",536870913]],[\"^3R\",[25,\"^3<\",\"property\",536870913]],[\"^3R\",[25,\"^1G\",1727187033525,536870913]],[\"^3R\",[25,\"^1A\",\"~u00000002-1681-6464-3400-000000000000\",536870913]],[\"^3R\",[25,\"^@\",\"^A\",536870913]],[\"^3R\",[25,\"^7\",\"^3:\",536870913]],[\"^3R\",[25,\"^?\",true,536870913]],[\"^3R\",[25,\"^J\",\"^K\",536870913]],[\"^3R\",[25,\"^18\",true,536870913]],[\"^3R\",[26,\"^29\",1727187033525,536870913]],[\"^3R\",[26,\"^2O\",\"^3S\",536870913]],[\"^3R\",[26,\"^3H\",\"file-path\",536870913]],[\"^3R\",[26,\"^3C\",\"bNi\",536870913]],[\"^3R\",[26,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true,\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[26,\"^2R\",\"file-path\",536870913]],[\"^3R\",[26,\"^3<\",\"property\",536870913]],[\"^3R\",[26,\"^1G\",1727187033525,536870913]],[\"^3R\",[26,\"^1A\",\"~u00000002-5663-3568-2000-000000000000\",536870913]],[\"^3R\",[26,\"^@\",\"^A\",536870913]],[\"^3R\",[26,\"^7\",\"^I\",536870913]],[\"^3R\",[26,\"^?\",true,536870913]],[\"^3R\",[26,\"^J\",\"^K\",536870913]],[\"^3R\",[26,\"^18\",true,536870913]],[\"^3R\",[27,\"^29\",1727187033525,536870913]],[\"^3R\",[27,\"^2O\",\"^3S\",536870913]],[\"^3R\",[27,\"^3H\",\"logseq.order-list-type\",536870913]],[\"^3R\",[27,\"^3C\",\"bNj\",536870913]],[\"^3R\",[27,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[27,\"^2R\",\"logseq.order-list-type\",536870913]],[\"^3R\",[27,\"^3<\",\"property\",536870913]],[\"^3R\",[27,\"^1G\",1727187033525,536870913]],[\"^3R\",[27,\"^1A\",\"~u00000002-6078-1711-1000-000000000000\",536870913]],[\"^3R\",[27,\"^@\",\"^A\",536870913]],[\"^3R\",[27,\"^7\",\"^31\",536870913]],[\"^3R\",[27,\"^?\",true,536870913]],[\"^3R\",[27,\"^J\",\"^K\",536870913]],[\"^3R\",[27,\"^18\",true,536870913]],[\"^3R\",[28,\"^29\",1727187033525,536870913]],[\"^3R\",[28,\"^2O\",\"^3S\",536870913]],[\"^3R\",[28,\"^3H\",\"includes\",536870913]],[\"^3R\",[28,\"^3C\",\"bNk\",536870913]],[\"^3R\",[28,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true],536870913]],[\"^3R\",[28,\"^2R\",\"includes\",536870913]],[\"^3R\",[28,\"^3<\",\"property\",536870913]],[\"^3R\",[28,\"^1G\",1727187033525,536870913]],[\"^3R\",[28,\"^1A\",\"~u00000002-1680-5777-0300-000000000000\",536870913]],[\"^3R\",[28,\"^@\",\"^13\",536870913]],[\"^3R\",[28,\"^7\",\"^1;\",536870913]],[\"^3R\",[28,\"^?\",true,536870913]],[\"^3R\",[28,\"^J\",\"^K\",536870913]],[\"^3R\",[28,\"^18\",true,536870913]],[\"^3R\",[29,\"^29\",1727187033525,536870913]],[\"^3R\",[29,\"^2O\",\"^3S\",536870913]],[\"^3R\",[29,\"^3H\",\"excludes\",536870913]],[\"^3R\",[29,\"^3C\",\"bNl\",536870913]],[\"^3R\",[29,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true],536870913]],[\"^3R\",[29,\"^2R\",\"excludes\",536870913]],[\"^3R\",[29,\"^3<\",\"property\",536870913]],[\"^3R\",[29,\"^1G\",1727187033525,536870913]],[\"^3R\",[29,\"^1A\",\"~u00000002-2426-7588-9000-000000000000\",536870913]],[\"^3R\",[29,\"^@\",\"^13\",536870913]],[\"^3R\",[29,\"^7\",\"^2F\",536870913]],[\"^3R\",[29,\"^?\",true,536870913]],[\"^3R\",[29,\"^J\",\"^K\",536870913]],[\"^3R\",[29,\"^18\",true,536870913]],[\"^3R\",[30,\"^29\",1727187033525,536870913]],[\"^3R\",[30,\"^2O\",\"^3S\",536870913]],[\"^3R\",[30,\"^3H\",\"logseq.tldraw.page\",536870913]],[\"^3R\",[30,\"^3C\",\"bNm\",536870913]],[\"^3R\",[30,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true],536870913]],[\"^3R\",[30,\"^2R\",\"logseq.tldraw.page\",536870913]],[\"^3R\",[30,\"^3<\",\"property\",536870913]],[\"^3R\",[30,\"^1G\",1727187033525,536870913]],[\"^3R\",[30,\"^1A\",\"~u00000002-3546-2145-7000-000000000000\",536870913]],[\"^3R\",[30,\"^@\",\"^A\",536870913]],[\"^3R\",[30,\"^7\",\"^2<\",536870913]],[\"^3R\",[30,\"^?\",true,536870913]],[\"^3R\",[30,\"^18\",true,536870913]],[\"^3R\",[31,\"^29\",1727187033525,536870913]],[\"^3R\",[31,\"^2O\",\"^3S\",536870913]],[\"^3R\",[31,\"^3H\",\"logseq.tldraw.shape\",536870913]],[\"^3R\",[31,\"^3C\",\"bNn\",536870913]],[\"^3R\",[31,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true],536870913]],[\"^3R\",[31,\"^2R\",\"logseq.tldraw.shape\",536870913]],[\"^3R\",[31,\"^3<\",\"property\",536870913]],[\"^3R\",[31,\"^1G\",1727187033525,536870913]],[\"^3R\",[31,\"^1A\",\"~u00000002-1313-2454-2000-000000000000\",536870913]],[\"^3R\",[31,\"^@\",\"^A\",536870913]],[\"^3R\",[31,\"^7\",\"^2S\",536870913]],[\"^3R\",[31,\"^?\",true,536870913]],[\"^3R\",[31,\"^18\",true,536870913]],[\"^3R\",[32,\"^29\",1727187033525,536870913]],[\"^3R\",[32,\"^2O\",\"^3S\",536870913]],[\"^3R\",[32,\"^3H\",\"title format\",536870913]],[\"^3R\",[32,\"^3C\",\"bNo\",536870913]],[\"^3R\",[32,\"^2B\",[\"^ \",\"^3T\",\"~:string\",\"^3Y\",false],536870913]],[\"^3R\",[32,\"^2R\",\"Title Format\",536870913]],[\"^3R\",[32,\"^3<\",\"property\",536870913]],[\"^3R\",[32,\"^1G\",1727187033525,536870913]],[\"^3R\",[32,\"^1A\",\"~u00000002-1536-4979-5400-000000000000\",536870913]],[\"^3R\",[32,\"^@\",\"^A\",536870913]],[\"^3R\",[32,\"^7\",\"^3\",536870913]],[\"^3R\",[32,\"^?\",true,536870913]],[\"^3R\",[32,\"^18\",true,536870913]],[\"^3R\",[33,\"^29\",1727187033525,536870913]],[\"^3R\",[33,\"^2O\",\"^3S\",536870913]],[\"^3R\",[33,\"^3H\",\"status\",536870913]],[\"^3R\",[33,\"^3C\",\"bNp\",536870913]],[\"^3R\",[33,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true,\"~:position\",\"~:block-left\"],536870913]],[\"^3R\",[33,\"^2R\",\"Status\",536870913]],[\"^3R\",[33,\"^3<\",\"property\",536870913]],[\"^3R\",[33,\"^1G\",1727187033525,536870913]],[\"^3R\",[33,\"^1A\",\"~u00000002-1399-1718-0300-000000000000\",536870913]],[\"^3R\",[33,\"^@\",\"^A\",536870913]],[\"^3R\",[33,\"^7\",\"^;\",536870913]],[\"^3R\",[33,\"^?\",true,536870913]],[\"^3R\",[33,\"^J\",\"^K\",536870913]],[\"^3R\",[33,\"^18\",true,536870913]],[\"^3R\",[34,\"^20\",33,536870913]],[\"^3R\",[34,\"^29\",1727187033525,536870913]],[\"^3R\",[34,\"^2O\",\"^3S\",536870913]],[\"^3R\",[34,\"^3C\",\"bNq\",536870913]],[\"^3R\",[34,\"^3G\",33,536870913]],[\"^3R\",[34,\"^38\",33,536870913]],[\"^3R\",[34,\"^2R\",\"Backlog\",536870913]],[\"^3R\",[34,\"^3<\",\"closed value\",536870913]],[\"^3R\",[34,\"^1G\",1727187033525,536870913]],[\"^3R\",[34,\"^1A\",\"~u00000002-1797-5174-0500-000000000000\",536870913]],[\"^3R\",[34,\"^7\",\"^F\",536870913]],[\"^3R\",[34,\"^18\",true,536870913]],[\"^3R\",[34,\"^2J\",33,536870913]],[\"^3R\",[34,\"^25\",[\"^ \",\"^3T\",\"~:tabler-icon\",\"~:id\",\"Backlog\"],536870913]],[\"^3R\",[35,\"^20\",33,536870913]],[\"^3R\",[35,\"^29\",1727187033525,536870913]],[\"^3R\",[35,\"^2O\",\"^3S\",536870913]],[\"^3R\",[35,\"^3C\",\"bNr\",536870913]],[\"^3R\",[35,\"^3G\",33,536870913]],[\"^3R\",[35,\"^38\",33,536870913]],[\"^3R\",[35,\"^2R\",\"Todo\",536870913]],[\"^3R\",[35,\"^3<\",\"closed value\",536870913]],[\"^3R\",[35,\"^1G\",1727187033525,536870913]],[\"^3R\",[35,\"^1A\",\"~u00000002-1776-1920-4900-000000000000\",536870913]],[\"^3R\",[35,\"^7\",\"^N\",536870913]],[\"^3R\",[35,\"^18\",true,536870913]],[\"^3R\",[35,\"^2J\",33,536870913]],[\"^3R\",[35,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Todo\"],536870913]],[\"^3R\",[36,\"^20\",33,536870913]],[\"^3R\",[36,\"^29\",1727187033525,536870913]],[\"^3R\",[36,\"^2O\",\"^3S\",536870913]],[\"^3R\",[36,\"^3C\",\"bNs\",536870913]],[\"^3R\",[36,\"^3G\",33,536870913]],[\"^3R\",[36,\"^38\",33,536870913]],[\"^3R\",[36,\"^2R\",\"Doing\",536870913]],[\"^3R\",[36,\"^3<\",\"closed value\",536870913]],[\"^3R\",[36,\"^1G\",1727187033525,536870913]],[\"^3R\",[36,\"^1A\",\"~u00000002-5524-7947-6000-000000000000\",536870913]],[\"^3R\",[36,\"^7\",\"^T\",536870913]],[\"^3R\",[36,\"^18\",true,536870913]],[\"^3R\",[36,\"^2J\",33,536870913]],[\"^3R\",[36,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"InProgress50\"],536870913]],[\"^3R\",[37,\"^20\",33,536870913]],[\"^3R\",[37,\"^29\",1727187033525,536870913]],[\"^3R\",[37,\"^2O\",\"^3S\",536870913]],[\"^3R\",[37,\"^3C\",\"bNt\",536870913]],[\"^3R\",[37,\"^3G\",33,536870913]],[\"^3R\",[37,\"^38\",33,536870913]],[\"^3R\",[37,\"^2R\",\"In Review\",536870913]],[\"^3R\",[37,\"^3<\",\"closed value\",536870913]],[\"^3R\",[37,\"^1G\",1727187033525,536870913]],[\"^3R\",[37,\"^1A\",\"~u00000002-3550-9421-0000-000000000000\",536870913]],[\"^3R\",[37,\"^7\",\"^Z\",536870913]],[\"^3R\",[37,\"^18\",true,536870913]],[\"^3R\",[37,\"^2J\",33,536870913]],[\"^3R\",[37,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"InReview\"],536870913]],[\"^3R\",[38,\"^20\",33,536870913]],[\"^3R\",[38,\"^29\",1727187033525,536870913]],[\"^3R\",[38,\"^2O\",\"^3S\",536870913]],[\"^3R\",[38,\"^3C\",\"bNu\",536870913]],[\"^3R\",[38,\"^3G\",33,536870913]],[\"^3R\",[38,\"^38\",33,536870913]],[\"^3R\",[38,\"^2R\",\"Done\",536870913]],[\"^3R\",[38,\"^3<\",\"closed value\",536870913]],[\"^3R\",[38,\"^1G\",1727187033525,536870913]],[\"^3R\",[38,\"^1A\",\"~u00000002-1430-0577-4000-000000000000\",536870913]],[\"^3R\",[38,\"^7\",\"^16\",536870913]],[\"^3R\",[38,\"^18\",true,536870913]],[\"^3R\",[38,\"^2J\",33,536870913]],[\"^3R\",[38,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Done\"],536870913]],[\"^3R\",[39,\"^20\",33,536870913]],[\"^3R\",[39,\"^29\",1727187033525,536870913]],[\"^3R\",[39,\"^2O\",\"^3S\",536870913]],[\"^3R\",[39,\"^3C\",\"bNv\",536870913]],[\"^3R\",[39,\"^3G\",33,536870913]],[\"^3R\",[39,\"^38\",33,536870913]],[\"^3R\",[39,\"^2R\",\"Canceled\",536870913]],[\"^3R\",[39,\"^3<\",\"closed value\",536870913]],[\"^3R\",[39,\"^1G\",1727187033525,536870913]],[\"^3R\",[39,\"^1A\",\"~u00000002-1217-7438-9000-000000000000\",536870913]],[\"^3R\",[39,\"^7\",\"^1:\",536870913]],[\"^3R\",[39,\"^18\",true,536870913]],[\"^3R\",[39,\"^2J\",33,536870913]],[\"^3R\",[39,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Cancelled\"],536870913]],[\"^3R\",[40,\"^29\",1727187033525,536870913]],[\"^3R\",[40,\"^2O\",\"^3S\",536870913]],[\"^3R\",[40,\"^3H\",\"priority\",536870913]],[\"^3R\",[40,\"^3C\",\"bNw\",536870913]],[\"^3R\",[40,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true,\"^4:\",\"^4;\"],536870913]],[\"^3R\",[40,\"^2R\",\"Priority\",536870913]],[\"^3R\",[40,\"^3<\",\"property\",536870913]],[\"^3R\",[40,\"^1G\",1727187033525,536870913]],[\"^3R\",[40,\"^1A\",\"~u00000002-1714-7859-9500-000000000000\",536870913]],[\"^3R\",[40,\"^@\",\"^A\",536870913]],[\"^3R\",[40,\"^7\",\"^1@\",536870913]],[\"^3R\",[40,\"^?\",true,536870913]],[\"^3R\",[40,\"^J\",\"^K\",536870913]],[\"^3R\",[40,\"^18\",true,536870913]],[\"^3R\",[41,\"^20\",40,536870913]],[\"^3R\",[41,\"^29\",1727187033525,536870913]],[\"^3R\",[41,\"^2O\",\"^3S\",536870913]],[\"^3R\",[41,\"^3C\",\"bNx\",536870913]],[\"^3R\",[41,\"^3G\",40,536870913]],[\"^3R\",[41,\"^38\",40,536870913]],[\"^3R\",[41,\"^2R\",\"Low\",536870913]],[\"^3R\",[41,\"^3<\",\"closed value\",536870913]],[\"^3R\",[41,\"^1G\",1727187033525,536870913]],[\"^3R\",[41,\"^1A\",\"~u00000002-8891-7452-4000-000000000000\",536870913]],[\"^3R\",[41,\"^7\",\"^U\",536870913]],[\"^3R\",[41,\"^18\",true,536870913]],[\"^3R\",[41,\"^2J\",40,536870913]],[\"^3R\",[41,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlLow\"],536870913]],[\"^3R\",[42,\"^20\",40,536870913]],[\"^3R\",[42,\"^29\",1727187033525,536870913]],[\"^3R\",[42,\"^2O\",\"^3S\",536870913]],[\"^3R\",[42,\"^3C\",\"bNy\",536870913]],[\"^3R\",[42,\"^3G\",40,536870913]],[\"^3R\",[42,\"^38\",40,536870913]],[\"^3R\",[42,\"^2R\",\"Medium\",536870913]],[\"^3R\",[42,\"^3<\",\"closed value\",536870913]],[\"^3R\",[42,\"^1G\",1727187033525,536870913]],[\"^3R\",[42,\"^1A\",\"~u00000002-4650-7295-0000-000000000000\",536870913]],[\"^3R\",[42,\"^7\",\"^1L\",536870913]],[\"^3R\",[42,\"^18\",true,536870913]],[\"^3R\",[42,\"^2J\",40,536870913]],[\"^3R\",[42,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlMedium\"],536870913]],[\"^3R\",[43,\"^20\",40,536870913]],[\"^3R\",[43,\"^29\",1727187033525,536870913]],[\"^3R\",[43,\"^2O\",\"^3S\",536870913]],[\"^3R\",[43,\"^3C\",\"bNz\",536870913]],[\"^3R\",[43,\"^3G\",40,536870913]],[\"^3R\",[43,\"^38\",40,536870913]],[\"^3R\",[43,\"^2R\",\"High\",536870913]],[\"^3R\",[43,\"^3<\",\"closed value\",536870913]],[\"^3R\",[43,\"^1G\",1727187033525,536870913]],[\"^3R\",[43,\"^1A\",\"~u00000002-1281-2351-0000-000000000000\",536870913]],[\"^3R\",[43,\"^7\",\"^W\",536870913]],[\"^3R\",[43,\"^18\",true,536870913]],[\"^3R\",[43,\"^2J\",40,536870913]],[\"^3R\",[43,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlHigh\"],536870913]],[\"^3R\",[44,\"^20\",40,536870913]],[\"^3R\",[44,\"^29\",1727187033525,536870913]],[\"^3R\",[44,\"^2O\",\"^3S\",536870913]],[\"^3R\",[44,\"^3C\",\"bO0\",536870913]],[\"^3R\",[44,\"^3G\",40,536870913]],[\"^3R\",[44,\"^38\",40,536870913]],[\"^3R\",[44,\"^2R\",\"Urgent\",536870913]],[\"^3R\",[44,\"^3<\",\"closed value\",536870913]],[\"^3R\",[44,\"^1G\",1727187033525,536870913]],[\"^3R\",[44,\"^1A\",\"~u00000002-4458-8138-1000-000000000000\",536870913]],[\"^3R\",[44,\"^7\",\"^[\",536870913]],[\"^3R\",[44,\"^18\",true,536870913]],[\"^3R\",[44,\"^2J\",40,536870913]],[\"^3R\",[44,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlUrgent\"],536870913]],[\"^3R\",[45,\"^29\",1727187033525,536870913]],[\"^3R\",[45,\"^2O\",\"^3S\",536870913]],[\"^3R\",[45,\"^3H\",\"deadline\",536870913]],[\"^3R\",[45,\"^3C\",\"bO1\",536870913]],[\"^3R\",[45,\"^2B\",[\"^ \",\"^3T\",\"~:date\",\"^3Y\",true,\"^4:\",\"~:block-below\"],536870913]],[\"^3R\",[45,\"^2R\",\"Deadline\",536870913]],[\"^3R\",[45,\"^3<\",\"property\",536870913]],[\"^3R\",[45,\"^1G\",1727187033525,536870913]],[\"^3R\",[45,\"^1A\",\"~u00000002-2149-5604-4000-000000000000\",536870913]],[\"^3R\",[45,\"^@\",\"^A\",536870913]],[\"^3R\",[45,\"^7\",\"^1[\",536870913]],[\"^3R\",[45,\"^?\",true,536870913]],[\"^3R\",[45,\"^J\",\"^K\",536870913]],[\"^3R\",[45,\"^18\",true,536870913]],[\"^3R\",[46,\"^29\",1727187033526,536870913]],[\"^3R\",[46,\"^2O\",\"^3S\",536870913]],[\"^3R\",[46,\"^3H\",\"icon\",536870913]],[\"^3R\",[46,\"^3C\",\"bO2\",536870913]],[\"^3R\",[46,\"^2B\",[\"^ \",\"^3T\",\"^48\"],536870913]],[\"^3R\",[46,\"^2R\",\"Icon\",536870913]],[\"^3R\",[46,\"^3<\",\"property\",536870913]],[\"^3R\",[46,\"^1G\",1727187033526,536870913]],[\"^3R\",[46,\"^1A\",\"~u00000002-5891-2328-5000-000000000000\",536870913]],[\"^3R\",[46,\"^@\",\"^A\",536870913]],[\"^3R\",[46,\"^7\",\"^25\",536870913]],[\"^3R\",[46,\"^?\",true,536870913]],[\"^3R\",[46,\"^18\",true,536870913]],[\"^3R\",[47,\"^29\",1727187033526,536870913]],[\"^3R\",[47,\"^2O\",\"^3S\",536870913]],[\"^3R\",[47,\"^3H\",\"public\",536870913]],[\"^3R\",[47,\"^3C\",\"bO3\",536870913]],[\"^3R\",[47,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3V\",true,\"^3X\",\"^3W\",\"^3Y\",true],536870913]],[\"^3R\",[47,\"^2R\",\"public\",536870913]],[\"^3R\",[47,\"^3<\",\"property\",536870913]],[\"^3R\",[47,\"^1G\",1727187033526,536870913]],[\"^3R\",[47,\"^1A\",\"~u00000002-1705-3327-6500-000000000000\",536870913]],[\"^3R\",[47,\"^@\",\"^A\",536870913]],[\"^3R\",[47,\"^7\",\"^Q\",536870913]],[\"^3R\",[47,\"^?\",true,536870913]],[\"^3R\",[47,\"^18\",true,536870913]],[\"^3R\",[48,\"^29\",1727187033526,536870913]],[\"^3R\",[48,\"^2O\",\"^3S\",536870913]],[\"^3R\",[48,\"^3H\",\"exclude-from-graph-view\",536870913]],[\"^3R\",[48,\"^3C\",\"bO4\",536870913]],[\"^3R\",[48,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3V\",true,\"^3X\",\"^3W\",\"^3Y\",true],536870913]],[\"^3R\",[48,\"^2R\",\"exclude-from-graph-view\",536870913]],[\"^3R\",[48,\"^3<\",\"property\",536870913]],[\"^3R\",[48,\"^1G\",1727187033526,536870913]],[\"^3R\",[48,\"^1A\",\"~u00000002-4524-3306-5000-000000000000\",536870913]],[\"^3R\",[48,\"^@\",\"^A\",536870913]],[\"^3R\",[48,\"^7\",\"^2@\",536870913]],[\"^3R\",[48,\"^?\",true,536870913]],[\"^3R\",[48,\"^18\",true,536870913]],[\"^3R\",[49,\"^29\",1727187033526,536870913]],[\"^3R\",[49,\"^2O\",\"^3S\",536870913]],[\"^3R\",[49,\"^3H\",\"description\",536870913]],[\"^3R\",[49,\"^3C\",\"bO5\",536870913]],[\"^3R\",[49,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true],536870913]],[\"^3R\",[49,\"^2R\",\"Description\",536870913]],[\"^3R\",[49,\"^3<\",\"property\",536870913]],[\"^3R\",[49,\"^1G\",1727187033526,536870913]],[\"^3R\",[49,\"^1A\",\"~u00000002-3362-3620-0000-000000000000\",536870913]],[\"^3R\",[49,\"^@\",\"^A\",536870913]],[\"^3R\",[49,\"^7\",\"^2E\",536870913]],[\"^3R\",[49,\"^?\",true,536870913]],[\"^3R\",[49,\"^J\",\"^K\",536870913]],[\"^3R\",[49,\"^18\",true,536870913]],[\"^3R\",[50,\"^29\",1727187033526,536870913]],[\"^3R\",[50,\"^2O\",\"^3S\",536870913]],[\"^3R\",[50,\"^3H\",\"view type\",536870913]],[\"^3R\",[50,\"^3C\",\"bO6\",536870913]],[\"^3R\",[50,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",false,\"^3V\",true],536870913]],[\"^3R\",[50,\"^2R\",\"View Type\",536870913]],[\"^3R\",[50,\"^3<\",\"property\",536870913]],[\"^3R\",[50,\"^1G\",1727187033526,536870913]],[\"^3R\",[50,\"^1A\",\"~u00000002-2182-3760-7000-000000000000\",536870913]],[\"^3R\",[50,\"^@\",\"^A\",536870913]],[\"^3R\",[50,\"^7\",\"^1=\",536870913]],[\"^3R\",[50,\"^?\",true,536870913]],[\"^3R\",[50,\"^J\",\"^K\",536870913]],[\"^3R\",[50,\"^18\",true,536870913]],[\"^3R\",[51,\"^20\",50,536870913]],[\"^3R\",[51,\"^29\",1727187033526,536870913]],[\"^3R\",[51,\"^2O\",\"^3S\",536870913]],[\"^3R\",[51,\"^3C\",\"bO7\",536870913]],[\"^3R\",[51,\"^3G\",50,536870913]],[\"^3R\",[51,\"^38\",50,536870913]],[\"^3R\",[51,\"^2R\",\"Table View\",536870913]],[\"^3R\",[51,\"^3<\",\"closed value\",536870913]],[\"^3R\",[51,\"^1G\",1727187033526,536870913]],[\"^3R\",[51,\"^1A\",\"~u00000002-1942-5424-0000-000000000000\",536870913]],[\"^3R\",[51,\"^7\",\"^6\",536870913]],[\"^3R\",[51,\"^18\",true,536870913]],[\"^3R\",[51,\"^2J\",50,536870913]],[\"^3R\",[52,\"^20\",50,536870913]],[\"^3R\",[52,\"^29\",1727187033526,536870913]],[\"^3R\",[52,\"^2O\",\"^3S\",536870913]],[\"^3R\",[52,\"^3C\",\"bO8\",536870913]],[\"^3R\",[52,\"^3G\",50,536870913]],[\"^3R\",[52,\"^38\",50,536870913]],[\"^3R\",[52,\"^2R\",\"List View\",536870913]],[\"^3R\",[52,\"^3<\",\"closed value\",536870913]],[\"^3R\",[52,\"^1G\",1727187033526,536870913]],[\"^3R\",[52,\"^1A\",\"~u00000002-1164-8285-0200-000000000000\",536870913]],[\"^3R\",[52,\"^7\",\"^1M\",536870913]],[\"^3R\",[52,\"^18\",true,536870913]],[\"^3R\",[52,\"^2J\",50,536870913]],[\"^3R\",[53,\"^29\",1727187033526,536870913]],[\"^3R\",[53,\"^2O\",\"^3S\",536870913]],[\"^3R\",[53,\"^3H\",\"sorting\",536870913]],[\"^3R\",[53,\"^3C\",\"bO9\",536870913]],[\"^3R\",[53,\"^2B\",[\"^ \",\"^3T\",\"~:coll\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[53,\"^2R\",\"sorting\",536870913]],[\"^3R\",[53,\"^3<\",\"property\",536870913]],[\"^3R\",[53,\"^1G\",1727187033526,536870913]],[\"^3R\",[53,\"^1A\",\"~u00000002-2081-0259-4000-000000000000\",536870913]],[\"^3R\",[53,\"^@\",\"^A\",536870913]],[\"^3R\",[53,\"^7\",\"^L\",536870913]],[\"^3R\",[53,\"^?\",true,536870913]],[\"^3R\",[53,\"^18\",true,536870913]],[\"^3R\",[54,\"^29\",1727187033526,536870913]],[\"^3R\",[54,\"^2O\",\"^3S\",536870913]],[\"^3R\",[54,\"^3H\",\"filters\",536870913]],[\"^3R\",[54,\"^3C\",\"bOA\",536870913]],[\"^3R\",[54,\"^2B\",[\"^ \",\"^3T\",\"^4@\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[54,\"^2R\",\"filters\",536870913]],[\"^3R\",[54,\"^3<\",\"property\",536870913]],[\"^3R\",[54,\"^1G\",1727187033526,536870913]],[\"^3R\",[54,\"^1A\",\"~u00000002-1702-3936-3300-000000000000\",536870913]],[\"^3R\",[54,\"^@\",\"^A\",536870913]],[\"^3R\",[54,\"^7\",\"^2Y\",536870913]],[\"^3R\",[54,\"^?\",true,536870913]],[\"^3R\",[54,\"^18\",true,536870913]],[\"^3R\",[55,\"^29\",1727187033526,536870913]],[\"^3R\",[55,\"^2O\",\"^3S\",536870913]],[\"^3R\",[55,\"^3H\",\"hidden-columns\",536870913]],[\"^3R\",[55,\"^3C\",\"bOB\",536870913]],[\"^3R\",[55,\"^2B\",[\"^ \",\"^3T\",\"^46\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[55,\"^2R\",\"hidden-columns\",536870913]],[\"^3R\",[55,\"^3<\",\"property\",536870913]],[\"^3R\",[55,\"^1G\",1727187033526,536870913]],[\"^3R\",[55,\"^1A\",\"~u00000002-9750-5719-2000-000000000000\",536870913]],[\"^3R\",[55,\"^@\",\"^13\",536870913]],[\"^3R\",[55,\"^7\",\"^1D\",536870913]],[\"^3R\",[55,\"^?\",true,536870913]],[\"^3R\",[55,\"^18\",true,536870913]],[\"^3R\",[56,\"^29\",1727187033526,536870913]],[\"^3R\",[56,\"^2O\",\"^3S\",536870913]],[\"^3R\",[56,\"^3H\",\"ordered-columns\",536870913]],[\"^3R\",[56,\"^3C\",\"bOC\",536870913]],[\"^3R\",[56,\"^2B\",[\"^ \",\"^3T\",\"^4@\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[56,\"^2R\",\"ordered-columns\",536870913]],[\"^3R\",[56,\"^3<\",\"property\",536870913]],[\"^3R\",[56,\"^1G\",1727187033526,536870913]],[\"^3R\",[56,\"^1A\",\"~u00000002-1485-5871-0000-000000000000\",536870913]],[\"^3R\",[56,\"^@\",\"^A\",536870913]],[\"^3R\",[56,\"^7\",\"^35\",536870913]],[\"^3R\",[56,\"^?\",true,536870913]],[\"^3R\",[56,\"^18\",true,536870913]],[\"^3R\",[57,\"^29\",1727187033526,536870913]],[\"^3R\",[57,\"^2O\",\"^3S\",536870913]],[\"^3R\",[57,\"^3H\",\"sized-columns\",536870913]],[\"^3R\",[57,\"^3C\",\"bOD\",536870913]],[\"^3R\",[57,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[57,\"^2R\",\"sized-columns\",536870913]],[\"^3R\",[57,\"^3<\",\"property\",536870913]],[\"^3R\",[57,\"^1G\",1727187033526,536870913]],[\"^3R\",[57,\"^1A\",\"~u00000002-1675-5105-5500-000000000000\",536870913]],[\"^3R\",[57,\"^@\",\"^A\",536870913]],[\"^3R\",[57,\"^7\",\"^11\",536870913]],[\"^3R\",[57,\"^?\",true,536870913]],[\"^3R\",[57,\"^18\",true,536870913]],[\"^3R\",[58,\"^29\",1727187033526,536870913]],[\"^3R\",[58,\"^2O\",\"^3S\",536870913]],[\"^3R\",[58,\"^3H\",\"view-for\",536870913]],[\"^3R\",[58,\"^3C\",\"bOE\",536870913]],[\"^3R\",[58,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[58,\"^2R\",\"view-for\",536870913]],[\"^3R\",[58,\"^3<\",\"property\",536870913]],[\"^3R\",[58,\"^1G\",1727187033526,536870913]],[\"^3R\",[58,\"^1A\",\"~u00000002-3627-4319-0000-000000000000\",536870913]],[\"^3R\",[58,\"^@\",\"^A\",536870913]],[\"^3R\",[58,\"^7\",\"^2H\",536870913]],[\"^3R\",[58,\"^?\",true,536870913]],[\"^3R\",[58,\"^J\",\"^K\",536870913]],[\"^3R\",[58,\"^18\",true,536870913]],[\"^3R\",[59,\"^29\",1727187033526,536870913]],[\"^3R\",[59,\"^2O\",\"^3S\",536870913]],[\"^3R\",[59,\"^3H\",\"remote-metadata\",536870913]],[\"^3R\",[59,\"^3C\",\"bOF\",536870913]],[\"^3R\",[59,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[59,\"^2R\",\"remote-metadata\",536870913]],[\"^3R\",[59,\"^3<\",\"property\",536870913]],[\"^3R\",[59,\"^1G\",1727187033526,536870913]],[\"^3R\",[59,\"^1A\",\"~u00000002-9907-5046-9000-000000000000\",536870913]],[\"^3R\",[59,\"^@\",\"^A\",536870913]],[\"^3R\",[59,\"^7\",\"^3B\",536870913]],[\"^3R\",[59,\"^?\",true,536870913]],[\"^3R\",[59,\"^18\",true,536870913]],[\"^3R\",[60,\"^29\",1727187033526,536870913]],[\"^3R\",[60,\"^2O\",\"^3S\",536870913]],[\"^3R\",[60,\"^3H\",\"due\",536870913]],[\"^3R\",[60,\"^3C\",\"bOG\",536870913]],[\"^3R\",[60,\"^2B\",[\"^ \",\"^3T\",\"~:datetime\",\"^3V\",false,\"^3Y\",false],536870913]],[\"^3R\",[60,\"^2R\",\"Due\",536870913]],[\"^3R\",[60,\"^3<\",\"property\",536870913]],[\"^3R\",[60,\"^1G\",1727187033526,536870913]],[\"^3R\",[60,\"^1A\",\"~u00000002-1089-0805-4900-000000000000\",536870913]],[\"^3R\",[60,\"^@\",\"^A\",536870913]],[\"^3R\",[60,\"^7\",\"^3D\",536870913]],[\"^3R\",[60,\"^?\",true,536870913]],[\"^3R\",[60,\"^18\",true,536870913]],[\"^3R\",[61,\"^29\",1727187033526,536870913]],[\"^3R\",[61,\"^2O\",\"^3S\",536870913]],[\"^3R\",[61,\"^3H\",\"state\",536870913]],[\"^3R\",[61,\"^3C\",\"bOH\",536870913]],[\"^3R\",[61,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",false,\"^3Y\",false],536870913]],[\"^3R\",[61,\"^2R\",\"State\",536870913]],[\"^3R\",[61,\"^3<\",\"property\",536870913]],[\"^3R\",[61,\"^1G\",1727187033526,536870913]],[\"^3R\",[61,\"^1A\",\"~u00000002-1165-1650-8700-000000000000\",536870913]],[\"^3R\",[61,\"^@\",\"^A\",536870913]],[\"^3R\",[61,\"^7\",\"^>\",536870913]],[\"^3R\",[61,\"^?\",true,536870913]],[\"^3R\",[61,\"^18\",true,536870913]],[\"^3R\",[62,\"^29\",1727187033526,536870913]],[\"^3R\",[62,\"^2O\",\"^3S\",536870913]],[\"^3R\",[62,\"^3H\",\"task\",536870913]],[\"^3R\",[62,\"^2R\",\"Task\",536870913]],[\"^3R\",[62,\"^3<\",\"class\",536870913]],[\"^3R\",[62,\"^1G\",1727187033526,536870913]],[\"^3R\",[62,\"^1A\",\"~u00000002-1282-1814-5700-000000000000\",536870913]],[\"^3R\",[62,\"^7\",\"^2:\",536870913]],[\"^3R\",[62,\"^18\",true,536870913]],[\"^3R\",[62,\"^1J\",6,536870913]],[\"^3R\",[62,\"^1O\",33,536870913]],[\"^3R\",[62,\"^1O\",40,536870913]],[\"^3R\",[62,\"^1O\",45,536870913]],[\"^3R\",[63,\"^29\",1727187033527,536870913]],[\"^3R\",[63,\"^2O\",\"^3S\",536870913]],[\"^3R\",[63,\"^3H\",\"journal\",536870913]],[\"^3R\",[63,\"^2R\",\"Journal\",536870913]],[\"^3R\",[63,\"^3<\",\"class\",536870913]],[\"^3R\",[63,\"^1G\",1727187033527,536870913]],[\"^3R\",[63,\"^1A\",\"~u00000002-1979-7410-8100-000000000000\",536870913]],[\"^3R\",[63,\"^7\",\"^3=\",536870913]],[\"^3R\",[63,\"^18\",true,536870913]],[\"^3R\",[63,\"^1J\",6,536870913]],[\"^3R\",[63,\"^3\",\"MMM do, yyyy\",536870913]],[\"^3R\",[64,\"^29\",1727187033527,536870913]],[\"^3R\",[64,\"^2O\",\"^3S\",536870913]],[\"^3R\",[64,\"^3H\",\"query\",536870913]],[\"^3R\",[64,\"^2R\",\"Query\",536870913]],[\"^3R\",[64,\"^3<\",\"class\",536870913]],[\"^3R\",[64,\"^1G\",1727187033527,536870913]],[\"^3R\",[64,\"^1A\",\"~u00000002-2324-8016-6000-000000000000\",536870913]],[\"^3R\",[64,\"^7\",\"^5\",536870913]],[\"^3R\",[64,\"^18\",true,536870913]],[\"^3R\",[64,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[64,\"^1J\",6,536870913]],[\"^3R\",[64,\"^1O\",13,536870913]],[\"^3R\",[65,\"^29\",1727187033527,536870913]],[\"^3R\",[65,\"^2O\",\"^3S\",536870913]],[\"^3R\",[65,\"^3H\",\"advanced query\",536870913]],[\"^3R\",[65,\"^2R\",\"Advanced query\",536870913]],[\"^3R\",[65,\"^3<\",\"class\",536870913]],[\"^3R\",[65,\"^1G\",1727187033527,536870913]],[\"^3R\",[65,\"^1A\",\"~u00000002-1141-5857-5800-000000000000\",536870913]],[\"^3R\",[65,\"^7\",\"^=\",536870913]],[\"^3R\",[65,\"^18\",true,536870913]],[\"^3R\",[65,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[65,\"^1J\",64,536870913]],[\"^3R\",[66,\"^29\",1727187033527,536870913]],[\"^3R\",[66,\"^2O\",\"^3S\",536870913]],[\"^3R\",[66,\"^3H\",\"card\",536870913]],[\"^3R\",[66,\"^2R\",\"Card\",536870913]],[\"^3R\",[66,\"^3<\",\"class\",536870913]],[\"^3R\",[66,\"^1G\",1727187033527,536870913]],[\"^3R\",[66,\"^1A\",\"~u00000002-1358-2811-0900-000000000000\",536870913]],[\"^3R\",[66,\"^7\",\"^H\",536870913]],[\"^3R\",[66,\"^18\",true,536870913]],[\"^3R\",[66,\"^1J\",6,536870913]],[\"^3R\",[66,\"^1O\",60,536870913]],[\"^3R\",[66,\"^1O\",61,536870913]],[\"^3R\",[67,\"^29\",1727187033527,536870913]],[\"^3R\",[67,\"^2O\",\"^3S\",536870913]],[\"^3R\",[67,\"^3H\",\"cards\",536870913]],[\"^3R\",[67,\"^2R\",\"Cards\",536870913]],[\"^3R\",[67,\"^3<\",\"class\",536870913]],[\"^3R\",[67,\"^1G\",1727187033527,536870913]],[\"^3R\",[67,\"^1A\",\"~u00000002-1284-2651-6700-000000000000\",536870913]],[\"^3R\",[67,\"^7\",\"^P\",536870913]],[\"^3R\",[67,\"^18\",true,536870913]],[\"^3R\",[67,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[67,\"^1J\",64,536870913]],[\"^3R\",[68,\"^1A\",\"~u66f2c859-0e01-4f36-81c2-db5c0eb86adf\",536870913]],[\"^3R\",[68,\"^V\",\"{:meta/version 1\\n\\n ;; Set the preferred format.\\n ;; This is _only_ for file graphs.\\n ;; Available options:\\n ;; - Markdown (default)\\n ;; - Org\\n ;; :preferred-format \\\"Markdown\\\"\\n\\n ;; Set the preferred workflow style.\\n ;; This is _only_ for file graphs.\\n ;; Available options:\\n ;; - :now for NOW/LATER style (default)\\n ;; - :todo for TODO/DOING style\\n ;; Exclude directories/files.\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :hidden [\\\"/archived\\\" \\\"/test.md\\\" \\\"../assets/archived\\\"]\\n ;; Define the default journal page template.\\n ;; Enter the template name between the quotes.\\n :default-templates\\n {:journals \\\"\\\"}\\n\\n ;; Set a custom date format for the journal page title.\\n ;; This is _only_ for file graphs.\\n ;; Default value: \\\"MMM do, yyyy\\\"\\n ;; e.g., \\\"Jan 19th, 2038\\\"\\n ;; Example usage e.g., \\\"Tue 19th, Jan 2038\\\"\\n ;; :journal/page-title-format \\\"EEE do, MMM yyyy\\\"\\n\\n ;; Specify the journal filename format using a valid date format string.\\n ;; !Warning:\\n ;; This configuration is not retroactive and affects only new journals.\\n ;; To show old journal files in the app, manually rename the files in the\\n ;; journal directory to match the new format.\\n ;; Default value: \\\"yyyy_MM_dd\\\"\\n ;; :journal/file-name-format \\\"yyyy_MM_dd\\\"\\n\\n ;; Enable tooltip preview on hover.\\n ;; Default value: true\\n :ui/enable-tooltip? true\\n\\n ;; Display brackets [[]] around page references.\\n ;; Default value: true\\n ;; :ui/show-brackets? true\\n\\n ;; Display all lines of a block when referencing ((block)).\\n ;; Default value: false\\n :ui/show-full-blocks? false\\n\\n ;; Automatically expand block references when zooming in.\\n ;; Default value: true\\n :ui/auto-expand-block-refs? true\\n\\n ;; Hide empty block properties\\n ;; This is _only_ for DB graphs.\\n ;; Default value: false\\n ;; :ui/hide-empty-properties? false\\n\\n ;; Disable accent marks when searching.\\n ;; After changing this setting, rebuild the search index by pressing (^C ^S).\\n ;; Default value: true\\n :feature/enable-search-remove-accents? true\\n\\n ;; Enable journals.\\n ;; Default value: true\\n ;; :feature/enable-journals? true\\n\\n ;; Enable flashcards.\\n ;; Default value: true\\n ;; :feature/enable-flashcards? true\\n\\n ;; Enable whiteboards.\\n ;; Default value: true\\n ;; :feature/enable-whiteboards? true\\n\\n ;; Disable the journal's built-in 'Scheduled tasks and deadlines' query.\\n ;; Default value: false\\n ;; :feature/disable-scheduled-and-deadline-query? false\\n\\n ;; Specify the number of days displayed in the future for\\n ;; the 'scheduled tasks and deadlines' query.\\n ;; Example usage:\\n ;; Display all scheduled and deadline blocks for the next 14 days:\\n ;; :scheduled/future-days 14\\n ;; Default value: 7\\n ;; :scheduled/future-days 7\\n\\n ;; Specify the first day of the week.\\n ;; Available options:\\n ;; - integer from 0 to 6 (Monday to Sunday)\\n ;; Default value: 6 (Sunday)\\n :start-of-week 6\\n\\n ;; Specify a custom CSS import.\\n ;; This option takes precedence over the local `logseq/custom.css` file.\\n ;; Example usage:\\n ;; :custom-css-url \\\"@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');\\\"\\n\\n ;; Specify a custom JS import.\\n ;; This option takes precedence over the local `logseq/custom.js` file.\\n ;; Example usage:\\n ;; :custom-js-url \\\"https://cdn.logseq.com/custom.js\\\"\\n\\n ;; Set bullet indentation when exporting\\n ;; Available options:\\n ;; - `:eight-spaces` as eight spaces\\n ;; - `:four-spaces` as four spaces\\n ;; - `:two-spaces` as two spaces\\n ;; - `:tab` as a tab character (default)\\n ;; :export/bullet-indentation :tab\\n\\n ;; Publish all pages within the Graph\\n ;; Regardless of whether individual pages have been marked as public.\\n ;; Default value: false\\n ;; :publishing/all-pages-public? false\\n\\n ;; Define the default home page and sidebar status.\\n ;; If unspecified, the journal page will be loaded on startup and the right sidebar will stay hidden.\\n ;; The `:page` value represents the name of the page displayed at startup.\\n ;; Available options for `:sidebar` are:\\n ;; - \\\"Contents\\\" to display the Contents page in the right sidebar.\\n ;; - A specific page name to display in the right sidebar.\\n ;; - An array of multiple pages, e.g., [\\\"Contents\\\" \\\"Page A\\\" \\\"Page B\\\"].\\n ;; If `:sidebar` remains unset, the right sidebar will stay hidden.\\n ;; Examples:\\n ;; 1. Set \\\"Changelog\\\" as the home page and display \\\"Contents\\\" in the right sidebar:\\n ;; :default-home {:page \\\"Changelog\\\", :sidebar \\\"Contents\\\"}\\n ;; 2. Set \\\"Jun 3rd, 2021\\\" as the home page without the right sidebar:\\n ;; :default-home {:page \\\"Jun 3rd, 2021\\\"}\\n ;; 3. Set \\\"home\\\" as the home page and display multiple pages in the right sidebar:\\n ;; :default-home {:page \\\"home\\\", :sidebar [\\\"Page A\\\" \\\"Page B\\\"]}\\n\\n ;; Set the default location for storing notes.\\n ;; Default value: \\\"pages\\\"\\n ;; :pages-directory \\\"pages\\\"\\n\\n ;; Set the default location for storing journals.\\n ;; Default value: \\\"journals\\\"\\n ;; :journals-directory \\\"journals\\\"\\n\\n ;; Set the default location for storing whiteboards.\\n ;; Default value: \\\"whiteboards\\\"\\n ;; :whiteboards-directory \\\"whiteboards\\\"\\n\\n ;; Enabling this option converts\\n ;; This is _only_ for file graphs.\\n ;; [[Grant Ideas]] to [[file:./grant_ideas.org][Grant Ideas]] for org-mode.\\n ;; For more information, visit https://github.com/logseq/logseq/issues/672\\n ;; :org-mode/insert-file-link? false\\n\\n ;; Configure custom shortcuts.\\n ;; Syntax:\\n ;; 1. + indicates simultaneous key presses, e.g., `Ctrl+Shift+a`.\\n ;; 2. A space between keys represents key chords, e.g., `t s` means\\n ;; pressing `t` followed by `s`.\\n ;; 3. mod refers to `Ctrl` for Windows/Linux and `Command` for Mac.\\n ;; 4. Use false to disable a specific shortcut.\\n ;; 5. You can define multiple bindings for a single action, e.g., [\\\"ctrl+j\\\" \\\"down\\\"].\\n ;; The full list of configurable shortcuts is available at:\\n ;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs\\n ;; Example:\\n ;; :shortcuts\\n ;; {:editor/new-block \\\"enter\\\"\\n ;; :editor/new-line \\\"shift+enter\\\"\\n ;; :editor/insert-link \\\"mod+shift+k\\\"\\n ;; :editor/highlight false\\n ;; :ui/toggle-settings \\\"t s\\\"\\n ;; :editor/up [\\\"ctrl+k\\\" \\\"up\\\"]\\n ;; :editor/down [\\\"ctrl+j\\\" \\\"down\\\"]\\n ;; :editor/left [\\\"ctrl+h\\\" \\\"left\\\"]\\n ;; :editor/right [\\\"ctrl+l\\\" \\\"right\\\"]}\\n :shortcuts {}\\n\\n ;; Configure the behavior of pressing Enter in document mode.\\n ;; if set to true, pressing Enter will create a new block.\\n ;; Default value: false\\n :shortcut/doc-mode-enter-for-new-block? false\\n\\n ;; Block content larger than `block/title-max-length` will not be searchable\\n ;; or editable for performance.\\n ;; Default value: 10000\\n :block/title-max-length 10000\\n\\n ;; Display command documentation on hover.\\n ;; Default value: true\\n :ui/show-command-doc? true\\n\\n ;; Display empty bullet points.\\n ;; Default value: false\\n :ui/show-empty-bullets? false\\n\\n ;; Pre-defined :view function to use with advanced queries.\\n :query/views\\n {:pprint\\n (fn [r] [:pre.code (pprint r)])}\\n\\n ;; Advanced queries `:result-transform` function.\\n ;; Transform the query result before displaying it.\\n ;; Example usage for DB graphs:\\n;; :query/result-transforms\\n;; {:sort-by-priority\\n;; (fn [result] (sort-by (fn [h] (get h :logseq.property/priority \\\"Z\\\")) result))}\\n\\n;; Queries will be displayed at the bottom of today's journal page.\\n;; Example usage:\\n;; :default-queries\\n;; {:journals []}\\n\\n ;; Add custom commands to the command palette\\n ;; Example usage:\\n ;; :commands\\n ;; [\\n ;; [\\\"js\\\" \\\"Javascript\\\"]\\n ;; [\\\"md\\\" \\\"Markdown\\\"]\\n ;; ]\\n :commands []\\n\\n ;; Enable collapsing blocks with titles but no children.\\n ;; By default, only blocks with children can be collapsed.\\n ;; Setting `:outliner/block-title-collapse-enabled?` to true allows collapsing\\n ;; blocks with titles (multiple lines) and content. For example:\\n ;; - block title\\n ;; block content\\n ;; Default value: false\\n :outliner/block-title-collapse-enabled? false\\n\\n ;; Macros replace texts and will make you more productive.\\n ;; Example usage:\\n ;; Change the :macros value below to:\\n ;; {\\\"poem\\\" \\\"Rose is $1, violet's $2. Life's ordered: Org assists you.\\\"}\\n ;; input \\\"{{poem red,blue}}\\\"\\n ;; becomes\\n ;; Rose is red, violet's blue. Life's ordered: Org assists you.\\n :macros {}\\n\\n ;; Configure the default expansion level for linked references.\\n ;; For example, consider the following block hierarchy:\\n ;; - a [[page]] (level 1)\\n ;; - b (level 2)\\n ;; - c (level 3)\\n ;; - d (level 4)\\n ;;\\n ;; With the default value of level 2, block b will be collapsed.\\n ;; If the level's value is set to 3, block c will be collapsed.\\n ;; Default value: 2\\n :ref/default-open-blocks-level 2\\n\\n ;; Configure the threshold for linked references before collapsing.\\n ;; Default value: 100\\n :ref/linked-references-collapsed-threshold 50\\n\\n ;; Graph view configuration.\\n ;; Example usage:\\n ;; :graph/settings\\n ;; {:orphan-pages? true ; Default value: true\\n ;; :builtin-pages? false ; Default value: false\\n ;; :excluded-pages? false ; Default value: false\\n ;; :journal? false} ; Default value: false\\n\\n ;; Graph view configuration.\\n ;; Example usage:\\n ;; :graph/forcesettings\\n ;; {:link-dist 180 ; Default value: 180\\n ;; :charge-strength -600 ; Default value: -600\\n ;; :charge-range 600} ; Default value: 600\\n\\n\\n ;; Favorites to list on the left sidebar\\n ;; This is _only_ for file graphs.\\n ;; Set flashcards interval.\\n ;; Expected value:\\n ;; - Float between 0 and 1\\n ;; higher values result in faster changes to the next review interval.\\n ;; Default value: 0.5\\n ;; :srs/learning-fraction 0.5\\n\\n ;; Set the initial interval after the first successful review of a card.\\n ;; Default value: 4\\n ;; :srs/initial-interval 4\\n\\n ;; Hide specific block properties.\\n ;; Example usage:\\n ;; :block-hidden-properties #{:public :icon}\\n\\n ;; Create a page for all properties.\\n ;; This is _only_ for file graphs.\\n ;; Default value: true\\n;; Properties to exclude from having property pages\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :property-pages/excludelist #{:duration :author}\\n\\n ;; By default, property value separated by commas will not be treated as\\n ;; page references. You can add properties to enable it.\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :property/separated-by-commas #{:alias :tags}\\n\\n ;; Properties that are ignored when parsing property values for references\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :ignored-page-references-keywords #{:author :website}\\n\\n ;; logbook configuration.\\n ;; :logbook/settings\\n ;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated\\n ;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking\\n ;; :enabled-in-timestamped-blocks false ;don't display logbook at all\\n ;; }\\n\\n ;; Mobile photo upload configuration.\\n ;; :mobile/photo\\n ;; {:allow-editing? true\\n ;; :quality 80}\\n\\n ;; Mobile features options\\n ;; Gestures\\n ;; Example usage:\\n ;; :mobile\\n ;; {:gestures/disabled-in-block-with-tags [\\\"kanban\\\"]}\\n\\n ;; Extra CodeMirror options\\n ;; See https://codemirror.net/5/doc/manual.html#config for possible options\\n ;; Example usage:\\n ;; :editor/extra-codemirror-options\\n ;; {:lineWrapping false ; Default value: false\\n ;; :lineNumbers true ; Default value: true\\n ;; :readOnly false} ; Default value: false\\n\\n ;; Enable logical outdenting\\n ;; Default value: false\\n ;; :editor/logical-outdenting? false\\n\\n ;; Prefer pasting the file when text and a file are in the clipboard.\\n ;; Default value: false\\n ;; :editor/preferred-pasting-file? false\\n\\n ;; Quick capture templates for receiving content from other apps.\\n ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded\\n ;; by receiving content from other apps. Note: the {} cannot be omitted.\\n ;; - {time}: capture time\\n ;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference\\n ;; - {text}: text that users selected before sharing.\\n ;; - {url}: URL or assets path for media files stored in Logseq.\\n ;; You can also reorder them or use only one or two of them in the template.\\n ;; You can also insert or format any text in the template, as shown in the following examples.\\n ;; :quick-capture-templates\\n ;; {:text \\\"[[quick capture]] **{time}**: {text} from {url}\\\"\\n ;; :media \\\"[[quick capture]] **{time}**: {url}\\\"}\\n\\n ;; Quick capture options.\\n ;; - insert-today? Insert the capture at the end of today's journal page (boolean).\\n ;; - redirect-page? Redirect to the quick capture page after capturing (boolean).\\n ;; - default-page The default page to capture to if insert-today? is false (string).\\n ;; :quick-capture-options\\n ;; {:insert-today? false ;; Default value: true\\n ;; :redirect-page? false ;; Default value: false\\n ;; :default-page \\\"quick capture\\\"} ;; Default page: \\\"quick capture\\\"\\n\\n ;; File sync options\\n ;; Ignore these files when syncing, regexp is supported.\\n ;; :file-sync/ignore-files []\\n\\n ;; Configure the Enter key behavior for\\n ;; context-aware editing with DWIM (Do What I Mean).\\n ;; context-aware Enter key behavior implies that pressing Enter will\\n ;; have different outcomes based on the context.\\n ;; For instance, pressing Enter within a list generates a new list item,\\n ;; whereas pressing Enter in a block reference opens the referenced block.\\n ;; :dwim/settings\\n ;; {:admonition&src? true ;; Default value: true\\n ;; :markup? false ;; Default value: false\\n ;; :block-ref? true ;; Default value: true\\n ;; :page-ref? true ;; Default value: true\\n ;; :properties? true ;; Default value: true\\n ;; :list? false} ;; Default value: false\\n\\n ;; Configure the escaping method for special characters in page titles.\\n ;; This is _only_ for file graphs.\\n ;; Warning:\\n ;; This is a dangerous operation. To modify the setting,\\n ;; you'll need to manually rename all affected files and\\n ;; re-index them on all clients after synchronization.\\n ;; Incorrect handling may result in messy page titles.\\n ;; Available options:\\n ;; - :triple-lowbar (default)\\n ;; ;use triple underscore `___` for slash `/` in page title\\n ;; ;use Percent-encoding for other invalid characters\\n}\\n\",536870913]],[\"^3R\",[68,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[68,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[68,\"^3I\",\"logseq/config.edn\",536870913]],[\"^3R\",[69,\"^1A\",\"~u66f2c859-fb71-49ad-b56f-b177b647ed89\",536870913]],[\"^3R\",[69,\"^V\",\"\",536870913]],[\"^3R\",[69,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[69,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[69,\"^3I\",\"logseq/custom.css\",536870913]],[\"^3R\",[70,\"^1A\",\"~u66f2c859-a95c-4b95-96dc-339b7181e86e\",536870913]],[\"^3R\",[70,\"^V\",\"\",536870913]],[\"^3R\",[70,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[70,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[70,\"^3I\",\"logseq/custom.js\",536870913]],[\"^3R\",[71,\"^29\",1727187033527,536870913]],[\"^3R\",[71,\"^2O\",\"^3S\",536870913]],[\"^3R\",[71,\"^3H\",\"contents\",536870913]],[\"^3R\",[71,\"^2R\",\"Contents\",536870913]],[\"^3R\",[71,\"^3<\",\"page\",536870913]],[\"^3R\",[71,\"^1G\",1727187033527,536870913]],[\"^3R\",[71,\"^1A\",\"~u66f2c859-d18d-433a-bd24-ab24995cfae1\",536870913]],[\"^3R\",[71,\"^18\",true,536870913]],[\"^3R\",[72,\"^29\",1727187033588,536870914]],[\"^3R\",[72,\"^2O\",\"^3S\",536870914]],[\"^3R\",[72,\"^3H\",\"$$$views\",536870914]],[\"^3R\",[72,\"^2R\",\"$$$views\",536870914]],[\"^3R\",[72,\"^3<\",\"hidden\",536870914]],[\"^3R\",[72,\"^1G\",1727187033588,536870914]],[\"^3R\",[72,\"^1A\",\"~u66f2c859-f1f7-40da-8854-604ef354f7ff\",536870914]],[\"^3R\",[73,\"^29\",1727187033588,536870914]],[\"^3R\",[73,\"^2O\",\"^3S\",536870914]],[\"^3R\",[73,\"^3C\",\"bOI\",536870914]],[\"^3R\",[73,\"^3G\",72,536870914]],[\"^3R\",[73,\"^38\",72,536870914]],[\"^3R\",[73,\"^2R\",\"All Pages Default View\",536870914]],[\"^3R\",[73,\"^1G\",1727187033588,536870914]],[\"^3R\",[73,\"^1A\",\"~u66f2c859-9076-4a30-a788-533c01d02f85\",536870914]],[\"^3R\",[73,\"^18\",true,536870914]],[\"^3R\",[73,\"^2H\",72,536870914]],[\"^3R\",[74,\"^29\",1727187033721,536870915]],[\"^3R\",[74,\"^2O\",\"^3S\",536870915]],[\"^3R\",[74,\"^2L\",20240924,536870915]],[\"^3R\",[74,\"^3H\",\"sep 24th, 2024\",536870915]],[\"^3R\",[74,\"^37\",9,536870918]],[\"^3R\",[74,\"^37\",63,536870918]],[\"^3R\",[74,\"^1R\",9,536870917]],[\"^3R\",[74,\"^1R\",63,536870917]],[\"^3R\",[74,\"^1E\",63,536870915]],[\"^3R\",[74,\"^2R\",\"Sep 24th, 2024\",536870915]],[\"^3R\",[74,\"^C\",536870917,536870918]],[\"^3R\",[74,\"^3<\",\"journal\",536870915]],[\"^3R\",[74,\"^1G\",1727187033721,536870915]],[\"^3R\",[74,\"^1A\",\"~u00000001-2024-0924-0000-000000000000\",536870915]],[\"^3R\",[75,\"^29\",1727187033722,536870915]],[\"^3R\",[75,\"^2O\",\"^3S\",536870915]],[\"^3R\",[75,\"^3C\",\"a0\",536870915]],[\"^3R\",[75,\"^3G\",74,536870915]],[\"^3R\",[75,\"^38\",74,536870915]],[\"^3R\",[75,\"^37\",74,536870918]],[\"^3R\",[75,\"^2R\",\"\",536870915]],[\"^3R\",[75,\"^C\",536870917,536870918]],[\"^3R\",[75,\"^1G\",1727187033722,536870915]],[\"^3R\",[75,\"^1A\",\"~u66f2c859-8d26-4147-b6dc-a7f93fbd3989\",536870915]]]]]]") + "[\"~#datascript/DB\",[\"^ \",\"~:schema\",[\"^ \",\"~i32\",\"~:logseq.property.journal/title-format\",\"~i64\",\"~:logseq.class/Query\",\"~:logseq.property.view/type.table\",[\"^ \",\"~:db/ident\",\"^6\"],\"~:file/created-at\",[\"^ \"],\"~i1\",\"~:logseq.kv/db-type\",\"~i33\",\"~:logseq.property/status\",\"~i65\",\"~:logseq.class/Advanced-Query\",\"~:logseq.property.fsrs/state\",[\"^ \",\"~:db/index\",true,\"~:db/cardinality\",\"~:db.cardinality/one\",\"^7\",\"^>\"],\"~:logseq.kv/graph-initial-schema-version\",[\"^ \",\"^7\",\"^B\"],\"~:block/tx-id\",[\"^ \"],\"~i2\",\"~:logseq.kv/schema-version\",\"~i34\",\"~:logseq.property/status.backlog\",\"~i66\",\"~:logseq.class/Card\",\"~:logseq.property.pdf/file-path\",[\"^ \",\"^?\",true,\"~:db/valueType\",\"~:db.type/ref\",\"^@\",\"^A\",\"^7\",\"^I\"],\"~:logseq.property.table/sorting\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^L\"],\"~i3\",\"^B\",\"~i35\",\"~:logseq.property/status.todo\",\"~i67\",\"~:logseq.class/Cards\",\"~:logseq.property/public\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^Q\"],\"~i4\",\"~:logseq.kv/graph-created-at\",\"~i36\",\"~:logseq.property/status.doing\",\"~:logseq.property/priority.low\",[\"^ \",\"^7\",\"^U\"],\"~:file/content\",[\"^ \"],\"~:logseq.property/priority.high\",[\"^ \",\"^7\",\"^W\"],\"~i5\",\"~:logseq.property/empty-placeholder\",\"~i37\",\"~:logseq.property/status.in-review\",\"~:logseq.property/priority.urgent\",[\"^ \",\"^7\",\"^[\"],\"~:logseq.property/hl-color\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^10\"],\"~:logseq.property.table/sized-columns\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^11\"],\"~:block/alias\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"~:db.cardinality/many\",\"^7\",\"^12\"],\"~i6\",\"~:logseq.class/Root\",\"~i38\",\"~:logseq.property/status.done\",\"~:kv/value\",[\"^ \"],\"~i7\",\"~:logseq.property/built-in?\",\"~i39\",\"~:logseq.property/status.canceled\",\"~:logseq.property.linked-references/includes\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1;\"],\"~:block/link\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~:logseq.property.view/type\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1=\"],\"~:logseq.property/heading\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1>\"],\"~i8\",\"^12\",\"~i40\",\"~:logseq.property/priority\",\"~:block/uuid\",[\"^ \",\"~:db/unique\",\"~:db.unique/identity\"],\"~:logseq.property.table/hidden-columns\",[\"^ \",\"^?\",true,\"^@\",\"^13\",\"^7\",\"^1D\"],\"~i9\",\"~:block/tags\",\"~i41\",\"^U\",\"~:block/updated-at\",[\"^ \",\"^?\",true],\"~:asset/uuid\",[\"^ \",\"^1B\",\"^1C\"],\"~i10\",\"~:logseq.property.class/extends\",\"~i42\",\"~:logseq.property/priority.medium\",\"~:logseq.property.view/type.list\",[\"^ \",\"^7\",\"^1M\"],\"^1L\",[\"^ \",\"^7\",\"^1L\"],\"~i11\",\"~:logseq.property.class/properties\",\"~:file/size\",[\"^ \"],\"~i43\",\"^W\",\"~:block/refs\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^H\",[\"^ \",\"^7\",\"^H\"],\"^1@\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1@\"],\"~i12\",\"~:logseq.property.class/hide-from-node\",\"~i44\",\"^[\",\"^T\",[\"^ \",\"^7\",\"^T\"],\"^D\",[\"^ \",\"^7\",\"^D\"],\"~:logseq.property.pdf/hl-page\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1V\"],\"~:logseq.property/hl-type\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1W\"],\"~i13\",\"~:logseq.property/query\",\"~i45\",\"~:logseq.property/deadline\",\"~:block/closed-value-property\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^Z\",[\"^ \",\"^7\",\"^Z\"],\"~i14\",\"~:logseq.property/page-tags\",\"~:file/last-modified-at\",[\"^ \"],\"~i46\",\"~:logseq.property/icon\",\"^16\",[\"^ \",\"^7\",\"^16\"],\"^1O\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1O\"],\"^1:\",[\"^ \",\"^7\",\"^1:\"],\"~i15\",\"~:logseq.property/background-color\",\"~i47\",\"^Q\",\"~:block/created-at\",[\"^ \",\"^?\",true],\"^22\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^22\"],\"^N\",[\"^ \",\"^7\",\"^N\"],\"~:logseq.class/Task\",[\"^ \",\"^7\",\"^2:\"],\"~:block/collapsed?\",[\"^ \"],\"~:logseq.property.tldraw/page\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2<\"],\"~i16\",\"~:logseq.property/background-image\",\"~i48\",\"~:logseq.property/exclude-from-graph-view\",\"~:logseq.property/value\",[\"^ \"],\"^18\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^18\"],\"~:block/schema\",[\"^ \"],\"~i17\",\"^1>\",\"~i49\",\"~:logseq.property/description\",\"^1T\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^1T\"],\"~:logseq.property.linked-references/excludes\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^2F\"],\"~:logseq.property/ls-type\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2G\"],\"^P\",[\"^ \",\"^7\",\"^P\"],\"~:logseq.property/view-for\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2H\"],\"~i18\",\"~:logseq.property/created-from-property\",\"^1Y\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1Y\"],\"~i50\",\"^1=\",\"^27\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^27\"],\"~:block/journal-day\",[\"^ \",\"^?\",true],\"~i19\",\"^2G\",\"^14\",[\"^ \",\"^7\",\"^14\"],\"~i51\",\"^6\",\"~:block/format\",[\"^ \"],\"^X\",[\"^ \",\"^7\",\"^X\"],\"~i20\",\"^1W\",\"~i52\",\"^1M\",\"^1E\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^13\",\"^7\",\"^1E\"],\"~:block/title\",[\"^ \",\"^?\",true],\"~:logseq.property.tldraw/shape\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2S\"],\"~:asset/meta\",[\"^ \"],\"^1[\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1[\"],\"~i21\",\"^10\",\"~i53\",\"^L\",\"^2J\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2J\"],\"^25\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^25\"],\"~i22\",\"^1V\",\"~i54\",\"~:logseq.property.table/filters\",\"^R\",[\"^ \",\"^7\",\"^R\"],\"~i23\",\"~:logseq.property.pdf/hl-stamp\",\"~i55\",\"^1D\",\"~:logseq.property/order-list-type\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^31\"],\"^2@\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2@\"],\"~i24\",\"~:logseq.property.pdf/hl-value\",\"~i56\",\"~:logseq.property.table/ordered-columns\",\"^2>\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2>\"],\"^7\",[\"^ \",\"^1B\",\"^1C\"],\"~:property/schema.classes\",[\"^ \",\"^J\",\"^K\",\"^@\",\"^13\"],\"^2E\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2E\"],\"~:block/parent\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~i25\",\"~:logseq.property.pdf/file\",\"~i57\",\"^11\",\"~:block/type\",[\"^ \",\"^?\",true],\"~:logseq.class/Journal\",[\"^ \",\"^7\",\"^3=\"],\"~i26\",\"^I\",\"~i58\",\"^2H\",\"^33\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^33\"],\"^5\",[\"^ \",\"^7\",\"^5\"],\"~i27\",\"^31\",\"~i59\",\"~:logseq.property.asset/remote-metadata\",\"^3B\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3B\"],\"^2[\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^2[\"],\"~:block/order\",[\"^ \",\"^?\",true],\"^;\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^;\"],\"~:logseq.property.fsrs/due\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3D\"],\"~i28\",\"^1;\",\"~i60\",\"^3D\",\"~:block/page\",[\"^ \",\"^J\",\"^K\",\"^?\",true],\"~:block/name\",[\"^ \",\"^?\",true],\"^35\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^35\"],\"~:file/path\",[\"^ \",\"^1B\",\"^1C\"],\"~i29\",\"^2F\",\"~i61\",\"^>\",\"^F\",[\"^ \",\"^7\",\"^F\"],\"^1J\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^1J\"],\"~i30\",\"^2<\",\"~i62\",\"^2:\",\"^3:\",[\"^ \",\"^?\",true,\"^J\",\"^K\",\"^@\",\"^A\",\"^7\",\"^3:\"],\"^3\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^3\"],\"^=\",[\"^ \",\"^7\",\"^=\"],\"~i31\",\"^2S\",\"~i63\",\"^3=\",\"^9\",[\"^ \",\"^7\",\"^9\"],\"^2Y\",[\"^ \",\"^?\",true,\"^@\",\"^A\",\"^7\",\"^2Y\"]],\"~:datoms\",[\"~#list\",[[\"~#datascript/Datom\",[1,\"^7\",\"^9\",536870913]],[\"^3R\",[1,\"^17\",\"db\",536870913]],[\"^3R\",[2,\"^7\",\"^D\",536870913]],[\"^3R\",[2,\"^17\",25,536870913]],[\"^3R\",[3,\"^7\",\"^B\",536870913]],[\"^3R\",[3,\"^17\",25,536870913]],[\"^3R\",[4,\"^7\",\"^R\",536870913]],[\"^3R\",[4,\"^17\",1727187033523,536870913]],[\"^3R\",[5,\"^7\",\"^X\",536870913]],[\"^3R\",[6,\"^29\",1727187033526,536870913]],[\"^3R\",[6,\"^2O\",\"~:markdown\",536870913]],[\"^3R\",[6,\"^3H\",\"root tag\",536870913]],[\"^3R\",[6,\"^2R\",\"Root Tag\",536870913]],[\"^3R\",[6,\"^3<\",\"class\",536870913]],[\"^3R\",[6,\"^1G\",1727187033526,536870913]],[\"^3R\",[6,\"^1A\",\"~u00000002-2737-8382-7000-000000000000\",536870913]],[\"^3R\",[6,\"^7\",\"^14\",536870913]],[\"^3R\",[6,\"^18\",true,536870913]],[\"^3R\",[7,\"^29\",1727187033523,536870913]],[\"^3R\",[7,\"^2O\",\"^3S\",536870913]],[\"^3R\",[7,\"^3H\",\"built-in?\",536870913]],[\"^3R\",[7,\"^3C\",\"bNP\",536870913]],[\"^3R\",[7,\"^2B\",[\"^ \",\"~:type\",\"~:checkbox\",\"~:hide?\",true],536870913]],[\"^3R\",[7,\"^2R\",\"built-in?\",536870913]],[\"^3R\",[7,\"^3<\",\"property\",536870913]],[\"^3R\",[7,\"^1G\",1727187033523,536870913]],[\"^3R\",[7,\"^1A\",\"~u00000002-1125-9581-6000-000000000000\",536870913]],[\"^3R\",[7,\"^@\",\"^A\",536870913]],[\"^3R\",[7,\"^7\",\"^18\",536870913]],[\"^3R\",[7,\"^?\",true,536870913]],[\"^3R\",[7,\"^18\",true,536870913]],[\"^3R\",[8,\"^29\",1727187033524,536870913]],[\"^3R\",[8,\"^2O\",\"^3S\",536870913]],[\"^3R\",[8,\"^3H\",\"alias\",536870913]],[\"^3R\",[8,\"^3C\",\"bNQ\",536870913]],[\"^3R\",[8,\"^2B\",[\"^ \",\"^3T\",\"~:page\",\"~:view-context\",\"^3W\",\"~:public?\",true],536870913]],[\"^3R\",[8,\"^2R\",\"Alias\",536870913]],[\"^3R\",[8,\"^3<\",\"property\",536870913]],[\"^3R\",[8,\"^1G\",1727187033524,536870913]],[\"^3R\",[8,\"^1A\",\"~u00000002-2112-6446-9900-000000000000\",536870913]],[\"^3R\",[8,\"^@\",\"^13\",536870913]],[\"^3R\",[8,\"^7\",\"^12\",536870913]],[\"^3R\",[8,\"^?\",true,536870913]],[\"^3R\",[8,\"^J\",\"^K\",536870913]],[\"^3R\",[8,\"^18\",true,536870913]],[\"^3R\",[9,\"^29\",1727187033524,536870913]],[\"^3R\",[9,\"^2O\",\"^3S\",536870913]],[\"^3R\",[9,\"^3H\",\"tags\",536870913]],[\"^3R\",[9,\"^3C\",\"bNR\",536870913]],[\"^3R\",[9,\"^2B\",[\"^ \",\"^3T\",\"~:class\",\"^3Y\",true],536870913]],[\"^3R\",[9,\"^2R\",\"Tags\",536870913]],[\"^3R\",[9,\"^3<\",\"property\",536870913]],[\"^3R\",[9,\"^1G\",1727187033524,536870913]],[\"^3R\",[9,\"^1A\",\"~u00000002-1814-9483-4000-000000000000\",536870913]],[\"^3R\",[9,\"^@\",\"^13\",536870913]],[\"^3R\",[9,\"^7\",\"^1E\",536870913]],[\"^3R\",[9,\"^?\",true,536870913]],[\"^3R\",[9,\"^J\",\"^K\",536870913]],[\"^3R\",[9,\"^18\",true,536870913]],[\"^3R\",[9,\"^36\",6,536870913]],[\"^3R\",[10,\"^29\",1727187033524,536870913]],[\"^3R\",[10,\"^2O\",\"^3S\",536870913]],[\"^3R\",[10,\"^3H\",\"parent\",536870913]],[\"^3R\",[10,\"^3C\",\"bNS\",536870913]],[\"^3R\",[10,\"^2B\",[\"^ \",\"^3T\",\"~:node\",\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[10,\"^2R\",\"Parent\",536870913]],[\"^3R\",[10,\"^3<\",\"property\",536870913]],[\"^3R\",[10,\"^1G\",1727187033524,536870913]],[\"^3R\",[10,\"^1A\",\"~u00000002-1779-8450-9000-000000000000\",536870913]],[\"^3R\",[10,\"^@\",\"^A\",536870913]],[\"^3R\",[10,\"^7\",\"^1J\",536870913]],[\"^3R\",[10,\"^?\",true,536870913]],[\"^3R\",[10,\"^J\",\"^K\",536870913]],[\"^3R\",[10,\"^18\",true,536870913]],[\"^3R\",[11,\"^29\",1727187033524,536870913]],[\"^3R\",[11,\"^2O\",\"^3S\",536870913]],[\"^3R\",[11,\"^3H\",\"tag properties\",536870913]],[\"^3R\",[11,\"^3C\",\"bNT\",536870913]],[\"^3R\",[11,\"^2B\",[\"^ \",\"^3T\",\"~:property\",\"^3Y\",true,\"^3X\",\"~:never\"],536870913]],[\"^3R\",[11,\"^2R\",\"Tag Properties\",536870913]],[\"^3R\",[11,\"^3<\",\"property\",536870913]],[\"^3R\",[11,\"^1G\",1727187033524,536870913]],[\"^3R\",[11,\"^1A\",\"~u00000002-2123-7120-5000-000000000000\",536870913]],[\"^3R\",[11,\"^@\",\"^13\",536870913]],[\"^3R\",[11,\"^7\",\"^1O\",536870913]],[\"^3R\",[11,\"^?\",true,536870913]],[\"^3R\",[11,\"^J\",\"^K\",536870913]],[\"^3R\",[11,\"^18\",true,536870913]],[\"^3R\",[12,\"^29\",1727187033524,536870913]],[\"^3R\",[12,\"^2O\",\"^3S\",536870913]],[\"^3R\",[12,\"^3H\",\"hide from node\",536870913]],[\"^3R\",[12,\"^3C\",\"bNU\",536870913]],[\"^3R\",[12,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3Y\",true,\"^3X\",\"^3Z\"],536870913]],[\"^3R\",[12,\"^2R\",\"Hide from Node\",536870913]],[\"^3R\",[12,\"^3<\",\"property\",536870913]],[\"^3R\",[12,\"^1G\",1727187033524,536870913]],[\"^3R\",[12,\"^1A\",\"~u00000002-2610-3727-0000-000000000000\",536870913]],[\"^3R\",[12,\"^@\",\"^A\",536870913]],[\"^3R\",[12,\"^7\",\"^1T\",536870913]],[\"^3R\",[12,\"^?\",true,536870913]],[\"^3R\",[12,\"^18\",true,536870913]],[\"^3R\",[13,\"^29\",1727187033524,536870913]],[\"^3R\",[13,\"^2O\",\"^3S\",536870913]],[\"^3R\",[13,\"^3H\",\"query\",536870913]],[\"^3R\",[13,\"^3C\",\"bNV\",536870913]],[\"^3R\",[13,\"^2B\",[\"^ \",\"^3T\",\"~:default\",\"^3Y\",true,\"^3X\",\"~:block\"],536870913]],[\"^3R\",[13,\"^2R\",\"Query\",536870913]],[\"^3R\",[13,\"^3<\",\"property\",536870913]],[\"^3R\",[13,\"^1G\",1727187033524,536870913]],[\"^3R\",[13,\"^1A\",\"~u00000002-9741-4126-0000-000000000000\",536870913]],[\"^3R\",[13,\"^@\",\"^A\",536870913]],[\"^3R\",[13,\"^7\",\"^1Y\",536870913]],[\"^3R\",[13,\"^?\",true,536870913]],[\"^3R\",[13,\"^J\",\"^K\",536870913]],[\"^3R\",[13,\"^18\",true,536870913]],[\"^3R\",[14,\"^29\",1727187033524,536870913]],[\"^3R\",[14,\"^2O\",\"^3S\",536870913]],[\"^3R\",[14,\"^3H\",\"page tags\",536870913]],[\"^3R\",[14,\"^3C\",\"bNW\",536870913]],[\"^3R\",[14,\"^2B\",[\"^ \",\"^3T\",\"^3W\",\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[14,\"^2R\",\"Page Tags\",536870913]],[\"^3R\",[14,\"^3<\",\"property\",536870913]],[\"^3R\",[14,\"^1G\",1727187033524,536870913]],[\"^3R\",[14,\"^1A\",\"~u00000002-2133-5311-8500-000000000000\",536870913]],[\"^3R\",[14,\"^@\",\"^13\",536870913]],[\"^3R\",[14,\"^7\",\"^22\",536870913]],[\"^3R\",[14,\"^?\",true,536870913]],[\"^3R\",[14,\"^J\",\"^K\",536870913]],[\"^3R\",[14,\"^18\",true,536870913]],[\"^3R\",[15,\"^29\",1727187033524,536870913]],[\"^3R\",[15,\"^2O\",\"^3S\",536870913]],[\"^3R\",[15,\"^3H\",\"background-color\",536870913]],[\"^3R\",[15,\"^3C\",\"bNX\",536870913]],[\"^3R\",[15,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[15,\"^2R\",\"background-color\",536870913]],[\"^3R\",[15,\"^3<\",\"property\",536870913]],[\"^3R\",[15,\"^1G\",1727187033524,536870913]],[\"^3R\",[15,\"^1A\",\"~u00000002-5191-2660-6000-000000000000\",536870913]],[\"^3R\",[15,\"^@\",\"^A\",536870913]],[\"^3R\",[15,\"^7\",\"^27\",536870913]],[\"^3R\",[15,\"^?\",true,536870913]],[\"^3R\",[15,\"^J\",\"^K\",536870913]],[\"^3R\",[15,\"^18\",true,536870913]],[\"^3R\",[16,\"^29\",1727187033524,536870913]],[\"^3R\",[16,\"^2O\",\"^3S\",536870913]],[\"^3R\",[16,\"^3H\",\"background-image\",536870913]],[\"^3R\",[16,\"^3C\",\"bNY\",536870913]],[\"^3R\",[16,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3X\",\"^43\",\"^3Y\",true],536870913]],[\"^3R\",[16,\"^2R\",\"background-image\",536870913]],[\"^3R\",[16,\"^3<\",\"property\",536870913]],[\"^3R\",[16,\"^1G\",1727187033524,536870913]],[\"^3R\",[16,\"^1A\",\"~u00000002-2513-1712-8000-000000000000\",536870913]],[\"^3R\",[16,\"^@\",\"^A\",536870913]],[\"^3R\",[16,\"^7\",\"^2>\",536870913]],[\"^3R\",[16,\"^?\",true,536870913]],[\"^3R\",[16,\"^J\",\"^K\",536870913]],[\"^3R\",[16,\"^18\",true,536870913]],[\"^3R\",[17,\"^29\",1727187033524,536870913]],[\"^3R\",[17,\"^2O\",\"^3S\",536870913]],[\"^3R\",[17,\"^3H\",\"heading\",536870913]],[\"^3R\",[17,\"^3C\",\"bNZ\",536870913]],[\"^3R\",[17,\"^2B\",[\"^ \",\"^3T\",\"~:any\",\"^3V\",true],536870913]],[\"^3R\",[17,\"^2R\",\"heading\",536870913]],[\"^3R\",[17,\"^3<\",\"property\",536870913]],[\"^3R\",[17,\"^1G\",1727187033524,536870913]],[\"^3R\",[17,\"^1A\",\"~u00000002-1858-7494-1500-000000000000\",536870913]],[\"^3R\",[17,\"^@\",\"^A\",536870913]],[\"^3R\",[17,\"^7\",\"^1>\",536870913]],[\"^3R\",[17,\"^?\",true,536870913]],[\"^3R\",[17,\"^18\",true,536870913]],[\"^3R\",[18,\"^29\",1727187033524,536870913]],[\"^3R\",[18,\"^2O\",\"^3S\",536870913]],[\"^3R\",[18,\"^3H\",\"created-from-property\",536870913]],[\"^3R\",[18,\"^3C\",\"bNa\",536870913]],[\"^3R\",[18,\"^2B\",[\"^ \",\"^3T\",\"~:entity\",\"^3V\",true],536870913]],[\"^3R\",[18,\"^2R\",\"created-from-property\",536870913]],[\"^3R\",[18,\"^3<\",\"property\",536870913]],[\"^3R\",[18,\"^1G\",1727187033524,536870913]],[\"^3R\",[18,\"^1A\",\"~u00000002-8618-9226-7000-000000000000\",536870913]],[\"^3R\",[18,\"^@\",\"^A\",536870913]],[\"^3R\",[18,\"^7\",\"^2J\",536870913]],[\"^3R\",[18,\"^?\",true,536870913]],[\"^3R\",[18,\"^J\",\"^K\",536870913]],[\"^3R\",[18,\"^18\",true,536870913]],[\"^3R\",[19,\"^29\",1727187033524,536870913]],[\"^3R\",[19,\"^2O\",\"^3S\",536870913]],[\"^3R\",[19,\"^3H\",\"ls-type\",536870913]],[\"^3R\",[19,\"^3C\",\"bNb\",536870913]],[\"^3R\",[19,\"^2B\",[\"^ \",\"^3T\",\"~:keyword\",\"^3V\",true],536870913]],[\"^3R\",[19,\"^2R\",\"ls-type\",536870913]],[\"^3R\",[19,\"^3<\",\"property\",536870913]],[\"^3R\",[19,\"^1G\",1727187033524,536870913]],[\"^3R\",[19,\"^1A\",\"~u00000002-3269-7934-5000-000000000000\",536870913]],[\"^3R\",[19,\"^@\",\"^A\",536870913]],[\"^3R\",[19,\"^7\",\"^2G\",536870913]],[\"^3R\",[19,\"^?\",true,536870913]],[\"^3R\",[19,\"^18\",true,536870913]],[\"^3R\",[20,\"^29\",1727187033524,536870913]],[\"^3R\",[20,\"^2O\",\"^3S\",536870913]],[\"^3R\",[20,\"^3H\",\"hl-type\",536870913]],[\"^3R\",[20,\"^3C\",\"bNc\",536870913]],[\"^3R\",[20,\"^2B\",[\"^ \",\"^3T\",\"^46\",\"^3V\",true],536870913]],[\"^3R\",[20,\"^2R\",\"hl-type\",536870913]],[\"^3R\",[20,\"^3<\",\"property\",536870913]],[\"^3R\",[20,\"^1G\",1727187033524,536870913]],[\"^3R\",[20,\"^1A\",\"~u00000002-2083-0223-8000-000000000000\",536870913]],[\"^3R\",[20,\"^@\",\"^A\",536870913]],[\"^3R\",[20,\"^7\",\"^1W\",536870913]],[\"^3R\",[20,\"^?\",true,536870913]],[\"^3R\",[20,\"^18\",true,536870913]],[\"^3R\",[21,\"^29\",1727187033524,536870913]],[\"^3R\",[21,\"^2O\",\"^3S\",536870913]],[\"^3R\",[21,\"^3H\",\"hl-color\",536870913]],[\"^3R\",[21,\"^3C\",\"bNd\",536870913]],[\"^3R\",[21,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[21,\"^2R\",\"hl-color\",536870913]],[\"^3R\",[21,\"^3<\",\"property\",536870913]],[\"^3R\",[21,\"^1G\",1727187033524,536870913]],[\"^3R\",[21,\"^1A\",\"~u00000002-2137-2691-4700-000000000000\",536870913]],[\"^3R\",[21,\"^@\",\"^A\",536870913]],[\"^3R\",[21,\"^7\",\"^10\",536870913]],[\"^3R\",[21,\"^?\",true,536870913]],[\"^3R\",[21,\"^J\",\"^K\",536870913]],[\"^3R\",[21,\"^18\",true,536870913]],[\"^3R\",[22,\"^29\",1727187033524,536870913]],[\"^3R\",[22,\"^2O\",\"^3S\",536870913]],[\"^3R\",[22,\"^3H\",\"hl-page\",536870913]],[\"^3R\",[22,\"^3C\",\"bNe\",536870913]],[\"^3R\",[22,\"^2B\",[\"^ \",\"^3T\",\"~:number\",\"^3V\",true],536870913]],[\"^3R\",[22,\"^2R\",\"hl-page\",536870913]],[\"^3R\",[22,\"^3<\",\"property\",536870913]],[\"^3R\",[22,\"^1G\",1727187033524,536870913]],[\"^3R\",[22,\"^1A\",\"~u00000002-7532-8459-6000-000000000000\",536870913]],[\"^3R\",[22,\"^@\",\"^A\",536870913]],[\"^3R\",[22,\"^7\",\"^1V\",536870913]],[\"^3R\",[22,\"^?\",true,536870913]],[\"^3R\",[22,\"^J\",\"^K\",536870913]],[\"^3R\",[22,\"^18\",true,536870913]],[\"^3R\",[23,\"^29\",1727187033524,536870913]],[\"^3R\",[23,\"^2O\",\"^3S\",536870913]],[\"^3R\",[23,\"^3H\",\"hl-stamp\",536870913]],[\"^3R\",[23,\"^3C\",\"bNf\",536870913]],[\"^3R\",[23,\"^2B\",[\"^ \",\"^3T\",\"^47\",\"^3V\",true],536870913]],[\"^3R\",[23,\"^2R\",\"hl-stamp\",536870913]],[\"^3R\",[23,\"^3<\",\"property\",536870913]],[\"^3R\",[23,\"^1G\",1727187033524,536870913]],[\"^3R\",[23,\"^1A\",\"~u00000002-1293-4649-2300-000000000000\",536870913]],[\"^3R\",[23,\"^@\",\"^A\",536870913]],[\"^3R\",[23,\"^7\",\"^2[\",536870913]],[\"^3R\",[23,\"^?\",true,536870913]],[\"^3R\",[23,\"^J\",\"^K\",536870913]],[\"^3R\",[23,\"^18\",true,536870913]],[\"^3R\",[24,\"^29\",1727187033524,536870913]],[\"^3R\",[24,\"^2O\",\"^3S\",536870913]],[\"^3R\",[24,\"^3H\",\"hl-value\",536870913]],[\"^3R\",[24,\"^3C\",\"bNg\",536870913]],[\"^3R\",[24,\"^2B\",[\"^ \",\"^3T\",\"~:map\",\"^3V\",true],536870913]],[\"^3R\",[24,\"^2R\",\"hl-value\",536870913]],[\"^3R\",[24,\"^3<\",\"property\",536870913]],[\"^3R\",[24,\"^1G\",1727187033524,536870913]],[\"^3R\",[24,\"^1A\",\"~u00000002-5458-2940-2000-000000000000\",536870913]],[\"^3R\",[24,\"^@\",\"^A\",536870913]],[\"^3R\",[24,\"^7\",\"^33\",536870913]],[\"^3R\",[24,\"^?\",true,536870913]],[\"^3R\",[24,\"^18\",true,536870913]],[\"^3R\",[25,\"^29\",1727187033525,536870913]],[\"^3R\",[25,\"^2O\",\"^3S\",536870913]],[\"^3R\",[25,\"^3H\",\"file\",536870913]],[\"^3R\",[25,\"^3C\",\"bNh\",536870913]],[\"^3R\",[25,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true,\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[25,\"^2R\",\"file\",536870913]],[\"^3R\",[25,\"^3<\",\"property\",536870913]],[\"^3R\",[25,\"^1G\",1727187033525,536870913]],[\"^3R\",[25,\"^1A\",\"~u00000002-1681-6464-3400-000000000000\",536870913]],[\"^3R\",[25,\"^@\",\"^A\",536870913]],[\"^3R\",[25,\"^7\",\"^3:\",536870913]],[\"^3R\",[25,\"^?\",true,536870913]],[\"^3R\",[25,\"^J\",\"^K\",536870913]],[\"^3R\",[25,\"^18\",true,536870913]],[\"^3R\",[26,\"^29\",1727187033525,536870913]],[\"^3R\",[26,\"^2O\",\"^3S\",536870913]],[\"^3R\",[26,\"^3H\",\"file-path\",536870913]],[\"^3R\",[26,\"^3C\",\"bNi\",536870913]],[\"^3R\",[26,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true,\"^3Y\",true,\"^3X\",\"^3W\"],536870913]],[\"^3R\",[26,\"^2R\",\"file-path\",536870913]],[\"^3R\",[26,\"^3<\",\"property\",536870913]],[\"^3R\",[26,\"^1G\",1727187033525,536870913]],[\"^3R\",[26,\"^1A\",\"~u00000002-5663-3568-2000-000000000000\",536870913]],[\"^3R\",[26,\"^@\",\"^A\",536870913]],[\"^3R\",[26,\"^7\",\"^I\",536870913]],[\"^3R\",[26,\"^?\",true,536870913]],[\"^3R\",[26,\"^J\",\"^K\",536870913]],[\"^3R\",[26,\"^18\",true,536870913]],[\"^3R\",[27,\"^29\",1727187033525,536870913]],[\"^3R\",[27,\"^2O\",\"^3S\",536870913]],[\"^3R\",[27,\"^3H\",\"logseq.order-list-type\",536870913]],[\"^3R\",[27,\"^3C\",\"bNj\",536870913]],[\"^3R\",[27,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3V\",true],536870913]],[\"^3R\",[27,\"^2R\",\"logseq.order-list-type\",536870913]],[\"^3R\",[27,\"^3<\",\"property\",536870913]],[\"^3R\",[27,\"^1G\",1727187033525,536870913]],[\"^3R\",[27,\"^1A\",\"~u00000002-6078-1711-1000-000000000000\",536870913]],[\"^3R\",[27,\"^@\",\"^A\",536870913]],[\"^3R\",[27,\"^7\",\"^31\",536870913]],[\"^3R\",[27,\"^?\",true,536870913]],[\"^3R\",[27,\"^J\",\"^K\",536870913]],[\"^3R\",[27,\"^18\",true,536870913]],[\"^3R\",[28,\"^29\",1727187033525,536870913]],[\"^3R\",[28,\"^2O\",\"^3S\",536870913]],[\"^3R\",[28,\"^3H\",\"includes\",536870913]],[\"^3R\",[28,\"^3C\",\"bNk\",536870913]],[\"^3R\",[28,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true],536870913]],[\"^3R\",[28,\"^2R\",\"includes\",536870913]],[\"^3R\",[28,\"^3<\",\"property\",536870913]],[\"^3R\",[28,\"^1G\",1727187033525,536870913]],[\"^3R\",[28,\"^1A\",\"~u00000002-1680-5777-0300-000000000000\",536870913]],[\"^3R\",[28,\"^@\",\"^13\",536870913]],[\"^3R\",[28,\"^7\",\"^1;\",536870913]],[\"^3R\",[28,\"^?\",true,536870913]],[\"^3R\",[28,\"^J\",\"^K\",536870913]],[\"^3R\",[28,\"^18\",true,536870913]],[\"^3R\",[29,\"^29\",1727187033525,536870913]],[\"^3R\",[29,\"^2O\",\"^3S\",536870913]],[\"^3R\",[29,\"^3H\",\"excludes\",536870913]],[\"^3R\",[29,\"^3C\",\"bNl\",536870913]],[\"^3R\",[29,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true],536870913]],[\"^3R\",[29,\"^2R\",\"excludes\",536870913]],[\"^3R\",[29,\"^3<\",\"property\",536870913]],[\"^3R\",[29,\"^1G\",1727187033525,536870913]],[\"^3R\",[29,\"^1A\",\"~u00000002-2426-7588-9000-000000000000\",536870913]],[\"^3R\",[29,\"^@\",\"^13\",536870913]],[\"^3R\",[29,\"^7\",\"^2F\",536870913]],[\"^3R\",[29,\"^?\",true,536870913]],[\"^3R\",[29,\"^J\",\"^K\",536870913]],[\"^3R\",[29,\"^18\",true,536870913]],[\"^3R\",[30,\"^29\",1727187033525,536870913]],[\"^3R\",[30,\"^2O\",\"^3S\",536870913]],[\"^3R\",[30,\"^3H\",\"logseq.tldraw.page\",536870913]],[\"^3R\",[30,\"^3C\",\"bNm\",536870913]],[\"^3R\",[30,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true],536870913]],[\"^3R\",[30,\"^2R\",\"logseq.tldraw.page\",536870913]],[\"^3R\",[30,\"^3<\",\"property\",536870913]],[\"^3R\",[30,\"^1G\",1727187033525,536870913]],[\"^3R\",[30,\"^1A\",\"~u00000002-3546-2145-7000-000000000000\",536870913]],[\"^3R\",[30,\"^@\",\"^A\",536870913]],[\"^3R\",[30,\"^7\",\"^2<\",536870913]],[\"^3R\",[30,\"^?\",true,536870913]],[\"^3R\",[30,\"^18\",true,536870913]],[\"^3R\",[31,\"^29\",1727187033525,536870913]],[\"^3R\",[31,\"^2O\",\"^3S\",536870913]],[\"^3R\",[31,\"^3H\",\"logseq.tldraw.shape\",536870913]],[\"^3R\",[31,\"^3C\",\"bNn\",536870913]],[\"^3R\",[31,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true],536870913]],[\"^3R\",[31,\"^2R\",\"logseq.tldraw.shape\",536870913]],[\"^3R\",[31,\"^3<\",\"property\",536870913]],[\"^3R\",[31,\"^1G\",1727187033525,536870913]],[\"^3R\",[31,\"^1A\",\"~u00000002-1313-2454-2000-000000000000\",536870913]],[\"^3R\",[31,\"^@\",\"^A\",536870913]],[\"^3R\",[31,\"^7\",\"^2S\",536870913]],[\"^3R\",[31,\"^?\",true,536870913]],[\"^3R\",[31,\"^18\",true,536870913]],[\"^3R\",[32,\"^29\",1727187033525,536870913]],[\"^3R\",[32,\"^2O\",\"^3S\",536870913]],[\"^3R\",[32,\"^3H\",\"title format\",536870913]],[\"^3R\",[32,\"^3C\",\"bNo\",536870913]],[\"^3R\",[32,\"^2B\",[\"^ \",\"^3T\",\"~:string\",\"^3Y\",false],536870913]],[\"^3R\",[32,\"^2R\",\"Title Format\",536870913]],[\"^3R\",[32,\"^3<\",\"property\",536870913]],[\"^3R\",[32,\"^1G\",1727187033525,536870913]],[\"^3R\",[32,\"^1A\",\"~u00000002-1536-4979-5400-000000000000\",536870913]],[\"^3R\",[32,\"^@\",\"^A\",536870913]],[\"^3R\",[32,\"^7\",\"^3\",536870913]],[\"^3R\",[32,\"^?\",true,536870913]],[\"^3R\",[32,\"^18\",true,536870913]],[\"^3R\",[33,\"^29\",1727187033525,536870913]],[\"^3R\",[33,\"^2O\",\"^3S\",536870913]],[\"^3R\",[33,\"^3H\",\"status\",536870913]],[\"^3R\",[33,\"^3C\",\"bNp\",536870913]],[\"^3R\",[33,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true,\"~:position\",\"~:block-left\"],536870913]],[\"^3R\",[33,\"^2R\",\"Status\",536870913]],[\"^3R\",[33,\"^3<\",\"property\",536870913]],[\"^3R\",[33,\"^1G\",1727187033525,536870913]],[\"^3R\",[33,\"^1A\",\"~u00000002-1399-1718-0300-000000000000\",536870913]],[\"^3R\",[33,\"^@\",\"^A\",536870913]],[\"^3R\",[33,\"^7\",\"^;\",536870913]],[\"^3R\",[33,\"^?\",true,536870913]],[\"^3R\",[33,\"^J\",\"^K\",536870913]],[\"^3R\",[33,\"^18\",true,536870913]],[\"^3R\",[34,\"^20\",33,536870913]],[\"^3R\",[34,\"^29\",1727187033525,536870913]],[\"^3R\",[34,\"^2O\",\"^3S\",536870913]],[\"^3R\",[34,\"^3C\",\"bNq\",536870913]],[\"^3R\",[34,\"^3G\",33,536870913]],[\"^3R\",[34,\"^38\",33,536870913]],[\"^3R\",[34,\"^2R\",\"Backlog\",536870913]],[\"^3R\",[34,\"^3<\",\"closed value\",536870913]],[\"^3R\",[34,\"^1G\",1727187033525,536870913]],[\"^3R\",[34,\"^1A\",\"~u00000002-1797-5174-0500-000000000000\",536870913]],[\"^3R\",[34,\"^7\",\"^F\",536870913]],[\"^3R\",[34,\"^18\",true,536870913]],[\"^3R\",[34,\"^2J\",33,536870913]],[\"^3R\",[34,\"^25\",[\"^ \",\"^3T\",\"~:tabler-icon\",\"~:id\",\"Backlog\"],536870913]],[\"^3R\",[35,\"^20\",33,536870913]],[\"^3R\",[35,\"^29\",1727187033525,536870913]],[\"^3R\",[35,\"^2O\",\"^3S\",536870913]],[\"^3R\",[35,\"^3C\",\"bNr\",536870913]],[\"^3R\",[35,\"^3G\",33,536870913]],[\"^3R\",[35,\"^38\",33,536870913]],[\"^3R\",[35,\"^2R\",\"Todo\",536870913]],[\"^3R\",[35,\"^3<\",\"closed value\",536870913]],[\"^3R\",[35,\"^1G\",1727187033525,536870913]],[\"^3R\",[35,\"^1A\",\"~u00000002-1776-1920-4900-000000000000\",536870913]],[\"^3R\",[35,\"^7\",\"^N\",536870913]],[\"^3R\",[35,\"^18\",true,536870913]],[\"^3R\",[35,\"^2J\",33,536870913]],[\"^3R\",[35,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Todo\"],536870913]],[\"^3R\",[36,\"^20\",33,536870913]],[\"^3R\",[36,\"^29\",1727187033525,536870913]],[\"^3R\",[36,\"^2O\",\"^3S\",536870913]],[\"^3R\",[36,\"^3C\",\"bNs\",536870913]],[\"^3R\",[36,\"^3G\",33,536870913]],[\"^3R\",[36,\"^38\",33,536870913]],[\"^3R\",[36,\"^2R\",\"Doing\",536870913]],[\"^3R\",[36,\"^3<\",\"closed value\",536870913]],[\"^3R\",[36,\"^1G\",1727187033525,536870913]],[\"^3R\",[36,\"^1A\",\"~u00000002-5524-7947-6000-000000000000\",536870913]],[\"^3R\",[36,\"^7\",\"^T\",536870913]],[\"^3R\",[36,\"^18\",true,536870913]],[\"^3R\",[36,\"^2J\",33,536870913]],[\"^3R\",[36,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"InProgress50\"],536870913]],[\"^3R\",[37,\"^20\",33,536870913]],[\"^3R\",[37,\"^29\",1727187033525,536870913]],[\"^3R\",[37,\"^2O\",\"^3S\",536870913]],[\"^3R\",[37,\"^3C\",\"bNt\",536870913]],[\"^3R\",[37,\"^3G\",33,536870913]],[\"^3R\",[37,\"^38\",33,536870913]],[\"^3R\",[37,\"^2R\",\"In Review\",536870913]],[\"^3R\",[37,\"^3<\",\"closed value\",536870913]],[\"^3R\",[37,\"^1G\",1727187033525,536870913]],[\"^3R\",[37,\"^1A\",\"~u00000002-3550-9421-0000-000000000000\",536870913]],[\"^3R\",[37,\"^7\",\"^Z\",536870913]],[\"^3R\",[37,\"^18\",true,536870913]],[\"^3R\",[37,\"^2J\",33,536870913]],[\"^3R\",[37,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"InReview\"],536870913]],[\"^3R\",[38,\"^20\",33,536870913]],[\"^3R\",[38,\"^29\",1727187033525,536870913]],[\"^3R\",[38,\"^2O\",\"^3S\",536870913]],[\"^3R\",[38,\"^3C\",\"bNu\",536870913]],[\"^3R\",[38,\"^3G\",33,536870913]],[\"^3R\",[38,\"^38\",33,536870913]],[\"^3R\",[38,\"^2R\",\"Done\",536870913]],[\"^3R\",[38,\"^3<\",\"closed value\",536870913]],[\"^3R\",[38,\"^1G\",1727187033525,536870913]],[\"^3R\",[38,\"^1A\",\"~u00000002-1430-0577-4000-000000000000\",536870913]],[\"^3R\",[38,\"^7\",\"^16\",536870913]],[\"^3R\",[38,\"^18\",true,536870913]],[\"^3R\",[38,\"^2J\",33,536870913]],[\"^3R\",[38,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Done\"],536870913]],[\"^3R\",[39,\"^20\",33,536870913]],[\"^3R\",[39,\"^29\",1727187033525,536870913]],[\"^3R\",[39,\"^2O\",\"^3S\",536870913]],[\"^3R\",[39,\"^3C\",\"bNv\",536870913]],[\"^3R\",[39,\"^3G\",33,536870913]],[\"^3R\",[39,\"^38\",33,536870913]],[\"^3R\",[39,\"^2R\",\"Canceled\",536870913]],[\"^3R\",[39,\"^3<\",\"closed value\",536870913]],[\"^3R\",[39,\"^1G\",1727187033525,536870913]],[\"^3R\",[39,\"^1A\",\"~u00000002-1217-7438-9000-000000000000\",536870913]],[\"^3R\",[39,\"^7\",\"^1:\",536870913]],[\"^3R\",[39,\"^18\",true,536870913]],[\"^3R\",[39,\"^2J\",33,536870913]],[\"^3R\",[39,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"Cancelled\"],536870913]],[\"^3R\",[40,\"^29\",1727187033525,536870913]],[\"^3R\",[40,\"^2O\",\"^3S\",536870913]],[\"^3R\",[40,\"^3H\",\"priority\",536870913]],[\"^3R\",[40,\"^3C\",\"bNw\",536870913]],[\"^3R\",[40,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true,\"^4:\",\"^4;\"],536870913]],[\"^3R\",[40,\"^2R\",\"Priority\",536870913]],[\"^3R\",[40,\"^3<\",\"property\",536870913]],[\"^3R\",[40,\"^1G\",1727187033525,536870913]],[\"^3R\",[40,\"^1A\",\"~u00000002-1714-7859-9500-000000000000\",536870913]],[\"^3R\",[40,\"^@\",\"^A\",536870913]],[\"^3R\",[40,\"^7\",\"^1@\",536870913]],[\"^3R\",[40,\"^?\",true,536870913]],[\"^3R\",[40,\"^J\",\"^K\",536870913]],[\"^3R\",[40,\"^18\",true,536870913]],[\"^3R\",[41,\"^20\",40,536870913]],[\"^3R\",[41,\"^29\",1727187033525,536870913]],[\"^3R\",[41,\"^2O\",\"^3S\",536870913]],[\"^3R\",[41,\"^3C\",\"bNx\",536870913]],[\"^3R\",[41,\"^3G\",40,536870913]],[\"^3R\",[41,\"^38\",40,536870913]],[\"^3R\",[41,\"^2R\",\"Low\",536870913]],[\"^3R\",[41,\"^3<\",\"closed value\",536870913]],[\"^3R\",[41,\"^1G\",1727187033525,536870913]],[\"^3R\",[41,\"^1A\",\"~u00000002-8891-7452-4000-000000000000\",536870913]],[\"^3R\",[41,\"^7\",\"^U\",536870913]],[\"^3R\",[41,\"^18\",true,536870913]],[\"^3R\",[41,\"^2J\",40,536870913]],[\"^3R\",[41,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlLow\"],536870913]],[\"^3R\",[42,\"^20\",40,536870913]],[\"^3R\",[42,\"^29\",1727187033525,536870913]],[\"^3R\",[42,\"^2O\",\"^3S\",536870913]],[\"^3R\",[42,\"^3C\",\"bNy\",536870913]],[\"^3R\",[42,\"^3G\",40,536870913]],[\"^3R\",[42,\"^38\",40,536870913]],[\"^3R\",[42,\"^2R\",\"Medium\",536870913]],[\"^3R\",[42,\"^3<\",\"closed value\",536870913]],[\"^3R\",[42,\"^1G\",1727187033525,536870913]],[\"^3R\",[42,\"^1A\",\"~u00000002-4650-7295-0000-000000000000\",536870913]],[\"^3R\",[42,\"^7\",\"^1L\",536870913]],[\"^3R\",[42,\"^18\",true,536870913]],[\"^3R\",[42,\"^2J\",40,536870913]],[\"^3R\",[42,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlMedium\"],536870913]],[\"^3R\",[43,\"^20\",40,536870913]],[\"^3R\",[43,\"^29\",1727187033525,536870913]],[\"^3R\",[43,\"^2O\",\"^3S\",536870913]],[\"^3R\",[43,\"^3C\",\"bNz\",536870913]],[\"^3R\",[43,\"^3G\",40,536870913]],[\"^3R\",[43,\"^38\",40,536870913]],[\"^3R\",[43,\"^2R\",\"High\",536870913]],[\"^3R\",[43,\"^3<\",\"closed value\",536870913]],[\"^3R\",[43,\"^1G\",1727187033525,536870913]],[\"^3R\",[43,\"^1A\",\"~u00000002-1281-2351-0000-000000000000\",536870913]],[\"^3R\",[43,\"^7\",\"^W\",536870913]],[\"^3R\",[43,\"^18\",true,536870913]],[\"^3R\",[43,\"^2J\",40,536870913]],[\"^3R\",[43,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlHigh\"],536870913]],[\"^3R\",[44,\"^20\",40,536870913]],[\"^3R\",[44,\"^29\",1727187033525,536870913]],[\"^3R\",[44,\"^2O\",\"^3S\",536870913]],[\"^3R\",[44,\"^3C\",\"bO0\",536870913]],[\"^3R\",[44,\"^3G\",40,536870913]],[\"^3R\",[44,\"^38\",40,536870913]],[\"^3R\",[44,\"^2R\",\"Urgent\",536870913]],[\"^3R\",[44,\"^3<\",\"closed value\",536870913]],[\"^3R\",[44,\"^1G\",1727187033525,536870913]],[\"^3R\",[44,\"^1A\",\"~u00000002-4458-8138-1000-000000000000\",536870913]],[\"^3R\",[44,\"^7\",\"^[\",536870913]],[\"^3R\",[44,\"^18\",true,536870913]],[\"^3R\",[44,\"^2J\",40,536870913]],[\"^3R\",[44,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"priorityLvlUrgent\"],536870913]],[\"^3R\",[45,\"^29\",1727187033525,536870913]],[\"^3R\",[45,\"^2O\",\"^3S\",536870913]],[\"^3R\",[45,\"^3H\",\"deadline\",536870913]],[\"^3R\",[45,\"^3C\",\"bO1\",536870913]],[\"^3R\",[45,\"^2B\",[\"^ \",\"^3T\",\"~:date\",\"^3Y\",true,\"^4:\",\"~:block-below\"],536870913]],[\"^3R\",[45,\"^2R\",\"Deadline\",536870913]],[\"^3R\",[45,\"^3<\",\"property\",536870913]],[\"^3R\",[45,\"^1G\",1727187033525,536870913]],[\"^3R\",[45,\"^1A\",\"~u00000002-2149-5604-4000-000000000000\",536870913]],[\"^3R\",[45,\"^@\",\"^A\",536870913]],[\"^3R\",[45,\"^7\",\"^1[\",536870913]],[\"^3R\",[45,\"^?\",true,536870913]],[\"^3R\",[45,\"^J\",\"^K\",536870913]],[\"^3R\",[45,\"^18\",true,536870913]],[\"^3R\",[46,\"^29\",1727187033526,536870913]],[\"^3R\",[46,\"^2O\",\"^3S\",536870913]],[\"^3R\",[46,\"^3H\",\"icon\",536870913]],[\"^3R\",[46,\"^3C\",\"bO2\",536870913]],[\"^3R\",[46,\"^2B\",[\"^ \",\"^3T\",\"^48\"],536870913]],[\"^3R\",[46,\"^2R\",\"Icon\",536870913]],[\"^3R\",[46,\"^3<\",\"property\",536870913]],[\"^3R\",[46,\"^1G\",1727187033526,536870913]],[\"^3R\",[46,\"^1A\",\"~u00000002-5891-2328-5000-000000000000\",536870913]],[\"^3R\",[46,\"^@\",\"^A\",536870913]],[\"^3R\",[46,\"^7\",\"^25\",536870913]],[\"^3R\",[46,\"^?\",true,536870913]],[\"^3R\",[46,\"^18\",true,536870913]],[\"^3R\",[47,\"^29\",1727187033526,536870913]],[\"^3R\",[47,\"^2O\",\"^3S\",536870913]],[\"^3R\",[47,\"^3H\",\"public\",536870913]],[\"^3R\",[47,\"^3C\",\"bO3\",536870913]],[\"^3R\",[47,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3V\",true,\"^3X\",\"^3W\",\"^3Y\",true],536870913]],[\"^3R\",[47,\"^2R\",\"public\",536870913]],[\"^3R\",[47,\"^3<\",\"property\",536870913]],[\"^3R\",[47,\"^1G\",1727187033526,536870913]],[\"^3R\",[47,\"^1A\",\"~u00000002-1705-3327-6500-000000000000\",536870913]],[\"^3R\",[47,\"^@\",\"^A\",536870913]],[\"^3R\",[47,\"^7\",\"^Q\",536870913]],[\"^3R\",[47,\"^?\",true,536870913]],[\"^3R\",[47,\"^18\",true,536870913]],[\"^3R\",[48,\"^29\",1727187033526,536870913]],[\"^3R\",[48,\"^2O\",\"^3S\",536870913]],[\"^3R\",[48,\"^3H\",\"exclude-from-graph-view\",536870913]],[\"^3R\",[48,\"^3C\",\"bO4\",536870913]],[\"^3R\",[48,\"^2B\",[\"^ \",\"^3T\",\"^3U\",\"^3V\",true,\"^3X\",\"^3W\",\"^3Y\",true],536870913]],[\"^3R\",[48,\"^2R\",\"exclude-from-graph-view\",536870913]],[\"^3R\",[48,\"^3<\",\"property\",536870913]],[\"^3R\",[48,\"^1G\",1727187033526,536870913]],[\"^3R\",[48,\"^1A\",\"~u00000002-4524-3306-5000-000000000000\",536870913]],[\"^3R\",[48,\"^@\",\"^A\",536870913]],[\"^3R\",[48,\"^7\",\"^2@\",536870913]],[\"^3R\",[48,\"^?\",true,536870913]],[\"^3R\",[48,\"^18\",true,536870913]],[\"^3R\",[49,\"^29\",1727187033526,536870913]],[\"^3R\",[49,\"^2O\",\"^3S\",536870913]],[\"^3R\",[49,\"^3H\",\"description\",536870913]],[\"^3R\",[49,\"^3C\",\"bO5\",536870913]],[\"^3R\",[49,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",true],536870913]],[\"^3R\",[49,\"^2R\",\"Description\",536870913]],[\"^3R\",[49,\"^3<\",\"property\",536870913]],[\"^3R\",[49,\"^1G\",1727187033526,536870913]],[\"^3R\",[49,\"^1A\",\"~u00000002-3362-3620-0000-000000000000\",536870913]],[\"^3R\",[49,\"^@\",\"^A\",536870913]],[\"^3R\",[49,\"^7\",\"^2E\",536870913]],[\"^3R\",[49,\"^?\",true,536870913]],[\"^3R\",[49,\"^J\",\"^K\",536870913]],[\"^3R\",[49,\"^18\",true,536870913]],[\"^3R\",[50,\"^29\",1727187033526,536870913]],[\"^3R\",[50,\"^2O\",\"^3S\",536870913]],[\"^3R\",[50,\"^3H\",\"view type\",536870913]],[\"^3R\",[50,\"^3C\",\"bO6\",536870913]],[\"^3R\",[50,\"^2B\",[\"^ \",\"^3T\",\"^42\",\"^3Y\",false,\"^3V\",true],536870913]],[\"^3R\",[50,\"^2R\",\"View Type\",536870913]],[\"^3R\",[50,\"^3<\",\"property\",536870913]],[\"^3R\",[50,\"^1G\",1727187033526,536870913]],[\"^3R\",[50,\"^1A\",\"~u00000002-2182-3760-7000-000000000000\",536870913]],[\"^3R\",[50,\"^@\",\"^A\",536870913]],[\"^3R\",[50,\"^7\",\"^1=\",536870913]],[\"^3R\",[50,\"^?\",true,536870913]],[\"^3R\",[50,\"^J\",\"^K\",536870913]],[\"^3R\",[50,\"^18\",true,536870913]],[\"^3R\",[51,\"^20\",50,536870913]],[\"^3R\",[51,\"^29\",1727187033526,536870913]],[\"^3R\",[51,\"^2O\",\"^3S\",536870913]],[\"^3R\",[51,\"^3C\",\"bO7\",536870913]],[\"^3R\",[51,\"^3G\",50,536870913]],[\"^3R\",[51,\"^38\",50,536870913]],[\"^3R\",[51,\"^2R\",\"Table View\",536870913]],[\"^3R\",[51,\"^3<\",\"closed value\",536870913]],[\"^3R\",[51,\"^1G\",1727187033526,536870913]],[\"^3R\",[51,\"^1A\",\"~u00000002-1942-5424-0000-000000000000\",536870913]],[\"^3R\",[51,\"^7\",\"^6\",536870913]],[\"^3R\",[51,\"^18\",true,536870913]],[\"^3R\",[51,\"^2J\",50,536870913]],[\"^3R\",[52,\"^20\",50,536870913]],[\"^3R\",[52,\"^29\",1727187033526,536870913]],[\"^3R\",[52,\"^2O\",\"^3S\",536870913]],[\"^3R\",[52,\"^3C\",\"bO8\",536870913]],[\"^3R\",[52,\"^3G\",50,536870913]],[\"^3R\",[52,\"^38\",50,536870913]],[\"^3R\",[52,\"^2R\",\"List View\",536870913]],[\"^3R\",[52,\"^3<\",\"closed value\",536870913]],[\"^3R\",[52,\"^1G\",1727187033526,536870913]],[\"^3R\",[52,\"^1A\",\"~u00000002-1164-8285-0200-000000000000\",536870913]],[\"^3R\",[52,\"^7\",\"^1M\",536870913]],[\"^3R\",[52,\"^18\",true,536870913]],[\"^3R\",[52,\"^2J\",50,536870913]],[\"^3R\",[53,\"^29\",1727187033526,536870913]],[\"^3R\",[53,\"^2O\",\"^3S\",536870913]],[\"^3R\",[53,\"^3H\",\"sorting\",536870913]],[\"^3R\",[53,\"^3C\",\"bO9\",536870913]],[\"^3R\",[53,\"^2B\",[\"^ \",\"^3T\",\"~:coll\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[53,\"^2R\",\"sorting\",536870913]],[\"^3R\",[53,\"^3<\",\"property\",536870913]],[\"^3R\",[53,\"^1G\",1727187033526,536870913]],[\"^3R\",[53,\"^1A\",\"~u00000002-2081-0259-4000-000000000000\",536870913]],[\"^3R\",[53,\"^@\",\"^A\",536870913]],[\"^3R\",[53,\"^7\",\"^L\",536870913]],[\"^3R\",[53,\"^?\",true,536870913]],[\"^3R\",[53,\"^18\",true,536870913]],[\"^3R\",[54,\"^29\",1727187033526,536870913]],[\"^3R\",[54,\"^2O\",\"^3S\",536870913]],[\"^3R\",[54,\"^3H\",\"filters\",536870913]],[\"^3R\",[54,\"^3C\",\"bOA\",536870913]],[\"^3R\",[54,\"^2B\",[\"^ \",\"^3T\",\"^4@\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[54,\"^2R\",\"filters\",536870913]],[\"^3R\",[54,\"^3<\",\"property\",536870913]],[\"^3R\",[54,\"^1G\",1727187033526,536870913]],[\"^3R\",[54,\"^1A\",\"~u00000002-1702-3936-3300-000000000000\",536870913]],[\"^3R\",[54,\"^@\",\"^A\",536870913]],[\"^3R\",[54,\"^7\",\"^2Y\",536870913]],[\"^3R\",[54,\"^?\",true,536870913]],[\"^3R\",[54,\"^18\",true,536870913]],[\"^3R\",[55,\"^29\",1727187033526,536870913]],[\"^3R\",[55,\"^2O\",\"^3S\",536870913]],[\"^3R\",[55,\"^3H\",\"hidden-columns\",536870913]],[\"^3R\",[55,\"^3C\",\"bOB\",536870913]],[\"^3R\",[55,\"^2B\",[\"^ \",\"^3T\",\"^46\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[55,\"^2R\",\"hidden-columns\",536870913]],[\"^3R\",[55,\"^3<\",\"property\",536870913]],[\"^3R\",[55,\"^1G\",1727187033526,536870913]],[\"^3R\",[55,\"^1A\",\"~u00000002-9750-5719-2000-000000000000\",536870913]],[\"^3R\",[55,\"^@\",\"^13\",536870913]],[\"^3R\",[55,\"^7\",\"^1D\",536870913]],[\"^3R\",[55,\"^?\",true,536870913]],[\"^3R\",[55,\"^18\",true,536870913]],[\"^3R\",[56,\"^29\",1727187033526,536870913]],[\"^3R\",[56,\"^2O\",\"^3S\",536870913]],[\"^3R\",[56,\"^3H\",\"ordered-columns\",536870913]],[\"^3R\",[56,\"^3C\",\"bOC\",536870913]],[\"^3R\",[56,\"^2B\",[\"^ \",\"^3T\",\"^4@\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[56,\"^2R\",\"ordered-columns\",536870913]],[\"^3R\",[56,\"^3<\",\"property\",536870913]],[\"^3R\",[56,\"^1G\",1727187033526,536870913]],[\"^3R\",[56,\"^1A\",\"~u00000002-1485-5871-0000-000000000000\",536870913]],[\"^3R\",[56,\"^@\",\"^A\",536870913]],[\"^3R\",[56,\"^7\",\"^35\",536870913]],[\"^3R\",[56,\"^?\",true,536870913]],[\"^3R\",[56,\"^18\",true,536870913]],[\"^3R\",[57,\"^29\",1727187033526,536870913]],[\"^3R\",[57,\"^2O\",\"^3S\",536870913]],[\"^3R\",[57,\"^3H\",\"sized-columns\",536870913]],[\"^3R\",[57,\"^3C\",\"bOD\",536870913]],[\"^3R\",[57,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[57,\"^2R\",\"sized-columns\",536870913]],[\"^3R\",[57,\"^3<\",\"property\",536870913]],[\"^3R\",[57,\"^1G\",1727187033526,536870913]],[\"^3R\",[57,\"^1A\",\"~u00000002-1675-5105-5500-000000000000\",536870913]],[\"^3R\",[57,\"^@\",\"^A\",536870913]],[\"^3R\",[57,\"^7\",\"^11\",536870913]],[\"^3R\",[57,\"^?\",true,536870913]],[\"^3R\",[57,\"^18\",true,536870913]],[\"^3R\",[58,\"^29\",1727187033526,536870913]],[\"^3R\",[58,\"^2O\",\"^3S\",536870913]],[\"^3R\",[58,\"^3H\",\"view-for\",536870913]],[\"^3R\",[58,\"^3C\",\"bOE\",536870913]],[\"^3R\",[58,\"^2B\",[\"^ \",\"^3T\",\"^3[\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[58,\"^2R\",\"view-for\",536870913]],[\"^3R\",[58,\"^3<\",\"property\",536870913]],[\"^3R\",[58,\"^1G\",1727187033526,536870913]],[\"^3R\",[58,\"^1A\",\"~u00000002-3627-4319-0000-000000000000\",536870913]],[\"^3R\",[58,\"^@\",\"^A\",536870913]],[\"^3R\",[58,\"^7\",\"^2H\",536870913]],[\"^3R\",[58,\"^?\",true,536870913]],[\"^3R\",[58,\"^J\",\"^K\",536870913]],[\"^3R\",[58,\"^18\",true,536870913]],[\"^3R\",[59,\"^29\",1727187033526,536870913]],[\"^3R\",[59,\"^2O\",\"^3S\",536870913]],[\"^3R\",[59,\"^3H\",\"remote-metadata\",536870913]],[\"^3R\",[59,\"^3C\",\"bOF\",536870913]],[\"^3R\",[59,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",true,\"^3Y\",false],536870913]],[\"^3R\",[59,\"^2R\",\"remote-metadata\",536870913]],[\"^3R\",[59,\"^3<\",\"property\",536870913]],[\"^3R\",[59,\"^1G\",1727187033526,536870913]],[\"^3R\",[59,\"^1A\",\"~u00000002-9907-5046-9000-000000000000\",536870913]],[\"^3R\",[59,\"^@\",\"^A\",536870913]],[\"^3R\",[59,\"^7\",\"^3B\",536870913]],[\"^3R\",[59,\"^?\",true,536870913]],[\"^3R\",[59,\"^18\",true,536870913]],[\"^3R\",[60,\"^29\",1727187033526,536870913]],[\"^3R\",[60,\"^2O\",\"^3S\",536870913]],[\"^3R\",[60,\"^3H\",\"due\",536870913]],[\"^3R\",[60,\"^3C\",\"bOG\",536870913]],[\"^3R\",[60,\"^2B\",[\"^ \",\"^3T\",\"~:datetime\",\"^3V\",false,\"^3Y\",false],536870913]],[\"^3R\",[60,\"^2R\",\"Due\",536870913]],[\"^3R\",[60,\"^3<\",\"property\",536870913]],[\"^3R\",[60,\"^1G\",1727187033526,536870913]],[\"^3R\",[60,\"^1A\",\"~u00000002-1089-0805-4900-000000000000\",536870913]],[\"^3R\",[60,\"^@\",\"^A\",536870913]],[\"^3R\",[60,\"^7\",\"^3D\",536870913]],[\"^3R\",[60,\"^?\",true,536870913]],[\"^3R\",[60,\"^18\",true,536870913]],[\"^3R\",[61,\"^29\",1727187033526,536870913]],[\"^3R\",[61,\"^2O\",\"^3S\",536870913]],[\"^3R\",[61,\"^3H\",\"state\",536870913]],[\"^3R\",[61,\"^3C\",\"bOH\",536870913]],[\"^3R\",[61,\"^2B\",[\"^ \",\"^3T\",\"^48\",\"^3V\",false,\"^3Y\",false],536870913]],[\"^3R\",[61,\"^2R\",\"State\",536870913]],[\"^3R\",[61,\"^3<\",\"property\",536870913]],[\"^3R\",[61,\"^1G\",1727187033526,536870913]],[\"^3R\",[61,\"^1A\",\"~u00000002-1165-1650-8700-000000000000\",536870913]],[\"^3R\",[61,\"^@\",\"^A\",536870913]],[\"^3R\",[61,\"^7\",\"^>\",536870913]],[\"^3R\",[61,\"^?\",true,536870913]],[\"^3R\",[61,\"^18\",true,536870913]],[\"^3R\",[62,\"^29\",1727187033526,536870913]],[\"^3R\",[62,\"^2O\",\"^3S\",536870913]],[\"^3R\",[62,\"^3H\",\"task\",536870913]],[\"^3R\",[62,\"^2R\",\"Task\",536870913]],[\"^3R\",[62,\"^3<\",\"class\",536870913]],[\"^3R\",[62,\"^1G\",1727187033526,536870913]],[\"^3R\",[62,\"^1A\",\"~u00000002-1282-1814-5700-000000000000\",536870913]],[\"^3R\",[62,\"^7\",\"^2:\",536870913]],[\"^3R\",[62,\"^18\",true,536870913]],[\"^3R\",[62,\"^1J\",6,536870913]],[\"^3R\",[62,\"^1O\",33,536870913]],[\"^3R\",[62,\"^1O\",40,536870913]],[\"^3R\",[62,\"^1O\",45,536870913]],[\"^3R\",[63,\"^29\",1727187033527,536870913]],[\"^3R\",[63,\"^2O\",\"^3S\",536870913]],[\"^3R\",[63,\"^3H\",\"journal\",536870913]],[\"^3R\",[63,\"^2R\",\"Journal\",536870913]],[\"^3R\",[63,\"^3<\",\"class\",536870913]],[\"^3R\",[63,\"^1G\",1727187033527,536870913]],[\"^3R\",[63,\"^1A\",\"~u00000002-1979-7410-8100-000000000000\",536870913]],[\"^3R\",[63,\"^7\",\"^3=\",536870913]],[\"^3R\",[63,\"^18\",true,536870913]],[\"^3R\",[63,\"^1J\",6,536870913]],[\"^3R\",[63,\"^3\",\"MMM do, yyyy\",536870913]],[\"^3R\",[64,\"^29\",1727187033527,536870913]],[\"^3R\",[64,\"^2O\",\"^3S\",536870913]],[\"^3R\",[64,\"^3H\",\"query\",536870913]],[\"^3R\",[64,\"^2R\",\"Query\",536870913]],[\"^3R\",[64,\"^3<\",\"class\",536870913]],[\"^3R\",[64,\"^1G\",1727187033527,536870913]],[\"^3R\",[64,\"^1A\",\"~u00000002-2324-8016-6000-000000000000\",536870913]],[\"^3R\",[64,\"^7\",\"^5\",536870913]],[\"^3R\",[64,\"^18\",true,536870913]],[\"^3R\",[64,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[64,\"^1J\",6,536870913]],[\"^3R\",[64,\"^1O\",13,536870913]],[\"^3R\",[65,\"^29\",1727187033527,536870913]],[\"^3R\",[65,\"^2O\",\"^3S\",536870913]],[\"^3R\",[65,\"^3H\",\"advanced query\",536870913]],[\"^3R\",[65,\"^2R\",\"Advanced query\",536870913]],[\"^3R\",[65,\"^3<\",\"class\",536870913]],[\"^3R\",[65,\"^1G\",1727187033527,536870913]],[\"^3R\",[65,\"^1A\",\"~u00000002-1141-5857-5800-000000000000\",536870913]],[\"^3R\",[65,\"^7\",\"^=\",536870913]],[\"^3R\",[65,\"^18\",true,536870913]],[\"^3R\",[65,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[65,\"^1J\",64,536870913]],[\"^3R\",[66,\"^29\",1727187033527,536870913]],[\"^3R\",[66,\"^2O\",\"^3S\",536870913]],[\"^3R\",[66,\"^3H\",\"card\",536870913]],[\"^3R\",[66,\"^2R\",\"Card\",536870913]],[\"^3R\",[66,\"^3<\",\"class\",536870913]],[\"^3R\",[66,\"^1G\",1727187033527,536870913]],[\"^3R\",[66,\"^1A\",\"~u00000002-1358-2811-0900-000000000000\",536870913]],[\"^3R\",[66,\"^7\",\"^H\",536870913]],[\"^3R\",[66,\"^18\",true,536870913]],[\"^3R\",[66,\"^1J\",6,536870913]],[\"^3R\",[66,\"^1O\",60,536870913]],[\"^3R\",[66,\"^1O\",61,536870913]],[\"^3R\",[67,\"^29\",1727187033527,536870913]],[\"^3R\",[67,\"^2O\",\"^3S\",536870913]],[\"^3R\",[67,\"^3H\",\"cards\",536870913]],[\"^3R\",[67,\"^2R\",\"Cards\",536870913]],[\"^3R\",[67,\"^3<\",\"class\",536870913]],[\"^3R\",[67,\"^1G\",1727187033527,536870913]],[\"^3R\",[67,\"^1A\",\"~u00000002-1284-2651-6700-000000000000\",536870913]],[\"^3R\",[67,\"^7\",\"^P\",536870913]],[\"^3R\",[67,\"^18\",true,536870913]],[\"^3R\",[67,\"^25\",[\"^ \",\"^3T\",\"^4<\",\"^4=\",\"search\"],536870913]],[\"^3R\",[67,\"^1J\",64,536870913]],[\"^3R\",[68,\"^1A\",\"~u66f2c859-0e01-4f36-81c2-db5c0eb86adf\",536870913]],[\"^3R\",[68,\"^V\",\"{:meta/version 1\\n\\n ;; Set the preferred format.\\n ;; This is _only_ for file graphs.\\n ;; Available options:\\n ;; - Markdown (default)\\n ;; - Org\\n ;; :preferred-format \\\"Markdown\\\"\\n\\n ;; Set the preferred workflow style.\\n ;; This is _only_ for file graphs.\\n ;; Available options:\\n ;; - :now for NOW/LATER style (default)\\n ;; - :todo for TODO/DOING style\\n ;; Exclude directories/files.\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :hidden [\\\"/archived\\\" \\\"/test.md\\\" \\\"../assets/archived\\\"]\\n ;; Define the default journal page template.\\n ;; Enter the template name between the quotes.\\n :default-templates\\n {:journals \\\"\\\"}\\n\\n ;; Set a custom date format for the journal page title.\\n ;; This is _only_ for file graphs.\\n ;; Default value: \\\"MMM do, yyyy\\\"\\n ;; e.g., \\\"Jan 19th, 2038\\\"\\n ;; Example usage e.g., \\\"Tue 19th, Jan 2038\\\"\\n ;; :journal/page-title-format \\\"EEE do, MMM yyyy\\\"\\n\\n ;; Specify the journal filename format using a valid date format string.\\n ;; !Warning:\\n ;; This configuration is not retroactive and affects only new journals.\\n ;; To show old journal files in the app, manually rename the files in the\\n ;; journal directory to match the new format.\\n ;; Default value: \\\"yyyy_MM_dd\\\"\\n ;; :journal/file-name-format \\\"yyyy_MM_dd\\\"\\n\\n ;; Enable tooltip preview on hover.\\n ;; Default value: true\\n :ui/enable-tooltip? true\\n\\n ;; Display brackets [[]] around page references.\\n ;; Default value: true\\n ;; :ui/show-brackets? true\\n\\n ;; Display all lines of a block when referencing ((block)).\\n ;; Default value: false\\n :ui/show-full-blocks? false\\n\\n ;; Automatically expand block references when zooming in.\\n ;; Default value: true\\n :ui/auto-expand-block-refs? true\\n\\n ;; Hide empty block properties\\n ;; This is _only_ for DB graphs.\\n ;; Default value: false\\n ;; :ui/hide-empty-properties? false\\n\\n ;; Disable accent marks when searching.\\n ;; After changing this setting, rebuild the search index by pressing (^C ^S).\\n ;; Default value: true\\n :feature/enable-search-remove-accents? true\\n\\n ;; Enable journals.\\n ;; Default value: true\\n ;; :feature/enable-journals? true\\n\\n ;; Enable flashcards.\\n ;; Default value: true\\n ;; :feature/enable-flashcards? true\\n\\n ;; Enable whiteboards.\\n ;; Default value: true\\n ;; :feature/enable-whiteboards? true\\n\\n ;; Disable the journal's built-in 'Scheduled tasks and deadlines' query.\\n ;; Default value: false\\n ;; :feature/disable-scheduled-and-deadline-query? false\\n\\n ;; Specify the number of days displayed in the future for\\n ;; the 'scheduled tasks and deadlines' query.\\n ;; Example usage:\\n ;; Display all scheduled and deadline blocks for the next 14 days:\\n ;; :scheduled/future-days 14\\n ;; Default value: 7\\n ;; :scheduled/future-days 7\\n\\n ;; Specify the first day of the week.\\n ;; Available options:\\n ;; - integer from 0 to 6 (Monday to Sunday)\\n ;; Default value: 6 (Sunday)\\n :start-of-week 6\\n\\n ;; Specify a custom CSS import.\\n ;; This option takes precedence over the local `logseq/custom.css` file.\\n ;; Example usage:\\n ;; :custom-css-url \\\"@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');\\\"\\n\\n ;; Specify a custom JS import.\\n ;; This option takes precedence over the local `logseq/custom.js` file.\\n ;; Example usage:\\n ;; :custom-js-url \\\"https://cdn.logseq.com/custom.js\\\"\\n\\n ;; Set bullet indentation when exporting\\n ;; Available options:\\n ;; - `:eight-spaces` as eight spaces\\n ;; - `:four-spaces` as four spaces\\n ;; - `:two-spaces` as two spaces\\n ;; - `:tab` as a tab character (default)\\n ;; :export/bullet-indentation :tab\\n\\n ;; Publish all pages within the Graph\\n ;; Regardless of whether individual pages have been marked as public.\\n ;; Default value: false\\n ;; :publishing/all-pages-public? false\\n\\n ;; Define the default home page and sidebar status.\\n ;; If unspecified, the journal page will be loaded on startup and the right sidebar will stay hidden.\\n ;; The `:page` value represents the name of the page displayed at startup.\\n ;; Available options for `:sidebar` are:\\n ;; - \\\"Contents\\\" to display the Contents page in the right sidebar.\\n ;; - A specific page name to display in the right sidebar.\\n ;; - An array of multiple pages, e.g., [\\\"Contents\\\" \\\"Page A\\\" \\\"Page B\\\"].\\n ;; If `:sidebar` remains unset, the right sidebar will stay hidden.\\n ;; Examples:\\n ;; 1. Set \\\"Changelog\\\" as the home page and display \\\"Contents\\\" in the right sidebar:\\n ;; :default-home {:page \\\"Changelog\\\", :sidebar \\\"Contents\\\"}\\n ;; 2. Set \\\"Jun 3rd, 2021\\\" as the home page without the right sidebar:\\n ;; :default-home {:page \\\"Jun 3rd, 2021\\\"}\\n ;; 3. Set \\\"home\\\" as the home page and display multiple pages in the right sidebar:\\n ;; :default-home {:page \\\"home\\\", :sidebar [\\\"Page A\\\" \\\"Page B\\\"]}\\n\\n ;; Set the default location for storing notes.\\n ;; Default value: \\\"pages\\\"\\n ;; :pages-directory \\\"pages\\\"\\n\\n ;; Set the default location for storing journals.\\n ;; Default value: \\\"journals\\\"\\n ;; :journals-directory \\\"journals\\\"\\n\\n ;; Set the default location for storing whiteboards.\\n ;; Default value: \\\"whiteboards\\\"\\n ;; :whiteboards-directory \\\"whiteboards\\\"\\n\\n ;; Enabling this option converts\\n ;; This is _only_ for file graphs.\\n ;; [[Grant Ideas]] to [[file:./grant_ideas.org][Grant Ideas]] for org-mode.\\n ;; For more information, visit https://github.com/logseq/logseq/issues/672\\n ;; :org-mode/insert-file-link? false\\n\\n ;; Configure custom shortcuts.\\n ;; Syntax:\\n ;; 1. + indicates simultaneous key presses, e.g., `Ctrl+Shift+a`.\\n ;; 2. A space between keys represents key chords, e.g., `t s` means\\n ;; pressing `t` followed by `s`.\\n ;; 3. mod refers to `Ctrl` for Windows/Linux and `Command` for Mac.\\n ;; 4. Use false to disable a specific shortcut.\\n ;; 5. You can define multiple bindings for a single action, e.g., [\\\"ctrl+j\\\" \\\"down\\\"].\\n ;; The full list of configurable shortcuts is available at:\\n ;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs\\n ;; Example:\\n ;; :shortcuts\\n ;; {:editor/new-block \\\"enter\\\"\\n ;; :editor/new-line \\\"shift+enter\\\"\\n ;; :editor/insert-link \\\"mod+shift+k\\\"\\n ;; :editor/highlight false\\n ;; :ui/toggle-settings \\\"t s\\\"\\n ;; :editor/up [\\\"ctrl+k\\\" \\\"up\\\"]\\n ;; :editor/down [\\\"ctrl+j\\\" \\\"down\\\"]\\n ;; :editor/left [\\\"ctrl+h\\\" \\\"left\\\"]\\n ;; :editor/right [\\\"ctrl+l\\\" \\\"right\\\"]}\\n :shortcuts {}\\n\\n ;; Configure the behavior of pressing Enter in document mode.\\n ;; if set to true, pressing Enter will create a new block.\\n ;; Default value: false\\n :shortcut/doc-mode-enter-for-new-block? false\\n\\n ;; Block content larger than `block/title-max-length` will not be searchable\\n ;; or editable for performance.\\n ;; Default value: 10000\\n :block/title-max-length 10000\\n\\n ;; Display command documentation on hover.\\n ;; Default value: true\\n :ui/show-command-doc? true\\n\\n ;; Display empty bullet points.\\n ;; Default value: false\\n :ui/show-empty-bullets? false\\n\\n ;; Pre-defined :view function to use with advanced queries.\\n :query/views\\n {:pprint\\n (fn [r] [:pre.code (pprint r)])}\\n\\n ;; Advanced queries `:result-transform` function.\\n ;; Transform the query result before displaying it.\\n ;; Example usage for DB graphs:\\n;; :query/result-transforms\\n;; {:sort-by-priority\\n;; (fn [result] (sort-by (fn [h] (get h :logseq.property/priority \\\"Z\\\")) result))}\\n\\n;; Queries will be displayed at the bottom of today's journal page.\\n;; Example usage:\\n;; :default-queries\\n;; {:journals []}\\n\\n ;; Add custom commands to the command palette\\n ;; Example usage:\\n ;; :commands\\n ;; [\\n ;; [\\\"js\\\" \\\"Javascript\\\"]\\n ;; [\\\"md\\\" \\\"Markdown\\\"]\\n ;; ]\\n :commands []\\n\\n ;; Enable collapsing blocks with titles but no children.\\n ;; By default, only blocks with children can be collapsed.\\n ;; Setting `:outliner/block-title-collapse-enabled?` to true allows collapsing\\n ;; blocks with titles (multiple lines) and content. For example:\\n ;; - block title\\n ;; block content\\n ;; Default value: false\\n :outliner/block-title-collapse-enabled? false\\n\\n ;; Macros replace texts and will make you more productive.\\n ;; Example usage:\\n ;; Change the :macros value below to:\\n ;; {\\\"poem\\\" \\\"Rose is $1, violet's $2. Life's ordered: Org assists you.\\\"}\\n ;; input \\\"{{poem red,blue}}\\\"\\n ;; becomes\\n ;; Rose is red, violet's blue. Life's ordered: Org assists you.\\n :macros {}\\n\\n ;; Configure the default expansion level for linked references.\\n ;; For example, consider the following block hierarchy:\\n ;; - a [[page]] (level 1)\\n ;; - b (level 2)\\n ;; - c (level 3)\\n ;; - d (level 4)\\n ;;\\n ;; With the default value of level 2, block b will be collapsed.\\n ;; If the level's value is set to 3, block c will be collapsed.\\n ;; Default value: 2\\n :ref/default-open-blocks-level 2\\n\\n ;; Configure the threshold for linked references before collapsing.\\n ;; Default value: 100\\n :ref/linked-references-collapsed-threshold 50\\n\\n ;; Graph view configuration.\\n ;; Example usage:\\n ;; :graph/settings\\n ;; {:orphan-pages? true ; Default value: true\\n ;; :builtin-pages? false ; Default value: false\\n ;; :excluded-pages? false ; Default value: false\\n ;; :journal? false} ; Default value: false\\n\\n ;; Graph view configuration.\\n ;; Example usage:\\n ;; :graph/forcesettings\\n ;; {:link-dist 180 ; Default value: 180\\n ;; :charge-strength -600 ; Default value: -600\\n ;; :charge-range 600} ; Default value: 600\\n\\n\\n ;; Favorites to list on the left sidebar\\n ;; This is _only_ for file graphs.\\n ;; Set flashcards interval.\\n ;; Expected value:\\n ;; - Float between 0 and 1\\n ;; higher values result in faster changes to the next review interval.\\n ;; Default value: 0.5\\n ;; :srs/learning-fraction 0.5\\n\\n ;; Set the initial interval after the first successful review of a card.\\n ;; Default value: 4\\n ;; :srs/initial-interval 4\\n\\n ;; Hide specific block properties.\\n ;; Example usage:\\n ;; :block-hidden-properties #{:public :icon}\\n\\n ;; Create a page for all properties.\\n ;; This is _only_ for file graphs.\\n ;; Default value: true\\n;; Properties to exclude from having property pages\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :property-pages/excludelist #{:duration :author}\\n\\n ;; By default, property value separated by commas will not be treated as\\n ;; page references. You can add properties to enable it.\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :property/separated-by-commas #{:alias :tags}\\n\\n ;; Properties that are ignored when parsing property values for references\\n ;; This is _only_ for file graphs.\\n ;; Example usage:\\n ;; :ignored-page-references-keywords #{:author :website}\\n\\n ;; logbook configuration.\\n ;; :logbook/settings\\n ;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated\\n ;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking\\n ;; :enabled-in-timestamped-blocks false ;don't display logbook at all\\n ;; }\\n\\n ;; Mobile photo upload configuration.\\n ;; :mobile/photo\\n ;; {:allow-editing? true\\n ;; :quality 80}\\n\\n ;; Mobile features options\\n ;; Gestures\\n ;; Example usage:\\n ;; :mobile\\n ;; {:gestures/disabled-in-block-with-tags [\\\"kanban\\\"]}\\n\\n ;; Extra CodeMirror options\\n ;; See https://codemirror.net/5/doc/manual.html#config for possible options\\n ;; Example usage:\\n ;; :editor/extra-codemirror-options\\n ;; {:lineWrapping false ; Default value: false\\n ;; :lineNumbers true ; Default value: true\\n ;; :readOnly false} ; Default value: false\\n\\n ;; Enable logical outdenting\\n ;; Default value: false\\n ;; :editor/logical-outdenting? false\\n\\n ;; Prefer pasting the file when text and a file are in the clipboard.\\n ;; Default value: false\\n ;; :editor/preferred-pasting-file? false\\n\\n ;; Quick capture templates for receiving content from other apps.\\n ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded\\n ;; by receiving content from other apps. Note: the {} cannot be omitted.\\n ;; - {time}: capture time\\n ;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference\\n ;; - {text}: text that users selected before sharing.\\n ;; - {url}: URL or assets path for media files stored in Logseq.\\n ;; You can also reorder them or use only one or two of them in the template.\\n ;; You can also insert or format any text in the template, as shown in the following examples.\\n ;; :quick-capture-templates\\n ;; {:text \\\"[[quick capture]] **{time}**: {text} from {url}\\\"\\n ;; :media \\\"[[quick capture]] **{time}**: {url}\\\"}\\n\\n ;; Quick capture options.\\n ;; - insert-today? Insert the capture at the end of today's journal page (boolean).\\n ;; - redirect-page? Redirect to the quick capture page after capturing (boolean).\\n ;; - default-page The default page to capture to if insert-today? is false (string).\\n ;; :quick-capture-options\\n ;; {:insert-today? false ;; Default value: true\\n ;; :redirect-page? false ;; Default value: false\\n ;; :default-page \\\"quick capture\\\"} ;; Default page: \\\"quick capture\\\"\\n\\n ;; File sync options\\n ;; Ignore these files when syncing, regexp is supported.\\n ;; :file-sync/ignore-files []\\n\\n ;; Configure the Enter key behavior for\\n ;; context-aware editing with DWIM (Do What I Mean).\\n ;; context-aware Enter key behavior implies that pressing Enter will\\n ;; have different outcomes based on the context.\\n ;; For instance, pressing Enter within a list generates a new list item,\\n ;; whereas pressing Enter in a block reference opens the referenced block.\\n ;; :dwim/settings\\n ;; {:admonition&src? true ;; Default value: true\\n ;; :markup? false ;; Default value: false\\n ;; :block-ref? true ;; Default value: true\\n ;; :page-ref? true ;; Default value: true\\n ;; :properties? true ;; Default value: true\\n ;; :list? false} ;; Default value: false\\n\\n ;; Configure the escaping method for special characters in page titles.\\n ;; This is _only_ for file graphs.\\n ;; Warning:\\n ;; This is a dangerous operation. To modify the setting,\\n ;; you'll need to manually rename all affected files and\\n ;; re-index them on all clients after synchronization.\\n ;; Incorrect handling may result in messy page titles.\\n ;; Available options:\\n ;; - :triple-lowbar (default)\\n ;; ;use triple underscore `___` for slash `/` in page title\\n ;; ;use Percent-encoding for other invalid characters\\n}\\n\",536870913]],[\"^3R\",[68,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[68,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[68,\"^3I\",\"logseq/config.edn\",536870913]],[\"^3R\",[69,\"^1A\",\"~u66f2c859-fb71-49ad-b56f-b177b647ed89\",536870913]],[\"^3R\",[69,\"^V\",\"\",536870913]],[\"^3R\",[69,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[69,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[69,\"^3I\",\"logseq/custom.css\",536870913]],[\"^3R\",[70,\"^1A\",\"~u66f2c859-a95c-4b95-96dc-339b7181e86e\",536870913]],[\"^3R\",[70,\"^V\",\"\",536870913]],[\"^3R\",[70,\"^8\",\"~m1727187033523\",536870913]],[\"^3R\",[70,\"^23\",\"~m1727187033523\",536870913]],[\"^3R\",[70,\"^3I\",\"logseq/custom.js\",536870913]],[\"^3R\",[71,\"^29\",1727187033527,536870913]],[\"^3R\",[71,\"^2O\",\"^3S\",536870913]],[\"^3R\",[71,\"^3H\",\"contents\",536870913]],[\"^3R\",[71,\"^2R\",\"Contents\",536870913]],[\"^3R\",[71,\"^3<\",\"page\",536870913]],[\"^3R\",[71,\"^1G\",1727187033527,536870913]],[\"^3R\",[71,\"^1A\",\"~u66f2c859-d18d-433a-bd24-ab24995cfae1\",536870913]],[\"^3R\",[71,\"^18\",true,536870913]],[\"^3R\",[72,\"^29\",1727187033588,536870914]],[\"^3R\",[72,\"^2O\",\"^3S\",536870914]],[\"^3R\",[72,\"^3H\",\"$$$views\",536870914]],[\"^3R\",[72,\"^2R\",\"$$$views\",536870914]],[\"^3R\",[72,\"^3<\",\"hidden\",536870914]],[\"^3R\",[72,\"^1G\",1727187033588,536870914]],[\"^3R\",[72,\"^1A\",\"~u66f2c859-f1f7-40da-8854-604ef354f7ff\",536870914]],[\"^3R\",[73,\"^29\",1727187033588,536870914]],[\"^3R\",[73,\"^2O\",\"^3S\",536870914]],[\"^3R\",[73,\"^3C\",\"bOI\",536870914]],[\"^3R\",[73,\"^3G\",72,536870914]],[\"^3R\",[73,\"^38\",72,536870914]],[\"^3R\",[73,\"^2R\",\"All Pages Default View\",536870914]],[\"^3R\",[73,\"^1G\",1727187033588,536870914]],[\"^3R\",[73,\"^1A\",\"~u66f2c859-9076-4a30-a788-533c01d02f85\",536870914]],[\"^3R\",[73,\"^18\",true,536870914]],[\"^3R\",[73,\"^2H\",72,536870914]],[\"^3R\",[74,\"^29\",1727187033721,536870915]],[\"^3R\",[74,\"^2O\",\"^3S\",536870915]],[\"^3R\",[74,\"^2L\",20240924,536870915]],[\"^3R\",[74,\"^3H\",\"sep 24th, 2024\",536870915]],[\"^3R\",[74,\"^37\",9,536870918]],[\"^3R\",[74,\"^37\",63,536870918]],[\"^3R\",[74,\"^1R\",9,536870917]],[\"^3R\",[74,\"^1R\",63,536870917]],[\"^3R\",[74,\"^1E\",63,536870915]],[\"^3R\",[74,\"^2R\",\"Sep 24th, 2024\",536870915]],[\"^3R\",[74,\"^C\",536870917,536870918]],[\"^3R\",[74,\"^3<\",\"journal\",536870915]],[\"^3R\",[74,\"^1G\",1727187033721,536870915]],[\"^3R\",[74,\"^1A\",\"~u00000001-2024-0924-0000-000000000000\",536870915]],[\"^3R\",[75,\"^29\",1727187033722,536870915]],[\"^3R\",[75,\"^2O\",\"^3S\",536870915]],[\"^3R\",[75,\"^3C\",\"a0\",536870915]],[\"^3R\",[75,\"^3G\",74,536870915]],[\"^3R\",[75,\"^38\",74,536870915]],[\"^3R\",[75,\"^37\",74,536870918]],[\"^3R\",[75,\"^2R\",\"\",536870915]],[\"^3R\",[75,\"^C\",536870917,536870918]],[\"^3R\",[75,\"^1G\",1727187033722,536870915]],[\"^3R\",[75,\"^1A\",\"~u66f2c859-8d26-4147-b6dc-a7f93fbd3989\",536870915]]]]]]") (def example-db (dt/read-transit-str example-db-transit)) diff --git a/src/test/frontend/db/query_dsl_test.cljs b/src/test/frontend/db/query_dsl_test.cljs index 07a424f6b9..a5457afe59 100644 --- a/src/test/frontend/db/query_dsl_test.cljs +++ b/src/test/frontend/db/query_dsl_test.cljs @@ -651,11 +651,13 @@ prop-d:: [[nada]]"}]) - [[Child page]] - p2 [[Parent page]] - Non linked content"}])) - (is (= ["Non linked content" - "p2" - "p1"] - (map testable-content - (dsl-query "(and [[Parent page]] (not [[Child page]]))"))))) + (is (= (set + ["Non linked content" + "p2" + "p1"]) + (set + (map testable-content + (dsl-query "(and [[Parent page]] (not [[Child page]]))")))))) (deftest between-queries (load-test-files [{:file/path "journals/2020_12_26.md" diff --git a/src/test/frontend/db/reference_test.cljs b/src/test/frontend/db/reference_test.cljs index 69d2a936b6..955f7562f4 100644 --- a/src/test/frontend/db/reference_test.cljs +++ b/src/test/frontend/db/reference_test.cljs @@ -76,7 +76,8 @@ (testing "Linked references without filters" (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references db (:db/id foo))] - (is (= [["baz" 4] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]] (vec ref-pages-count)) + (is (= (set [["baz" 4] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]]) + (set ref-pages-count)) "ref-pages-count check failed") (is (empty? ref-matched-children-ids) "ref-matched-children-ids check failed") @@ -88,7 +89,8 @@ [{:db/id (:db/id foo) :logseq.property.linked-references/includes (:db/id bar)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["baz" 3] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]] (vec ref-pages-count)) + (is (= (set [["baz" 3] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]]) + (set ref-pages-count)) "ref-pages-count check failed") (is (= 7 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -100,7 +102,8 @@ [{:db/id (:db/id foo) :logseq.property.linked-references/includes (:db/id baz)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["baz" 3] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]] (vec ref-pages-count)) + (is (= (set [["baz" 3] ["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 2]]) + (set ref-pages-count)) "ref-pages-count check failed") (is (= 7 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -113,7 +116,7 @@ [{:db/id (:db/id foo) :logseq.property.linked-references/excludes (:db/id bar)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["Journal" 2] ["Jun 11th, 2025" 2] ["baz" 2]] (vec ref-pages-count)) + (is (= (set [["Journal" 2] ["Jun 11th, 2025" 2] ["baz" 2]]) (set ref-pages-count)) "ref-pages-count check failed") (is (= 2 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -126,7 +129,7 @@ [{:db/id (:db/id foo) :logseq.property.linked-references/excludes (:db/id baz)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 1]] (vec ref-pages-count)) + (is (= (set [["Journal" 2] ["Jun 11th, 2025" 2] ["bar" 1]]) (set ref-pages-count)) "ref-pages-count check failed") (is (= 3 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -139,7 +142,7 @@ [{:db/id (:db/id foo) :logseq.property.linked-references/excludes #{(:db/id baz) (:db/id bar)}}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["Journal" 2] ["Jun 11th, 2025" 2]] (vec ref-pages-count)) + (is (= (set [["Journal" 2] ["Jun 11th, 2025" 2]]) (set ref-pages-count)) "ref-pages-count check failed") (is (zero? (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -153,7 +156,7 @@ :logseq.property.linked-references/includes (:db/id bar) :logseq.property.linked-references/excludes (:db/id baz)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["Journal" 1] ["Jun 11th, 2025" 1] ["bar" 1]] (vec ref-pages-count)) + (is (= (set [["Journal" 1] ["Jun 11th, 2025" 1] ["bar" 1]]) (set ref-pages-count)) "ref-pages-count check failed") (is (= 3 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") @@ -167,7 +170,7 @@ :logseq.property.linked-references/includes (:db/id baz) :logseq.property.linked-references/excludes (:db/id bar)}]) (let [{:keys [ref-pages-count ref-blocks ref-matched-children-ids]} (db-reference/get-linked-references @conn (:db/id foo))] - (is (= [["Journal" 2] ["Jun 11th, 2025" 2] ["baz" 2]] (vec ref-pages-count)) + (is (= (set [["Journal" 2] ["Jun 11th, 2025" 2] ["baz" 2]]) (set ref-pages-count)) "ref-pages-count check failed") (is (= 2 (count ref-matched-children-ids)) "ref-matched-children-ids check failed") diff --git a/src/test/frontend/handler/editor_test.cljs b/src/test/frontend/handler/editor_test.cljs index 0b2de3bb05..3d6bb64792 100644 --- a/src/test/frontend/handler/editor_test.cljs +++ b/src/test/frontend/handler/editor_test.cljs @@ -1,11 +1,11 @@ (ns frontend.handler.editor-test - (:require [frontend.handler.editor :as editor] - [frontend.db :as db] - [clojure.test :refer [deftest is testing are use-fixtures]] + (:require [clojure.test :refer [deftest is testing are use-fixtures]] [datascript.core :as d] - [frontend.test.helper :as test-helper :refer [load-test-files]] + [frontend.db :as db] [frontend.db.model :as model] + [frontend.handler.editor :as editor] [frontend.state :as state] + [frontend.test.helper :as test-helper :refer [load-test-files]] [frontend.util.cursor :as cursor])) (use-fixtures :each test-helper/start-and-destroy-db) @@ -239,22 +239,16 @@ (load-test-files [{:file/path "pages/page1.md" :file/content "\n - b1 #foo"}]) - (testing "updating block's content changes content and preserves path-refs" - (let [conn (db/get-db test-helper/test-db false) - block (->> (d/q '[:find (pull ?b [* {:block/path-refs [:block/name]}]) - :where [?b :block/title "b1 #foo"]] - @conn) - ffirst) - prev-path-refs (set (map :block/name (:block/path-refs block))) - _ (assert (= #{"page1" "foo"} prev-path-refs) - "block has expected :block/path-refs") + (testing "updating block's content changes content" + (let [conn (db/get-db test-helper/test-db false) + block (->> (d/q '[:find (pull ?b [*]) + :where [?b :block/title "b1 #foo"]] + @conn) + ffirst) ;; Use same options as edit-box-on-change! - _ (editor/save-block-aux! block "b12 #foo" {:skip-properties? true}) - updated-block (d/pull @conn '[* {:block/path-refs [:block/name]}] [:block/uuid (:block/uuid block)])] - (is (= "b12 #foo" (:block/title updated-block)) "Content updated correctly") - (is (= prev-path-refs - (set (map :block/name (:block/path-refs updated-block)))) - "Path-refs remain the same")))) + _ (editor/save-block-aux! block "b12 #foo" {:skip-properties? true}) + updated-block (d/pull @conn '[*] [:block/uuid (:block/uuid block)])] + (is (= "b12 #foo" (:block/title updated-block)) "Content updated correctly")))) (deftest save-block! (testing "Saving blocks with and without properties" diff --git a/src/test/frontend/handler/repo_test.cljs b/src/test/frontend/handler/repo_test.cljs index b88a0a22bd..fd482d48f2 100644 --- a/src/test/frontend/handler/repo_test.cljs +++ b/src/test/frontend/handler/repo_test.cljs @@ -26,12 +26,12 @@ (docs-graph-helper/docs-graph-assertions db graph-dir (map :file/path files)) (testing "Additional Counts" - (is (= 77370 (count (d/datoms db :eavt))) "Correct datoms count") + (is (= 58149 (count (d/datoms db :eavt))) "Correct datoms count") - (is (= 7095 + (is (= 2065 (ffirst (d/q '[:find (count ?b) - :where [?b :block/path-refs ?bp] [?bp :block/name]] db))) + :where [?b :block/refs ?bp] [?bp :block/name]] db))) "Correct referenced blocks count")))) (deftest parse-files-and-load-to-db-with-block-refs-on-reload