diff --git a/cypress/e2e/database/filter-number.cy.ts b/cypress/e2e/database/filter-number.cy.ts new file mode 100644 index 000000000..69b80077f --- /dev/null +++ b/cypress/e2e/database/filter-number.cy.ts @@ -0,0 +1,375 @@ +/** + * Number Filter Tests + * Migrated from desktop: grid_number_filter_test.dart + * + * Desktop test data (v020GridFileName): + * - 10 rows total + * - Number column: -1, -2, 0.1, 0.2, 1, 2, 10, 11, 12, (empty) + * - 9 rows with numbers, 1 row empty + * + * Tests number field filtering with all conditions: + * - Equal, NotEqual, GreaterThan, LessThan + * - GreaterThanOrEqualTo, LessThanOrEqualTo + * - NumberIsEmpty, NumberIsNotEmpty + */ +import { + setupFilterTest, + loginAndCreateGrid, + addFilterByFieldName, + clickFilterChip, + changeFilterCondition, + deleteFilter, + assertRowCount, + NumberFilterCondition, + generateRandomEmail, +} from '../../support/filter-test-helpers'; +import { + DatabaseFilterSelectors, + DatabaseGridSelectors, + PropertyMenuSelectors, + GridFieldSelectors, + RowControlsSelectors, + waitForReactUpdate, + FieldType, +} from '../../support/selectors'; + +/** + * Add a Number field and return its ID + */ +const addNumberField = (): Cypress.Chainable => { + PropertyMenuSelectors.newPropertyButton().first().scrollIntoView().click({ force: true }); + waitForReactUpdate(1200); + PropertyMenuSelectors.propertyTypeTrigger().first().realHover(); + waitForReactUpdate(600); + PropertyMenuSelectors.propertyTypeOption(FieldType.Number).scrollIntoView().click({ force: true }); + waitForReactUpdate(800); + cy.get('body').type('{esc}'); + waitForReactUpdate(500); + + return GridFieldSelectors.allFieldHeaders() + .last() + .invoke('attr', 'data-testid') + .then((testId) => testId?.replace('grid-field-header-', '') || ''); +}; + +/** + * Type a number into a cell + */ +const typeNumberIntoCell = (fieldId: string, cellIndex: number, value: string): void => { + DatabaseGridSelectors.dataRowCellsForField(fieldId) + .eq(cellIndex) + .should('be.visible') + .scrollIntoView() + .click() + .click(); + + // Type the value and press Enter to save (Escape doesn't save in number cells) + cy.get('input:visible, textarea:visible', { timeout: 8000 }) + .should('exist') + .first() + .clear() + .type(`${value}{enter}`, { delay: 30 }); + cy.wait(500); +}; + +/** + * Add more rows to the grid + */ +const addRows = (count: number): void => { + for (let i = 0; i < count; i++) { + DatabaseGridSelectors.dataRows().last().scrollIntoView(); + RowControlsSelectors.rowAccessoryButton().last().click({ force: true }); + waitForReactUpdate(300); + RowControlsSelectors.rowMenuInsertBelow().click({ force: true }); + waitForReactUpdate(500); + } +}; + +/** + * Setup test data matching desktop v020 database: + * Numbers: -1, -2, 0.1, 0.2, 1, 2, 10, 11, 12, (empty) - 10 rows + */ +const setupV020NumberData = (numberFieldId: string) => { + const numbers = ['-1', '-2', '0.1', '0.2', '1', '2', '10', '11', '12']; + + // Add 7 more rows (default grid has 3 rows, we need 10) + addRows(7); + + // Type numbers into the first 9 rows (row 10 stays empty) + numbers.forEach((num, index) => { + typeNumberIntoCell(numberFieldId, index, num); + }); + // Row 10 (index 9) remains empty +}; + +describe('Database Number Filter Tests (Desktop Parity)', () => { + beforeEach(() => { + setupFilterTest(); + }); + + it('number filter - Equal condition', () => { + // Desktop test: grid_number_filter_test.dart:17-31 + // Expected: Filter for 1 with Equal should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + // Default condition is Equal + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show row with exactly 1 + assertRowCount(1); + }); + + it('number filter - NotEqual condition', () => { + // Desktop test: grid_number_filter_test.dart:33-48 + // Expected: Filter for 1 with NotEqual should show 8 rows (not 1, not empty) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.NotEqual); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show all rows except the one with 1 (8 rows - excludes 1 and empty) + assertRowCount(8); + }); + + it('number filter - GreaterThan condition', () => { + // Desktop test: grid_number_filter_test.dart:50-65 + // Expected: Filter for >1 should show 4 rows (2, 10, 11, 12) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.GreaterThan); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows > 1: 2, 10, 11, 12 (4 rows) + assertRowCount(4); + }); + + it('number filter - LessThan condition', () => { + // Desktop test: grid_number_filter_test.dart:67-82 + // Expected: Filter for <1 should show 4 rows (-2, -1, 0.1, 0.2) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.LessThan); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows < 1: -2, -1, 0.1, 0.2 (4 rows) + assertRowCount(4); + }); + + it('number filter - GreaterThanOrEqualTo condition', () => { + // Desktop test: grid_number_filter_test.dart:84-101 + // Expected: Filter for >=1 should show 5 rows (1, 2, 10, 11, 12) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.GreaterThanOrEqualTo); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows >= 1: 1, 2, 10, 11, 12 (5 rows) + assertRowCount(5); + }); + + it('number filter - LessThanOrEqualTo condition', () => { + // Desktop test: grid_number_filter_test.dart:103-119 + // Expected: Filter for <=1 should show 5 rows (-2, -1, 0.1, 0.2, 1) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.LessThanOrEqualTo); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows <= 1: -2, -1, 0.1, 0.2, 1 (5 rows) + assertRowCount(5); + }); + + it('number filter - NumberIsEmpty condition', () => { + // Desktop test: grid_number_filter_test.dart:121-135 + // Expected: NumberIsEmpty should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.NumberIsEmpty); + + // Should show rows with empty number (1 row in test database) + assertRowCount(1); + }); + + it('number filter - NumberIsNotEmpty condition', () => { + // Desktop test: grid_number_filter_test.dart:137-152 + // Expected: NumberIsNotEmpty should show 9 rows + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.NumberIsNotEmpty); + + // Should show rows with non-empty number (9 rows) + assertRowCount(9); + }); + + it('number filter - negative numbers', () => { + // Desktop test: grid_number_filter_test.dart:154-169 + // Expected: Filter for <0 should show 2 rows (-1, -2) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.LessThan); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('0', { delay: 30 }); + waitForReactUpdate(500); + + // Should show negative numbers: -2, -1 (2 rows) + assertRowCount(2); + }); + + it('number filter - decimal numbers', () => { + // Desktop test: grid_number_filter_test.dart:171-187 + // Expected: Filter for <1 should show 4 rows (0.1, 0.2, -1, -2) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.LessThan); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + + // Should show 0.1, 0.2, -1, -2 (4 rows with values < 1, not including empty) + assertRowCount(4); + }); + + it('number filter - delete filter restores all rows', () => { + // Desktop test: grid_number_filter_test.dart:189-214 + // Expected: After deleting filter, all 10 rows should be visible + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Numbers'); + changeFilterCondition(NumberFilterCondition.GreaterThan); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('100', { delay: 30 }); + waitForReactUpdate(500); + + // No rows match > 100 + assertRowCount(0); + + // Delete the filter + clickFilterChip(); + deleteFilter(); + + // All rows should be visible again + assertRowCount(10); + }); + + it('number filter - change condition dynamically', () => { + // Desktop test: grid_number_filter_test.dart:216-239 + // Tests changing filter condition on the fly + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + addNumberField().then((fieldId) => { + setupV020NumberData(fieldId); + }); + + assertRowCount(10); + + // Add filter with Equal + addFilterByFieldName('Numbers'); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('1', { delay: 30 }); + waitForReactUpdate(500); + assertRowCount(1); + + // Change to GreaterThan + clickFilterChip(); + waitForReactUpdate(300); + changeFilterCondition(NumberFilterCondition.GreaterThan); + // Value is still 1, so should show 2, 10, 11, 12 (4 rows) + assertRowCount(4); + + // Change to NumberIsEmpty (content should be ignored) + clickFilterChip(); + waitForReactUpdate(300); + changeFilterCondition(NumberFilterCondition.NumberIsEmpty); + assertRowCount(1); + }); +}); diff --git a/cypress/e2e/database/filter-text.cy.ts b/cypress/e2e/database/filter-text.cy.ts new file mode 100644 index 000000000..cf8759af2 --- /dev/null +++ b/cypress/e2e/database/filter-text.cy.ts @@ -0,0 +1,298 @@ +/** + * Text Filter Tests + * Migrated from desktop: grid_text_filter_test.dart + * + * Desktop test data (v020GridFileName): + * - 10 rows total + * - Name column: A, B, C, D, E, (empty), (empty), (empty), (empty), (empty) + * - 5 rows with names (A-E), 5 rows with empty names + * + * Tests text field filtering with all conditions: + * - TextIs, TextIsNot, TextContains, TextDoesNotContain + * - TextStartsWith, TextEndsWith, TextIsEmpty, TextIsNotEmpty + */ +import { + setupFilterTest, + loginAndCreateGrid, + addFilterByFieldName, + clickFilterChip, + changeFilterCondition, + deleteFilter, + assertRowCount, + getPrimaryFieldId, + TextFilterCondition, + generateRandomEmail, +} from '../../support/filter-test-helpers'; +import { + DatabaseFilterSelectors, + DatabaseGridSelectors, + RowControlsSelectors, + waitForReactUpdate, +} from '../../support/selectors'; + +/** + * Setup test data matching desktop v020 database: + * Names: A, B, C, D, E, and 5 empty rows (10 total) + */ +const setupV020TestData = (primaryFieldId: string) => { + // First, add 7 more rows (default grid has 3 rows, we need 10 total) + for (let i = 0; i < 7; i++) { + DatabaseGridSelectors.dataRows().last().scrollIntoView(); + RowControlsSelectors.rowAccessoryButton().last().click({ force: true }); + waitForReactUpdate(300); + RowControlsSelectors.rowMenuInsertBelow().click({ force: true }); + waitForReactUpdate(500); + } + + // Now type text into the first 5 rows (rows 6-10 stay empty) + const names = ['A', 'B', 'C', 'D', 'E']; + + names.forEach((name, index) => { + DatabaseGridSelectors.dataRowCellsForField(primaryFieldId) + .eq(index) + .should('be.visible') + .scrollIntoView() + .click() + .click(); + + cy.get('textarea:visible', { timeout: 8000 }) + .should('exist') + .first() + .clear() + .type(name, { delay: 30 }); + cy.get('body').type('{esc}'); + cy.wait(300); + }); +}; + +describe('Database Text Filter Tests (Desktop Parity)', () => { + beforeEach(() => { + setupFilterTest(); + }); + + it('text filter - TextIs condition', () => { + // Desktop test: grid_text_filter_test.dart:14-31 + // Expected: Filter for "A" with TextIs should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + // Verify we have 10 rows like v020 + assertRowCount(10); + + // Add filter on Name field + addFilterByFieldName('Name'); + + // Change condition to TextIs + changeFilterCondition(TextFilterCondition.TextIs); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should only show the row with exactly "A" + assertRowCount(1); + }); + + it('text filter - TextIsNot condition', () => { + // Desktop test: grid_text_filter_test.dart:33-48 + // Expected: Filter for "A" with TextIsNot should show 9 rows + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextIsNot); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should show all rows except the one with "A" (9 rows) + assertRowCount(9); + }); + + it('text filter - TextContains condition (default)', () => { + // Desktop test: grid_text_filter_test.dart:50-64 + // Expected: Filter for "A" with TextContains should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + // Default condition is TextContains + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should show row with "A" (case-sensitive) + assertRowCount(1); + }); + + it('text filter - TextDoesNotContain condition', () => { + // Desktop test: grid_text_filter_test.dart:66-82 + // Expected: Filter for "A" with TextDoesNotContain should show 9 rows + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextDoesNotContain); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should show all rows that don't contain "A" (9 rows) + assertRowCount(9); + }); + + it('text filter - TextStartsWith condition', () => { + // Desktop test: grid_text_filter_test.dart:84-99 + // Expected: Filter for "A" with TextStartsWith should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextStartsWith); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows starting with "A" + assertRowCount(1); + }); + + it('text filter - TextEndsWith condition', () => { + // Desktop test: grid_text_filter_test.dart:101-116 + // Expected: Filter for "A" with TextEndsWith should show 1 row + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextEndsWith); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + + // Should show rows ending with "A" + assertRowCount(1); + }); + + it('text filter - TextIsEmpty condition', () => { + // Desktop test: grid_text_filter_test.dart:118-131 + // Expected: TextIsEmpty should show 5 rows (empty name rows) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextIsEmpty); + + // Should show rows with empty Name field (5 rows in test database) + assertRowCount(5); + }); + + it('text filter - TextIsNotEmpty condition', () => { + // Desktop test: grid_text_filter_test.dart:133-147 + // Expected: TextIsNotEmpty should show 5 rows (A, B, C, D, E) + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + changeFilterCondition(TextFilterCondition.TextIsNotEmpty); + + // Should show rows with non-empty Name field (5 rows: A, B, C, D, E) + assertRowCount(5); + }); + + it('text filter - delete filter restores all rows', () => { + // Desktop test: grid_text_filter_test.dart:149-171 + // Expected: After deleting filter, all 10 rows should be visible + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + // Verify initial row count + assertRowCount(10); + + addFilterByFieldName('Name'); + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + assertRowCount(1); + + // Delete the filter + clickFilterChip(); + deleteFilter(); + + // All rows should be visible again + assertRowCount(10); + }); + + it('text filter - change condition dynamically', () => { + // Desktop test: grid_text_filter_test.dart:173-194 + // Tests changing filter condition on the fly + const testEmail = generateRandomEmail(); + loginAndCreateGrid(testEmail); + + getPrimaryFieldId().then((fieldId) => { + setupV020TestData(fieldId); + }); + + assertRowCount(10); + + addFilterByFieldName('Name'); + + // Start with TextContains + DatabaseFilterSelectors.filterInput().should('be.visible').clear().type('A', { delay: 30 }); + waitForReactUpdate(500); + assertRowCount(1); + + // Change to TextIsEmpty (content should be ignored) + clickFilterChip(); + waitForReactUpdate(300); + changeFilterCondition(TextFilterCondition.TextIsEmpty); + assertRowCount(5); + + // Change to TextIsNotEmpty + clickFilterChip(); + waitForReactUpdate(300); + changeFilterCondition(TextFilterCondition.TextIsNotEmpty); + assertRowCount(5); + }); +}); diff --git a/cypress/fixtures/database/csv/authors.csv b/cypress/fixtures/database/csv/authors.csv new file mode 100644 index 000000000..77fa4f735 --- /dev/null +++ b/cypress/fixtures/database/csv/authors.csv @@ -0,0 +1,221 @@ +"{""id"": ""auNam1"", ""name"": ""Name"", ""field_type"": 0, ""type_options"": {""0"": {""data"": """"}}, ""is_primary"": true}","{""id"": ""auDep1"", ""name"": ""Department"", ""field_type"": 3, ""type_options"": {""3"": {""content"": ""{\""options\"": [{\""id\"": \""engr\"", \""name\"": \""Engineering\"", \""color\"": \""Blue\""}, {\""id\"": \""mktg\"", \""name\"": \""Marketing\"", \""color\"": \""Purple\""}, {\""id\"": \""prod\"", \""name\"": \""Product\"", \""color\"": \""Green\""}, {\""id\"": \""dsgn\"", \""name\"": \""Design\"", \""color\"": \""Orange\""}, {\""id\"": \""sale\"", \""name\"": \""Sales\"", \""color\"": \""Yellow\""}, {\""id\"": \""supp\"", \""name\"": \""Support\"", \""color\"": \""Pink\""}, {\""id\"": \""hr01\"", \""name\"": \""HR\"", \""color\"": \""LightPink\""}, {\""id\"": \""fnce\"", \""name\"": \""Finance\"", \""color\"": \""Aqua\""}], \""disable_color\"": false}""}}, ""is_primary"": false}","{""id"": ""auLMd1"", ""name"": ""Last modified"", ""field_type"": 8, ""type_options"": {""8"": {""date_format"": 3, ""time_format"": 1, ""include_time"": true}}, ""is_primary"": false}","{""id"": ""auCAt1"", ""name"": ""Created at"", ""field_type"": 9, ""type_options"": {""9"": {""date_format"": 3, ""time_format"": 1, ""include_time"": true}}, ""is_primary"": false}" +"{""data"": ""Samantha Anderson"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 3}","{""data"": ""1700000000"", ""field_type"": 8}","{""data"": ""1700000000"", ""field_type"": 9}" +"{""data"": ""Ashley Lewis"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 3}","{""data"": ""1700000100"", ""field_type"": 8}","{""data"": ""1700000100"", ""field_type"": 9}" +"{""data"": ""Gregory Patel"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 3}","{""data"": ""1700000200"", ""field_type"": 8}","{""data"": ""1700000200"", ""field_type"": 9}" +"{""data"": ""Robert Brown"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 3}","{""data"": ""1700000300"", ""field_type"": 8}","{""data"": ""1700000300"", ""field_type"": 9}" +"{""data"": ""Nicholas Cox"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 3}","{""data"": ""1700000400"", ""field_type"": 8}","{""data"": ""1700000400"", ""field_type"": 9}" +"{""data"": ""Carolyn Wood"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 3}","{""data"": ""1700000500"", ""field_type"": 8}","{""data"": ""1700000500"", ""field_type"": 9}" +"{""data"": ""Emma Scott"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 3}","{""data"": ""1700000600"", ""field_type"": 8}","{""data"": ""1700000600"", ""field_type"": 9}" +"{""data"": ""Christopher Hughes"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 3}","{""data"": ""1700000700"", ""field_type"": 8}","{""data"": ""1700000700"", ""field_type"": 9}" +"{""data"": ""Karen Ramirez"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 3}","{""data"": ""1700000800"", ""field_type"": 8}","{""data"": ""1700000800"", ""field_type"": 9}" +"{""data"": ""Timothy Gonzalez"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 3}","{""data"": ""1700000900"", ""field_type"": 8}","{""data"": ""1700000900"", ""field_type"": 9}" +"{""data"": ""Nicole King"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 3}","{""data"": ""1700001000"", ""field_type"": 8}","{""data"": ""1700001000"", ""field_type"": 9}" +"{""data"": ""Jonathan Thomas"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 3}","{""data"": ""1700001100"", ""field_type"": 8}","{""data"": ""1700001100"", ""field_type"": 9}" +"{""data"": ""Donna Watson"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 3}","{""data"": ""1700001200"", ""field_type"": 8}","{""data"": ""1700001200"", ""field_type"": 9}" +"{""data"": ""Alexander Rodriguez"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 3}","{""data"": ""1700001300"", ""field_type"": 8}","{""data"": ""1700001300"", ""field_type"": 9}" +"{""data"": ""Jerry Nguyen"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 3}","{""data"": ""1700001400"", ""field_type"": 8}","{""data"": ""1700001400"", ""field_type"": 9}" +"{""data"": ""Henry Gonzalez"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 3}","{""data"": ""1700001500"", ""field_type"": 8}","{""data"": ""1700001500"", ""field_type"": 9}" +"{""data"": ""Samantha Campbell"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 3}","{""data"": ""1700001600"", ""field_type"": 8}","{""data"": ""1700001600"", ""field_type"": 9}" +"{""data"": ""Anthony Bennett"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 3}","{""data"": ""1700001700"", ""field_type"": 8}","{""data"": ""1700001700"", ""field_type"": 9}" +"{""data"": ""Debra Chavez"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 3}","{""data"": ""1700001800"", ""field_type"": 8}","{""data"": ""1700001800"", ""field_type"": 9}" +"{""data"": ""Nancy Morgan"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 3}","{""data"": ""1700001900"", ""field_type"": 8}","{""data"": ""1700001900"", ""field_type"": 9}" +"{""data"": ""Timothy Wright"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 3}","{""data"": ""1700002000"", ""field_type"": 8}","{""data"": ""1700002000"", ""field_type"": 9}" +"{""data"": ""Olivia Foster"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 3}","{""data"": ""1700002100"", ""field_type"": 8}","{""data"": ""1700002100"", ""field_type"": 9}" +"{""data"": ""Robert Russell"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 3}","{""data"": ""1700002200"", ""field_type"": 8}","{""data"": ""1700002200"", ""field_type"": 9}" +"{""data"": ""William Ramirez"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 3}","{""data"": ""1700002300"", ""field_type"": 8}","{""data"": ""1700002300"", ""field_type"": 9}" +"{""data"": ""Amy Gomez"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 3}","{""data"": ""1700002400"", ""field_type"": 8}","{""data"": ""1700002400"", ""field_type"": 9}" +"{""data"": ""Sarah Young"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 3}","{""data"": ""1700002500"", ""field_type"": 8}","{""data"": ""1700002500"", ""field_type"": 9}" +"{""data"": ""Jason Howard"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 3}","{""data"": ""1700002600"", ""field_type"": 8}","{""data"": ""1700002600"", ""field_type"": 9}" +"{""data"": ""Sarah Rogers"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 3}","{""data"": ""1700002700"", ""field_type"": 8}","{""data"": ""1700002700"", ""field_type"": 9}" +"{""data"": ""Michael Anderson"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 3}","{""data"": ""1700002800"", ""field_type"": 8}","{""data"": ""1700002800"", ""field_type"": 9}" +"{""data"": ""Diane Mendoza"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 3}","{""data"": ""1700002900"", ""field_type"": 8}","{""data"": ""1700002900"", ""field_type"": 9}" +"{""data"": ""Deborah Carter"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 3}","{""data"": ""1700003000"", ""field_type"": 8}","{""data"": ""1700003000"", ""field_type"": 9}" +"{""data"": ""Stephen Johnson"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 3}","{""data"": ""1700003100"", ""field_type"": 8}","{""data"": ""1700003100"", ""field_type"": 9}" +"{""data"": ""Jonathan Long"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 3}","{""data"": ""1700003200"", ""field_type"": 8}","{""data"": ""1700003200"", ""field_type"": 9}" +"{""data"": ""Carol Anderson"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 3}","{""data"": ""1700003300"", ""field_type"": 8}","{""data"": ""1700003300"", ""field_type"": 9}" +"{""data"": ""Ryan Smith"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 3}","{""data"": ""1700003400"", ""field_type"": 8}","{""data"": ""1700003400"", ""field_type"": 9}" +"{""data"": ""Maria Thompson"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 3}","{""data"": ""1700003500"", ""field_type"": 8}","{""data"": ""1700003500"", ""field_type"": 9}" +"{""data"": ""Joshua Brooks"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 3}","{""data"": ""1700003600"", ""field_type"": 8}","{""data"": ""1700003600"", ""field_type"": 9}" +"{""data"": ""Maria Lee"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 3}","{""data"": ""1700003700"", ""field_type"": 8}","{""data"": ""1700003700"", ""field_type"": 9}" +"{""data"": ""Gary Williams"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 3}","{""data"": ""1700003800"", ""field_type"": 8}","{""data"": ""1700003800"", ""field_type"": 9}" +"{""data"": ""Zachary Russell"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 3}","{""data"": ""1700003900"", ""field_type"": 8}","{""data"": ""1700003900"", ""field_type"": 9}" +"{""data"": ""Donald Reed"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 3}","{""data"": ""1700004000"", ""field_type"": 8}","{""data"": ""1700004000"", ""field_type"": 9}" +"{""data"": ""Gary Rodriguez"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 3}","{""data"": ""1700004100"", ""field_type"": 8}","{""data"": ""1700004100"", ""field_type"": 9}" +"{""data"": ""Jacob Peterson"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 3}","{""data"": ""1700004200"", ""field_type"": 8}","{""data"": ""1700004200"", ""field_type"": 9}" +"{""data"": ""Virginia Cox"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 3}","{""data"": ""1700004300"", ""field_type"": 8}","{""data"": ""1700004300"", ""field_type"": 9}" +"{""data"": ""Kyle Cooper"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 3}","{""data"": ""1700004400"", ""field_type"": 8}","{""data"": ""1700004400"", ""field_type"": 9}" +"{""data"": ""Stephanie Bennett"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 3}","{""data"": ""1700004500"", ""field_type"": 8}","{""data"": ""1700004500"", ""field_type"": 9}" +"{""data"": ""Eric Edwards"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 3}","{""data"": ""1700004600"", ""field_type"": 8}","{""data"": ""1700004600"", ""field_type"": 9}" +"{""data"": ""William Baker"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 3}","{""data"": ""1700004700"", ""field_type"": 8}","{""data"": ""1700004700"", ""field_type"": 9}" +"{""data"": ""Sandra Ramos"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 3}","{""data"": ""1700004800"", ""field_type"": 8}","{""data"": ""1700004800"", ""field_type"": 9}" +"{""data"": ""Alexander Watson"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 3}","{""data"": ""1700004900"", ""field_type"": 8}","{""data"": ""1700004900"", ""field_type"": 9}" +"{""data"": ""Kelly Jones"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 3}","{""data"": ""1700005000"", ""field_type"": 8}","{""data"": ""1700005000"", ""field_type"": 9}" +"{""data"": ""Donald Scott"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 3}","{""data"": ""1700005100"", ""field_type"": 8}","{""data"": ""1700005100"", ""field_type"": 9}" +"{""data"": ""Thomas Castillo"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 3}","{""data"": ""1700005200"", ""field_type"": 8}","{""data"": ""1700005200"", ""field_type"": 9}" +"{""data"": ""Jacob Russell"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 3}","{""data"": ""1700005300"", ""field_type"": 8}","{""data"": ""1700005300"", ""field_type"": 9}" +"{""data"": ""Richard James"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 3}","{""data"": ""1700005400"", ""field_type"": 8}","{""data"": ""1700005400"", ""field_type"": 9}" +"{""data"": ""Edward Reyes"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 3}","{""data"": ""1700005500"", ""field_type"": 8}","{""data"": ""1700005500"", ""field_type"": 9}" +"{""data"": ""Samuel Gonzalez"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 3}","{""data"": ""1700005600"", ""field_type"": 8}","{""data"": ""1700005600"", ""field_type"": 9}" +"{""data"": ""Carol Perry"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 3}","{""data"": ""1700005700"", ""field_type"": 8}","{""data"": ""1700005700"", ""field_type"": 9}" +"{""data"": ""Matthew Morgan"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 3}","{""data"": ""1700005800"", ""field_type"": 8}","{""data"": ""1700005800"", ""field_type"": 9}" +"{""data"": ""Lisa Scott"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 3}","{""data"": ""1700005900"", ""field_type"": 8}","{""data"": ""1700005900"", ""field_type"": 9}" +"{""data"": ""Kyle Martinez"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 3}","{""data"": ""1700006000"", ""field_type"": 8}","{""data"": ""1700006000"", ""field_type"": 9}" +"{""data"": ""Joyce Peterson"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 3}","{""data"": ""1700006100"", ""field_type"": 8}","{""data"": ""1700006100"", ""field_type"": 9}" +"{""data"": ""Anna Johnson"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 3}","{""data"": ""1700006200"", ""field_type"": 8}","{""data"": ""1700006200"", ""field_type"": 9}" +"{""data"": ""Nathan Walker"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 3}","{""data"": ""1700006300"", ""field_type"": 8}","{""data"": ""1700006300"", ""field_type"": 9}" +"{""data"": ""Kathleen Ramirez"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 3}","{""data"": ""1700006400"", ""field_type"": 8}","{""data"": ""1700006400"", ""field_type"": 9}" +"{""data"": ""Nancy Carter"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 3}","{""data"": ""1700006500"", ""field_type"": 8}","{""data"": ""1700006500"", ""field_type"": 9}" +"{""data"": ""Kimberly Powell"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 3}","{""data"": ""1700006600"", ""field_type"": 8}","{""data"": ""1700006600"", ""field_type"": 9}" +"{""data"": ""Rachel Sanders"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 3}","{""data"": ""1700006700"", ""field_type"": 8}","{""data"": ""1700006700"", ""field_type"": 9}" +"{""data"": ""Donna Ramirez"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 3}","{""data"": ""1700006800"", ""field_type"": 8}","{""data"": ""1700006800"", ""field_type"": 9}" +"{""data"": ""Anna Davis"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 3}","{""data"": ""1700006900"", ""field_type"": 8}","{""data"": ""1700006900"", ""field_type"": 9}" +"{""data"": ""Justin Morris"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 3}","{""data"": ""1700007000"", ""field_type"": 8}","{""data"": ""1700007000"", ""field_type"": 9}" +"{""data"": ""Angela Hernandez"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 3}","{""data"": ""1700007100"", ""field_type"": 8}","{""data"": ""1700007100"", ""field_type"": 9}" +"{""data"": ""William Gray"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 3}","{""data"": ""1700007200"", ""field_type"": 8}","{""data"": ""1700007200"", ""field_type"": 9}" +"{""data"": ""Victoria Reed"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 3}","{""data"": ""1700007300"", ""field_type"": 8}","{""data"": ""1700007300"", ""field_type"": 9}" +"{""data"": ""Jennifer Richardson"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 3}","{""data"": ""1700007400"", ""field_type"": 8}","{""data"": ""1700007400"", ""field_type"": 9}" +"{""data"": ""Justin Reed"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 3}","{""data"": ""1700007500"", ""field_type"": 8}","{""data"": ""1700007500"", ""field_type"": 9}" +"{""data"": ""Anthony Bennett"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 3}","{""data"": ""1700007600"", ""field_type"": 8}","{""data"": ""1700007600"", ""field_type"": 9}" +"{""data"": ""Ronald Taylor"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 3}","{""data"": ""1700007700"", ""field_type"": 8}","{""data"": ""1700007700"", ""field_type"": 9}" +"{""data"": ""Kyle Long"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 3}","{""data"": ""1700007800"", ""field_type"": 8}","{""data"": ""1700007800"", ""field_type"": 9}" +"{""data"": ""Helen Reed"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 3}","{""data"": ""1700007900"", ""field_type"": 8}","{""data"": ""1700007900"", ""field_type"": 9}" +"{""data"": ""Margaret Cook"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 3}","{""data"": ""1700008000"", ""field_type"": 8}","{""data"": ""1700008000"", ""field_type"": 9}" +"{""data"": ""Brian Rodriguez"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 3}","{""data"": ""1700008100"", ""field_type"": 8}","{""data"": ""1700008100"", ""field_type"": 9}" +"{""data"": ""Christopher Cruz"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 3}","{""data"": ""1700008200"", ""field_type"": 8}","{""data"": ""1700008200"", ""field_type"": 9}" +"{""data"": ""Ruth Wood"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 3}","{""data"": ""1700008300"", ""field_type"": 8}","{""data"": ""1700008300"", ""field_type"": 9}" +"{""data"": ""Stephen Hill"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 3}","{""data"": ""1700008400"", ""field_type"": 8}","{""data"": ""1700008400"", ""field_type"": 9}" +"{""data"": ""Sarah King"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 3}","{""data"": ""1700008500"", ""field_type"": 8}","{""data"": ""1700008500"", ""field_type"": 9}" +"{""data"": ""Catherine Peterson"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 3}","{""data"": ""1700008600"", ""field_type"": 8}","{""data"": ""1700008600"", ""field_type"": 9}" +"{""data"": ""Nicole Clark"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 3}","{""data"": ""1700008700"", ""field_type"": 8}","{""data"": ""1700008700"", ""field_type"": 9}" +"{""data"": ""Samantha King"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 3}","{""data"": ""1700008800"", ""field_type"": 8}","{""data"": ""1700008800"", ""field_type"": 9}" +"{""data"": ""Peter Miller"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 3}","{""data"": ""1700008900"", ""field_type"": 8}","{""data"": ""1700008900"", ""field_type"": 9}" +"{""data"": ""Adam Scott"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 3}","{""data"": ""1700009000"", ""field_type"": 8}","{""data"": ""1700009000"", ""field_type"": 9}" +"{""data"": ""Jerry Taylor"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 3}","{""data"": ""1700009100"", ""field_type"": 8}","{""data"": ""1700009100"", ""field_type"": 9}" +"{""data"": ""Jeffrey Peterson"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 3}","{""data"": ""1700009200"", ""field_type"": 8}","{""data"": ""1700009200"", ""field_type"": 9}" +"{""data"": ""Joseph Martinez"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 3}","{""data"": ""1700009300"", ""field_type"": 8}","{""data"": ""1700009300"", ""field_type"": 9}" +"{""data"": ""Adam Mitchell"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 3}","{""data"": ""1700009400"", ""field_type"": 8}","{""data"": ""1700009400"", ""field_type"": 9}" +"{""data"": ""Jennifer Flores"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 3}","{""data"": ""1700009500"", ""field_type"": 8}","{""data"": ""1700009500"", ""field_type"": 9}" +"{""data"": ""Diane Garcia"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 3}","{""data"": ""1700009600"", ""field_type"": 8}","{""data"": ""1700009600"", ""field_type"": 9}" +"{""data"": ""Ashley Bennett"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 3}","{""data"": ""1700009700"", ""field_type"": 8}","{""data"": ""1700009700"", ""field_type"": 9}" +"{""data"": ""Brenda Evans"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 3}","{""data"": ""1700009800"", ""field_type"": 8}","{""data"": ""1700009800"", ""field_type"": 9}" +"{""data"": ""Donald Lee"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 3}","{""data"": ""1700009900"", ""field_type"": 8}","{""data"": ""1700009900"", ""field_type"": 9}" +"{""data"": ""Patricia Thompson"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 3}","{""data"": ""1700010000"", ""field_type"": 8}","{""data"": ""1700010000"", ""field_type"": 9}" +"{""data"": ""Edward Perry"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 3}","{""data"": ""1700010100"", ""field_type"": 8}","{""data"": ""1700010100"", ""field_type"": 9}" +"{""data"": ""Tyler Hughes"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 3}","{""data"": ""1700010200"", ""field_type"": 8}","{""data"": ""1700010200"", ""field_type"": 9}" +"{""data"": ""Robert Stewart"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 3}","{""data"": ""1700010300"", ""field_type"": 8}","{""data"": ""1700010300"", ""field_type"": 9}" +"{""data"": ""Lauren Collins"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 3}","{""data"": ""1700010400"", ""field_type"": 8}","{""data"": ""1700010400"", ""field_type"": 9}" +"{""data"": ""Diane Robinson"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 3}","{""data"": ""1700010500"", ""field_type"": 8}","{""data"": ""1700010500"", ""field_type"": 9}" +"{""data"": ""Matthew Phillips"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 3}","{""data"": ""1700010600"", ""field_type"": 8}","{""data"": ""1700010600"", ""field_type"": 9}" +"{""data"": ""William Foster"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 3}","{""data"": ""1700010700"", ""field_type"": 8}","{""data"": ""1700010700"", ""field_type"": 9}" +"{""data"": ""Angela Phillips"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 3}","{""data"": ""1700010800"", ""field_type"": 8}","{""data"": ""1700010800"", ""field_type"": 9}" +"{""data"": ""Joseph King"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 3}","{""data"": ""1700010900"", ""field_type"": 8}","{""data"": ""1700010900"", ""field_type"": 9}" +"{""data"": ""Kimberly Jones"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 3}","{""data"": ""1700011000"", ""field_type"": 8}","{""data"": ""1700011000"", ""field_type"": 9}" +"{""data"": ""Brian Sanders"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 3}","{""data"": ""1700011100"", ""field_type"": 8}","{""data"": ""1700011100"", ""field_type"": 9}" +"{""data"": ""Angela Anderson"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 3}","{""data"": ""1700011200"", ""field_type"": 8}","{""data"": ""1700011200"", ""field_type"": 9}" +"{""data"": ""Matthew Allen"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 3}","{""data"": ""1700011300"", ""field_type"": 8}","{""data"": ""1700011300"", ""field_type"": 9}" +"{""data"": ""James Gutierrez"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 3}","{""data"": ""1700011400"", ""field_type"": 8}","{""data"": ""1700011400"", ""field_type"": 9}" +"{""data"": ""William Bennett"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 3}","{""data"": ""1700011500"", ""field_type"": 8}","{""data"": ""1700011500"", ""field_type"": 9}" +"{""data"": ""Raymond Thomas"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 3}","{""data"": ""1700011600"", ""field_type"": 8}","{""data"": ""1700011600"", ""field_type"": 9}" +"{""data"": ""Christine Evans"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 3}","{""data"": ""1700011700"", ""field_type"": 8}","{""data"": ""1700011700"", ""field_type"": 9}" +"{""data"": ""Donna Peterson"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 3}","{""data"": ""1700011800"", ""field_type"": 8}","{""data"": ""1700011800"", ""field_type"": 9}" +"{""data"": ""Christine Carter"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 3}","{""data"": ""1700011900"", ""field_type"": 8}","{""data"": ""1700011900"", ""field_type"": 9}" +"{""data"": ""Joshua Phillips"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 3}","{""data"": ""1700012000"", ""field_type"": 8}","{""data"": ""1700012000"", ""field_type"": 9}" +"{""data"": ""Anthony Parker"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 3}","{""data"": ""1700012100"", ""field_type"": 8}","{""data"": ""1700012100"", ""field_type"": 9}" +"{""data"": ""Jeffrey Gray"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 3}","{""data"": ""1700012200"", ""field_type"": 8}","{""data"": ""1700012200"", ""field_type"": 9}" +"{""data"": ""Diane Jenkins"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 3}","{""data"": ""1700012300"", ""field_type"": 8}","{""data"": ""1700012300"", ""field_type"": 9}" +"{""data"": ""Andrew Rogers"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 3}","{""data"": ""1700012400"", ""field_type"": 8}","{""data"": ""1700012400"", ""field_type"": 9}" +"{""data"": ""Dennis Walker"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 3}","{""data"": ""1700012500"", ""field_type"": 8}","{""data"": ""1700012500"", ""field_type"": 9}" +"{""data"": ""Betty Jackson"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 3}","{""data"": ""1700012600"", ""field_type"": 8}","{""data"": ""1700012600"", ""field_type"": 9}" +"{""data"": ""Jacob Ward"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 3}","{""data"": ""1700012700"", ""field_type"": 8}","{""data"": ""1700012700"", ""field_type"": 9}" +"{""data"": ""Victoria Watson"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 3}","{""data"": ""1700012800"", ""field_type"": 8}","{""data"": ""1700012800"", ""field_type"": 9}" +"{""data"": ""Deborah Murphy"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 3}","{""data"": ""1700012900"", ""field_type"": 8}","{""data"": ""1700012900"", ""field_type"": 9}" +"{""data"": ""Katherine Ruiz"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 3}","{""data"": ""1700013000"", ""field_type"": 8}","{""data"": ""1700013000"", ""field_type"": 9}" +"{""data"": ""Henry Foster"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 3}","{""data"": ""1700013100"", ""field_type"": 8}","{""data"": ""1700013100"", ""field_type"": 9}" +"{""data"": ""Mark Thompson"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 3}","{""data"": ""1700013200"", ""field_type"": 8}","{""data"": ""1700013200"", ""field_type"": 9}" +"{""data"": ""Ashley Thomas"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 3}","{""data"": ""1700013300"", ""field_type"": 8}","{""data"": ""1700013300"", ""field_type"": 9}" +"{""data"": ""Cynthia Bennett"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 3}","{""data"": ""1700013400"", ""field_type"": 8}","{""data"": ""1700013400"", ""field_type"": 9}" +"{""data"": ""Douglas Cruz"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 3}","{""data"": ""1700013500"", ""field_type"": 8}","{""data"": ""1700013500"", ""field_type"": 9}" +"{""data"": ""Stephen Edwards"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 3}","{""data"": ""1700013600"", ""field_type"": 8}","{""data"": ""1700013600"", ""field_type"": 9}" +"{""data"": ""Jacob Edwards"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 3}","{""data"": ""1700013700"", ""field_type"": 8}","{""data"": ""1700013700"", ""field_type"": 9}" +"{""data"": ""Olivia Brooks"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 3}","{""data"": ""1700013800"", ""field_type"": 8}","{""data"": ""1700013800"", ""field_type"": 9}" +"{""data"": ""Eric Morales"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 3}","{""data"": ""1700013900"", ""field_type"": 8}","{""data"": ""1700013900"", ""field_type"": 9}" +"{""data"": ""Elizabeth Alvarez"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 3}","{""data"": ""1700014000"", ""field_type"": 8}","{""data"": ""1700014000"", ""field_type"": 9}" +"{""data"": ""Kevin Green"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 3}","{""data"": ""1700014100"", ""field_type"": 8}","{""data"": ""1700014100"", ""field_type"": 9}" +"{""data"": ""Sandra Roberts"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 3}","{""data"": ""1700014200"", ""field_type"": 8}","{""data"": ""1700014200"", ""field_type"": 9}" +"{""data"": ""William Turner"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 3}","{""data"": ""1700014300"", ""field_type"": 8}","{""data"": ""1700014300"", ""field_type"": 9}" +"{""data"": ""Cynthia Turner"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 3}","{""data"": ""1700014400"", ""field_type"": 8}","{""data"": ""1700014400"", ""field_type"": 9}" +"{""data"": ""Rebecca Roberts"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 3}","{""data"": ""1700014500"", ""field_type"": 8}","{""data"": ""1700014500"", ""field_type"": 9}" +"{""data"": ""Maria Kelly"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 3}","{""data"": ""1700014600"", ""field_type"": 8}","{""data"": ""1700014600"", ""field_type"": 9}" +"{""data"": ""Amanda Hill"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 3}","{""data"": ""1700014700"", ""field_type"": 8}","{""data"": ""1700014700"", ""field_type"": 9}" +"{""data"": ""Adam Turner"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 3}","{""data"": ""1700014800"", ""field_type"": 8}","{""data"": ""1700014800"", ""field_type"": 9}" +"{""data"": ""Paul Parker"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 3}","{""data"": ""1700014900"", ""field_type"": 8}","{""data"": ""1700014900"", ""field_type"": 9}" +"{""data"": ""Carol Bennett"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 3}","{""data"": ""1700015000"", ""field_type"": 8}","{""data"": ""1700015000"", ""field_type"": 9}" +"{""data"": ""Olivia Reyes"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 3}","{""data"": ""1700015100"", ""field_type"": 8}","{""data"": ""1700015100"", ""field_type"": 9}" +"{""data"": ""Jonathan Brown"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 3}","{""data"": ""1700015200"", ""field_type"": 8}","{""data"": ""1700015200"", ""field_type"": 9}" +"{""data"": ""Raymond Brown"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 3}","{""data"": ""1700015300"", ""field_type"": 8}","{""data"": ""1700015300"", ""field_type"": 9}" +"{""data"": ""Sarah Reyes"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 3}","{""data"": ""1700015400"", ""field_type"": 8}","{""data"": ""1700015400"", ""field_type"": 9}" +"{""data"": ""Timothy Adams"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 3}","{""data"": ""1700015500"", ""field_type"": 8}","{""data"": ""1700015500"", ""field_type"": 9}" +"{""data"": ""Carol Ross"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 3}","{""data"": ""1700015600"", ""field_type"": 8}","{""data"": ""1700015600"", ""field_type"": 9}" +"{""data"": ""Adam Turner"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 3}","{""data"": ""1700015700"", ""field_type"": 8}","{""data"": ""1700015700"", ""field_type"": 9}" +"{""data"": ""Jacob Williams"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 3}","{""data"": ""1700015800"", ""field_type"": 8}","{""data"": ""1700015800"", ""field_type"": 9}" +"{""data"": ""Brian Lewis"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 3}","{""data"": ""1700015900"", ""field_type"": 8}","{""data"": ""1700015900"", ""field_type"": 9}" +"{""data"": ""Katherine Garcia"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 3}","{""data"": ""1700016000"", ""field_type"": 8}","{""data"": ""1700016000"", ""field_type"": 9}" +"{""data"": ""Betty Williams"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 3}","{""data"": ""1700016100"", ""field_type"": 8}","{""data"": ""1700016100"", ""field_type"": 9}" +"{""data"": ""Jacob Bennett"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 3}","{""data"": ""1700016200"", ""field_type"": 8}","{""data"": ""1700016200"", ""field_type"": 9}" +"{""data"": ""Margaret Reyes"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 3}","{""data"": ""1700016300"", ""field_type"": 8}","{""data"": ""1700016300"", ""field_type"": 9}" +"{""data"": ""Nancy Cox"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 3}","{""data"": ""1700016400"", ""field_type"": 8}","{""data"": ""1700016400"", ""field_type"": 9}" +"{""data"": ""Christopher Flores"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 3}","{""data"": ""1700016500"", ""field_type"": 8}","{""data"": ""1700016500"", ""field_type"": 9}" +"{""data"": ""Kyle Flores"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 3}","{""data"": ""1700016600"", ""field_type"": 8}","{""data"": ""1700016600"", ""field_type"": 9}" +"{""data"": ""Carolyn Sanchez"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 3}","{""data"": ""1700016700"", ""field_type"": 8}","{""data"": ""1700016700"", ""field_type"": 9}" +"{""data"": ""Adam Watson"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 3}","{""data"": ""1700016800"", ""field_type"": 8}","{""data"": ""1700016800"", ""field_type"": 9}" +"{""data"": ""Jerry Hill"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 3}","{""data"": ""1700016900"", ""field_type"": 8}","{""data"": ""1700016900"", ""field_type"": 9}" +"{""data"": ""Larry Powell"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 3}","{""data"": ""1700017000"", ""field_type"": 8}","{""data"": ""1700017000"", ""field_type"": 9}" +"{""data"": ""Jason James"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 3}","{""data"": ""1700017100"", ""field_type"": 8}","{""data"": ""1700017100"", ""field_type"": 9}" +"{""data"": ""Samuel Baker"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 3}","{""data"": ""1700017200"", ""field_type"": 8}","{""data"": ""1700017200"", ""field_type"": 9}" +"{""data"": ""Julie Morales"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 3}","{""data"": ""1700017300"", ""field_type"": 8}","{""data"": ""1700017300"", ""field_type"": 9}" +"{""data"": ""George Brooks"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 3}","{""data"": ""1700017400"", ""field_type"": 8}","{""data"": ""1700017400"", ""field_type"": 9}" +"{""data"": ""Sharon Thompson"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 3}","{""data"": ""1700017500"", ""field_type"": 8}","{""data"": ""1700017500"", ""field_type"": 9}" +"{""data"": ""Lauren Morgan"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 3}","{""data"": ""1700017600"", ""field_type"": 8}","{""data"": ""1700017600"", ""field_type"": 9}" +"{""data"": ""Julie Sanders"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 3}","{""data"": ""1700017700"", ""field_type"": 8}","{""data"": ""1700017700"", ""field_type"": 9}" +"{""data"": ""Ashley Lopez"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 3}","{""data"": ""1700017800"", ""field_type"": 8}","{""data"": ""1700017800"", ""field_type"": 9}" +"{""data"": ""Ashley Long"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 3}","{""data"": ""1700017900"", ""field_type"": 8}","{""data"": ""1700017900"", ""field_type"": 9}" +"{""data"": ""Christine Carter"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 3}","{""data"": ""1700018000"", ""field_type"": 8}","{""data"": ""1700018000"", ""field_type"": 9}" +"{""data"": ""Nathan Adams"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 3}","{""data"": ""1700018100"", ""field_type"": 8}","{""data"": ""1700018100"", ""field_type"": 9}" +"{""data"": ""Amanda Perry"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 3}","{""data"": ""1700018200"", ""field_type"": 8}","{""data"": ""1700018200"", ""field_type"": 9}" +"{""data"": ""Zachary Kim"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 3}","{""data"": ""1700018300"", ""field_type"": 8}","{""data"": ""1700018300"", ""field_type"": 9}" +"{""data"": ""Eric Harris"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 3}","{""data"": ""1700018400"", ""field_type"": 8}","{""data"": ""1700018400"", ""field_type"": 9}" +"{""data"": ""Edward Morales"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 3}","{""data"": ""1700018500"", ""field_type"": 8}","{""data"": ""1700018500"", ""field_type"": 9}" +"{""data"": ""Samuel Alvarez"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 3}","{""data"": ""1700018600"", ""field_type"": 8}","{""data"": ""1700018600"", ""field_type"": 9}" +"{""data"": ""John Lopez"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 3}","{""data"": ""1700018700"", ""field_type"": 8}","{""data"": ""1700018700"", ""field_type"": 9}" +"{""data"": ""Frank Young"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 3}","{""data"": ""1700018800"", ""field_type"": 8}","{""data"": ""1700018800"", ""field_type"": 9}" +"{""data"": ""Melissa Stewart"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 3}","{""data"": ""1700018900"", ""field_type"": 8}","{""data"": ""1700018900"", ""field_type"": 9}" +"{""data"": ""Catherine Peterson"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 0}","{""data"": ""supp"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 3}","{""data"": ""1700019000"", ""field_type"": 8}","{""data"": ""1700019000"", ""field_type"": 9}" +"{""data"": ""Ryan Wright"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 3}","{""data"": ""1700019100"", ""field_type"": 8}","{""data"": ""1700019100"", ""field_type"": 9}" +"{""data"": ""Jessica Castillo"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 3}","{""data"": ""1700019200"", ""field_type"": 8}","{""data"": ""1700019200"", ""field_type"": 9}" +"{""data"": ""Catherine Morgan"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 3}","{""data"": ""1700019300"", ""field_type"": 8}","{""data"": ""1700019300"", ""field_type"": 9}" +"{""data"": ""Jack Morris"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 3}","{""data"": ""1700019400"", ""field_type"": 8}","{""data"": ""1700019400"", ""field_type"": 9}" +"{""data"": ""Maria Ortiz"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 3}","{""data"": ""1700019500"", ""field_type"": 8}","{""data"": ""1700019500"", ""field_type"": 9}" +"{""data"": ""Adam Harris"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 3}","{""data"": ""1700019600"", ""field_type"": 8}","{""data"": ""1700019600"", ""field_type"": 9}" +"{""data"": ""Daniel Hill"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 3}","{""data"": ""1700019700"", ""field_type"": 8}","{""data"": ""1700019700"", ""field_type"": 9}" +"{""data"": ""Thomas Scott"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 3}","{""data"": ""1700019800"", ""field_type"": 8}","{""data"": ""1700019800"", ""field_type"": 9}" +"{""data"": ""Stephen Nguyen"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 3}","{""data"": ""1700019900"", ""field_type"": 8}","{""data"": ""1700019900"", ""field_type"": 9}" +"{""data"": ""Dennis Morales"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 3}","{""data"": ""1700020000"", ""field_type"": 8}","{""data"": ""1700020000"", ""field_type"": 9}" +"{""data"": ""Pamela Torres"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 3}","{""data"": ""1700020100"", ""field_type"": 8}","{""data"": ""1700020100"", ""field_type"": 9}" +"{""data"": ""Carol White"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 3}","{""data"": ""1700020200"", ""field_type"": 8}","{""data"": ""1700020200"", ""field_type"": 9}" +"{""data"": ""Henry Morris"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 3}","{""data"": ""1700020300"", ""field_type"": 8}","{""data"": ""1700020300"", ""field_type"": 9}" +"{""data"": ""Stephanie Morales"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 3}","{""data"": ""1700020400"", ""field_type"": 8}","{""data"": ""1700020400"", ""field_type"": 9}" +"{""data"": ""Debra Miller"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 3}","{""data"": ""1700020500"", ""field_type"": 8}","{""data"": ""1700020500"", ""field_type"": 9}" +"{""data"": ""Larry Hill"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 3}","{""data"": ""1700020600"", ""field_type"": 8}","{""data"": ""1700020600"", ""field_type"": 9}" +"{""data"": ""Jessica Bailey"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 0}","{""data"": ""hr01"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 3}","{""data"": ""1700020700"", ""field_type"": 8}","{""data"": ""1700020700"", ""field_type"": 9}" +"{""data"": ""Diane Richardson"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 3}","{""data"": ""1700020800"", ""field_type"": 8}","{""data"": ""1700020800"", ""field_type"": 9}" +"{""data"": ""Timothy Edwards"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 3}","{""data"": ""1700020900"", ""field_type"": 8}","{""data"": ""1700020900"", ""field_type"": 9}" +"{""data"": ""Emma Diaz"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 3}","{""data"": ""1700021000"", ""field_type"": 8}","{""data"": ""1700021000"", ""field_type"": 9}" +"{""data"": ""Linda Ward"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 0}","{""data"": ""mktg"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 3}","{""data"": ""1700021100"", ""field_type"": 8}","{""data"": ""1700021100"", ""field_type"": 9}" +"{""data"": ""Anthony Watson"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 3}","{""data"": ""1700021200"", ""field_type"": 8}","{""data"": ""1700021200"", ""field_type"": 9}" +"{""data"": ""David Lee"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 3}","{""data"": ""1700021300"", ""field_type"": 8}","{""data"": ""1700021300"", ""field_type"": 9}" +"{""data"": ""Elizabeth Lee"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 0}","{""data"": ""engr"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 3}","{""data"": ""1700021400"", ""field_type"": 8}","{""data"": ""1700021400"", ""field_type"": 9}" +"{""data"": ""Frank Kim"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 0}","{""data"": ""fnce"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 3}","{""data"": ""1700021500"", ""field_type"": 8}","{""data"": ""1700021500"", ""field_type"": 9}" +"{""data"": ""Sandra Torres"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 0}","{""data"": ""sale"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 3}","{""data"": ""1700021600"", ""field_type"": 8}","{""data"": ""1700021600"", ""field_type"": 9}" +"{""data"": ""Ryan Martinez"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 3}","{""data"": ""1700021700"", ""field_type"": 8}","{""data"": ""1700021700"", ""field_type"": 9}" +"{""data"": ""Tyler Jenkins"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 0}","{""data"": ""dsgn"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 3}","{""data"": ""1700021800"", ""field_type"": 8}","{""data"": ""1700021800"", ""field_type"": 9}" +"{""data"": ""Anna Lewis"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 0}","{""data"": ""prod"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 3}","{""data"": ""1700021900"", ""field_type"": 8}","{""data"": ""1700021900"", ""field_type"": 9}" \ No newline at end of file diff --git a/cypress/fixtures/database/csv/blog_posts.csv b/cypress/fixtures/database/csv/blog_posts.csv new file mode 100644 index 000000000..4c9744e94 --- /dev/null +++ b/cypress/fixtures/database/csv/blog_posts.csv @@ -0,0 +1,551 @@ +"{""id"": ""bpTit1"", ""name"": ""Title"", ""field_type"": 0, ""type_options"": {""0"": {""data"": """"}}, ""is_primary"": true}","{""id"": ""bpViw1"", ""name"": ""Views"", ""field_type"": 1, ""type_options"": {""1"": {""scale"": 0, ""format"": 1, ""name"": ""Number"", ""symbol"": """"}}, ""is_primary"": false}","{""id"": ""bpCmt1"", ""name"": ""Comments"", ""field_type"": 1, ""type_options"": {""1"": {""scale"": 0, ""format"": 1, ""name"": ""Number"", ""symbol"": """"}}, ""is_primary"": false}","{""id"": ""bpPub1"", ""name"": ""Published"", ""field_type"": 5, ""type_options"": {""5"": {}}, ""is_primary"": false}","{""id"": ""bpDat1"", ""name"": ""Publish Date"", ""field_type"": 2, ""type_options"": {""2"": {""date_format"": 3, ""time_format"": 1, ""timezone_id"": """"}}, ""is_primary"": false}","{""id"": ""bpCat1"", ""name"": ""Category"", ""field_type"": 3, ""type_options"": {""3"": {""content"": ""{\""options\"": [{\""id\"": \""tech\"", \""name\"": \""Technology\"", \""color\"": \""Blue\""}, {\""id\"": \""biz1\"", \""name\"": \""Business\"", \""color\"": \""Green\""}, {\""id\"": \""dsgn\"", \""name\"": \""Design\"", \""color\"": \""Orange\""}, {\""id\"": \""mkt1\"", \""name\"": \""Marketing\"", \""color\"": \""Purple\""}, {\""id\"": \""eng1\"", \""name\"": \""Engineering\"", \""color\"": \""Yellow\""}, {\""id\"": \""prd1\"", \""name\"": \""Product\"", \""color\"": \""Pink\""}, {\""id\"": \""cult\"", \""name\"": \""Culture\"", \""color\"": \""LightPink\""}, {\""id\"": \""tutr\"", \""name\"": \""Tutorial\"", \""color\"": \""Aqua\""}], \""disable_color\"": false}""}}, ""is_primary"": false}","{""id"": ""bpAuI1"", ""name"": ""Author Index"", ""field_type"": 1, ""type_options"": {""1"": {""scale"": 0, ""format"": 1, ""name"": ""Number"", ""symbol"": """"}}, ""is_primary"": false}","{""id"": ""bpLMd1"", ""name"": ""Last modified"", ""field_type"": 8, ""type_options"": {""8"": {""date_format"": 3, ""time_format"": 1, ""include_time"": true}}, ""is_primary"": false}","{""id"": ""bpCAt1"", ""name"": ""Created at"", ""field_type"": 9, ""type_options"": {""9"": {""date_format"": 3, ""time_format"": 1, ""include_time"": true}}, ""is_primary"": false}" +"{""data"": ""Building a Leadership Strategy"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 0}","{""data"": ""4316"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 1}","{""data"": ""66"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 5}","{""data"": ""1683907200"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700000000, ""last_modified"": 1700000000, ""field_type"": 1}","{""data"": ""1700000000"", ""field_type"": 8}","{""data"": ""1700000000"", ""field_type"": 9}" +"{""data"": ""Understanding Docker: A Deep Dive"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 0}","{""data"": ""26145"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 1}","{""data"": ""492"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 5}","{""data"": ""1679414400"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700000050, ""last_modified"": 1700000050, ""field_type"": 1}","{""data"": ""1700000050"", ""field_type"": 8}","{""data"": ""1700000050"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Cloud Computing"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 0}","{""data"": ""1881"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 5}","{""data"": ""1722355200"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700000100, ""last_modified"": 1700000100, ""field_type"": 1}","{""data"": ""1700000100"", ""field_type"": 8}","{""data"": ""1700000100"", ""field_type"": 9}" +"{""data"": ""Agile vs Security: Which is Better?"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 0}","{""data"": ""3912"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 1}","{""data"": ""44"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 5}","{""data"": ""1729267200"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 3}","{""data"": ""9"", ""created_at"": 1700000150, ""last_modified"": 1700000150, ""field_type"": 1}","{""data"": ""1700000150"", ""field_type"": 8}","{""data"": ""1700000150"", ""field_type"": 9}" +"{""data"": ""Introduction to REST APIs"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 0}","{""data"": ""8926"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 1}","{""data"": ""43"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 5}","{""data"": ""1702569600"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 3}","{""data"": ""95"", ""created_at"": 1700000200, ""last_modified"": 1700000200, ""field_type"": 1}","{""data"": ""1700000200"", ""field_type"": 8}","{""data"": ""1700000200"", ""field_type"": 9}" +"{""data"": ""Understanding Customer Success: A Deep Dive"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 0}","{""data"": ""116"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 5}","{""data"": ""1683302400"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 3}","{""data"": ""112"", ""created_at"": 1700000250, ""last_modified"": 1700000250, ""field_type"": 1}","{""data"": ""1700000250"", ""field_type"": 8}","{""data"": ""1700000250"", ""field_type"": 9}" +"{""data"": ""Microservices: What You Need to Know"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 0}","{""data"": ""264"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 5}","{""data"": ""1689264000"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700000300, ""last_modified"": 1700000300, ""field_type"": 1}","{""data"": ""1700000300"", ""field_type"": 8}","{""data"": ""1700000300"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Data Analytics"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 0}","{""data"": ""3721"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 1}","{""data"": ""41"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 5}","{""data"": ""1676736000"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 3}","{""data"": ""177"", ""created_at"": 1700000350, ""last_modified"": 1700000350, ""field_type"": 1}","{""data"": ""1700000350"", ""field_type"": 8}","{""data"": ""1700000350"", ""field_type"": 9}" +"{""data"": ""DevOps Tips and Tricks"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 0}","{""data"": ""483"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 5}","{""data"": ""1708099200"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 3}","{""data"": ""3"", ""created_at"": 1700000400, ""last_modified"": 1700000400, ""field_type"": 1}","{""data"": ""1700000400"", ""field_type"": 8}","{""data"": ""1700000400"", ""field_type"": 9}" +"{""data"": ""Why Marketing Automation Matters for Your Business"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 0}","{""data"": ""3664"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 1}","{""data"": ""41"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 5}","{""data"": ""1683820800"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 3}","{""data"": ""72"", ""created_at"": 1700000450, ""last_modified"": 1700000450, ""field_type"": 1}","{""data"": ""1700000450"", ""field_type"": 8}","{""data"": ""1700000450"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Company Culture"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 0}","{""data"": ""4670"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 1}","{""data"": ""36"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 5}","{""data"": ""1701964800"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700000500, ""last_modified"": 1700000500, ""field_type"": 1}","{""data"": ""1700000500"", ""field_type"": 8}","{""data"": ""1700000500"", ""field_type"": 9}" +"{""data"": ""Mastering Leadership for Beginners"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 0}","{""data"": ""45178"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 1}","{""data"": ""325"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 5}","{""data"": ""1724947200"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 3}","{""data"": ""15"", ""created_at"": 1700000550, ""last_modified"": 1700000550, ""field_type"": 1}","{""data"": ""1700000550"", ""field_type"": 8}","{""data"": ""1700000550"", ""field_type"": 9}" +"{""data"": ""Cloud Computing Architecture Explained"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 0}","{""data"": ""238"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 5}","{""data"": ""1733328000"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 3}","{""data"": ""179"", ""created_at"": 1700000600, ""last_modified"": 1700000600, ""field_type"": 1}","{""data"": ""1700000600"", ""field_type"": 8}","{""data"": ""1700000600"", ""field_type"": 9}" +"{""data"": ""Android Architecture Explained"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 0}","{""data"": ""345"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 5}","{""data"": ""1718812800"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700000650, ""last_modified"": 1700000650, ""field_type"": 1}","{""data"": ""1700000650"", ""field_type"": 8}","{""data"": ""1700000650"", ""field_type"": 9}" +"{""data"": ""How CI/CD Changed Our Team"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 0}","{""data"": ""12202"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 1}","{""data"": ""65"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 5}","{""data"": ""1708963200"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 3}","{""data"": ""79"", ""created_at"": 1700000700, ""last_modified"": 1700000700, ""field_type"": 1}","{""data"": ""1700000700"", ""field_type"": 8}","{""data"": ""1700000700"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Company Culture"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 0}","{""data"": ""422"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 5}","{""data"": ""1731081600"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 3}","{""data"": ""15"", ""created_at"": 1700000750, ""last_modified"": 1700000750, ""field_type"": 1}","{""data"": ""1700000750"", ""field_type"": 8}","{""data"": ""1700000750"", ""field_type"": 9}" +"{""data"": ""Understanding Open Source: A Deep Dive"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 0}","{""data"": ""396"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 5}","{""data"": ""1694275200"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 3}","{""data"": ""50"", ""created_at"": 1700000800, ""last_modified"": 1700000800, ""field_type"": 1}","{""data"": ""1700000800"", ""field_type"": 8}","{""data"": ""1700000800"", ""field_type"": 9}" +"{""data"": ""Why Web3 Matters for Your Business"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 0}","{""data"": ""300"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 5}","{""data"": ""1697904000"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 3}","{""data"": ""167"", ""created_at"": 1700000850, ""last_modified"": 1700000850, ""field_type"": 1}","{""data"": ""1700000850"", ""field_type"": 8}","{""data"": ""1700000850"", ""field_type"": 9}" +"{""data"": ""Understanding Agile: A Deep Dive"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 0}","{""data"": ""198"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 5}","{""data"": ""1730476800"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700000900, ""last_modified"": 1700000900, ""field_type"": 1}","{""data"": ""1700000900"", ""field_type"": 8}","{""data"": ""1700000900"", ""field_type"": 9}" +"{""data"": ""The Future of Kubernetes"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 0}","{""data"": ""120"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 5}","{""data"": ""1728921600"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700000950, ""last_modified"": 1700000950, ""field_type"": 1}","{""data"": ""1700000950"", ""field_type"": 8}","{""data"": ""1700000950"", ""field_type"": 9}" +"{""data"": ""Docker Architecture Explained"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 0}","{""data"": ""14009"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 5}","{""data"": ""1714665600"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 3}","{""data"": ""214"", ""created_at"": 1700001000, ""last_modified"": 1700001000, ""field_type"": 1}","{""data"": ""1700001000"", ""field_type"": 8}","{""data"": ""1700001000"", ""field_type"": 9}" +"{""data"": ""Advanced DevOps Techniques"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 0}","{""data"": ""2402"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 5}","{""data"": ""1709395200"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 3}","{""data"": ""65"", ""created_at"": 1700001050, ""last_modified"": 1700001050, ""field_type"": 1}","{""data"": ""1700001050"", ""field_type"": 8}","{""data"": ""1700001050"", ""field_type"": 9}" +"{""data"": ""Sales vs Open Source: Which is Better?"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 0}","{""data"": ""498"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 5}","{""data"": ""1702137600"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700001100, ""last_modified"": 1700001100, ""field_type"": 1}","{""data"": ""1700001100"", ""field_type"": 8}","{""data"": ""1700001100"", ""field_type"": 9}" +"{""data"": ""The State of Sales in 2025"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 0}","{""data"": ""38044"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 1}","{""data"": ""377"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 5}","{""data"": ""1686844800"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700001150, ""last_modified"": 1700001150, ""field_type"": 1}","{""data"": ""1700001150"", ""field_type"": 8}","{""data"": ""1700001150"", ""field_type"": 9}" +"{""data"": ""Remote Work in Practice: A Case Study"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 0}","{""data"": ""226743"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 1}","{""data"": ""3634"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 5}","{""data"": ""1710259200"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 3}","{""data"": ""59"", ""created_at"": 1700001200, ""last_modified"": 1700001200, ""field_type"": 1}","{""data"": ""1700001200"", ""field_type"": 8}","{""data"": ""1700001200"", ""field_type"": 9}" +"{""data"": ""Mobile Development vs Web3: Which is Better?"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 0}","{""data"": ""2532"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 5}","{""data"": ""1701619200"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 3}","{""data"": ""189"", ""created_at"": 1700001250, ""last_modified"": 1700001250, ""field_type"": 1}","{""data"": ""1700001250"", ""field_type"": 8}","{""data"": ""1700001250"", ""field_type"": 9}" +"{""data"": ""Why Data Analytics Matters for Your Business"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 0}","{""data"": ""1468"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 5}","{""data"": ""1733500800"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 3}","{""data"": ""57"", ""created_at"": 1700001300, ""last_modified"": 1700001300, ""field_type"": 1}","{""data"": ""1700001300"", ""field_type"": 8}","{""data"": ""1700001300"", ""field_type"": 9}" +"{""data"": ""Common CI/CD Mistakes to Avoid"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 0}","{""data"": ""15039"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 1}","{""data"": ""151"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 5}","{""data"": ""1720022400"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 3}","{""data"": ""190"", ""created_at"": 1700001350, ""last_modified"": 1700001350, ""field_type"": 1}","{""data"": ""1700001350"", ""field_type"": 8}","{""data"": ""1700001350"", ""field_type"": 9}" +"{""data"": ""Why We Chose Leadership"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 0}","{""data"": ""320"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 5}","{""data"": ""1677945600"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 3}","{""data"": ""130"", ""created_at"": 1700001400, ""last_modified"": 1700001400, ""field_type"": 1}","{""data"": ""1700001400"", ""field_type"": 8}","{""data"": ""1700001400"", ""field_type"": 9}" +"{""data"": ""The Ultimate GraphQL Checklist"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 0}","{""data"": ""109"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 5}","{""data"": ""1677340800"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 3}","{""data"": ""26"", ""created_at"": 1700001450, ""last_modified"": 1700001450, ""field_type"": 1}","{""data"": ""1700001450"", ""field_type"": 8}","{""data"": ""1700001450"", ""field_type"": 9}" +"{""data"": ""Optimizing React Performance"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 0}","{""data"": ""207"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 5}","{""data"": ""1691769600"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700001500, ""last_modified"": 1700001500, ""field_type"": 1}","{""data"": ""1700001500"", ""field_type"": 8}","{""data"": ""1700001500"", ""field_type"": 9}" +"{""data"": ""GraphQL: What You Need to Know"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 0}","{""data"": ""1065"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 1}","{""data"": ""31"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 5}","{""data"": ""1688400000"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 3}","{""data"": ""155"", ""created_at"": 1700001550, ""last_modified"": 1700001550, ""field_type"": 1}","{""data"": ""1700001550"", ""field_type"": 8}","{""data"": ""1700001550"", ""field_type"": 9}" +"{""data"": ""Advanced Hiring Techniques"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 0}","{""data"": ""1157"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 5}","{""data"": ""1682956800"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 3}","{""data"": ""76"", ""created_at"": 1700001600, ""last_modified"": 1700001600, ""field_type"": 1}","{""data"": ""1700001600"", ""field_type"": 8}","{""data"": ""1700001600"", ""field_type"": 9}" +"{""data"": ""How We Scaled Testing to 10 Users"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 0}","{""data"": ""686"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 5}","{""data"": ""1719504000"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 3}","{""data"": ""187"", ""created_at"": 1700001650, ""last_modified"": 1700001650, ""field_type"": 1}","{""data"": ""1700001650"", ""field_type"": 8}","{""data"": ""1700001650"", ""field_type"": 9}" +"{""data"": ""React Best Practices"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 0}","{""data"": ""12395"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 1}","{""data"": ""27"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 5}","{""data"": ""1693756800"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700001700, ""last_modified"": 1700001700, ""field_type"": 1}","{""data"": ""1700001700"", ""field_type"": 8}","{""data"": ""1700001700"", ""field_type"": 9}" +"{""data"": ""Getting Started with Leadership"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 0}","{""data"": ""175"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 5}","{""data"": ""1677427200"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 3}","{""data"": ""214"", ""created_at"": 1700001750, ""last_modified"": 1700001750, ""field_type"": 1}","{""data"": ""1700001750"", ""field_type"": 8}","{""data"": ""1700001750"", ""field_type"": 9}" +"{""data"": ""Testing in Practice: A Case Study"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 0}","{""data"": ""445"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 5}","{""data"": ""1730908800"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 3}","{""data"": ""71"", ""created_at"": 1700001800, ""last_modified"": 1700001800, ""field_type"": 1}","{""data"": ""1700001800"", ""field_type"": 8}","{""data"": ""1700001800"", ""field_type"": 9}" +"{""data"": ""UI Design Architecture Explained"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 0}","{""data"": ""139"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 5}","{""data"": ""1702915200"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 3}","{""data"": ""36"", ""created_at"": 1700001850, ""last_modified"": 1700001850, ""field_type"": 1}","{""data"": ""1700001850"", ""field_type"": 8}","{""data"": ""1700001850"", ""field_type"": 9}" +"{""data"": ""How REST APIs Changed Our Team"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 0}","{""data"": ""29671"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 1}","{""data"": ""143"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 5}","{""data"": ""1699027200"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700001900, ""last_modified"": 1700001900, ""field_type"": 1}","{""data"": ""1700001900"", ""field_type"": 8}","{""data"": ""1700001900"", ""field_type"": 9}" +"{""data"": ""TypeScript Tips and Tricks"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 0}","{""data"": ""248"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 5}","{""data"": ""1712246400"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 3}","{""data"": ""33"", ""created_at"": 1700001950, ""last_modified"": 1700001950, ""field_type"": 1}","{""data"": ""1700001950"", ""field_type"": 8}","{""data"": ""1700001950"", ""field_type"": 9}" +"{""data"": ""Team Management Best Practices"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 0}","{""data"": ""358"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 5}","{""data"": ""1714838400"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 3}","{""data"": ""57"", ""created_at"": 1700002000, ""last_modified"": 1700002000, ""field_type"": 1}","{""data"": ""1700002000"", ""field_type"": 8}","{""data"": ""1700002000"", ""field_type"": 9}" +"{""data"": ""Mastering Data Analytics for Beginners"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 0}","{""data"": ""4423"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 1}","{""data"": ""82"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 5}","{""data"": ""1721318400"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 3}","{""data"": ""175"", ""created_at"": 1700002050, ""last_modified"": 1700002050, ""field_type"": 1}","{""data"": ""1700002050"", ""field_type"": 8}","{""data"": ""1700002050"", ""field_type"": 9}" +"{""data"": ""Remote Work Tips and Tricks"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 0}","{""data"": ""4573"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 1}","{""data"": ""55"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 5}","{""data"": ""1690473600"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 3}","{""data"": ""121"", ""created_at"": 1700002100, ""last_modified"": 1700002100, ""field_type"": 1}","{""data"": ""1700002100"", ""field_type"": 8}","{""data"": ""1700002100"", ""field_type"": 9}" +"{""data"": ""The Future of Scrum"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 0}","{""data"": ""3920"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 5}","{""data"": ""1722873600"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 3}","{""data"": ""80"", ""created_at"": 1700002150, ""last_modified"": 1700002150, ""field_type"": 1}","{""data"": ""1700002150"", ""field_type"": 8}","{""data"": ""1700002150"", ""field_type"": 9}" +"{""data"": ""Why We Chose Kubernetes"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 0}","{""data"": ""4518"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 1}","{""data"": ""50"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 5}","{""data"": ""1688745600"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 3}","{""data"": ""201"", ""created_at"": 1700002200, ""last_modified"": 1700002200, ""field_type"": 1}","{""data"": ""1700002200"", ""field_type"": 8}","{""data"": ""1700002200"", ""field_type"": 9}" +"{""data"": ""How REST APIs Changed Our Team"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 0}","{""data"": ""441"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 5}","{""data"": ""1678464000"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 3}","{""data"": ""110"", ""created_at"": 1700002250, ""last_modified"": 1700002250, ""field_type"": 1}","{""data"": ""1700002250"", ""field_type"": 8}","{""data"": ""1700002250"", ""field_type"": 9}" +"{""data"": ""Why We Chose Open Source"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 0}","{""data"": ""46794"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 1}","{""data"": ""649"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 5}","{""data"": ""1673020800"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 3}","{""data"": ""91"", ""created_at"": 1700002300, ""last_modified"": 1700002300, ""field_type"": 1}","{""data"": ""1700002300"", ""field_type"": 8}","{""data"": ""1700002300"", ""field_type"": 9}" +"{""data"": ""Why Company Culture Matters for Your Business"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 0}","{""data"": ""58"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 5}","{""data"": ""1681920000"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700002350, ""last_modified"": 1700002350, ""field_type"": 1}","{""data"": ""1700002350"", ""field_type"": 8}","{""data"": ""1700002350"", ""field_type"": 9}" +"{""data"": ""The Future of AI"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 0}","{""data"": ""3751"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 5}","{""data"": ""1734105600"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700002400, ""last_modified"": 1700002400, ""field_type"": 1}","{""data"": ""1700002400"", ""field_type"": 8}","{""data"": ""1700002400"", ""field_type"": 9}" +"{""data"": ""1M Ways to Improve Your Scrum"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 0}","{""data"": ""31560"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 1}","{""data"": ""268"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 5}","{""data"": ""1687622400"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 3}","{""data"": ""155"", ""created_at"": 1700002450, ""last_modified"": 1700002450, ""field_type"": 1}","{""data"": ""1700002450"", ""field_type"": 8}","{""data"": ""1700002450"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to React"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 0}","{""data"": ""320"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 5}","{""data"": ""1696435200"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 3}","{""data"": ""147"", ""created_at"": 1700002500, ""last_modified"": 1700002500, ""field_type"": 1}","{""data"": ""1700002500"", ""field_type"": 8}","{""data"": ""1700002500"", ""field_type"": 9}" +"{""data"": ""Microservices vs Mobile Development: Which is Better?"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 0}","{""data"": ""25610"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 1}","{""data"": ""34"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 5}","{""data"": ""1679241600"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 3}","{""data"": ""52"", ""created_at"": 1700002550, ""last_modified"": 1700002550, ""field_type"": 1}","{""data"": ""1700002550"", ""field_type"": 8}","{""data"": ""1700002550"", ""field_type"": 9}" +"{""data"": ""The State of Product Development in 2023"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 0}","{""data"": ""219"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 5}","{""data"": ""1716739200"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 3}","{""data"": ""50"", ""created_at"": 1700002600, ""last_modified"": 1700002600, ""field_type"": 1}","{""data"": ""1700002600"", ""field_type"": 8}","{""data"": ""1700002600"", ""field_type"": 9}" +"{""data"": ""Database Design Architecture Explained"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 0}","{""data"": ""44660"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 1}","{""data"": ""704"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 5}","{""data"": ""1675094400"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 3}","{""data"": ""170"", ""created_at"": 1700002650, ""last_modified"": 1700002650, ""field_type"": 1}","{""data"": ""1700002650"", ""field_type"": 8}","{""data"": ""1700002650"", ""field_type"": 9}" +"{""data"": ""Understanding REST APIs: A Deep Dive"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 0}","{""data"": ""3613"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 5}","{""data"": ""1679760000"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 3}","{""data"": ""26"", ""created_at"": 1700002700, ""last_modified"": 1700002700, ""field_type"": 1}","{""data"": ""1700002700"", ""field_type"": 8}","{""data"": ""1700002700"", ""field_type"": 9}" +"{""data"": ""Getting Started with TypeScript"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 0}","{""data"": ""1372"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 5}","{""data"": ""1681488000"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 3}","{""data"": ""196"", ""created_at"": 1700002750, ""last_modified"": 1700002750, ""field_type"": 1}","{""data"": ""1700002750"", ""field_type"": 8}","{""data"": ""1700002750"", ""field_type"": 9}" +"{""data"": ""How to Build Data Analytics in 2024"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 0}","{""data"": ""1234"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 5}","{""data"": ""1706544000"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 3}","{""data"": ""26"", ""created_at"": 1700002800, ""last_modified"": 1700002800, ""field_type"": 1}","{""data"": ""1700002800"", ""field_type"": 8}","{""data"": ""1700002800"", ""field_type"": 9}" +"{""data"": ""Understanding AI: A Deep Dive"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 0}","{""data"": ""174"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 5}","{""data"": ""1684771200"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 3}","{""data"": ""116"", ""created_at"": 1700002850, ""last_modified"": 1700002850, ""field_type"": 1}","{""data"": ""1700002850"", ""field_type"": 8}","{""data"": ""1700002850"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from iOS"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 0}","{""data"": ""4466"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 1}","{""data"": ""76"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 5}","{""data"": ""1727798400"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700002900, ""last_modified"": 1700002900, ""field_type"": 1}","{""data"": ""1700002900"", ""field_type"": 8}","{""data"": ""1700002900"", ""field_type"": 9}" +"{""data"": ""Mastering Content Strategy for Beginners"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 0}","{""data"": ""30932"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 1}","{""data"": ""233"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 5}","{""data"": ""1711382400"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 3}","{""data"": ""82"", ""created_at"": 1700002950, ""last_modified"": 1700002950, ""field_type"": 1}","{""data"": ""1700002950"", ""field_type"": 8}","{""data"": ""1700002950"", ""field_type"": 9}" +"{""data"": ""Scrum Architecture Explained"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 0}","{""data"": ""3073"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 5}","{""data"": ""1733932800"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 3}","{""data"": ""146"", ""created_at"": 1700003000, ""last_modified"": 1700003000, ""field_type"": 1}","{""data"": ""1700003000"", ""field_type"": 8}","{""data"": ""1700003000"", ""field_type"": 9}" +"{""data"": ""Open Source: What You Need to Know"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 0}","{""data"": ""1432"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 1}","{""data"": ""27"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 5}","{""data"": ""1732809600"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700003050, ""last_modified"": 1700003050, ""field_type"": 1}","{""data"": ""1700003050"", ""field_type"": 8}","{""data"": ""1700003050"", ""field_type"": 9}" +"{""data"": ""Security vs Database Design: Which is Better?"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 0}","{""data"": ""475"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 5}","{""data"": ""1728489600"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700003100, ""last_modified"": 1700003100, ""field_type"": 1}","{""data"": ""1700003100"", ""field_type"": 8}","{""data"": ""1700003100"", ""field_type"": 9}" +"{""data"": ""Introduction to TypeScript"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 0}","{""data"": ""4425"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 1}","{""data"": ""61"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 5}","{""data"": ""1719936000"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 3}","{""data"": ""34"", ""created_at"": 1700003150, ""last_modified"": 1700003150, ""field_type"": 1}","{""data"": ""1700003150"", ""field_type"": 8}","{""data"": ""1700003150"", ""field_type"": 9}" +"{""data"": ""Why Machine Learning Matters for Your Business"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 0}","{""data"": ""45152"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 1}","{""data"": ""90"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 5}","{""data"": ""1710518400"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 3}","{""data"": ""163"", ""created_at"": 1700003200, ""last_modified"": 1700003200, ""field_type"": 1}","{""data"": ""1700003200"", ""field_type"": 8}","{""data"": ""1700003200"", ""field_type"": 9}" +"{""data"": ""How to Build Agile in 2024"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 0}","{""data"": ""344"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 5}","{""data"": ""1703001600"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 3}","{""data"": ""99"", ""created_at"": 1700003250, ""last_modified"": 1700003250, ""field_type"": 1}","{""data"": ""1700003250"", ""field_type"": 8}","{""data"": ""1700003250"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Product Development"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 0}","{""data"": ""14284"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 1}","{""data"": ""113"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 5}","{""data"": ""1718553600"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 3}","{""data"": ""57"", ""created_at"": 1700003300, ""last_modified"": 1700003300, ""field_type"": 1}","{""data"": ""1700003300"", ""field_type"": 8}","{""data"": ""1700003300"", ""field_type"": 9}" +"{""data"": ""Why Microservices Matters for Your Business"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 0}","{""data"": ""866"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 1}","{""data"": ""12"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 5}","{""data"": ""1729785600"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 3}","{""data"": ""121"", ""created_at"": 1700003350, ""last_modified"": 1700003350, ""field_type"": 1}","{""data"": ""1700003350"", ""field_type"": 8}","{""data"": ""1700003350"", ""field_type"": 9}" +"{""data"": ""Common Content Strategy Mistakes to Avoid"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 0}","{""data"": ""4285"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 1}","{""data"": ""30"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 5}","{""data"": ""1729094400"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 3}","{""data"": ""72"", ""created_at"": 1700003400, ""last_modified"": 1700003400, ""field_type"": 1}","{""data"": ""1700003400"", ""field_type"": 8}","{""data"": ""1700003400"", ""field_type"": 9}" +"{""data"": ""React: What You Need to Know"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 0}","{""data"": ""43810"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 1}","{""data"": ""396"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 5}","{""data"": ""1697126400"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 3}","{""data"": ""33"", ""created_at"": 1700003450, ""last_modified"": 1700003450, ""field_type"": 1}","{""data"": ""1700003450"", ""field_type"": 8}","{""data"": ""1700003450"", ""field_type"": 9}" +"{""data"": ""Remote Work Architecture Explained"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 0}","{""data"": ""26363"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 1}","{""data"": ""123"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 5}","{""data"": ""1719158400"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700003500, ""last_modified"": 1700003500, ""field_type"": 1}","{""data"": ""1700003500"", ""field_type"": 8}","{""data"": ""1700003500"", ""field_type"": 9}" +"{""data"": ""Optimizing TypeScript Performance"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 0}","{""data"": ""28067"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 1}","{""data"": ""478"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 5}","{""data"": ""1726848000"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 3}","{""data"": ""178"", ""created_at"": 1700003550, ""last_modified"": 1700003550, ""field_type"": 1}","{""data"": ""1700003550"", ""field_type"": 8}","{""data"": ""1700003550"", ""field_type"": 9}" +"{""data"": ""How We Scaled Content Strategy to 100K Users"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 0}","{""data"": ""29464"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 1}","{""data"": ""424"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 5}","{""data"": ""1723305600"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 3}","{""data"": ""186"", ""created_at"": 1700003600, ""last_modified"": 1700003600, ""field_type"": 1}","{""data"": ""1700003600"", ""field_type"": 8}","{""data"": ""1700003600"", ""field_type"": 9}" +"{""data"": ""The Ultimate Android Checklist"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 0}","{""data"": ""138"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 5}","{""data"": ""1700323200"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 3}","{""data"": ""24"", ""created_at"": 1700003650, ""last_modified"": 1700003650, ""field_type"": 1}","{""data"": ""1700003650"", ""field_type"": 8}","{""data"": ""1700003650"", ""field_type"": 9}" +"{""data"": ""How Customer Success Changed Our Team"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 0}","{""data"": ""30162"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 1}","{""data"": ""592"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 5}","{""data"": ""1709222400"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700003700, ""last_modified"": 1700003700, ""field_type"": 1}","{""data"": ""1700003700"", ""field_type"": 8}","{""data"": ""1700003700"", ""field_type"": 9}" +"{""data"": ""The State of Scrum in 2025"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 0}","{""data"": ""767"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 5}","{""data"": ""1722528000"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 3}","{""data"": ""155"", ""created_at"": 1700003750, ""last_modified"": 1700003750, ""field_type"": 1}","{""data"": ""1700003750"", ""field_type"": 8}","{""data"": ""1700003750"", ""field_type"": 9}" +"{""data"": ""Content Strategy Best Practices"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 0}","{""data"": ""237"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 5}","{""data"": ""1720800000"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 3}","{""data"": ""38"", ""created_at"": 1700003800, ""last_modified"": 1700003800, ""field_type"": 1}","{""data"": ""1700003800"", ""field_type"": 8}","{""data"": ""1700003800"", ""field_type"": 9}" +"{""data"": ""Why Security Matters for Your Business"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 0}","{""data"": ""66"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 5}","{""data"": ""1711296000"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 3}","{""data"": ""59"", ""created_at"": 1700003850, ""last_modified"": 1700003850, ""field_type"": 1}","{""data"": ""1700003850"", ""field_type"": 8}","{""data"": ""1700003850"", ""field_type"": 9}" +"{""data"": ""Optimizing Product Development Performance"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 0}","{""data"": ""269"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 5}","{""data"": ""1677686400"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 3}","{""data"": ""86"", ""created_at"": 1700003900, ""last_modified"": 1700003900, ""field_type"": 1}","{""data"": ""1700003900"", ""field_type"": 8}","{""data"": ""1700003900"", ""field_type"": 9}" +"{""data"": ""Understanding GraphQL: A Deep Dive"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 0}","{""data"": ""198"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 5}","{""data"": ""1677686400"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 3}","{""data"": ""166"", ""created_at"": 1700003950, ""last_modified"": 1700003950, ""field_type"": 1}","{""data"": ""1700003950"", ""field_type"": 8}","{""data"": ""1700003950"", ""field_type"": 9}" +"{""data"": ""Building a UI Design Strategy"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 0}","{""data"": ""396"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 5}","{""data"": ""1727971200"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 3}","{""data"": ""192"", ""created_at"": 1700004000, ""last_modified"": 1700004000, ""field_type"": 1}","{""data"": ""1700004000"", ""field_type"": 8}","{""data"": ""1700004000"", ""field_type"": 9}" +"{""data"": ""Optimizing Machine Learning Performance"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 0}","{""data"": ""2779"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 1}","{""data"": ""45"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 5}","{""data"": ""1701446400"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700004050, ""last_modified"": 1700004050, ""field_type"": 1}","{""data"": ""1700004050"", ""field_type"": 8}","{""data"": ""1700004050"", ""field_type"": 9}" +"{""data"": ""Understanding Remote Work: A Deep Dive"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 0}","{""data"": ""457"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 5}","{""data"": ""1716220800"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 3}","{""data"": ""97"", ""created_at"": 1700004100, ""last_modified"": 1700004100, ""field_type"": 1}","{""data"": ""1700004100"", ""field_type"": 8}","{""data"": ""1700004100"", ""field_type"": 9}" +"{""data"": ""Why Microservices Matters for Your Business"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 0}","{""data"": ""3315"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 1}","{""data"": ""55"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 5}","{""data"": ""1673884800"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700004150, ""last_modified"": 1700004150, ""field_type"": 1}","{""data"": ""1700004150"", ""field_type"": 8}","{""data"": ""1700004150"", ""field_type"": 9}" +"{""data"": ""UX Design Architecture Explained"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 0}","{""data"": ""117"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 5}","{""data"": ""1680710400"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 3}","{""data"": ""51"", ""created_at"": 1700004200, ""last_modified"": 1700004200, ""field_type"": 1}","{""data"": ""1700004200"", ""field_type"": 8}","{""data"": ""1700004200"", ""field_type"": 9}" +"{""data"": ""How to Build CI/CD in 2023"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 0}","{""data"": ""3002"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 1}","{""data"": ""46"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 5}","{""data"": ""1680883200"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700004250, ""last_modified"": 1700004250, ""field_type"": 1}","{""data"": ""1700004250"", ""field_type"": 8}","{""data"": ""1700004250"", ""field_type"": 9}" +"{""data"": ""Getting Started with Agile"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 0}","{""data"": ""566"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 5}","{""data"": ""1733846400"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 3}","{""data"": ""219"", ""created_at"": 1700004300, ""last_modified"": 1700004300, ""field_type"": 1}","{""data"": ""1700004300"", ""field_type"": 8}","{""data"": ""1700004300"", ""field_type"": 9}" +"{""data"": ""Common REST APIs Mistakes to Avoid"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 0}","{""data"": ""3511"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 1}","{""data"": ""61"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 5}","{""data"": ""1729180800"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 3}","{""data"": ""189"", ""created_at"": 1700004350, ""last_modified"": 1700004350, ""field_type"": 1}","{""data"": ""1700004350"", ""field_type"": 8}","{""data"": ""1700004350"", ""field_type"": 9}" +"{""data"": ""Introduction to Customer Success"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 0}","{""data"": ""390797"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 1}","{""data"": ""1615"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 5}","{""data"": ""1708876800"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 3}","{""data"": ""66"", ""created_at"": 1700004400, ""last_modified"": 1700004400, ""field_type"": 1}","{""data"": ""1700004400"", ""field_type"": 8}","{""data"": ""1700004400"", ""field_type"": 9}" +"{""data"": ""Understanding TypeScript: A Deep Dive"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 0}","{""data"": ""30167"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 1}","{""data"": ""239"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 5}","{""data"": ""1694361600"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 3}","{""data"": ""60"", ""created_at"": 1700004450, ""last_modified"": 1700004450, ""field_type"": 1}","{""data"": ""1700004450"", ""field_type"": 8}","{""data"": ""1700004450"", ""field_type"": 9}" +"{""data"": ""Kubernetes vs Performance: Which is Better?"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 0}","{""data"": ""403"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 5}","{""data"": ""1707148800"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 3}","{""data"": ""93"", ""created_at"": 1700004500, ""last_modified"": 1700004500, ""field_type"": 1}","{""data"": ""1700004500"", ""field_type"": 8}","{""data"": ""1700004500"", ""field_type"": 9}" +"{""data"": ""How We Scaled Web3 to 20 Users"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 0}","{""data"": ""320"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 5}","{""data"": ""1684166400"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 3}","{""data"": ""119"", ""created_at"": 1700004550, ""last_modified"": 1700004550, ""field_type"": 1}","{""data"": ""1700004550"", ""field_type"": 8}","{""data"": ""1700004550"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Marketing Automation"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 0}","{""data"": ""444"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 5}","{""data"": ""1675958400"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 3}","{""data"": ""7"", ""created_at"": 1700004600, ""last_modified"": 1700004600, ""field_type"": 1}","{""data"": ""1700004600"", ""field_type"": 8}","{""data"": ""1700004600"", ""field_type"": 9}" +"{""data"": ""CI/CD in Practice: A Case Study"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 0}","{""data"": ""3795"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 5}","{""data"": ""1679414400"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 3}","{""data"": ""3"", ""created_at"": 1700004650, ""last_modified"": 1700004650, ""field_type"": 1}","{""data"": ""1700004650"", ""field_type"": 8}","{""data"": ""1700004650"", ""field_type"": 9}" +"{""data"": ""The Future of TypeScript"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 0}","{""data"": ""398"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 5}","{""data"": ""1677600000"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 3}","{""data"": ""114"", ""created_at"": 1700004700, ""last_modified"": 1700004700, ""field_type"": 1}","{""data"": ""1700004700"", ""field_type"": 8}","{""data"": ""1700004700"", ""field_type"": 9}" +"{""data"": ""Advanced Scrum Techniques"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 0}","{""data"": ""48652"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 1}","{""data"": ""734"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 5}","{""data"": ""1673452800"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700004750, ""last_modified"": 1700004750, ""field_type"": 1}","{""data"": ""1700004750"", ""field_type"": 8}","{""data"": ""1700004750"", ""field_type"": 9}" +"{""data"": ""Mastering Content Strategy for Beginners"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 0}","{""data"": ""1539"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 5}","{""data"": ""1675094400"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700004800, ""last_modified"": 1700004800, ""field_type"": 1}","{""data"": ""1700004800"", ""field_type"": 8}","{""data"": ""1700004800"", ""field_type"": 9}" +"{""data"": ""Advanced Performance Techniques"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 0}","{""data"": ""304"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 5}","{""data"": ""1704988800"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700004850, ""last_modified"": 1700004850, ""field_type"": 1}","{""data"": ""1700004850"", ""field_type"": 8}","{""data"": ""1700004850"", ""field_type"": 9}" +"{""data"": ""How We Scaled REST APIs to 20 Users"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 0}","{""data"": ""72"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 5}","{""data"": ""1704643200"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700004900, ""last_modified"": 1700004900, ""field_type"": 1}","{""data"": ""1700004900"", ""field_type"": 8}","{""data"": ""1700004900"", ""field_type"": 9}" +"{""data"": ""20 Ways to Improve Your Web3"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 0}","{""data"": ""164"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 5}","{""data"": ""1696435200"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 3}","{""data"": ""118"", ""created_at"": 1700004950, ""last_modified"": 1700004950, ""field_type"": 1}","{""data"": ""1700004950"", ""field_type"": 8}","{""data"": ""1700004950"", ""field_type"": 9}" +"{""data"": ""AI vs Team Management: Which is Better?"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 0}","{""data"": ""19626"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 1}","{""data"": ""315"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 5}","{""data"": ""1713628800"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700005000, ""last_modified"": 1700005000, ""field_type"": 1}","{""data"": ""1700005000"", ""field_type"": 8}","{""data"": ""1700005000"", ""field_type"": 9}" +"{""data"": ""The State of Hiring in 2023"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 0}","{""data"": ""2989"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 1}","{""data"": ""46"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 5}","{""data"": ""1689782400"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 3}","{""data"": ""44"", ""created_at"": 1700005050, ""last_modified"": 1700005050, ""field_type"": 1}","{""data"": ""1700005050"", ""field_type"": 8}","{""data"": ""1700005050"", ""field_type"": 9}" +"{""data"": ""How We Scaled AI to 20 Users"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 0}","{""data"": ""40490"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 1}","{""data"": ""301"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 5}","{""data"": ""1730649600"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700005100, ""last_modified"": 1700005100, ""field_type"": 1}","{""data"": ""1700005100"", ""field_type"": 8}","{""data"": ""1700005100"", ""field_type"": 9}" +"{""data"": ""Building a UX Design Strategy"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 0}","{""data"": ""122"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 5}","{""data"": ""1718467200"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700005150, ""last_modified"": 1700005150, ""field_type"": 1}","{""data"": ""1700005150"", ""field_type"": 8}","{""data"": ""1700005150"", ""field_type"": 9}" +"{""data"": ""Performance vs Team Management: Which is Better?"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 0}","{""data"": ""251"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 5}","{""data"": ""1693411200"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 3}","{""data"": ""139"", ""created_at"": 1700005200, ""last_modified"": 1700005200, ""field_type"": 1}","{""data"": ""1700005200"", ""field_type"": 8}","{""data"": ""1700005200"", ""field_type"": 9}" +"{""data"": ""Why Microservices Matters for Your Business"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 0}","{""data"": ""2413"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 5}","{""data"": ""1686240000"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 3}","{""data"": ""88"", ""created_at"": 1700005250, ""last_modified"": 1700005250, ""field_type"": 1}","{""data"": ""1700005250"", ""field_type"": 8}","{""data"": ""1700005250"", ""field_type"": 9}" +"{""data"": ""Advanced AI Techniques"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 0}","{""data"": ""156"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 5}","{""data"": ""1680451200"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 3}","{""data"": ""10"", ""created_at"": 1700005300, ""last_modified"": 1700005300, ""field_type"": 1}","{""data"": ""1700005300"", ""field_type"": 8}","{""data"": ""1700005300"", ""field_type"": 9}" +"{""data"": ""Advanced Cloud Computing Techniques"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 0}","{""data"": ""2533"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 1}","{""data"": ""56"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 5}","{""data"": ""1695484800"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 3}","{""data"": ""14"", ""created_at"": 1700005350, ""last_modified"": 1700005350, ""field_type"": 1}","{""data"": ""1700005350"", ""field_type"": 8}","{""data"": ""1700005350"", ""field_type"": 9}" +"{""data"": ""Marketing Automation Best Practices"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 0}","{""data"": ""1645"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 5}","{""data"": ""1683993600"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700005400, ""last_modified"": 1700005400, ""field_type"": 1}","{""data"": ""1700005400"", ""field_type"": 8}","{""data"": ""1700005400"", ""field_type"": 9}" +"{""data"": ""Customer Success Architecture Explained"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 0}","{""data"": ""43411"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 1}","{""data"": ""253"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 5}","{""data"": ""1689955200"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700005450, ""last_modified"": 1700005450, ""field_type"": 1}","{""data"": ""1700005450"", ""field_type"": 8}","{""data"": ""1700005450"", ""field_type"": 9}" +"{""data"": ""How to Build UI Design in 2023"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 0}","{""data"": ""4276"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 5}","{""data"": ""1716393600"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 3}","{""data"": ""132"", ""created_at"": 1700005500, ""last_modified"": 1700005500, ""field_type"": 1}","{""data"": ""1700005500"", ""field_type"": 8}","{""data"": ""1700005500"", ""field_type"": 9}" +"{""data"": ""Scrum vs SEO: Which is Better?"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 0}","{""data"": ""23340"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 1}","{""data"": ""220"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 5}","{""data"": ""1729699200"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700005550, ""last_modified"": 1700005550, ""field_type"": 1}","{""data"": ""1700005550"", ""field_type"": 8}","{""data"": ""1700005550"", ""field_type"": 9}" +"{""data"": ""How Product Development Changed Our Team"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 0}","{""data"": ""2133"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 1}","{""data"": ""30"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 5}","{""data"": ""1706284800"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700005600, ""last_modified"": 1700005600, ""field_type"": 1}","{""data"": ""1700005600"", ""field_type"": 8}","{""data"": ""1700005600"", ""field_type"": 9}" +"{""data"": ""Database Design: What You Need to Know"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 0}","{""data"": ""248"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 5}","{""data"": ""1675094400"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700005650, ""last_modified"": 1700005650, ""field_type"": 1}","{""data"": ""1700005650"", ""field_type"": 8}","{""data"": ""1700005650"", ""field_type"": 9}" +"{""data"": ""Optimizing UI Design Performance"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 0}","{""data"": ""1807"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 5}","{""data"": ""1691856000"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 3}","{""data"": ""176"", ""created_at"": 1700005700, ""last_modified"": 1700005700, ""field_type"": 1}","{""data"": ""1700005700"", ""field_type"": 8}","{""data"": ""1700005700"", ""field_type"": 9}" +"{""data"": ""Optimizing REST APIs Performance"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 0}","{""data"": ""233"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 5}","{""data"": ""1722700800"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 3}","{""data"": ""45"", ""created_at"": 1700005750, ""last_modified"": 1700005750, ""field_type"": 1}","{""data"": ""1700005750"", ""field_type"": 8}","{""data"": ""1700005750"", ""field_type"": 9}" +"{""data"": ""The Future of Cloud Computing"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 0}","{""data"": ""3031"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 5}","{""data"": ""1725724800"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700005800, ""last_modified"": 1700005800, ""field_type"": 1}","{""data"": ""1700005800"", ""field_type"": 8}","{""data"": ""1700005800"", ""field_type"": 9}" +"{""data"": ""How REST APIs Changed Our Team"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 0}","{""data"": ""224"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 5}","{""data"": ""1724342400"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 3}","{""data"": ""13"", ""created_at"": 1700005850, ""last_modified"": 1700005850, ""field_type"": 1}","{""data"": ""1700005850"", ""field_type"": 8}","{""data"": ""1700005850"", ""field_type"": 9}" +"{""data"": ""Advanced Content Strategy Techniques"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 0}","{""data"": ""48393"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 1}","{""data"": ""410"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 5}","{""data"": ""1684512000"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700005900, ""last_modified"": 1700005900, ""field_type"": 1}","{""data"": ""1700005900"", ""field_type"": 8}","{""data"": ""1700005900"", ""field_type"": 9}" +"{""data"": ""Data Analytics vs GraphQL: Which is Better?"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 0}","{""data"": ""364"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 5}","{""data"": ""1705939200"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 3}","{""data"": ""54"", ""created_at"": 1700005950, ""last_modified"": 1700005950, ""field_type"": 1}","{""data"": ""1700005950"", ""field_type"": 8}","{""data"": ""1700005950"", ""field_type"": 9}" +"{""data"": ""Introduction to Remote Work"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 0}","{""data"": ""418054"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 1}","{""data"": ""7960"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 5}","{""data"": ""1688572800"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 3}","{""data"": ""14"", ""created_at"": 1700006000, ""last_modified"": 1700006000, ""field_type"": 1}","{""data"": ""1700006000"", ""field_type"": 8}","{""data"": ""1700006000"", ""field_type"": 9}" +"{""data"": ""Team Management Architecture Explained"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 0}","{""data"": ""1137"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 5}","{""data"": ""1731772800"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 3}","{""data"": ""184"", ""created_at"": 1700006050, ""last_modified"": 1700006050, ""field_type"": 1}","{""data"": ""1700006050"", ""field_type"": 8}","{""data"": ""1700006050"", ""field_type"": 9}" +"{""data"": ""Building a Scrum Strategy"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 0}","{""data"": ""1385"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 5}","{""data"": ""1687190400"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 3}","{""data"": ""155"", ""created_at"": 1700006100, ""last_modified"": 1700006100, ""field_type"": 1}","{""data"": ""1700006100"", ""field_type"": 8}","{""data"": ""1700006100"", ""field_type"": 9}" +"{""data"": ""Cloud Computing vs Team Management: Which is Better?"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 0}","{""data"": ""345"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 5}","{""data"": ""1675440000"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 3}","{""data"": ""45"", ""created_at"": 1700006150, ""last_modified"": 1700006150, ""field_type"": 1}","{""data"": ""1700006150"", ""field_type"": 8}","{""data"": ""1700006150"", ""field_type"": 9}" +"{""data"": ""Introduction to Android"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 0}","{""data"": ""29606"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 1}","{""data"": ""117"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 5}","{""data"": ""1702396800"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700006200, ""last_modified"": 1700006200, ""field_type"": 1}","{""data"": ""1700006200"", ""field_type"": 8}","{""data"": ""1700006200"", ""field_type"": 9}" +"{""data"": ""How Open Source Changed Our Team"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 0}","{""data"": ""272"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 5}","{""data"": ""1708704000"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700006250, ""last_modified"": 1700006250, ""field_type"": 1}","{""data"": ""1700006250"", ""field_type"": 8}","{""data"": ""1700006250"", ""field_type"": 9}" +"{""data"": ""Common iOS Mistakes to Avoid"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 0}","{""data"": ""4521"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 1}","{""data"": ""23"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 5}","{""data"": ""1698508800"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 3}","{""data"": ""175"", ""created_at"": 1700006300, ""last_modified"": 1700006300, ""field_type"": 1}","{""data"": ""1700006300"", ""field_type"": 8}","{""data"": ""1700006300"", ""field_type"": 9}" +"{""data"": ""How We Scaled Agile to 10 Users"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 0}","{""data"": ""139565"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 1}","{""data"": ""1828"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 5}","{""data"": ""1699718400"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700006350, ""last_modified"": 1700006350, ""field_type"": 1}","{""data"": ""1700006350"", ""field_type"": 8}","{""data"": ""1700006350"", ""field_type"": 9}" +"{""data"": ""Understanding Testing: A Deep Dive"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 0}","{""data"": ""3624"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 1}","{""data"": ""38"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 5}","{""data"": ""1713628800"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 3}","{""data"": ""104"", ""created_at"": 1700006400, ""last_modified"": 1700006400, ""field_type"": 1}","{""data"": ""1700006400"", ""field_type"": 8}","{""data"": ""1700006400"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to UI Design"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 0}","{""data"": ""3316"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 1}","{""data"": ""62"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 5}","{""data"": ""1721404800"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 3}","{""data"": ""49"", ""created_at"": 1700006450, ""last_modified"": 1700006450, ""field_type"": 1}","{""data"": ""1700006450"", ""field_type"": 8}","{""data"": ""1700006450"", ""field_type"": 9}" +"{""data"": ""Optimizing Company Culture Performance"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 0}","{""data"": ""170"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 5}","{""data"": ""1716912000"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700006500, ""last_modified"": 1700006500, ""field_type"": 1}","{""data"": ""1700006500"", ""field_type"": 8}","{""data"": ""1700006500"", ""field_type"": 9}" +"{""data"": ""Common Content Strategy Mistakes to Avoid"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 0}","{""data"": ""1869"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 1}","{""data"": ""37"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 5}","{""data"": ""1679414400"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700006550, ""last_modified"": 1700006550, ""field_type"": 1}","{""data"": ""1700006550"", ""field_type"": 8}","{""data"": ""1700006550"", ""field_type"": 9}" +"{""data"": ""Sales in Practice: A Case Study"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 0}","{""data"": ""463"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 5}","{""data"": ""1696867200"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 3}","{""data"": ""56"", ""created_at"": 1700006600, ""last_modified"": 1700006600, ""field_type"": 1}","{""data"": ""1700006600"", ""field_type"": 8}","{""data"": ""1700006600"", ""field_type"": 9}" +"{""data"": ""Why We Chose Product Development"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 0}","{""data"": ""1725"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 5}","{""data"": ""1697731200"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700006650, ""last_modified"": 1700006650, ""field_type"": 1}","{""data"": ""1700006650"", ""field_type"": 8}","{""data"": ""1700006650"", ""field_type"": 9}" +"{""data"": ""How We Scaled Team Management to 100K Users"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 0}","{""data"": ""1910"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 5}","{""data"": ""1675872000"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 3}","{""data"": ""143"", ""created_at"": 1700006700, ""last_modified"": 1700006700, ""field_type"": 1}","{""data"": ""1700006700"", ""field_type"": 8}","{""data"": ""1700006700"", ""field_type"": 9}" +"{""data"": ""Common Python Mistakes to Avoid"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 0}","{""data"": ""3267"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 1}","{""data"": ""58"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 5}","{""data"": ""1734019200"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 3}","{""data"": ""150"", ""created_at"": 1700006750, ""last_modified"": 1700006750, ""field_type"": 1}","{""data"": ""1700006750"", ""field_type"": 8}","{""data"": ""1700006750"", ""field_type"": 9}" +"{""data"": ""The State of Scrum in 2024"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 0}","{""data"": ""187"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 5}","{""data"": ""1708444800"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 3}","{""data"": ""190"", ""created_at"": 1700006800, ""last_modified"": 1700006800, ""field_type"": 1}","{""data"": ""1700006800"", ""field_type"": 8}","{""data"": ""1700006800"", ""field_type"": 9}" +"{""data"": ""The Future of DevOps"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 0}","{""data"": ""4651"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 5}","{""data"": ""1677600000"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 3}","{""data"": ""184"", ""created_at"": 1700006850, ""last_modified"": 1700006850, ""field_type"": 1}","{""data"": ""1700006850"", ""field_type"": 8}","{""data"": ""1700006850"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from iOS"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 0}","{""data"": ""308"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 5}","{""data"": ""1705420800"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700006900, ""last_modified"": 1700006900, ""field_type"": 1}","{""data"": ""1700006900"", ""field_type"": 8}","{""data"": ""1700006900"", ""field_type"": 9}" +"{""data"": ""Advanced Web3 Techniques"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 0}","{""data"": ""2618"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 1}","{""data"": ""36"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 5}","{""data"": ""1676822400"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 3}","{""data"": ""152"", ""created_at"": 1700006950, ""last_modified"": 1700006950, ""field_type"": 1}","{""data"": ""1700006950"", ""field_type"": 8}","{""data"": ""1700006950"", ""field_type"": 9}" +"{""data"": ""Advanced iOS Techniques"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 0}","{""data"": ""312"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 5}","{""data"": ""1729699200"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 3}","{""data"": ""42"", ""created_at"": 1700007000, ""last_modified"": 1700007000, ""field_type"": 1}","{""data"": ""1700007000"", ""field_type"": 8}","{""data"": ""1700007000"", ""field_type"": 9}" +"{""data"": ""Understanding CI/CD: A Deep Dive"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 0}","{""data"": ""413"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 5}","{""data"": ""1713110400"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 3}","{""data"": ""74"", ""created_at"": 1700007050, ""last_modified"": 1700007050, ""field_type"": 1}","{""data"": ""1700007050"", ""field_type"": 8}","{""data"": ""1700007050"", ""field_type"": 9}" +"{""data"": ""Common Python Mistakes to Avoid"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 0}","{""data"": ""53"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 5}","{""data"": ""1698854400"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 3}","{""data"": ""168"", ""created_at"": 1700007100, ""last_modified"": 1700007100, ""field_type"": 1}","{""data"": ""1700007100"", ""field_type"": 8}","{""data"": ""1700007100"", ""field_type"": 9}" +"{""data"": ""Introduction to Marketing Automation"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 0}","{""data"": ""183"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 5}","{""data"": ""1677513600"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 3}","{""data"": ""192"", ""created_at"": 1700007150, ""last_modified"": 1700007150, ""field_type"": 1}","{""data"": ""1700007150"", ""field_type"": 8}","{""data"": ""1700007150"", ""field_type"": 9}" +"{""data"": ""How Web3 Changed Our Team"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 0}","{""data"": ""182"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 5}","{""data"": ""1724083200"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700007200, ""last_modified"": 1700007200, ""field_type"": 1}","{""data"": ""1700007200"", ""field_type"": 8}","{""data"": ""1700007200"", ""field_type"": 9}" +"{""data"": ""Why We Chose Serverless"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 0}","{""data"": ""293"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 5}","{""data"": ""1730649600"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 3}","{""data"": ""24"", ""created_at"": 1700007250, ""last_modified"": 1700007250, ""field_type"": 1}","{""data"": ""1700007250"", ""field_type"": 8}","{""data"": ""1700007250"", ""field_type"": 9}" +"{""data"": ""The Future of AI"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 0}","{""data"": ""440"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 5}","{""data"": ""1703865600"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 3}","{""data"": ""202"", ""created_at"": 1700007300, ""last_modified"": 1700007300, ""field_type"": 1}","{""data"": ""1700007300"", ""field_type"": 8}","{""data"": ""1700007300"", ""field_type"": 9}" +"{""data"": ""Why UI Design Matters for Your Business"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 0}","{""data"": ""290"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 5}","{""data"": ""1716739200"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 3}","{""data"": ""18"", ""created_at"": 1700007350, ""last_modified"": 1700007350, ""field_type"": 1}","{""data"": ""1700007350"", ""field_type"": 8}","{""data"": ""1700007350"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Team Management"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 0}","{""data"": ""2140"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 1}","{""data"": ""25"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 5}","{""data"": ""1679587200"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700007400, ""last_modified"": 1700007400, ""field_type"": 1}","{""data"": ""1700007400"", ""field_type"": 8}","{""data"": ""1700007400"", ""field_type"": 9}" +"{""data"": ""Introduction to Content Strategy"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 0}","{""data"": ""1881"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 5}","{""data"": ""1683907200"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 3}","{""data"": ""57"", ""created_at"": 1700007450, ""last_modified"": 1700007450, ""field_type"": 1}","{""data"": ""1700007450"", ""field_type"": 8}","{""data"": ""1700007450"", ""field_type"": 9}" +"{""data"": ""Common Machine Learning Mistakes to Avoid"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 0}","{""data"": ""2133"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 5}","{""data"": ""1674057600"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700007500, ""last_modified"": 1700007500, ""field_type"": 1}","{""data"": ""1700007500"", ""field_type"": 8}","{""data"": ""1700007500"", ""field_type"": 9}" +"{""data"": ""Sales vs Hiring: Which is Better?"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 0}","{""data"": ""4623"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 1}","{""data"": ""56"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 5}","{""data"": ""1698854400"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 3}","{""data"": ""55"", ""created_at"": 1700007550, ""last_modified"": 1700007550, ""field_type"": 1}","{""data"": ""1700007550"", ""field_type"": 8}","{""data"": ""1700007550"", ""field_type"": 9}" +"{""data"": ""How We Scaled Cloud Computing to 100K Users"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 0}","{""data"": ""225"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 5}","{""data"": ""1687017600"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700007600, ""last_modified"": 1700007600, ""field_type"": 1}","{""data"": ""1700007600"", ""field_type"": 8}","{""data"": ""1700007600"", ""field_type"": 9}" +"{""data"": ""Performance Architecture Explained"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 0}","{""data"": ""4633"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 1}","{""data"": ""25"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 5}","{""data"": ""1705680000"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700007650, ""last_modified"": 1700007650, ""field_type"": 1}","{""data"": ""1700007650"", ""field_type"": 8}","{""data"": ""1700007650"", ""field_type"": 9}" +"{""data"": ""The Ultimate UI Design Checklist"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 0}","{""data"": ""12085"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 1}","{""data"": ""157"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 5}","{""data"": ""1709308800"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 3}","{""data"": ""79"", ""created_at"": 1700007700, ""last_modified"": 1700007700, ""field_type"": 1}","{""data"": ""1700007700"", ""field_type"": 8}","{""data"": ""1700007700"", ""field_type"": 9}" +"{""data"": ""Database Design in Practice: A Case Study"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 0}","{""data"": ""49940"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 1}","{""data"": ""652"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 5}","{""data"": ""1731081600"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 3}","{""data"": ""104"", ""created_at"": 1700007750, ""last_modified"": 1700007750, ""field_type"": 1}","{""data"": ""1700007750"", ""field_type"": 8}","{""data"": ""1700007750"", ""field_type"": 9}" +"{""data"": ""Introduction to Docker"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 0}","{""data"": ""366"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 5}","{""data"": ""1690041600"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 3}","{""data"": ""107"", ""created_at"": 1700007800, ""last_modified"": 1700007800, ""field_type"": 1}","{""data"": ""1700007800"", ""field_type"": 8}","{""data"": ""1700007800"", ""field_type"": 9}" +"{""data"": ""The Future of Machine Learning"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 0}","{""data"": ""4990"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 1}","{""data"": ""53"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 5}","{""data"": ""1701705600"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 3}","{""data"": ""213"", ""created_at"": 1700007850, ""last_modified"": 1700007850, ""field_type"": 1}","{""data"": ""1700007850"", ""field_type"": 8}","{""data"": ""1700007850"", ""field_type"": 9}" +"{""data"": ""Testing Architecture Explained"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 0}","{""data"": ""126"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 5}","{""data"": ""1695139200"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 3}","{""data"": ""94"", ""created_at"": 1700007900, ""last_modified"": 1700007900, ""field_type"": 1}","{""data"": ""1700007900"", ""field_type"": 8}","{""data"": ""1700007900"", ""field_type"": 9}" +"{""data"": ""The State of Rust in 2023"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 0}","{""data"": ""16449"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 1}","{""data"": ""293"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 5}","{""data"": ""1710172800"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 3}","{""data"": ""139"", ""created_at"": 1700007950, ""last_modified"": 1700007950, ""field_type"": 1}","{""data"": ""1700007950"", ""field_type"": 8}","{""data"": ""1700007950"", ""field_type"": 9}" +"{""data"": ""Mastering Serverless for Beginners"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 0}","{""data"": ""3428"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 1}","{""data"": ""64"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 5}","{""data"": ""1705420800"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 3}","{""data"": ""114"", ""created_at"": 1700008000, ""last_modified"": 1700008000, ""field_type"": 1}","{""data"": ""1700008000"", ""field_type"": 8}","{""data"": ""1700008000"", ""field_type"": 9}" +"{""data"": ""Why SEO Matters for Your Business"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 0}","{""data"": ""4417"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 1}","{""data"": ""71"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 5}","{""data"": ""1686585600"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 3}","{""data"": ""5"", ""created_at"": 1700008050, ""last_modified"": 1700008050, ""field_type"": 1}","{""data"": ""1700008050"", ""field_type"": 8}","{""data"": ""1700008050"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Rust"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 0}","{""data"": ""448"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 5}","{""data"": ""1715184000"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700008100, ""last_modified"": 1700008100, ""field_type"": 1}","{""data"": ""1700008100"", ""field_type"": 8}","{""data"": ""1700008100"", ""field_type"": 9}" +"{""data"": ""Android in Practice: A Case Study"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 0}","{""data"": ""4799"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 1}","{""data"": ""76"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 5}","{""data"": ""1718380800"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 3}","{""data"": ""79"", ""created_at"": 1700008150, ""last_modified"": 1700008150, ""field_type"": 1}","{""data"": ""1700008150"", ""field_type"": 8}","{""data"": ""1700008150"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Scrum"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 0}","{""data"": ""378"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 5}","{""data"": ""1717171200"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 3}","{""data"": ""72"", ""created_at"": 1700008200, ""last_modified"": 1700008200, ""field_type"": 1}","{""data"": ""1700008200"", ""field_type"": 8}","{""data"": ""1700008200"", ""field_type"": 9}" +"{""data"": ""The Ultimate Customer Success Checklist"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 0}","{""data"": ""75"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 5}","{""data"": ""1679414400"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700008250, ""last_modified"": 1700008250, ""field_type"": 1}","{""data"": ""1700008250"", ""field_type"": 8}","{""data"": ""1700008250"", ""field_type"": 9}" +"{""data"": ""Why We Chose Open Source"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 0}","{""data"": ""4574"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 1}","{""data"": ""64"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 5}","{""data"": ""1675612800"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700008300, ""last_modified"": 1700008300, ""field_type"": 1}","{""data"": ""1700008300"", ""field_type"": 8}","{""data"": ""1700008300"", ""field_type"": 9}" +"{""data"": ""The Future of Sales"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 0}","{""data"": ""4664"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 1}","{""data"": ""63"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 5}","{""data"": ""1677254400"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 3}","{""data"": ""53"", ""created_at"": 1700008350, ""last_modified"": 1700008350, ""field_type"": 1}","{""data"": ""1700008350"", ""field_type"": 8}","{""data"": ""1700008350"", ""field_type"": 9}" +"{""data"": ""Mastering Product Development for Beginners"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 0}","{""data"": ""416"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 5}","{""data"": ""1672675200"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 3}","{""data"": ""194"", ""created_at"": 1700008400, ""last_modified"": 1700008400, ""field_type"": 1}","{""data"": ""1700008400"", ""field_type"": 8}","{""data"": ""1700008400"", ""field_type"": 9}" +"{""data"": ""Why Marketing Automation Matters for Your Business"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 0}","{""data"": ""15758"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 1}","{""data"": ""171"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 5}","{""data"": ""1689091200"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 3}","{""data"": ""161"", ""created_at"": 1700008450, ""last_modified"": 1700008450, ""field_type"": 1}","{""data"": ""1700008450"", ""field_type"": 8}","{""data"": ""1700008450"", ""field_type"": 9}" +"{""data"": ""Common Mobile Development Mistakes to Avoid"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 0}","{""data"": ""3895"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 5}","{""data"": ""1712937600"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 3}","{""data"": ""206"", ""created_at"": 1700008500, ""last_modified"": 1700008500, ""field_type"": 1}","{""data"": ""1700008500"", ""field_type"": 8}","{""data"": ""1700008500"", ""field_type"": 9}" +"{""data"": ""Serverless: What You Need to Know"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 0}","{""data"": ""435988"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 1}","{""data"": ""846"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 5}","{""data"": ""1717430400"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 3}","{""data"": ""102"", ""created_at"": 1700008550, ""last_modified"": 1700008550, ""field_type"": 1}","{""data"": ""1700008550"", ""field_type"": 8}","{""data"": ""1700008550"", ""field_type"": 9}" +"{""data"": ""Introduction to Security"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 0}","{""data"": ""48091"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 1}","{""data"": ""601"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 5}","{""data"": ""1709481600"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700008600, ""last_modified"": 1700008600, ""field_type"": 1}","{""data"": ""1700008600"", ""field_type"": 8}","{""data"": ""1700008600"", ""field_type"": 9}" +"{""data"": ""CI/CD Architecture Explained"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 0}","{""data"": ""3881"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 1}","{""data"": ""52"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 5}","{""data"": ""1721404800"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 3}","{""data"": ""185"", ""created_at"": 1700008650, ""last_modified"": 1700008650, ""field_type"": 1}","{""data"": ""1700008650"", ""field_type"": 8}","{""data"": ""1700008650"", ""field_type"": 9}" +"{""data"": ""Product Development: What You Need to Know"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 0}","{""data"": ""117"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 5}","{""data"": ""1682697600"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 3}","{""data"": ""155"", ""created_at"": 1700008700, ""last_modified"": 1700008700, ""field_type"": 1}","{""data"": ""1700008700"", ""field_type"": 8}","{""data"": ""1700008700"", ""field_type"": 9}" +"{""data"": ""How We Scaled REST APIs to 5 Users"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 0}","{""data"": ""4873"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 1}","{""data"": ""39"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 5}","{""data"": ""1674662400"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 3}","{""data"": ""123"", ""created_at"": 1700008750, ""last_modified"": 1700008750, ""field_type"": 1}","{""data"": ""1700008750"", ""field_type"": 8}","{""data"": ""1700008750"", ""field_type"": 9}" +"{""data"": ""Hiring: What You Need to Know"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 0}","{""data"": ""2847"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 1}","{""data"": ""38"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 5}","{""data"": ""1690473600"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 3}","{""data"": ""214"", ""created_at"": 1700008800, ""last_modified"": 1700008800, ""field_type"": 1}","{""data"": ""1700008800"", ""field_type"": 8}","{""data"": ""1700008800"", ""field_type"": 9}" +"{""data"": ""Common Kubernetes Mistakes to Avoid"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 0}","{""data"": ""337"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 1}","{""data"": ""12"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 5}","{""data"": ""1733760000"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700008850, ""last_modified"": 1700008850, ""field_type"": 1}","{""data"": ""1700008850"", ""field_type"": 8}","{""data"": ""1700008850"", ""field_type"": 9}" +"{""data"": ""UX Design Architecture Explained"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 0}","{""data"": ""940"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 5}","{""data"": ""1692374400"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 3}","{""data"": ""77"", ""created_at"": 1700008900, ""last_modified"": 1700008900, ""field_type"": 1}","{""data"": ""1700008900"", ""field_type"": 8}","{""data"": ""1700008900"", ""field_type"": 9}" +"{""data"": ""Why UI Design Matters for Your Business"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 0}","{""data"": ""200"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 5}","{""data"": ""1717948800"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 3}","{""data"": ""180"", ""created_at"": 1700008950, ""last_modified"": 1700008950, ""field_type"": 1}","{""data"": ""1700008950"", ""field_type"": 8}","{""data"": ""1700008950"", ""field_type"": 9}" +"{""data"": ""Getting Started with Remote Work"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 0}","{""data"": ""43272"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 1}","{""data"": ""733"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 5}","{""data"": ""1675958400"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 3}","{""data"": ""102"", ""created_at"": 1700009000, ""last_modified"": 1700009000, ""field_type"": 1}","{""data"": ""1700009000"", ""field_type"": 8}","{""data"": ""1700009000"", ""field_type"": 9}" +"{""data"": ""The Future of Serverless"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 0}","{""data"": ""301"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 5}","{""data"": ""1718985600"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 3}","{""data"": ""23"", ""created_at"": 1700009050, ""last_modified"": 1700009050, ""field_type"": 1}","{""data"": ""1700009050"", ""field_type"": 8}","{""data"": ""1700009050"", ""field_type"": 9}" +"{""data"": ""CI/CD vs Hiring: Which is Better?"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 0}","{""data"": ""97"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 5}","{""data"": ""1704384000"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 3}","{""data"": ""215"", ""created_at"": 1700009100, ""last_modified"": 1700009100, ""field_type"": 1}","{""data"": ""1700009100"", ""field_type"": 8}","{""data"": ""1700009100"", ""field_type"": 9}" +"{""data"": ""Why UI Design Matters for Your Business"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 0}","{""data"": ""3334"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 1}","{""data"": ""33"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 5}","{""data"": ""1706198400"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 3}","{""data"": ""149"", ""created_at"": 1700009150, ""last_modified"": 1700009150, ""field_type"": 1}","{""data"": ""1700009150"", ""field_type"": 8}","{""data"": ""1700009150"", ""field_type"": 9}" +"{""data"": ""Remote Work Best Practices"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 0}","{""data"": ""241"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 5}","{""data"": ""1730131200"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700009200, ""last_modified"": 1700009200, ""field_type"": 1}","{""data"": ""1700009200"", ""field_type"": 8}","{""data"": ""1700009200"", ""field_type"": 9}" +"{""data"": ""Building a Python Strategy"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 0}","{""data"": ""53"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 5}","{""data"": ""1733068800"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700009250, ""last_modified"": 1700009250, ""field_type"": 1}","{""data"": ""1700009250"", ""field_type"": 8}","{""data"": ""1700009250"", ""field_type"": 9}" +"{""data"": ""The Ultimate Team Management Checklist"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 0}","{""data"": ""381"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 5}","{""data"": ""1674576000"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 3}","{""data"": ""49"", ""created_at"": 1700009300, ""last_modified"": 1700009300, ""field_type"": 1}","{""data"": ""1700009300"", ""field_type"": 8}","{""data"": ""1700009300"", ""field_type"": 9}" +"{""data"": ""How We Scaled Content Strategy to 15 Users"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 0}","{""data"": ""344"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 5}","{""data"": ""1728230400"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 3}","{""data"": ""148"", ""created_at"": 1700009350, ""last_modified"": 1700009350, ""field_type"": 1}","{""data"": ""1700009350"", ""field_type"": 8}","{""data"": ""1700009350"", ""field_type"": 9}" +"{""data"": ""Python in Practice: A Case Study"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 0}","{""data"": ""366"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 5}","{""data"": ""1704124800"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700009400, ""last_modified"": 1700009400, ""field_type"": 1}","{""data"": ""1700009400"", ""field_type"": 8}","{""data"": ""1700009400"", ""field_type"": 9}" +"{""data"": ""The State of Marketing Automation in 2024"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 0}","{""data"": ""245"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 5}","{""data"": ""1684512000"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 3}","{""data"": ""24"", ""created_at"": 1700009450, ""last_modified"": 1700009450, ""field_type"": 1}","{""data"": ""1700009450"", ""field_type"": 8}","{""data"": ""1700009450"", ""field_type"": 9}" +"{""data"": ""Why We Chose REST APIs"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 0}","{""data"": ""457"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 5}","{""data"": ""1721404800"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700009500, ""last_modified"": 1700009500, ""field_type"": 1}","{""data"": ""1700009500"", ""field_type"": 8}","{""data"": ""1700009500"", ""field_type"": 9}" +"{""data"": ""Advanced Testing Techniques"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 0}","{""data"": ""93"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 5}","{""data"": ""1686672000"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 3}","{""data"": ""84"", ""created_at"": 1700009550, ""last_modified"": 1700009550, ""field_type"": 1}","{""data"": ""1700009550"", ""field_type"": 8}","{""data"": ""1700009550"", ""field_type"": 9}" +"{""data"": ""Common React Mistakes to Avoid"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 0}","{""data"": ""485"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 5}","{""data"": ""1698163200"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 3}","{""data"": ""202"", ""created_at"": 1700009600, ""last_modified"": 1700009600, ""field_type"": 1}","{""data"": ""1700009600"", ""field_type"": 8}","{""data"": ""1700009600"", ""field_type"": 9}" +"{""data"": ""Mastering Scrum for Beginners"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 0}","{""data"": ""1550"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 1}","{""data"": ""23"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 5}","{""data"": ""1689609600"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 3}","{""data"": ""143"", ""created_at"": 1700009650, ""last_modified"": 1700009650, ""field_type"": 1}","{""data"": ""1700009650"", ""field_type"": 8}","{""data"": ""1700009650"", ""field_type"": 9}" +"{""data"": ""The Future of Content Strategy"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 0}","{""data"": ""3485"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 1}","{""data"": ""64"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 5}","{""data"": ""1694275200"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 3}","{""data"": ""55"", ""created_at"": 1700009700, ""last_modified"": 1700009700, ""field_type"": 1}","{""data"": ""1700009700"", ""field_type"": 8}","{""data"": ""1700009700"", ""field_type"": 9}" +"{""data"": ""iOS Architecture Explained"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 0}","{""data"": ""4148"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 1}","{""data"": ""36"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 5}","{""data"": ""1687968000"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700009750, ""last_modified"": 1700009750, ""field_type"": 1}","{""data"": ""1700009750"", ""field_type"": 8}","{""data"": ""1700009750"", ""field_type"": 9}" +"{""data"": ""Optimizing Marketing Automation Performance"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 0}","{""data"": ""1126"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 5}","{""data"": ""1723910400"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 3}","{""data"": ""5"", ""created_at"": 1700009800, ""last_modified"": 1700009800, ""field_type"": 1}","{""data"": ""1700009800"", ""field_type"": 8}","{""data"": ""1700009800"", ""field_type"": 9}" +"{""data"": ""The State of Data Analytics in 2024"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 0}","{""data"": ""291"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 5}","{""data"": ""1724601600"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 3}","{""data"": ""152"", ""created_at"": 1700009850, ""last_modified"": 1700009850, ""field_type"": 1}","{""data"": ""1700009850"", ""field_type"": 8}","{""data"": ""1700009850"", ""field_type"": 9}" +"{""data"": ""Advanced Serverless Techniques"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 0}","{""data"": ""389"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 5}","{""data"": ""1711900800"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 3}","{""data"": ""132"", ""created_at"": 1700009900, ""last_modified"": 1700009900, ""field_type"": 1}","{""data"": ""1700009900"", ""field_type"": 8}","{""data"": ""1700009900"", ""field_type"": 9}" +"{""data"": ""5 Ways to Improve Your Performance"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 0}","{""data"": ""36686"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 1}","{""data"": ""687"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 5}","{""data"": ""1692979200"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 3}","{""data"": ""4"", ""created_at"": 1700009950, ""last_modified"": 1700009950, ""field_type"": 1}","{""data"": ""1700009950"", ""field_type"": 8}","{""data"": ""1700009950"", ""field_type"": 9}" +"{""data"": ""Mastering Python for Beginners"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 0}","{""data"": ""248"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 5}","{""data"": ""1729872000"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 3}","{""data"": ""37"", ""created_at"": 1700010000, ""last_modified"": 1700010000, ""field_type"": 1}","{""data"": ""1700010000"", ""field_type"": 8}","{""data"": ""1700010000"", ""field_type"": 9}" +"{""data"": ""Understanding UI Design: A Deep Dive"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 0}","{""data"": ""341"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 5}","{""data"": ""1718208000"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 3}","{""data"": ""185"", ""created_at"": 1700010050, ""last_modified"": 1700010050, ""field_type"": 1}","{""data"": ""1700010050"", ""field_type"": 8}","{""data"": ""1700010050"", ""field_type"": 9}" +"{""data"": ""Advanced Testing Techniques"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 0}","{""data"": ""4449"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 1}","{""data"": ""74"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 5}","{""data"": ""1711382400"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700010100, ""last_modified"": 1700010100, ""field_type"": 1}","{""data"": ""1700010100"", ""field_type"": 8}","{""data"": ""1700010100"", ""field_type"": 9}" +"{""data"": ""The State of Rust in 2025"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 0}","{""data"": ""15312"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 1}","{""data"": ""118"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 5}","{""data"": ""1701705600"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700010150, ""last_modified"": 1700010150, ""field_type"": 1}","{""data"": ""1700010150"", ""field_type"": 8}","{""data"": ""1700010150"", ""field_type"": 9}" +"{""data"": ""Leadership Architecture Explained"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 0}","{""data"": ""260"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 5}","{""data"": ""1684339200"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 3}","{""data"": ""64"", ""created_at"": 1700010200, ""last_modified"": 1700010200, ""field_type"": 1}","{""data"": ""1700010200"", ""field_type"": 8}","{""data"": ""1700010200"", ""field_type"": 9}" +"{""data"": ""Customer Success Best Practices"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 0}","{""data"": ""3821"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 1}","{""data"": ""42"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 5}","{""data"": ""1680019200"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700010250, ""last_modified"": 1700010250, ""field_type"": 1}","{""data"": ""1700010250"", ""field_type"": 8}","{""data"": ""1700010250"", ""field_type"": 9}" +"{""data"": ""The State of Team Management in 2025"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 0}","{""data"": ""1669"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 5}","{""data"": ""1687276800"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 3}","{""data"": ""7"", ""created_at"": 1700010300, ""last_modified"": 1700010300, ""field_type"": 1}","{""data"": ""1700010300"", ""field_type"": 8}","{""data"": ""1700010300"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Android"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 0}","{""data"": ""635"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 5}","{""data"": ""1688140800"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 3}","{""data"": ""117"", ""created_at"": 1700010350, ""last_modified"": 1700010350, ""field_type"": 1}","{""data"": ""1700010350"", ""field_type"": 8}","{""data"": ""1700010350"", ""field_type"": 9}" +"{""data"": ""Building a UX Design Strategy"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 0}","{""data"": ""1567"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 1}","{""data"": ""23"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 5}","{""data"": ""1718640000"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 3}","{""data"": ""168"", ""created_at"": 1700010400, ""last_modified"": 1700010400, ""field_type"": 1}","{""data"": ""1700010400"", ""field_type"": 8}","{""data"": ""1700010400"", ""field_type"": 9}" +"{""data"": ""Testing: What You Need to Know"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 0}","{""data"": ""3623"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 1}","{""data"": ""25"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 5}","{""data"": ""1714665600"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 3}","{""data"": ""115"", ""created_at"": 1700010450, ""last_modified"": 1700010450, ""field_type"": 1}","{""data"": ""1700010450"", ""field_type"": 8}","{""data"": ""1700010450"", ""field_type"": 9}" +"{""data"": ""Remote Work Best Practices"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 0}","{""data"": ""558"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 5}","{""data"": ""1730390400"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 3}","{""data"": ""89"", ""created_at"": 1700010500, ""last_modified"": 1700010500, ""field_type"": 1}","{""data"": ""1700010500"", ""field_type"": 8}","{""data"": ""1700010500"", ""field_type"": 9}" +"{""data"": ""Building a Open Source Strategy"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 0}","{""data"": ""4891"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 1}","{""data"": ""50"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 5}","{""data"": ""1690473600"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700010550, ""last_modified"": 1700010550, ""field_type"": 1}","{""data"": ""1700010550"", ""field_type"": 8}","{""data"": ""1700010550"", ""field_type"": 9}" +"{""data"": ""The Ultimate Microservices Checklist"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 0}","{""data"": ""3012"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 1}","{""data"": ""43"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 5}","{""data"": ""1692806400"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700010600, ""last_modified"": 1700010600, ""field_type"": 1}","{""data"": ""1700010600"", ""field_type"": 8}","{""data"": ""1700010600"", ""field_type"": 9}" +"{""data"": ""Getting Started with Agile"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 0}","{""data"": ""406"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 5}","{""data"": ""1680537600"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 3}","{""data"": ""140"", ""created_at"": 1700010650, ""last_modified"": 1700010650, ""field_type"": 1}","{""data"": ""1700010650"", ""field_type"": 8}","{""data"": ""1700010650"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Serverless"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 0}","{""data"": ""809"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 1}","{""data"": ""18"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 5}","{""data"": ""1725292800"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700010700, ""last_modified"": 1700010700, ""field_type"": 1}","{""data"": ""1700010700"", ""field_type"": 8}","{""data"": ""1700010700"", ""field_type"": 9}" +"{""data"": ""The Future of Machine Learning"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 0}","{""data"": ""196"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 5}","{""data"": ""1704297600"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 3}","{""data"": ""63"", ""created_at"": 1700010750, ""last_modified"": 1700010750, ""field_type"": 1}","{""data"": ""1700010750"", ""field_type"": 8}","{""data"": ""1700010750"", ""field_type"": 9}" +"{""data"": ""Optimizing Product Development Performance"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 0}","{""data"": ""2140"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 5}","{""data"": ""1721923200"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 3}","{""data"": ""185"", ""created_at"": 1700010800, ""last_modified"": 1700010800, ""field_type"": 1}","{""data"": ""1700010800"", ""field_type"": 8}","{""data"": ""1700010800"", ""field_type"": 9}" +"{""data"": ""5 Ways to Improve Your Leadership"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 0}","{""data"": ""31473"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 1}","{""data"": ""378"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 5}","{""data"": ""1721923200"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700010850, ""last_modified"": 1700010850, ""field_type"": 1}","{""data"": ""1700010850"", ""field_type"": 8}","{""data"": ""1700010850"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Security"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 0}","{""data"": ""466"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 5}","{""data"": ""1722268800"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 3}","{""data"": ""0"", ""created_at"": 1700010900, ""last_modified"": 1700010900, ""field_type"": 1}","{""data"": ""1700010900"", ""field_type"": 8}","{""data"": ""1700010900"", ""field_type"": 9}" +"{""data"": ""How Testing Changed Our Team"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 0}","{""data"": ""1452"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 5}","{""data"": ""1732377600"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 3}","{""data"": ""76"", ""created_at"": 1700010950, ""last_modified"": 1700010950, ""field_type"": 1}","{""data"": ""1700010950"", ""field_type"": 8}","{""data"": ""1700010950"", ""field_type"": 9}" +"{""data"": ""Why We Chose Serverless"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 0}","{""data"": ""22258"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 1}","{""data"": ""124"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 5}","{""data"": ""1679155200"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 3}","{""data"": ""186"", ""created_at"": 1700011000, ""last_modified"": 1700011000, ""field_type"": 1}","{""data"": ""1700011000"", ""field_type"": 8}","{""data"": ""1700011000"", ""field_type"": 9}" +"{""data"": ""Testing Best Practices"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 0}","{""data"": ""2057"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 5}","{""data"": ""1695916800"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700011050, ""last_modified"": 1700011050, ""field_type"": 1}","{""data"": ""1700011050"", ""field_type"": 8}","{""data"": ""1700011050"", ""field_type"": 9}" +"{""data"": ""How to Build Hiring in 2024"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 0}","{""data"": ""11991"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 1}","{""data"": ""36"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 5}","{""data"": ""1726761600"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 3}","{""data"": ""45"", ""created_at"": 1700011100, ""last_modified"": 1700011100, ""field_type"": 1}","{""data"": ""1700011100"", ""field_type"": 8}","{""data"": ""1700011100"", ""field_type"": 9}" +"{""data"": ""The Future of Web3"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 0}","{""data"": ""344"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 5}","{""data"": ""1707667200"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 3}","{""data"": ""189"", ""created_at"": 1700011150, ""last_modified"": 1700011150, ""field_type"": 1}","{""data"": ""1700011150"", ""field_type"": 8}","{""data"": ""1700011150"", ""field_type"": 9}" +"{""data"": ""The Ultimate Remote Work Checklist"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 0}","{""data"": ""307"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 5}","{""data"": ""1718294400"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 3}","{""data"": ""39"", ""created_at"": 1700011200, ""last_modified"": 1700011200, ""field_type"": 1}","{""data"": ""1700011200"", ""field_type"": 8}","{""data"": ""1700011200"", ""field_type"": 9}" +"{""data"": ""Mastering UX Design for Beginners"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 0}","{""data"": ""2627"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 5}","{""data"": ""1726675200"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 3}","{""data"": ""97"", ""created_at"": 1700011250, ""last_modified"": 1700011250, ""field_type"": 1}","{""data"": ""1700011250"", ""field_type"": 8}","{""data"": ""1700011250"", ""field_type"": 9}" +"{""data"": ""The State of Database Design in 2025"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 0}","{""data"": ""3781"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 1}","{""data"": ""23"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 5}","{""data"": ""1681315200"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 3}","{""data"": ""103"", ""created_at"": 1700011300, ""last_modified"": 1700011300, ""field_type"": 1}","{""data"": ""1700011300"", ""field_type"": 8}","{""data"": ""1700011300"", ""field_type"": 9}" +"{""data"": ""Company Culture Architecture Explained"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 0}","{""data"": ""14800"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 1}","{""data"": ""142"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 5}","{""data"": ""1684339200"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 3}","{""data"": ""3"", ""created_at"": 1700011350, ""last_modified"": 1700011350, ""field_type"": 1}","{""data"": ""1700011350"", ""field_type"": 8}","{""data"": ""1700011350"", ""field_type"": 9}" +"{""data"": ""Understanding Agile: A Deep Dive"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 0}","{""data"": ""340"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 5}","{""data"": ""1691510400"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 3}","{""data"": ""36"", ""created_at"": 1700011400, ""last_modified"": 1700011400, ""field_type"": 1}","{""data"": ""1700011400"", ""field_type"": 8}","{""data"": ""1700011400"", ""field_type"": 9}" +"{""data"": ""Introduction to Docker"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 0}","{""data"": ""464"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 5}","{""data"": ""1732550400"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700011450, ""last_modified"": 1700011450, ""field_type"": 1}","{""data"": ""1700011450"", ""field_type"": 8}","{""data"": ""1700011450"", ""field_type"": 9}" +"{""data"": ""How We Scaled Android to 100K Users"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 0}","{""data"": ""23652"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 1}","{""data"": ""193"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 5}","{""data"": ""1679414400"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 3}","{""data"": ""33"", ""created_at"": 1700011500, ""last_modified"": 1700011500, ""field_type"": 1}","{""data"": ""1700011500"", ""field_type"": 8}","{""data"": ""1700011500"", ""field_type"": 9}" +"{""data"": ""Advanced Team Management Techniques"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 0}","{""data"": ""222"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 5}","{""data"": ""1679500800"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 3}","{""data"": ""210"", ""created_at"": 1700011550, ""last_modified"": 1700011550, ""field_type"": 1}","{""data"": ""1700011550"", ""field_type"": 8}","{""data"": ""1700011550"", ""field_type"": 9}" +"{""data"": ""Customer Success in Practice: A Case Study"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 0}","{""data"": ""252"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 5}","{""data"": ""1724428800"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 3}","{""data"": ""66"", ""created_at"": 1700011600, ""last_modified"": 1700011600, ""field_type"": 1}","{""data"": ""1700011600"", ""field_type"": 8}","{""data"": ""1700011600"", ""field_type"": 9}" +"{""data"": ""Why React Matters for Your Business"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 0}","{""data"": ""20376"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 1}","{""data"": ""273"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 5}","{""data"": ""1681574400"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700011650, ""last_modified"": 1700011650, ""field_type"": 1}","{""data"": ""1700011650"", ""field_type"": 8}","{""data"": ""1700011650"", ""field_type"": 9}" +"{""data"": ""UI Design Architecture Explained"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 0}","{""data"": ""258148"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 1}","{""data"": ""2825"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 5}","{""data"": ""1679932800"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 3}","{""data"": ""131"", ""created_at"": 1700011700, ""last_modified"": 1700011700, ""field_type"": 1}","{""data"": ""1700011700"", ""field_type"": 8}","{""data"": ""1700011700"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Sales"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 0}","{""data"": ""4815"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 1}","{""data"": ""76"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 5}","{""data"": ""1701273600"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 3}","{""data"": ""150"", ""created_at"": 1700011750, ""last_modified"": 1700011750, ""field_type"": 1}","{""data"": ""1700011750"", ""field_type"": 8}","{""data"": ""1700011750"", ""field_type"": 9}" +"{""data"": ""Hiring Architecture Explained"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 0}","{""data"": ""140"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 5}","{""data"": ""1718812800"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700011800, ""last_modified"": 1700011800, ""field_type"": 1}","{""data"": ""1700011800"", ""field_type"": 8}","{""data"": ""1700011800"", ""field_type"": 9}" +"{""data"": ""GraphQL: What You Need to Know"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 0}","{""data"": ""3496"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 5}","{""data"": ""1718726400"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700011850, ""last_modified"": 1700011850, ""field_type"": 1}","{""data"": ""1700011850"", ""field_type"": 8}","{""data"": ""1700011850"", ""field_type"": 9}" +"{""data"": ""Why We Chose UX Design"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 0}","{""data"": ""4408"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 1}","{""data"": ""37"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 5}","{""data"": ""1673107200"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 3}","{""data"": ""27"", ""created_at"": 1700011900, ""last_modified"": 1700011900, ""field_type"": 1}","{""data"": ""1700011900"", ""field_type"": 8}","{""data"": ""1700011900"", ""field_type"": 9}" +"{""data"": ""Security Architecture Explained"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 0}","{""data"": ""380"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 5}","{""data"": ""1709827200"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 3}","{""data"": ""188"", ""created_at"": 1700011950, ""last_modified"": 1700011950, ""field_type"": 1}","{""data"": ""1700011950"", ""field_type"": 8}","{""data"": ""1700011950"", ""field_type"": 9}" +"{""data"": ""Getting Started with Data Analytics"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 0}","{""data"": ""322"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 5}","{""data"": ""1688572800"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 3}","{""data"": ""5"", ""created_at"": 1700012000, ""last_modified"": 1700012000, ""field_type"": 1}","{""data"": ""1700012000"", ""field_type"": 8}","{""data"": ""1700012000"", ""field_type"": 9}" +"{""data"": ""Why Data Analytics Matters for Your Business"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 0}","{""data"": ""146"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 5}","{""data"": ""1688918400"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 3}","{""data"": ""91"", ""created_at"": 1700012050, ""last_modified"": 1700012050, ""field_type"": 1}","{""data"": ""1700012050"", ""field_type"": 8}","{""data"": ""1700012050"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from UX Design"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 0}","{""data"": ""10911"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 1}","{""data"": ""52"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 5}","{""data"": ""1700064000"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700012100, ""last_modified"": 1700012100, ""field_type"": 1}","{""data"": ""1700012100"", ""field_type"": 8}","{""data"": ""1700012100"", ""field_type"": 9}" +"{""data"": ""Why We Chose Agile"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 0}","{""data"": ""92060"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 1}","{""data"": ""1566"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 5}","{""data"": ""1678809600"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 3}","{""data"": ""15"", ""created_at"": 1700012150, ""last_modified"": 1700012150, ""field_type"": 1}","{""data"": ""1700012150"", ""field_type"": 8}","{""data"": ""1700012150"", ""field_type"": 9}" +"{""data"": ""The Ultimate Python Checklist"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 0}","{""data"": ""2539"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 1}","{""data"": ""30"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 5}","{""data"": ""1690041600"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 3}","{""data"": ""120"", ""created_at"": 1700012200, ""last_modified"": 1700012200, ""field_type"": 1}","{""data"": ""1700012200"", ""field_type"": 8}","{""data"": ""1700012200"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from AI"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 0}","{""data"": ""3146"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 5}","{""data"": ""1694880000"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 3}","{""data"": ""87"", ""created_at"": 1700012250, ""last_modified"": 1700012250, ""field_type"": 1}","{""data"": ""1700012250"", ""field_type"": 8}","{""data"": ""1700012250"", ""field_type"": 9}" +"{""data"": ""The Future of Machine Learning"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 0}","{""data"": ""4056"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 5}","{""data"": ""1707494400"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 3}","{""data"": ""101"", ""created_at"": 1700012300, ""last_modified"": 1700012300, ""field_type"": 1}","{""data"": ""1700012300"", ""field_type"": 8}","{""data"": ""1700012300"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Kubernetes"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 0}","{""data"": ""1233"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 1}","{""data"": ""17"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 5}","{""data"": ""1727798400"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 3}","{""data"": ""116"", ""created_at"": 1700012350, ""last_modified"": 1700012350, ""field_type"": 1}","{""data"": ""1700012350"", ""field_type"": 8}","{""data"": ""1700012350"", ""field_type"": 9}" +"{""data"": ""How to Build UI Design in 2025"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 0}","{""data"": ""2406"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 1}","{""data"": ""22"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 5}","{""data"": ""1689523200"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700012400, ""last_modified"": 1700012400, ""field_type"": 1}","{""data"": ""1700012400"", ""field_type"": 8}","{""data"": ""1700012400"", ""field_type"": 9}" +"{""data"": ""Remote Work Tips and Tricks"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 0}","{""data"": ""33672"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 1}","{""data"": ""401"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 5}","{""data"": ""1720540800"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 3}","{""data"": ""102"", ""created_at"": 1700012450, ""last_modified"": 1700012450, ""field_type"": 1}","{""data"": ""1700012450"", ""field_type"": 8}","{""data"": ""1700012450"", ""field_type"": 9}" +"{""data"": ""Sales Tips and Tricks"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 0}","{""data"": ""85"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 5}","{""data"": ""1720368000"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700012500, ""last_modified"": 1700012500, ""field_type"": 1}","{""data"": ""1700012500"", ""field_type"": 8}","{""data"": ""1700012500"", ""field_type"": 9}" +"{""data"": ""The State of React in 2024"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 0}","{""data"": ""6226"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 1}","{""data"": ""85"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 5}","{""data"": ""1700841600"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 3}","{""data"": ""136"", ""created_at"": 1700012550, ""last_modified"": 1700012550, ""field_type"": 1}","{""data"": ""1700012550"", ""field_type"": 8}","{""data"": ""1700012550"", ""field_type"": 9}" +"{""data"": ""React in Practice: A Case Study"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 0}","{""data"": ""363"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 5}","{""data"": ""1680969600"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 3}","{""data"": ""101"", ""created_at"": 1700012600, ""last_modified"": 1700012600, ""field_type"": 1}","{""data"": ""1700012600"", ""field_type"": 8}","{""data"": ""1700012600"", ""field_type"": 9}" +"{""data"": ""Testing Tips and Tricks"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 0}","{""data"": ""1308"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 5}","{""data"": ""1676822400"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 3}","{""data"": ""106"", ""created_at"": 1700012650, ""last_modified"": 1700012650, ""field_type"": 1}","{""data"": ""1700012650"", ""field_type"": 8}","{""data"": ""1700012650"", ""field_type"": 9}" +"{""data"": ""Why We Chose SEO"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 0}","{""data"": ""159438"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 1}","{""data"": ""2142"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 5}","{""data"": ""1704384000"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 3}","{""data"": ""49"", ""created_at"": 1700012700, ""last_modified"": 1700012700, ""field_type"": 1}","{""data"": ""1700012700"", ""field_type"": 8}","{""data"": ""1700012700"", ""field_type"": 9}" +"{""data"": ""The State of Testing in 2024"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 0}","{""data"": ""1076"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 5}","{""data"": ""1681401600"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 3}","{""data"": ""215"", ""created_at"": 1700012750, ""last_modified"": 1700012750, ""field_type"": 1}","{""data"": ""1700012750"", ""field_type"": 8}","{""data"": ""1700012750"", ""field_type"": 9}" +"{""data"": ""The Ultimate Content Strategy Checklist"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 0}","{""data"": ""141"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 5}","{""data"": ""1732118400"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 3}","{""data"": ""34"", ""created_at"": 1700012800, ""last_modified"": 1700012800, ""field_type"": 1}","{""data"": ""1700012800"", ""field_type"": 8}","{""data"": ""1700012800"", ""field_type"": 9}" +"{""data"": ""Mastering UX Design for Beginners"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 0}","{""data"": ""1795"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 5}","{""data"": ""1721145600"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 3}","{""data"": ""138"", ""created_at"": 1700012850, ""last_modified"": 1700012850, ""field_type"": 1}","{""data"": ""1700012850"", ""field_type"": 8}","{""data"": ""1700012850"", ""field_type"": 9}" +"{""data"": ""How We Scaled Machine Learning to 20 Users"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 0}","{""data"": ""4969"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 1}","{""data"": ""28"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 5}","{""data"": ""1712073600"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 3}","{""data"": ""209"", ""created_at"": 1700012900, ""last_modified"": 1700012900, ""field_type"": 1}","{""data"": ""1700012900"", ""field_type"": 8}","{""data"": ""1700012900"", ""field_type"": 9}" +"{""data"": ""Mastering Cloud Computing for Beginners"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 0}","{""data"": ""120823"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 1}","{""data"": ""2405"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 5}","{""data"": ""1691424000"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700012950, ""last_modified"": 1700012950, ""field_type"": 1}","{""data"": ""1700012950"", ""field_type"": 8}","{""data"": ""1700012950"", ""field_type"": 9}" +"{""data"": ""The Future of Testing"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 0}","{""data"": ""809"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 5}","{""data"": ""1723996800"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 3}","{""data"": ""103"", ""created_at"": 1700013000, ""last_modified"": 1700013000, ""field_type"": 1}","{""data"": ""1700013000"", ""field_type"": 8}","{""data"": ""1700013000"", ""field_type"": 9}" +"{""data"": ""AI Architecture Explained"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 0}","{""data"": ""1132"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 5}","{""data"": ""1725120000"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 3}","{""data"": ""72"", ""created_at"": 1700013050, ""last_modified"": 1700013050, ""field_type"": 1}","{""data"": ""1700013050"", ""field_type"": 8}","{""data"": ""1700013050"", ""field_type"": 9}" +"{""data"": ""Why Testing Matters for Your Business"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 0}","{""data"": ""8664"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 1}","{""data"": ""165"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 5}","{""data"": ""1709308800"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 3}","{""data"": ""132"", ""created_at"": 1700013100, ""last_modified"": 1700013100, ""field_type"": 1}","{""data"": ""1700013100"", ""field_type"": 8}","{""data"": ""1700013100"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Marketing Automation"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 0}","{""data"": ""837"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 5}","{""data"": ""1685980800"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 3}","{""data"": ""111"", ""created_at"": 1700013150, ""last_modified"": 1700013150, ""field_type"": 1}","{""data"": ""1700013150"", ""field_type"": 8}","{""data"": ""1700013150"", ""field_type"": 9}" +"{""data"": ""How We Scaled Performance to 20 Users"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 0}","{""data"": ""3730"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 1}","{""data"": ""19"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 5}","{""data"": ""1720972800"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 3}","{""data"": ""97"", ""created_at"": 1700013200, ""last_modified"": 1700013200, ""field_type"": 1}","{""data"": ""1700013200"", ""field_type"": 8}","{""data"": ""1700013200"", ""field_type"": 9}" +"{""data"": ""Introduction to Company Culture"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 0}","{""data"": ""296"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 5}","{""data"": ""1722096000"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700013250, ""last_modified"": 1700013250, ""field_type"": 1}","{""data"": ""1700013250"", ""field_type"": 8}","{""data"": ""1700013250"", ""field_type"": 9}" +"{""data"": ""Mastering Product Development for Beginners"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 0}","{""data"": ""344"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 5}","{""data"": ""1689350400"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 3}","{""data"": ""67"", ""created_at"": 1700013300, ""last_modified"": 1700013300, ""field_type"": 1}","{""data"": ""1700013300"", ""field_type"": 8}","{""data"": ""1700013300"", ""field_type"": 9}" +"{""data"": ""The Future of Docker"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 0}","{""data"": ""27919"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 1}","{""data"": ""363"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 5}","{""data"": ""1676390400"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 3}","{""data"": ""19"", ""created_at"": 1700013350, ""last_modified"": 1700013350, ""field_type"": 1}","{""data"": ""1700013350"", ""field_type"": 8}","{""data"": ""1700013350"", ""field_type"": 9}" +"{""data"": ""Mastering Rust for Beginners"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 0}","{""data"": ""8574"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 1}","{""data"": ""47"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 5}","{""data"": ""1673712000"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 3}","{""data"": ""82"", ""created_at"": 1700013400, ""last_modified"": 1700013400, ""field_type"": 1}","{""data"": ""1700013400"", ""field_type"": 8}","{""data"": ""1700013400"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Android"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 0}","{""data"": ""159581"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 1}","{""data"": ""2404"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 5}","{""data"": ""1720972800"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 3}","{""data"": ""127"", ""created_at"": 1700013450, ""last_modified"": 1700013450, ""field_type"": 1}","{""data"": ""1700013450"", ""field_type"": 8}","{""data"": ""1700013450"", ""field_type"": 9}" +"{""data"": ""Introduction to Database Design"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 0}","{""data"": ""319"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 5}","{""data"": ""1734105600"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700013500, ""last_modified"": 1700013500, ""field_type"": 1}","{""data"": ""1700013500"", ""field_type"": 8}","{""data"": ""1700013500"", ""field_type"": 9}" +"{""data"": ""UI Design Architecture Explained"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 0}","{""data"": ""48278"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 1}","{""data"": ""303"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 5}","{""data"": ""1698336000"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 3}","{""data"": ""193"", ""created_at"": 1700013550, ""last_modified"": 1700013550, ""field_type"": 1}","{""data"": ""1700013550"", ""field_type"": 8}","{""data"": ""1700013550"", ""field_type"": 9}" +"{""data"": ""How Cloud Computing Changed Our Team"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 0}","{""data"": ""25673"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 1}","{""data"": ""259"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 5}","{""data"": ""1722096000"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 3}","{""data"": ""29"", ""created_at"": 1700013600, ""last_modified"": 1700013600, ""field_type"": 1}","{""data"": ""1700013600"", ""field_type"": 8}","{""data"": ""1700013600"", ""field_type"": 9}" +"{""data"": ""Database Design in Practice: A Case Study"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 0}","{""data"": ""59"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 5}","{""data"": ""1693324800"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700013650, ""last_modified"": 1700013650, ""field_type"": 1}","{""data"": ""1700013650"", ""field_type"": 8}","{""data"": ""1700013650"", ""field_type"": 9}" +"{""data"": ""Common GraphQL Mistakes to Avoid"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 0}","{""data"": ""65"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 5}","{""data"": ""1707235200"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 3}","{""data"": ""107"", ""created_at"": 1700013700, ""last_modified"": 1700013700, ""field_type"": 1}","{""data"": ""1700013700"", ""field_type"": 8}","{""data"": ""1700013700"", ""field_type"": 9}" +"{""data"": ""Introduction to Team Management"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 0}","{""data"": ""401"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 5}","{""data"": ""1700064000"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 3}","{""data"": ""115"", ""created_at"": 1700013750, ""last_modified"": 1700013750, ""field_type"": 1}","{""data"": ""1700013750"", ""field_type"": 8}","{""data"": ""1700013750"", ""field_type"": 9}" +"{""data"": ""How Company Culture Changed Our Team"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 0}","{""data"": ""40478"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 1}","{""data"": ""567"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 5}","{""data"": ""1733414400"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 3}","{""data"": ""31"", ""created_at"": 1700013800, ""last_modified"": 1700013800, ""field_type"": 1}","{""data"": ""1700013800"", ""field_type"": 8}","{""data"": ""1700013800"", ""field_type"": 9}" +"{""data"": ""Remote Work: What You Need to Know"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 0}","{""data"": ""212"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 5}","{""data"": ""1675094400"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700013850, ""last_modified"": 1700013850, ""field_type"": 1}","{""data"": ""1700013850"", ""field_type"": 8}","{""data"": ""1700013850"", ""field_type"": 9}" +"{""data"": ""Android: What You Need to Know"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 0}","{""data"": ""428"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 5}","{""data"": ""1674748800"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 3}","{""data"": ""80"", ""created_at"": 1700013900, ""last_modified"": 1700013900, ""field_type"": 1}","{""data"": ""1700013900"", ""field_type"": 8}","{""data"": ""1700013900"", ""field_type"": 9}" +"{""data"": ""Serverless Tips and Tricks"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 0}","{""data"": ""713"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 5}","{""data"": ""1729958400"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 3}","{""data"": ""218"", ""created_at"": 1700013950, ""last_modified"": 1700013950, ""field_type"": 1}","{""data"": ""1700013950"", ""field_type"": 8}","{""data"": ""1700013950"", ""field_type"": 9}" +"{""data"": ""The State of Docker in 2023"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 0}","{""data"": ""7112"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 1}","{""data"": ""57"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 5}","{""data"": ""1692115200"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700014000, ""last_modified"": 1700014000, ""field_type"": 1}","{""data"": ""1700014000"", ""field_type"": 8}","{""data"": ""1700014000"", ""field_type"": 9}" +"{""data"": ""DevOps: What You Need to Know"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 0}","{""data"": ""300"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 5}","{""data"": ""1708272000"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 3}","{""data"": ""197"", ""created_at"": 1700014050, ""last_modified"": 1700014050, ""field_type"": 1}","{""data"": ""1700014050"", ""field_type"": 8}","{""data"": ""1700014050"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Security"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 0}","{""data"": ""430"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 5}","{""data"": ""1712851200"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 3}","{""data"": ""5"", ""created_at"": 1700014100, ""last_modified"": 1700014100, ""field_type"": 1}","{""data"": ""1700014100"", ""field_type"": 8}","{""data"": ""1700014100"", ""field_type"": 9}" +"{""data"": ""Data Analytics vs Agile: Which is Better?"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 0}","{""data"": ""30388"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 1}","{""data"": ""324"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 5}","{""data"": ""1707667200"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 3}","{""data"": ""166"", ""created_at"": 1700014150, ""last_modified"": 1700014150, ""field_type"": 1}","{""data"": ""1700014150"", ""field_type"": 8}","{""data"": ""1700014150"", ""field_type"": 9}" +"{""data"": ""Mobile Development: What You Need to Know"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 0}","{""data"": ""122"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 5}","{""data"": ""1688400000"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700014200, ""last_modified"": 1700014200, ""field_type"": 1}","{""data"": ""1700014200"", ""field_type"": 8}","{""data"": ""1700014200"", ""field_type"": 9}" +"{""data"": ""10 Ways to Improve Your Rust"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 0}","{""data"": ""2154"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 5}","{""data"": ""1683388800"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700014250, ""last_modified"": 1700014250, ""field_type"": 1}","{""data"": ""1700014250"", ""field_type"": 8}","{""data"": ""1700014250"", ""field_type"": 9}" +"{""data"": ""Microservices: What You Need to Know"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 0}","{""data"": ""311"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 5}","{""data"": ""1676304000"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 3}","{""data"": ""96"", ""created_at"": 1700014300, ""last_modified"": 1700014300, ""field_type"": 1}","{""data"": ""1700014300"", ""field_type"": 8}","{""data"": ""1700014300"", ""field_type"": 9}" +"{""data"": ""Serverless vs Rust: Which is Better?"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 0}","{""data"": ""14476"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 1}","{""data"": ""59"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 5}","{""data"": ""1711900800"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 3}","{""data"": ""50"", ""created_at"": 1700014350, ""last_modified"": 1700014350, ""field_type"": 1}","{""data"": ""1700014350"", ""field_type"": 8}","{""data"": ""1700014350"", ""field_type"": 9}" +"{""data"": ""How to Build iOS in 2023"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 0}","{""data"": ""451287"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 1}","{""data"": ""2630"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 5}","{""data"": ""1720540800"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700014400, ""last_modified"": 1700014400, ""field_type"": 1}","{""data"": ""1700014400"", ""field_type"": 8}","{""data"": ""1700014400"", ""field_type"": 9}" +"{""data"": ""Open Source Architecture Explained"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 0}","{""data"": ""1150"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 5}","{""data"": ""1727280000"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 3}","{""data"": ""203"", ""created_at"": 1700014450, ""last_modified"": 1700014450, ""field_type"": 1}","{""data"": ""1700014450"", ""field_type"": 8}","{""data"": ""1700014450"", ""field_type"": 9}" +"{""data"": ""Why SEO Matters for Your Business"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 0}","{""data"": ""765"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 5}","{""data"": ""1676822400"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 3}","{""data"": ""206"", ""created_at"": 1700014500, ""last_modified"": 1700014500, ""field_type"": 1}","{""data"": ""1700014500"", ""field_type"": 8}","{""data"": ""1700014500"", ""field_type"": 9}" +"{""data"": ""15 Ways to Improve Your AI"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 0}","{""data"": ""343"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 5}","{""data"": ""1675612800"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 3}","{""data"": ""37"", ""created_at"": 1700014550, ""last_modified"": 1700014550, ""field_type"": 1}","{""data"": ""1700014550"", ""field_type"": 8}","{""data"": ""1700014550"", ""field_type"": 9}" +"{""data"": ""SEO in Practice: A Case Study"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 0}","{""data"": ""83"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 5}","{""data"": ""1701619200"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 3}","{""data"": ""80"", ""created_at"": 1700014600, ""last_modified"": 1700014600, ""field_type"": 1}","{""data"": ""1700014600"", ""field_type"": 8}","{""data"": ""1700014600"", ""field_type"": 9}" +"{""data"": ""Introduction to Remote Work"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 0}","{""data"": ""42445"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 1}","{""data"": ""627"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 5}","{""data"": ""1710259200"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700014650, ""last_modified"": 1700014650, ""field_type"": 1}","{""data"": ""1700014650"", ""field_type"": 8}","{""data"": ""1700014650"", ""field_type"": 9}" +"{""data"": ""The Future of Data Analytics"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 0}","{""data"": ""4566"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 1}","{""data"": ""59"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 5}","{""data"": ""1726416000"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700014700, ""last_modified"": 1700014700, ""field_type"": 1}","{""data"": ""1700014700"", ""field_type"": 8}","{""data"": ""1700014700"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Team Management"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 0}","{""data"": ""377921"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 1}","{""data"": ""6099"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 5}","{""data"": ""1709049600"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 3}","{""data"": ""16"", ""created_at"": 1700014750, ""last_modified"": 1700014750, ""field_type"": 1}","{""data"": ""1700014750"", ""field_type"": 8}","{""data"": ""1700014750"", ""field_type"": 9}" +"{""data"": ""Open Source in Practice: A Case Study"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 0}","{""data"": ""18185"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 1}","{""data"": ""259"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 5}","{""data"": ""1699027200"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 3}","{""data"": ""59"", ""created_at"": 1700014800, ""last_modified"": 1700014800, ""field_type"": 1}","{""data"": ""1700014800"", ""field_type"": 8}","{""data"": ""1700014800"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Agile"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 0}","{""data"": ""365"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 5}","{""data"": ""1731945600"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700014850, ""last_modified"": 1700014850, ""field_type"": 1}","{""data"": ""1700014850"", ""field_type"": 8}","{""data"": ""1700014850"", ""field_type"": 9}" +"{""data"": ""AI in Practice: A Case Study"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 0}","{""data"": ""324"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 5}","{""data"": ""1677427200"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 3}","{""data"": ""94"", ""created_at"": 1700014900, ""last_modified"": 1700014900, ""field_type"": 1}","{""data"": ""1700014900"", ""field_type"": 8}","{""data"": ""1700014900"", ""field_type"": 9}" +"{""data"": ""How to Build Team Management in 2025"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 0}","{""data"": ""3217"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 1}","{""data"": ""58"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 5}","{""data"": ""1697299200"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 3}","{""data"": ""94"", ""created_at"": 1700014950, ""last_modified"": 1700014950, ""field_type"": 1}","{""data"": ""1700014950"", ""field_type"": 8}","{""data"": ""1700014950"", ""field_type"": 9}" +"{""data"": ""Understanding SEO: A Deep Dive"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 0}","{""data"": ""1457"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 5}","{""data"": ""1675267200"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 3}","{""data"": ""56"", ""created_at"": 1700015000, ""last_modified"": 1700015000, ""field_type"": 1}","{""data"": ""1700015000"", ""field_type"": 8}","{""data"": ""1700015000"", ""field_type"": 9}" +"{""data"": ""1M Ways to Improve Your Customer Success"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 0}","{""data"": ""4801"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 1}","{""data"": ""30"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 5}","{""data"": ""1690300800"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 3}","{""data"": ""120"", ""created_at"": 1700015050, ""last_modified"": 1700015050, ""field_type"": 1}","{""data"": ""1700015050"", ""field_type"": 8}","{""data"": ""1700015050"", ""field_type"": 9}" +"{""data"": ""GraphQL in Practice: A Case Study"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 0}","{""data"": ""4460"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 1}","{""data"": ""70"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 5}","{""data"": ""1681142400"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700015100, ""last_modified"": 1700015100, ""field_type"": 1}","{""data"": ""1700015100"", ""field_type"": 8}","{""data"": ""1700015100"", ""field_type"": 9}" +"{""data"": ""The Ultimate DevOps Checklist"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 0}","{""data"": ""52"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 5}","{""data"": ""1701964800"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700015150, ""last_modified"": 1700015150, ""field_type"": 1}","{""data"": ""1700015150"", ""field_type"": 8}","{""data"": ""1700015150"", ""field_type"": 9}" +"{""data"": ""Understanding Hiring: A Deep Dive"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 0}","{""data"": ""209"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 5}","{""data"": ""1697817600"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 3}","{""data"": ""26"", ""created_at"": 1700015200, ""last_modified"": 1700015200, ""field_type"": 1}","{""data"": ""1700015200"", ""field_type"": 8}","{""data"": ""1700015200"", ""field_type"": 9}" +"{""data"": ""Mastering Database Design for Beginners"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 0}","{""data"": ""22933"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 1}","{""data"": ""70"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 5}","{""data"": ""1721059200"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700015250, ""last_modified"": 1700015250, ""field_type"": 1}","{""data"": ""1700015250"", ""field_type"": 8}","{""data"": ""1700015250"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Python"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 0}","{""data"": ""3274"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 1}","{""data"": ""32"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 5}","{""data"": ""1732204800"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 3}","{""data"": ""49"", ""created_at"": 1700015300, ""last_modified"": 1700015300, ""field_type"": 1}","{""data"": ""1700015300"", ""field_type"": 8}","{""data"": ""1700015300"", ""field_type"": 9}" +"{""data"": ""Hiring Best Practices"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 0}","{""data"": ""44067"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 1}","{""data"": ""799"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 5}","{""data"": ""1701878400"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 3}","{""data"": ""193"", ""created_at"": 1700015350, ""last_modified"": 1700015350, ""field_type"": 1}","{""data"": ""1700015350"", ""field_type"": 8}","{""data"": ""1700015350"", ""field_type"": 9}" +"{""data"": ""The Future of Testing"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 0}","{""data"": ""289"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 5}","{""data"": ""1714060800"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700015400, ""last_modified"": 1700015400, ""field_type"": 1}","{""data"": ""1700015400"", ""field_type"": 8}","{""data"": ""1700015400"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Rust"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 0}","{""data"": ""390"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 5}","{""data"": ""1678204800"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 3}","{""data"": ""47"", ""created_at"": 1700015450, ""last_modified"": 1700015450, ""field_type"": 1}","{""data"": ""1700015450"", ""field_type"": 8}","{""data"": ""1700015450"", ""field_type"": 9}" +"{""data"": ""Why We Chose React"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 0}","{""data"": ""1543"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 1}","{""data"": ""23"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 5}","{""data"": ""1701273600"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 3}","{""data"": ""88"", ""created_at"": 1700015500, ""last_modified"": 1700015500, ""field_type"": 1}","{""data"": ""1700015500"", ""field_type"": 8}","{""data"": ""1700015500"", ""field_type"": 9}" +"{""data"": ""How Mobile Development Changed Our Team"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 0}","{""data"": ""330"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 5}","{""data"": ""1690905600"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700015550, ""last_modified"": 1700015550, ""field_type"": 1}","{""data"": ""1700015550"", ""field_type"": 8}","{""data"": ""1700015550"", ""field_type"": 9}" +"{""data"": ""Why We Chose Python"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 0}","{""data"": ""1138"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 1}","{""data"": ""27"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 5}","{""data"": ""1701273600"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 3}","{""data"": ""102"", ""created_at"": 1700015600, ""last_modified"": 1700015600, ""field_type"": 1}","{""data"": ""1700015600"", ""field_type"": 8}","{""data"": ""1700015600"", ""field_type"": 9}" +"{""data"": ""GraphQL Best Practices"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 0}","{""data"": ""12126"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 1}","{""data"": ""177"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 5}","{""data"": ""1680451200"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 3}","{""data"": ""93"", ""created_at"": 1700015650, ""last_modified"": 1700015650, ""field_type"": 1}","{""data"": ""1700015650"", ""field_type"": 8}","{""data"": ""1700015650"", ""field_type"": 9}" +"{""data"": ""Optimizing Customer Success Performance"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 0}","{""data"": ""126926"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 1}","{""data"": ""1729"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 5}","{""data"": ""1726934400"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 3}","{""data"": ""98"", ""created_at"": 1700015700, ""last_modified"": 1700015700, ""field_type"": 1}","{""data"": ""1700015700"", ""field_type"": 8}","{""data"": ""1700015700"", ""field_type"": 9}" +"{""data"": ""Optimizing Machine Learning Performance"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 0}","{""data"": ""397"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 5}","{""data"": ""1680364800"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 3}","{""data"": ""184"", ""created_at"": 1700015750, ""last_modified"": 1700015750, ""field_type"": 1}","{""data"": ""1700015750"", ""field_type"": 8}","{""data"": ""1700015750"", ""field_type"": 9}" +"{""data"": ""Cloud Computing vs Performance: Which is Better?"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 0}","{""data"": ""4996"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 1}","{""data"": ""91"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 5}","{""data"": ""1682179200"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 3}","{""data"": ""199"", ""created_at"": 1700015800, ""last_modified"": 1700015800, ""field_type"": 1}","{""data"": ""1700015800"", ""field_type"": 8}","{""data"": ""1700015800"", ""field_type"": 9}" +"{""data"": ""Open Source Best Practices"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 0}","{""data"": ""257"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 5}","{""data"": ""1684771200"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 3}","{""data"": ""76"", ""created_at"": 1700015850, ""last_modified"": 1700015850, ""field_type"": 1}","{""data"": ""1700015850"", ""field_type"": 8}","{""data"": ""1700015850"", ""field_type"": 9}" +"{""data"": ""Common Content Strategy Mistakes to Avoid"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 0}","{""data"": ""114"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 5}","{""data"": ""1715529600"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700015900, ""last_modified"": 1700015900, ""field_type"": 1}","{""data"": ""1700015900"", ""field_type"": 8}","{""data"": ""1700015900"", ""field_type"": 9}" +"{""data"": ""Testing Tips and Tricks"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 0}","{""data"": ""3987"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 1}","{""data"": ""60"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 5}","{""data"": ""1706457600"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700015950, ""last_modified"": 1700015950, ""field_type"": 1}","{""data"": ""1700015950"", ""field_type"": 8}","{""data"": ""1700015950"", ""field_type"": 9}" +"{""data"": ""Why We Chose Web3"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 0}","{""data"": ""311177"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 1}","{""data"": ""5319"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 5}","{""data"": ""1708790400"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 3}","{""data"": ""186"", ""created_at"": 1700016000, ""last_modified"": 1700016000, ""field_type"": 1}","{""data"": ""1700016000"", ""field_type"": 8}","{""data"": ""1700016000"", ""field_type"": 9}" +"{""data"": ""TypeScript in Practice: A Case Study"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 0}","{""data"": ""4444"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 1}","{""data"": ""82"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 5}","{""data"": ""1713628800"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700016050, ""last_modified"": 1700016050, ""field_type"": 1}","{""data"": ""1700016050"", ""field_type"": 8}","{""data"": ""1700016050"", ""field_type"": 9}" +"{""data"": ""Machine Learning: What You Need to Know"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 0}","{""data"": ""392"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 5}","{""data"": ""1719763200"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 3}","{""data"": ""187"", ""created_at"": 1700016100, ""last_modified"": 1700016100, ""field_type"": 1}","{""data"": ""1700016100"", ""field_type"": 8}","{""data"": ""1700016100"", ""field_type"": 9}" +"{""data"": ""Introduction to AI"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 0}","{""data"": ""3391"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 1}","{""data"": ""69"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 5}","{""data"": ""1733932800"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 3}","{""data"": ""193"", ""created_at"": 1700016150, ""last_modified"": 1700016150, ""field_type"": 1}","{""data"": ""1700016150"", ""field_type"": 8}","{""data"": ""1700016150"", ""field_type"": 9}" +"{""data"": ""React in Practice: A Case Study"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 0}","{""data"": ""386"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 5}","{""data"": ""1683648000"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 3}","{""data"": ""51"", ""created_at"": 1700016200, ""last_modified"": 1700016200, ""field_type"": 1}","{""data"": ""1700016200"", ""field_type"": 8}","{""data"": ""1700016200"", ""field_type"": 9}" +"{""data"": ""Understanding Security: A Deep Dive"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 0}","{""data"": ""1413"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 5}","{""data"": ""1687968000"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 3}","{""data"": ""31"", ""created_at"": 1700016250, ""last_modified"": 1700016250, ""field_type"": 1}","{""data"": ""1700016250"", ""field_type"": 8}","{""data"": ""1700016250"", ""field_type"": 9}" +"{""data"": ""The Future of Customer Success"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 0}","{""data"": ""10531"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 1}","{""data"": ""203"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 5}","{""data"": ""1706371200"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 3}","{""data"": ""91"", ""created_at"": 1700016300, ""last_modified"": 1700016300, ""field_type"": 1}","{""data"": ""1700016300"", ""field_type"": 8}","{""data"": ""1700016300"", ""field_type"": 9}" +"{""data"": ""Agile vs Open Source: Which is Better?"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 0}","{""data"": ""436"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 5}","{""data"": ""1714579200"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700016350, ""last_modified"": 1700016350, ""field_type"": 1}","{""data"": ""1700016350"", ""field_type"": 8}","{""data"": ""1700016350"", ""field_type"": 9}" +"{""data"": ""Common Remote Work Mistakes to Avoid"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 0}","{""data"": ""4845"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 1}","{""data"": ""79"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 5}","{""data"": ""1706284800"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700016400, ""last_modified"": 1700016400, ""field_type"": 1}","{""data"": ""1700016400"", ""field_type"": 8}","{""data"": ""1700016400"", ""field_type"": 9}" +"{""data"": ""Understanding Mobile Development: A Deep Dive"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 0}","{""data"": ""4037"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 1}","{""data"": ""53"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 5}","{""data"": ""1681142400"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 3}","{""data"": ""173"", ""created_at"": 1700016450, ""last_modified"": 1700016450, ""field_type"": 1}","{""data"": ""1700016450"", ""field_type"": 8}","{""data"": ""1700016450"", ""field_type"": 9}" +"{""data"": ""Why We Chose Machine Learning"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 0}","{""data"": ""444"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 5}","{""data"": ""1700150400"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 3}","{""data"": ""23"", ""created_at"": 1700016500, ""last_modified"": 1700016500, ""field_type"": 1}","{""data"": ""1700016500"", ""field_type"": 8}","{""data"": ""1700016500"", ""field_type"": 9}" +"{""data"": ""Introduction to TypeScript"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 0}","{""data"": ""229"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 5}","{""data"": ""1674576000"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 3}","{""data"": ""106"", ""created_at"": 1700016550, ""last_modified"": 1700016550, ""field_type"": 1}","{""data"": ""1700016550"", ""field_type"": 8}","{""data"": ""1700016550"", ""field_type"": 9}" +"{""data"": ""Common Web3 Mistakes to Avoid"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 0}","{""data"": ""112"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 5}","{""data"": ""1705680000"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 3}","{""data"": ""76"", ""created_at"": 1700016600, ""last_modified"": 1700016600, ""field_type"": 1}","{""data"": ""1700016600"", ""field_type"": 8}","{""data"": ""1700016600"", ""field_type"": 9}" +"{""data"": ""Advanced React Techniques"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 0}","{""data"": ""88"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 5}","{""data"": ""1695225600"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 3}","{""data"": ""127"", ""created_at"": 1700016650, ""last_modified"": 1700016650, ""field_type"": 1}","{""data"": ""1700016650"", ""field_type"": 8}","{""data"": ""1700016650"", ""field_type"": 9}" +"{""data"": ""How We Scaled Serverless to 7 Users"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 0}","{""data"": ""2668"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 5}","{""data"": ""1726416000"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 3}","{""data"": ""196"", ""created_at"": 1700016700, ""last_modified"": 1700016700, ""field_type"": 1}","{""data"": ""1700016700"", ""field_type"": 8}","{""data"": ""1700016700"", ""field_type"": 9}" +"{""data"": ""Optimizing Performance Performance"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 0}","{""data"": ""104"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 5}","{""data"": ""1678723200"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700016750, ""last_modified"": 1700016750, ""field_type"": 1}","{""data"": ""1700016750"", ""field_type"": 8}","{""data"": ""1700016750"", ""field_type"": 9}" +"{""data"": ""How to Build Leadership in 2024"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 0}","{""data"": ""390"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 5}","{""data"": ""1723305600"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 3}","{""data"": ""68"", ""created_at"": 1700016800, ""last_modified"": 1700016800, ""field_type"": 1}","{""data"": ""1700016800"", ""field_type"": 8}","{""data"": ""1700016800"", ""field_type"": 9}" +"{""data"": ""Optimizing Hiring Performance"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 0}","{""data"": ""85"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 5}","{""data"": ""1683216000"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 3}","{""data"": ""153"", ""created_at"": 1700016850, ""last_modified"": 1700016850, ""field_type"": 1}","{""data"": ""1700016850"", ""field_type"": 8}","{""data"": ""1700016850"", ""field_type"": 9}" +"{""data"": ""Docker Architecture Explained"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 0}","{""data"": ""47406"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 1}","{""data"": ""134"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 5}","{""data"": ""1698076800"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 3}","{""data"": ""188"", ""created_at"": 1700016900, ""last_modified"": 1700016900, ""field_type"": 1}","{""data"": ""1700016900"", ""field_type"": 8}","{""data"": ""1700016900"", ""field_type"": 9}" +"{""data"": ""Getting Started with DevOps"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 0}","{""data"": ""3695"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 1}","{""data"": ""72"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 5}","{""data"": ""1689264000"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700016950, ""last_modified"": 1700016950, ""field_type"": 1}","{""data"": ""1700016950"", ""field_type"": 8}","{""data"": ""1700016950"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Team Management"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 0}","{""data"": ""4928"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 1}","{""data"": ""75"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 5}","{""data"": ""1673884800"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 3}","{""data"": ""71"", ""created_at"": 1700017000, ""last_modified"": 1700017000, ""field_type"": 1}","{""data"": ""1700017000"", ""field_type"": 8}","{""data"": ""1700017000"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to REST APIs"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 0}","{""data"": ""4785"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 1}","{""data"": ""45"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 5}","{""data"": ""1678809600"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 3}","{""data"": ""174"", ""created_at"": 1700017050, ""last_modified"": 1700017050, ""field_type"": 1}","{""data"": ""1700017050"", ""field_type"": 8}","{""data"": ""1700017050"", ""field_type"": 9}" +"{""data"": ""Introduction to Microservices"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 0}","{""data"": ""1569"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 5}","{""data"": ""1712851200"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 3}","{""data"": ""130"", ""created_at"": 1700017100, ""last_modified"": 1700017100, ""field_type"": 1}","{""data"": ""1700017100"", ""field_type"": 8}","{""data"": ""1700017100"", ""field_type"": 9}" +"{""data"": ""Mastering Marketing Automation for Beginners"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 0}","{""data"": ""43992"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 1}","{""data"": ""713"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 5}","{""data"": ""1710172800"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 3}","{""data"": ""61"", ""created_at"": 1700017150, ""last_modified"": 1700017150, ""field_type"": 1}","{""data"": ""1700017150"", ""field_type"": 8}","{""data"": ""1700017150"", ""field_type"": 9}" +"{""data"": ""Getting Started with SEO"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 0}","{""data"": ""18974"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 1}","{""data"": ""294"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 5}","{""data"": ""1696694400"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700017200, ""last_modified"": 1700017200, ""field_type"": 1}","{""data"": ""1700017200"", ""field_type"": 8}","{""data"": ""1700017200"", ""field_type"": 9}" +"{""data"": ""5 Ways to Improve Your Machine Learning"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 0}","{""data"": ""70"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 5}","{""data"": ""1715529600"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700017250, ""last_modified"": 1700017250, ""field_type"": 1}","{""data"": ""1700017250"", ""field_type"": 8}","{""data"": ""1700017250"", ""field_type"": 9}" +"{""data"": ""The Ultimate SEO Checklist"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 0}","{""data"": ""4399"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 1}","{""data"": ""63"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 5}","{""data"": ""1718726400"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 3}","{""data"": ""210"", ""created_at"": 1700017300, ""last_modified"": 1700017300, ""field_type"": 1}","{""data"": ""1700017300"", ""field_type"": 8}","{""data"": ""1700017300"", ""field_type"": 9}" +"{""data"": ""The Future of Docker"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 0}","{""data"": ""363"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 5}","{""data"": ""1721836800"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 3}","{""data"": ""97"", ""created_at"": 1700017350, ""last_modified"": 1700017350, ""field_type"": 1}","{""data"": ""1700017350"", ""field_type"": 8}","{""data"": ""1700017350"", ""field_type"": 9}" +"{""data"": ""Getting Started with Agile"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 0}","{""data"": ""309"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 5}","{""data"": ""1682438400"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 3}","{""data"": ""192"", ""created_at"": 1700017400, ""last_modified"": 1700017400, ""field_type"": 1}","{""data"": ""1700017400"", ""field_type"": 8}","{""data"": ""1700017400"", ""field_type"": 9}" +"{""data"": ""Sales: What You Need to Know"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 0}","{""data"": ""47261"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 1}","{""data"": ""375"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 5}","{""data"": ""1727020800"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700017450, ""last_modified"": 1700017450, ""field_type"": 1}","{""data"": ""1700017450"", ""field_type"": 8}","{""data"": ""1700017450"", ""field_type"": 9}" +"{""data"": ""Optimizing Mobile Development Performance"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 0}","{""data"": ""738"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 5}","{""data"": ""1711814400"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 3}","{""data"": ""29"", ""created_at"": 1700017500, ""last_modified"": 1700017500, ""field_type"": 1}","{""data"": ""1700017500"", ""field_type"": 8}","{""data"": ""1700017500"", ""field_type"": 9}" +"{""data"": ""How We Scaled Testing to 20 Users"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 0}","{""data"": ""1402"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 5}","{""data"": ""1690128000"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700017550, ""last_modified"": 1700017550, ""field_type"": 1}","{""data"": ""1700017550"", ""field_type"": 8}","{""data"": ""1700017550"", ""field_type"": 9}" +"{""data"": ""Database Design Tips and Tricks"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 0}","{""data"": ""4227"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 1}","{""data"": ""24"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 5}","{""data"": ""1728403200"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 3}","{""data"": ""56"", ""created_at"": 1700017600, ""last_modified"": 1700017600, ""field_type"": 1}","{""data"": ""1700017600"", ""field_type"": 8}","{""data"": ""1700017600"", ""field_type"": 9}" +"{""data"": ""Building a Microservices Strategy"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 0}","{""data"": ""348144"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 1}","{""data"": ""741"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 5}","{""data"": ""1713024000"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700017650, ""last_modified"": 1700017650, ""field_type"": 1}","{""data"": ""1700017650"", ""field_type"": 8}","{""data"": ""1700017650"", ""field_type"": 9}" +"{""data"": ""Optimizing Agile Performance"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 0}","{""data"": ""363"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 5}","{""data"": ""1691596800"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 3}","{""data"": ""27"", ""created_at"": 1700017700, ""last_modified"": 1700017700, ""field_type"": 1}","{""data"": ""1700017700"", ""field_type"": 8}","{""data"": ""1700017700"", ""field_type"": 9}" +"{""data"": ""How to Build SEO in 2023"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 0}","{""data"": ""3181"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 1}","{""data"": ""31"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 5}","{""data"": ""1723219200"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 3}","{""data"": ""193"", ""created_at"": 1700017750, ""last_modified"": 1700017750, ""field_type"": 1}","{""data"": ""1700017750"", ""field_type"": 8}","{""data"": ""1700017750"", ""field_type"": 9}" +"{""data"": ""Why We Chose Machine Learning"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 0}","{""data"": ""3730"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 5}","{""data"": ""1679846400"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 3}","{""data"": ""194"", ""created_at"": 1700017800, ""last_modified"": 1700017800, ""field_type"": 1}","{""data"": ""1700017800"", ""field_type"": 8}","{""data"": ""1700017800"", ""field_type"": 9}" +"{""data"": ""The State of Mobile Development in 2024"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 0}","{""data"": ""58"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 5}","{""data"": ""1722960000"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 3}","{""data"": ""214"", ""created_at"": 1700017850, ""last_modified"": 1700017850, ""field_type"": 1}","{""data"": ""1700017850"", ""field_type"": 8}","{""data"": ""1700017850"", ""field_type"": 9}" +"{""data"": ""How Team Management Changed Our Team"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 0}","{""data"": ""3534"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 1}","{""data"": ""40"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 5}","{""data"": ""1706544000"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 3}","{""data"": ""5"", ""created_at"": 1700017900, ""last_modified"": 1700017900, ""field_type"": 1}","{""data"": ""1700017900"", ""field_type"": 8}","{""data"": ""1700017900"", ""field_type"": 9}" +"{""data"": ""Mastering Kubernetes for Beginners"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 0}","{""data"": ""327"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 5}","{""data"": ""1727366400"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 3}","{""data"": ""216"", ""created_at"": 1700017950, ""last_modified"": 1700017950, ""field_type"": 1}","{""data"": ""1700017950"", ""field_type"": 8}","{""data"": ""1700017950"", ""field_type"": 9}" +"{""data"": ""Why We Chose React"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 0}","{""data"": ""28959"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 1}","{""data"": ""281"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 5}","{""data"": ""1729785600"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700018000, ""last_modified"": 1700018000, ""field_type"": 1}","{""data"": ""1700018000"", ""field_type"": 8}","{""data"": ""1700018000"", ""field_type"": 9}" +"{""data"": ""Database Design Tips and Tricks"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 0}","{""data"": ""1430"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 5}","{""data"": ""1700841600"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700018050, ""last_modified"": 1700018050, ""field_type"": 1}","{""data"": ""1700018050"", ""field_type"": 8}","{""data"": ""1700018050"", ""field_type"": 9}" +"{""data"": ""Introduction to UX Design"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 0}","{""data"": ""27624"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 1}","{""data"": ""263"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 5}","{""data"": ""1712419200"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700018100, ""last_modified"": 1700018100, ""field_type"": 1}","{""data"": ""1700018100"", ""field_type"": 8}","{""data"": ""1700018100"", ""field_type"": 9}" +"{""data"": ""Getting Started with CI/CD"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 0}","{""data"": ""1130"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 5}","{""data"": ""1716393600"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700018150, ""last_modified"": 1700018150, ""field_type"": 1}","{""data"": ""1700018150"", ""field_type"": 8}","{""data"": ""1700018150"", ""field_type"": 9}" +"{""data"": ""React Best Practices"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 0}","{""data"": ""117"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 5}","{""data"": ""1698249600"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700018200, ""last_modified"": 1700018200, ""field_type"": 1}","{""data"": ""1700018200"", ""field_type"": 8}","{""data"": ""1700018200"", ""field_type"": 9}" +"{""data"": ""Web3 vs GraphQL: Which is Better?"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 0}","{""data"": ""3308"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 1}","{""data"": ""49"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 5}","{""data"": ""1712937600"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 3}","{""data"": ""59"", ""created_at"": 1700018250, ""last_modified"": 1700018250, ""field_type"": 1}","{""data"": ""1700018250"", ""field_type"": 8}","{""data"": ""1700018250"", ""field_type"": 9}" +"{""data"": ""Advanced Android Techniques"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 0}","{""data"": ""2860"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 1}","{""data"": ""40"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 5}","{""data"": ""1712764800"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 3}","{""data"": ""74"", ""created_at"": 1700018300, ""last_modified"": 1700018300, ""field_type"": 1}","{""data"": ""1700018300"", ""field_type"": 8}","{""data"": ""1700018300"", ""field_type"": 9}" +"{""data"": ""Mastering Web3 for Beginners"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 0}","{""data"": ""404"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 5}","{""data"": ""1676131200"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 3}","{""data"": ""111"", ""created_at"": 1700018350, ""last_modified"": 1700018350, ""field_type"": 1}","{""data"": ""1700018350"", ""field_type"": 8}","{""data"": ""1700018350"", ""field_type"": 9}" +"{""data"": ""Advanced Hiring Techniques"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 0}","{""data"": ""390"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 5}","{""data"": ""1720195200"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 3}","{""data"": ""72"", ""created_at"": 1700018400, ""last_modified"": 1700018400, ""field_type"": 1}","{""data"": ""1700018400"", ""field_type"": 8}","{""data"": ""1700018400"", ""field_type"": 9}" +"{""data"": ""How Data Analytics Changed Our Team"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 0}","{""data"": ""4252"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 1}","{""data"": ""78"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 5}","{""data"": ""1729699200"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 3}","{""data"": ""197"", ""created_at"": 1700018450, ""last_modified"": 1700018450, ""field_type"": 1}","{""data"": ""1700018450"", ""field_type"": 8}","{""data"": ""1700018450"", ""field_type"": 9}" +"{""data"": ""Common Open Source Mistakes to Avoid"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 0}","{""data"": ""4121"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 1}","{""data"": ""28"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 5}","{""data"": ""1684771200"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 3}","{""data"": ""82"", ""created_at"": 1700018500, ""last_modified"": 1700018500, ""field_type"": 1}","{""data"": ""1700018500"", ""field_type"": 8}","{""data"": ""1700018500"", ""field_type"": 9}" +"{""data"": ""Cloud Computing Best Practices"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 0}","{""data"": ""1257"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 5}","{""data"": ""1697040000"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 3}","{""data"": ""105"", ""created_at"": 1700018550, ""last_modified"": 1700018550, ""field_type"": 1}","{""data"": ""1700018550"", ""field_type"": 8}","{""data"": ""1700018550"", ""field_type"": 9}" +"{""data"": ""Marketing Automation Tips and Tricks"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 0}","{""data"": ""4692"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 1}","{""data"": ""49"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 5}","{""data"": ""1731427200"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700018600, ""last_modified"": 1700018600, ""field_type"": 1}","{""data"": ""1700018600"", ""field_type"": 8}","{""data"": ""1700018600"", ""field_type"": 9}" +"{""data"": ""The State of Customer Success in 2024"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 0}","{""data"": ""3325"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 1}","{""data"": ""34"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 5}","{""data"": ""1691510400"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 3}","{""data"": ""180"", ""created_at"": 1700018650, ""last_modified"": 1700018650, ""field_type"": 1}","{""data"": ""1700018650"", ""field_type"": 8}","{""data"": ""1700018650"", ""field_type"": 9}" +"{""data"": ""AI Best Practices"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 0}","{""data"": ""423"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 5}","{""data"": ""1685203200"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 3}","{""data"": ""212"", ""created_at"": 1700018700, ""last_modified"": 1700018700, ""field_type"": 1}","{""data"": ""1700018700"", ""field_type"": 8}","{""data"": ""1700018700"", ""field_type"": 9}" +"{""data"": ""GraphQL: What You Need to Know"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 0}","{""data"": ""95"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 5}","{""data"": ""1722700800"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 3}","{""data"": ""181"", ""created_at"": 1700018750, ""last_modified"": 1700018750, ""field_type"": 1}","{""data"": ""1700018750"", ""field_type"": 8}","{""data"": ""1700018750"", ""field_type"": 9}" +"{""data"": ""How to Build Machine Learning in 2024"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 0}","{""data"": ""2973"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 1}","{""data"": ""54"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 5}","{""data"": ""1692288000"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700018800, ""last_modified"": 1700018800, ""field_type"": 1}","{""data"": ""1700018800"", ""field_type"": 8}","{""data"": ""1700018800"", ""field_type"": 9}" +"{""data"": ""Why Database Design Matters for Your Business"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 0}","{""data"": ""2856"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 5}","{""data"": ""1675008000"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700018850, ""last_modified"": 1700018850, ""field_type"": 1}","{""data"": ""1700018850"", ""field_type"": 8}","{""data"": ""1700018850"", ""field_type"": 9}" +"{""data"": ""Web3 in Practice: A Case Study"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 0}","{""data"": ""494"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 1}","{""data"": ""12"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 5}","{""data"": ""1705507200"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 3}","{""data"": ""16"", ""created_at"": 1700018900, ""last_modified"": 1700018900, ""field_type"": 1}","{""data"": ""1700018900"", ""field_type"": 8}","{""data"": ""1700018900"", ""field_type"": 9}" +"{""data"": ""SEO Tips and Tricks"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 0}","{""data"": ""35214"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 1}","{""data"": ""621"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 5}","{""data"": ""1696608000"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700018950, ""last_modified"": 1700018950, ""field_type"": 1}","{""data"": ""1700018950"", ""field_type"": 8}","{""data"": ""1700018950"", ""field_type"": 9}" +"{""data"": ""Mastering Remote Work for Beginners"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 0}","{""data"": ""2087"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 1}","{""data"": ""32"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 5}","{""data"": ""1720540800"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 3}","{""data"": ""166"", ""created_at"": 1700019000, ""last_modified"": 1700019000, ""field_type"": 1}","{""data"": ""1700019000"", ""field_type"": 8}","{""data"": ""1700019000"", ""field_type"": 9}" +"{""data"": ""Scrum: What You Need to Know"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 0}","{""data"": ""230"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 5}","{""data"": ""1705420800"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 3}","{""data"": ""140"", ""created_at"": 1700019050, ""last_modified"": 1700019050, ""field_type"": 1}","{""data"": ""1700019050"", ""field_type"": 8}","{""data"": ""1700019050"", ""field_type"": 9}" +"{""data"": ""Getting Started with Cloud Computing"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 0}","{""data"": ""19490"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 1}","{""data"": ""325"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 5}","{""data"": ""1682784000"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 3}","{""data"": ""106"", ""created_at"": 1700019100, ""last_modified"": 1700019100, ""field_type"": 1}","{""data"": ""1700019100"", ""field_type"": 8}","{""data"": ""1700019100"", ""field_type"": 9}" +"{""data"": ""The State of Rust in 2023"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 0}","{""data"": ""33962"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 1}","{""data"": ""613"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 5}","{""data"": ""1675008000"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 3}","{""data"": ""101"", ""created_at"": 1700019150, ""last_modified"": 1700019150, ""field_type"": 1}","{""data"": ""1700019150"", ""field_type"": 8}","{""data"": ""1700019150"", ""field_type"": 9}" +"{""data"": ""How to Build Agile in 2023"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 0}","{""data"": ""2219"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 5}","{""data"": ""1679328000"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 3}","{""data"": ""122"", ""created_at"": 1700019200, ""last_modified"": 1700019200, ""field_type"": 1}","{""data"": ""1700019200"", ""field_type"": 8}","{""data"": ""1700019200"", ""field_type"": 9}" +"{""data"": ""How to Build Python in 2025"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 0}","{""data"": ""80"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 5}","{""data"": ""1731513600"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 3}","{""data"": ""19"", ""created_at"": 1700019250, ""last_modified"": 1700019250, ""field_type"": 1}","{""data"": ""1700019250"", ""field_type"": 8}","{""data"": ""1700019250"", ""field_type"": 9}" +"{""data"": ""Advanced Leadership Techniques"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 0}","{""data"": ""64"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 5}","{""data"": ""1703606400"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 3}","{""data"": ""71"", ""created_at"": 1700019300, ""last_modified"": 1700019300, ""field_type"": 1}","{""data"": ""1700019300"", ""field_type"": 8}","{""data"": ""1700019300"", ""field_type"": 9}" +"{""data"": ""How to Build Python in 2025"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 0}","{""data"": ""320"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 5}","{""data"": ""1720022400"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 3}","{""data"": ""66"", ""created_at"": 1700019350, ""last_modified"": 1700019350, ""field_type"": 1}","{""data"": ""1700019350"", ""field_type"": 8}","{""data"": ""1700019350"", ""field_type"": 9}" +"{""data"": ""Building a CI/CD Strategy"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 0}","{""data"": ""275"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 5}","{""data"": ""1706025600"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700019400, ""last_modified"": 1700019400, ""field_type"": 1}","{""data"": ""1700019400"", ""field_type"": 8}","{""data"": ""1700019400"", ""field_type"": 9}" +"{""data"": ""The State of DevOps in 2024"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 0}","{""data"": ""1403"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 1}","{""data"": ""25"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 5}","{""data"": ""1721750400"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700019450, ""last_modified"": 1700019450, ""field_type"": 1}","{""data"": ""1700019450"", ""field_type"": 8}","{""data"": ""1700019450"", ""field_type"": 9}" +"{""data"": ""Building a Docker Strategy"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 0}","{""data"": ""209"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 5}","{""data"": ""1698163200"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 3}","{""data"": ""20"", ""created_at"": 1700019500, ""last_modified"": 1700019500, ""field_type"": 1}","{""data"": ""1700019500"", ""field_type"": 8}","{""data"": ""1700019500"", ""field_type"": 9}" +"{""data"": ""Getting Started with Marketing Automation"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 0}","{""data"": ""49181"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 1}","{""data"": ""506"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 5}","{""data"": ""1683043200"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 3}","{""data"": ""107"", ""created_at"": 1700019550, ""last_modified"": 1700019550, ""field_type"": 1}","{""data"": ""1700019550"", ""field_type"": 8}","{""data"": ""1700019550"", ""field_type"": 9}" +"{""data"": ""The Future of Content Strategy"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 0}","{""data"": ""136"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 5}","{""data"": ""1683302400"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 3}","{""data"": ""170"", ""created_at"": 1700019600, ""last_modified"": 1700019600, ""field_type"": 1}","{""data"": ""1700019600"", ""field_type"": 8}","{""data"": ""1700019600"", ""field_type"": 9}" +"{""data"": ""Sales: What You Need to Know"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 0}","{""data"": ""3778"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 1}","{""data"": ""36"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 5}","{""data"": ""1685462400"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 3}","{""data"": ""117"", ""created_at"": 1700019650, ""last_modified"": 1700019650, ""field_type"": 1}","{""data"": ""1700019650"", ""field_type"": 8}","{""data"": ""1700019650"", ""field_type"": 9}" +"{""data"": ""How to Build Serverless in 2025"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 0}","{""data"": ""65"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 5}","{""data"": ""1732464000"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 3}","{""data"": ""153"", ""created_at"": 1700019700, ""last_modified"": 1700019700, ""field_type"": 1}","{""data"": ""1700019700"", ""field_type"": 8}","{""data"": ""1700019700"", ""field_type"": 9}" +"{""data"": ""Common Scrum Mistakes to Avoid"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 0}","{""data"": ""439"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 5}","{""data"": ""1698422400"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 3}","{""data"": ""132"", ""created_at"": 1700019750, ""last_modified"": 1700019750, ""field_type"": 1}","{""data"": ""1700019750"", ""field_type"": 8}","{""data"": ""1700019750"", ""field_type"": 9}" +"{""data"": ""The Ultimate Remote Work Checklist"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 0}","{""data"": ""59"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 5}","{""data"": ""1706371200"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700019800, ""last_modified"": 1700019800, ""field_type"": 1}","{""data"": ""1700019800"", ""field_type"": 8}","{""data"": ""1700019800"", ""field_type"": 9}" +"{""data"": ""Building a GraphQL Strategy"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 0}","{""data"": ""142730"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 1}","{""data"": ""1656"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 5}","{""data"": ""1715961600"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 3}","{""data"": ""146"", ""created_at"": 1700019850, ""last_modified"": 1700019850, ""field_type"": 1}","{""data"": ""1700019850"", ""field_type"": 8}","{""data"": ""1700019850"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Marketing Automation"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 0}","{""data"": ""49238"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 1}","{""data"": ""518"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 5}","{""data"": ""1717257600"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700019900, ""last_modified"": 1700019900, ""field_type"": 1}","{""data"": ""1700019900"", ""field_type"": 8}","{""data"": ""1700019900"", ""field_type"": 9}" +"{""data"": ""Mobile Development Tips and Tricks"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 0}","{""data"": ""2830"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 1}","{""data"": ""15"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 5}","{""data"": ""1704902400"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700019950, ""last_modified"": 1700019950, ""field_type"": 1}","{""data"": ""1700019950"", ""field_type"": 8}","{""data"": ""1700019950"", ""field_type"": 9}" +"{""data"": ""10 Ways to Improve Your React"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 0}","{""data"": ""260"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 5}","{""data"": ""1724860800"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 3}","{""data"": ""204"", ""created_at"": 1700020000, ""last_modified"": 1700020000, ""field_type"": 1}","{""data"": ""1700020000"", ""field_type"": 8}","{""data"": ""1700020000"", ""field_type"": 9}" +"{""data"": ""How to Build Remote Work in 2025"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 0}","{""data"": ""3960"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 1}","{""data"": ""54"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 5}","{""data"": ""1724515200"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 3}","{""data"": ""207"", ""created_at"": 1700020050, ""last_modified"": 1700020050, ""field_type"": 1}","{""data"": ""1700020050"", ""field_type"": 8}","{""data"": ""1700020050"", ""field_type"": 9}" +"{""data"": ""Introduction to AI"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 0}","{""data"": ""37005"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 1}","{""data"": ""108"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 5}","{""data"": ""1687190400"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700020100, ""last_modified"": 1700020100, ""field_type"": 1}","{""data"": ""1700020100"", ""field_type"": 8}","{""data"": ""1700020100"", ""field_type"": 9}" +"{""data"": ""Optimizing Marketing Automation Performance"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 0}","{""data"": ""480"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 5}","{""data"": ""1698768000"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 3}","{""data"": ""166"", ""created_at"": 1700020150, ""last_modified"": 1700020150, ""field_type"": 1}","{""data"": ""1700020150"", ""field_type"": 8}","{""data"": ""1700020150"", ""field_type"": 9}" +"{""data"": ""Product Development Best Practices"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 0}","{""data"": ""353"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 5}","{""data"": ""1710259200"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 3}","{""data"": ""102"", ""created_at"": 1700020200, ""last_modified"": 1700020200, ""field_type"": 1}","{""data"": ""1700020200"", ""field_type"": 8}","{""data"": ""1700020200"", ""field_type"": 9}" +"{""data"": ""Open Source: What You Need to Know"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 0}","{""data"": ""4923"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 1}","{""data"": ""42"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 5}","{""data"": ""1731859200"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700020250, ""last_modified"": 1700020250, ""field_type"": 1}","{""data"": ""1700020250"", ""field_type"": 8}","{""data"": ""1700020250"", ""field_type"": 9}" +"{""data"": ""The State of Kubernetes in 2023"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 0}","{""data"": ""159"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 5}","{""data"": ""1722528000"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 3}","{""data"": ""180"", ""created_at"": 1700020300, ""last_modified"": 1700020300, ""field_type"": 1}","{""data"": ""1700020300"", ""field_type"": 8}","{""data"": ""1700020300"", ""field_type"": 9}" +"{""data"": ""SEO Best Practices"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 0}","{""data"": ""441"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 5}","{""data"": ""1728576000"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700020350, ""last_modified"": 1700020350, ""field_type"": 1}","{""data"": ""1700020350"", ""field_type"": 8}","{""data"": ""1700020350"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Open Source"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 0}","{""data"": ""2453"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 5}","{""data"": ""1713542400"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 3}","{""data"": ""114"", ""created_at"": 1700020400, ""last_modified"": 1700020400, ""field_type"": 1}","{""data"": ""1700020400"", ""field_type"": 8}","{""data"": ""1700020400"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Scrum"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 0}","{""data"": ""738"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 5}","{""data"": ""1729440000"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700020450, ""last_modified"": 1700020450, ""field_type"": 1}","{""data"": ""1700020450"", ""field_type"": 8}","{""data"": ""1700020450"", ""field_type"": 9}" +"{""data"": ""The State of GraphQL in 2023"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 0}","{""data"": ""1020"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 5}","{""data"": ""1707580800"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700020500, ""last_modified"": 1700020500, ""field_type"": 1}","{""data"": ""1700020500"", ""field_type"": 8}","{""data"": ""1700020500"", ""field_type"": 9}" +"{""data"": ""Introduction to Rust"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 0}","{""data"": ""474"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 5}","{""data"": ""1693497600"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700020550, ""last_modified"": 1700020550, ""field_type"": 1}","{""data"": ""1700020550"", ""field_type"": 8}","{""data"": ""1700020550"", ""field_type"": 9}" +"{""data"": ""Understanding Customer Success: A Deep Dive"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 0}","{""data"": ""170"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 5}","{""data"": ""1691424000"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 3}","{""data"": ""111"", ""created_at"": 1700020600, ""last_modified"": 1700020600, ""field_type"": 1}","{""data"": ""1700020600"", ""field_type"": 8}","{""data"": ""1700020600"", ""field_type"": 9}" +"{""data"": ""Getting Started with UX Design"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 0}","{""data"": ""1425"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 1}","{""data"": ""17"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 5}","{""data"": ""1697040000"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 3}","{""data"": ""218"", ""created_at"": 1700020650, ""last_modified"": 1700020650, ""field_type"": 1}","{""data"": ""1700020650"", ""field_type"": 8}","{""data"": ""1700020650"", ""field_type"": 9}" +"{""data"": ""Why We Chose UI Design"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 0}","{""data"": ""44702"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 1}","{""data"": ""70"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 5}","{""data"": ""1694880000"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700020700, ""last_modified"": 1700020700, ""field_type"": 1}","{""data"": ""1700020700"", ""field_type"": 8}","{""data"": ""1700020700"", ""field_type"": 9}" +"{""data"": ""TypeScript vs Performance: Which is Better?"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 0}","{""data"": ""2436"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 1}","{""data"": ""49"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 5}","{""data"": ""1695052800"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 3}","{""data"": ""45"", ""created_at"": 1700020750, ""last_modified"": 1700020750, ""field_type"": 1}","{""data"": ""1700020750"", ""field_type"": 8}","{""data"": ""1700020750"", ""field_type"": 9}" +"{""data"": ""Scrum: What You Need to Know"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 0}","{""data"": ""33760"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 1}","{""data"": ""446"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 5}","{""data"": ""1679587200"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 3}","{""data"": ""22"", ""created_at"": 1700020800, ""last_modified"": 1700020800, ""field_type"": 1}","{""data"": ""1700020800"", ""field_type"": 8}","{""data"": ""1700020800"", ""field_type"": 9}" +"{""data"": ""Introduction to Open Source"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 0}","{""data"": ""1322"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 1}","{""data"": ""25"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 5}","{""data"": ""1709654400"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700020850, ""last_modified"": 1700020850, ""field_type"": 1}","{""data"": ""1700020850"", ""field_type"": 8}","{""data"": ""1700020850"", ""field_type"": 9}" +"{""data"": ""How We Scaled Docker to 20 Users"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 0}","{""data"": ""77314"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 1}","{""data"": ""1019"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 5}","{""data"": ""1672761600"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 3}","{""data"": ""59"", ""created_at"": 1700020900, ""last_modified"": 1700020900, ""field_type"": 1}","{""data"": ""1700020900"", ""field_type"": 8}","{""data"": ""1700020900"", ""field_type"": 9}" +"{""data"": ""The Ultimate Agile Checklist"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 0}","{""data"": ""38840"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 1}","{""data"": ""564"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 5}","{""data"": ""1700755200"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 3}","{""data"": ""191"", ""created_at"": 1700020950, ""last_modified"": 1700020950, ""field_type"": 1}","{""data"": ""1700020950"", ""field_type"": 8}","{""data"": ""1700020950"", ""field_type"": 9}" +"{""data"": ""The Future of Cloud Computing"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 0}","{""data"": ""151"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 5}","{""data"": ""1722960000"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700021000, ""last_modified"": 1700021000, ""field_type"": 1}","{""data"": ""1700021000"", ""field_type"": 8}","{""data"": ""1700021000"", ""field_type"": 9}" +"{""data"": ""Understanding REST APIs: A Deep Dive"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 0}","{""data"": ""4288"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 5}","{""data"": ""1725552000"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 3}","{""data"": ""213"", ""created_at"": 1700021050, ""last_modified"": 1700021050, ""field_type"": 1}","{""data"": ""1700021050"", ""field_type"": 8}","{""data"": ""1700021050"", ""field_type"": 9}" +"{""data"": ""The Future of CI/CD"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 0}","{""data"": ""39461"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 1}","{""data"": ""374"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 5}","{""data"": ""1682956800"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 3}","{""data"": ""120"", ""created_at"": 1700021100, ""last_modified"": 1700021100, ""field_type"": 1}","{""data"": ""1700021100"", ""field_type"": 8}","{""data"": ""1700021100"", ""field_type"": 9}" +"{""data"": ""Advanced SEO Techniques"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 0}","{""data"": ""2192"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 1}","{""data"": ""31"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 5}","{""data"": ""1709481600"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 3}","{""data"": ""192"", ""created_at"": 1700021150, ""last_modified"": 1700021150, ""field_type"": 1}","{""data"": ""1700021150"", ""field_type"": 8}","{""data"": ""1700021150"", ""field_type"": 9}" +"{""data"": ""Mastering Marketing Automation for Beginners"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 0}","{""data"": ""2534"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 5}","{""data"": ""1684252800"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 3}","{""data"": ""7"", ""created_at"": 1700021200, ""last_modified"": 1700021200, ""field_type"": 1}","{""data"": ""1700021200"", ""field_type"": 8}","{""data"": ""1700021200"", ""field_type"": 9}" +"{""data"": ""iOS Tips and Tricks"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 0}","{""data"": ""1280"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 5}","{""data"": ""1714147200"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 3}","{""data"": ""24"", ""created_at"": 1700021250, ""last_modified"": 1700021250, ""field_type"": 1}","{""data"": ""1700021250"", ""field_type"": 8}","{""data"": ""1700021250"", ""field_type"": 9}" +"{""data"": ""Why We Chose DevOps"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 0}","{""data"": ""38065"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 1}","{""data"": ""490"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 5}","{""data"": ""1684166400"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 3}","{""data"": ""160"", ""created_at"": 1700021300, ""last_modified"": 1700021300, ""field_type"": 1}","{""data"": ""1700021300"", ""field_type"": 8}","{""data"": ""1700021300"", ""field_type"": 9}" +"{""data"": ""Understanding Rust: A Deep Dive"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 0}","{""data"": ""4334"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 5}","{""data"": ""1685030400"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700021350, ""last_modified"": 1700021350, ""field_type"": 1}","{""data"": ""1700021350"", ""field_type"": 8}","{""data"": ""1700021350"", ""field_type"": 9}" +"{""data"": ""Performance: What You Need to Know"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 0}","{""data"": ""3453"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 1}","{""data"": ""68"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 5}","{""data"": ""1726675200"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 3}","{""data"": ""168"", ""created_at"": 1700021400, ""last_modified"": 1700021400, ""field_type"": 1}","{""data"": ""1700021400"", ""field_type"": 8}","{""data"": ""1700021400"", ""field_type"": 9}" +"{""data"": ""The Future of Serverless"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 0}","{""data"": ""441"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 1}","{""data"": ""17"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 5}","{""data"": ""1677254400"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 3}","{""data"": ""78"", ""created_at"": 1700021450, ""last_modified"": 1700021450, ""field_type"": 1}","{""data"": ""1700021450"", ""field_type"": 8}","{""data"": ""1700021450"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Rust"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 0}","{""data"": ""4554"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 5}","{""data"": ""1712937600"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 3}","{""data"": ""125"", ""created_at"": 1700021500, ""last_modified"": 1700021500, ""field_type"": 1}","{""data"": ""1700021500"", ""field_type"": 8}","{""data"": ""1700021500"", ""field_type"": 9}" +"{""data"": ""How to Build Company Culture in 2023"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 0}","{""data"": ""1878"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 1}","{""data"": ""31"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 5}","{""data"": ""1724083200"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700021550, ""last_modified"": 1700021550, ""field_type"": 1}","{""data"": ""1700021550"", ""field_type"": 8}","{""data"": ""1700021550"", ""field_type"": 9}" +"{""data"": ""Mobile Development Tips and Tricks"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 0}","{""data"": ""1272"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 1}","{""data"": ""17"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 5}","{""data"": ""1707321600"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 3}","{""data"": ""88"", ""created_at"": 1700021600, ""last_modified"": 1700021600, ""field_type"": 1}","{""data"": ""1700021600"", ""field_type"": 8}","{""data"": ""1700021600"", ""field_type"": 9}" +"{""data"": ""Common Machine Learning Mistakes to Avoid"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 0}","{""data"": ""291294"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 1}","{""data"": ""4898"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 5}","{""data"": ""1725033600"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 3}","{""data"": ""173"", ""created_at"": 1700021650, ""last_modified"": 1700021650, ""field_type"": 1}","{""data"": ""1700021650"", ""field_type"": 8}","{""data"": ""1700021650"", ""field_type"": 9}" +"{""data"": ""Remote Work vs Kubernetes: Which is Better?"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 0}","{""data"": ""425"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 5}","{""data"": ""1729440000"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 3}","{""data"": ""94"", ""created_at"": 1700021700, ""last_modified"": 1700021700, ""field_type"": 1}","{""data"": ""1700021700"", ""field_type"": 8}","{""data"": ""1700021700"", ""field_type"": 9}" +"{""data"": ""How We Scaled Marketing Automation to 1M Users"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 0}","{""data"": ""2590"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 1}","{""data"": ""18"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 5}","{""data"": ""1686844800"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 3}","{""data"": ""140"", ""created_at"": 1700021750, ""last_modified"": 1700021750, ""field_type"": 1}","{""data"": ""1700021750"", ""field_type"": 8}","{""data"": ""1700021750"", ""field_type"": 9}" +"{""data"": ""Introduction to GraphQL"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 0}","{""data"": ""24565"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 1}","{""data"": ""261"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 5}","{""data"": ""1733068800"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 3}","{""data"": ""215"", ""created_at"": 1700021800, ""last_modified"": 1700021800, ""field_type"": 1}","{""data"": ""1700021800"", ""field_type"": 8}","{""data"": ""1700021800"", ""field_type"": 9}" +"{""data"": ""Introduction to Serverless"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 0}","{""data"": ""3679"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 1}","{""data"": ""44"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 5}","{""data"": ""1705075200"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 3}","{""data"": ""181"", ""created_at"": 1700021850, ""last_modified"": 1700021850, ""field_type"": 1}","{""data"": ""1700021850"", ""field_type"": 8}","{""data"": ""1700021850"", ""field_type"": 9}" +"{""data"": ""The Ultimate Content Strategy Checklist"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 0}","{""data"": ""396"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 5}","{""data"": ""1698163200"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 3}","{""data"": ""166"", ""created_at"": 1700021900, ""last_modified"": 1700021900, ""field_type"": 1}","{""data"": ""1700021900"", ""field_type"": 8}","{""data"": ""1700021900"", ""field_type"": 9}" +"{""data"": ""20 Ways to Improve Your DevOps"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 0}","{""data"": ""24687"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 1}","{""data"": ""427"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 5}","{""data"": ""1721232000"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 3}","{""data"": ""186"", ""created_at"": 1700021950, ""last_modified"": 1700021950, ""field_type"": 1}","{""data"": ""1700021950"", ""field_type"": 8}","{""data"": ""1700021950"", ""field_type"": 9}" +"{""data"": ""How to Build Rust in 2023"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 0}","{""data"": ""48309"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 1}","{""data"": ""712"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 5}","{""data"": ""1716998400"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700022000, ""last_modified"": 1700022000, ""field_type"": 1}","{""data"": ""1700022000"", ""field_type"": 8}","{""data"": ""1700022000"", ""field_type"": 9}" +"{""data"": ""Understanding Team Management: A Deep Dive"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 0}","{""data"": ""2938"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 1}","{""data"": ""29"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 5}","{""data"": ""1727625600"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 3}","{""data"": ""25"", ""created_at"": 1700022050, ""last_modified"": 1700022050, ""field_type"": 1}","{""data"": ""1700022050"", ""field_type"": 8}","{""data"": ""1700022050"", ""field_type"": 9}" +"{""data"": ""Advanced Agile Techniques"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 0}","{""data"": ""1371"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 5}","{""data"": ""1673625600"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 3}","{""data"": ""71"", ""created_at"": 1700022100, ""last_modified"": 1700022100, ""field_type"": 1}","{""data"": ""1700022100"", ""field_type"": 8}","{""data"": ""1700022100"", ""field_type"": 9}" +"{""data"": ""7 Ways to Improve Your GraphQL"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 0}","{""data"": ""299"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 5}","{""data"": ""1699200000"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 3}","{""data"": ""64"", ""created_at"": 1700022150, ""last_modified"": 1700022150, ""field_type"": 1}","{""data"": ""1700022150"", ""field_type"": 8}","{""data"": ""1700022150"", ""field_type"": 9}" +"{""data"": ""The Future of Content Strategy"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 0}","{""data"": ""17335"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 1}","{""data"": ""301"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 5}","{""data"": ""1729958400"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 3}","{""data"": ""118"", ""created_at"": 1700022200, ""last_modified"": 1700022200, ""field_type"": 1}","{""data"": ""1700022200"", ""field_type"": 8}","{""data"": ""1700022200"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Cloud Computing"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 0}","{""data"": ""678"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 5}","{""data"": ""1715356800"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 3}","{""data"": ""51"", ""created_at"": 1700022250, ""last_modified"": 1700022250, ""field_type"": 1}","{""data"": ""1700022250"", ""field_type"": 8}","{""data"": ""1700022250"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Mobile Development"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 0}","{""data"": ""76"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 5}","{""data"": ""1709222400"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 3}","{""data"": ""118"", ""created_at"": 1700022300, ""last_modified"": 1700022300, ""field_type"": 1}","{""data"": ""1700022300"", ""field_type"": 8}","{""data"": ""1700022300"", ""field_type"": 9}" +"{""data"": ""How to Build Content Strategy in 2024"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 0}","{""data"": ""31193"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 1}","{""data"": ""329"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 5}","{""data"": ""1719158400"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 3}","{""data"": ""129"", ""created_at"": 1700022350, ""last_modified"": 1700022350, ""field_type"": 1}","{""data"": ""1700022350"", ""field_type"": 8}","{""data"": ""1700022350"", ""field_type"": 9}" +"{""data"": ""Advanced Data Analytics Techniques"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 0}","{""data"": ""4377"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 5}","{""data"": ""1674316800"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 3}","{""data"": ""114"", ""created_at"": 1700022400, ""last_modified"": 1700022400, ""field_type"": 1}","{""data"": ""1700022400"", ""field_type"": 8}","{""data"": ""1700022400"", ""field_type"": 9}" +"{""data"": ""Building a UX Design Strategy"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 0}","{""data"": ""400"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 5}","{""data"": ""1706976000"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 3}","{""data"": ""201"", ""created_at"": 1700022450, ""last_modified"": 1700022450, ""field_type"": 1}","{""data"": ""1700022450"", ""field_type"": 8}","{""data"": ""1700022450"", ""field_type"": 9}" +"{""data"": ""Building a Scrum Strategy"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 0}","{""data"": ""4455"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 5}","{""data"": ""1681401600"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 3}","{""data"": ""66"", ""created_at"": 1700022500, ""last_modified"": 1700022500, ""field_type"": 1}","{""data"": ""1700022500"", ""field_type"": 8}","{""data"": ""1700022500"", ""field_type"": 9}" +"{""data"": ""Mastering Content Strategy for Beginners"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 0}","{""data"": ""2636"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 5}","{""data"": ""1678118400"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 3}","{""data"": ""100"", ""created_at"": 1700022550, ""last_modified"": 1700022550, ""field_type"": 1}","{""data"": ""1700022550"", ""field_type"": 8}","{""data"": ""1700022550"", ""field_type"": 9}" +"{""data"": ""How Leadership Changed Our Team"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 0}","{""data"": ""3287"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 1}","{""data"": ""48"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 5}","{""data"": ""1685808000"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700022600, ""last_modified"": 1700022600, ""field_type"": 1}","{""data"": ""1700022600"", ""field_type"": 8}","{""data"": ""1700022600"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Leadership"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 0}","{""data"": ""4244"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 1}","{""data"": ""79"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 5}","{""data"": ""1722182400"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 3}","{""data"": ""184"", ""created_at"": 1700022650, ""last_modified"": 1700022650, ""field_type"": 1}","{""data"": ""1700022650"", ""field_type"": 8}","{""data"": ""1700022650"", ""field_type"": 9}" +"{""data"": ""UX Design Architecture Explained"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 0}","{""data"": ""2893"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 1}","{""data"": ""51"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 5}","{""data"": ""1686067200"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 3}","{""data"": ""67"", ""created_at"": 1700022700, ""last_modified"": 1700022700, ""field_type"": 1}","{""data"": ""1700022700"", ""field_type"": 8}","{""data"": ""1700022700"", ""field_type"": 9}" +"{""data"": ""Understanding UX Design: A Deep Dive"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 0}","{""data"": ""553"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 5}","{""data"": ""1680019200"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700022750, ""last_modified"": 1700022750, ""field_type"": 1}","{""data"": ""1700022750"", ""field_type"": 8}","{""data"": ""1700022750"", ""field_type"": 9}" +"{""data"": ""Building a Sales Strategy"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 0}","{""data"": ""39711"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 1}","{""data"": ""359"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 5}","{""data"": ""1709049600"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700022800, ""last_modified"": 1700022800, ""field_type"": 1}","{""data"": ""1700022800"", ""field_type"": 8}","{""data"": ""1700022800"", ""field_type"": 9}" +"{""data"": ""Microservices: What You Need to Know"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 0}","{""data"": ""417"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 5}","{""data"": ""1708012800"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 3}","{""data"": ""173"", ""created_at"": 1700022850, ""last_modified"": 1700022850, ""field_type"": 1}","{""data"": ""1700022850"", ""field_type"": 8}","{""data"": ""1700022850"", ""field_type"": 9}" +"{""data"": ""Machine Learning Tips and Tricks"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 0}","{""data"": ""344"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 5}","{""data"": ""1700236800"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 3}","{""data"": ""144"", ""created_at"": 1700022900, ""last_modified"": 1700022900, ""field_type"": 1}","{""data"": ""1700022900"", ""field_type"": 8}","{""data"": ""1700022900"", ""field_type"": 9}" +"{""data"": ""TypeScript vs DevOps: Which is Better?"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 0}","{""data"": ""2180"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 1}","{""data"": ""47"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 5}","{""data"": ""1689955200"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 3}","{""data"": ""71"", ""created_at"": 1700022950, ""last_modified"": 1700022950, ""field_type"": 1}","{""data"": ""1700022950"", ""field_type"": 8}","{""data"": ""1700022950"", ""field_type"": 9}" +"{""data"": ""Mastering Microservices for Beginners"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 0}","{""data"": ""316"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 5}","{""data"": ""1718553600"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700023000, ""last_modified"": 1700023000, ""field_type"": 1}","{""data"": ""1700023000"", ""field_type"": 8}","{""data"": ""1700023000"", ""field_type"": 9}" +"{""data"": ""Leadership Architecture Explained"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 0}","{""data"": ""205"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 5}","{""data"": ""1695398400"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 3}","{""data"": ""149"", ""created_at"": 1700023050, ""last_modified"": 1700023050, ""field_type"": 1}","{""data"": ""1700023050"", ""field_type"": 8}","{""data"": ""1700023050"", ""field_type"": 9}" +"{""data"": ""Data Analytics vs Mobile Development: Which is Better?"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 0}","{""data"": ""542"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 5}","{""data"": ""1703433600"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 3}","{""data"": ""146"", ""created_at"": 1700023100, ""last_modified"": 1700023100, ""field_type"": 1}","{""data"": ""1700023100"", ""field_type"": 8}","{""data"": ""1700023100"", ""field_type"": 9}" +"{""data"": ""Why REST APIs Matters for Your Business"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 0}","{""data"": ""3185"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 5}","{""data"": ""1712678400"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 3}","{""data"": ""46"", ""created_at"": 1700023150, ""last_modified"": 1700023150, ""field_type"": 1}","{""data"": ""1700023150"", ""field_type"": 8}","{""data"": ""1700023150"", ""field_type"": 9}" +"{""data"": ""Why We Chose Company Culture"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 0}","{""data"": ""2259"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 1}","{""data"": ""27"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 5}","{""data"": ""1724515200"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700023200, ""last_modified"": 1700023200, ""field_type"": 1}","{""data"": ""1700023200"", ""field_type"": 8}","{""data"": ""1700023200"", ""field_type"": 9}" +"{""data"": ""Getting Started with Scrum"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 0}","{""data"": ""4510"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 1}","{""data"": ""75"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 5}","{""data"": ""1717171200"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 3}","{""data"": ""120"", ""created_at"": 1700023250, ""last_modified"": 1700023250, ""field_type"": 1}","{""data"": ""1700023250"", ""field_type"": 8}","{""data"": ""1700023250"", ""field_type"": 9}" +"{""data"": ""Introduction to SEO"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 0}","{""data"": ""283"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 5}","{""data"": ""1682956800"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 3}","{""data"": ""213"", ""created_at"": 1700023300, ""last_modified"": 1700023300, ""field_type"": 1}","{""data"": ""1700023300"", ""field_type"": 8}","{""data"": ""1700023300"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Cloud Computing"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 0}","{""data"": ""15046"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 1}","{""data"": ""52"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 5}","{""data"": ""1698508800"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 3}","{""data"": ""53"", ""created_at"": 1700023350, ""last_modified"": 1700023350, ""field_type"": 1}","{""data"": ""1700023350"", ""field_type"": 8}","{""data"": ""1700023350"", ""field_type"": 9}" +"{""data"": ""Why Open Source Matters for Your Business"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 0}","{""data"": ""24999"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 1}","{""data"": ""448"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 5}","{""data"": ""1672675200"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 3}","{""data"": ""139"", ""created_at"": 1700023400, ""last_modified"": 1700023400, ""field_type"": 1}","{""data"": ""1700023400"", ""field_type"": 8}","{""data"": ""1700023400"", ""field_type"": 9}" +"{""data"": ""The State of iOS in 2023"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 0}","{""data"": ""302275"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 1}","{""data"": ""3602"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 5}","{""data"": ""1714492800"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 3}","{""data"": ""11"", ""created_at"": 1700023450, ""last_modified"": 1700023450, ""field_type"": 1}","{""data"": ""1700023450"", ""field_type"": 8}","{""data"": ""1700023450"", ""field_type"": 9}" +"{""data"": ""The Future of Marketing Automation"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 0}","{""data"": ""126"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 5}","{""data"": ""1706716800"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700023500, ""last_modified"": 1700023500, ""field_type"": 1}","{""data"": ""1700023500"", ""field_type"": 8}","{""data"": ""1700023500"", ""field_type"": 9}" +"{""data"": ""Rust Architecture Explained"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 0}","{""data"": ""380"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 5}","{""data"": ""1722096000"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 3}","{""data"": ""44"", ""created_at"": 1700023550, ""last_modified"": 1700023550, ""field_type"": 1}","{""data"": ""1700023550"", ""field_type"": 8}","{""data"": ""1700023550"", ""field_type"": 9}" +"{""data"": ""Common Hiring Mistakes to Avoid"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 0}","{""data"": ""341"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 5}","{""data"": ""1683129600"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 3}","{""data"": ""8"", ""created_at"": 1700023600, ""last_modified"": 1700023600, ""field_type"": 1}","{""data"": ""1700023600"", ""field_type"": 8}","{""data"": ""1700023600"", ""field_type"": 9}" +"{""data"": ""How to Build Team Management in 2023"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 0}","{""data"": ""346"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 5}","{""data"": ""1715961600"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 3}","{""data"": ""201"", ""created_at"": 1700023650, ""last_modified"": 1700023650, ""field_type"": 1}","{""data"": ""1700023650"", ""field_type"": 8}","{""data"": ""1700023650"", ""field_type"": 9}" +"{""data"": ""Advanced Data Analytics Techniques"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 0}","{""data"": ""326772"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 1}","{""data"": ""2300"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 5}","{""data"": ""1720368000"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 3}","{""data"": ""133"", ""created_at"": 1700023700, ""last_modified"": 1700023700, ""field_type"": 1}","{""data"": ""1700023700"", ""field_type"": 8}","{""data"": ""1700023700"", ""field_type"": 9}" +"{""data"": ""How to Build Kubernetes in 2024"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 0}","{""data"": ""31691"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 1}","{""data"": ""436"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 5}","{""data"": ""1688486400"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 3}","{""data"": ""176"", ""created_at"": 1700023750, ""last_modified"": 1700023750, ""field_type"": 1}","{""data"": ""1700023750"", ""field_type"": 8}","{""data"": ""1700023750"", ""field_type"": 9}" +"{""data"": ""Optimizing Security Performance"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 0}","{""data"": ""3576"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 1}","{""data"": ""65"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 5}","{""data"": ""1725292800"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 3}","{""data"": ""40"", ""created_at"": 1700023800, ""last_modified"": 1700023800, ""field_type"": 1}","{""data"": ""1700023800"", ""field_type"": 8}","{""data"": ""1700023800"", ""field_type"": 9}" +"{""data"": ""Testing Architecture Explained"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 0}","{""data"": ""3107"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 1}","{""data"": ""38"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 5}","{""data"": ""1708531200"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700023850, ""last_modified"": 1700023850, ""field_type"": 1}","{""data"": ""1700023850"", ""field_type"": 8}","{""data"": ""1700023850"", ""field_type"": 9}" +"{""data"": ""Hiring Tips and Tricks"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 0}","{""data"": ""1528"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 1}","{""data"": ""18"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 5}","{""data"": ""1685030400"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 3}","{""data"": ""114"", ""created_at"": 1700023900, ""last_modified"": 1700023900, ""field_type"": 1}","{""data"": ""1700023900"", ""field_type"": 8}","{""data"": ""1700023900"", ""field_type"": 9}" +"{""data"": ""Advanced Machine Learning Techniques"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 0}","{""data"": ""71"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 5}","{""data"": ""1730217600"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 3}","{""data"": ""184"", ""created_at"": 1700023950, ""last_modified"": 1700023950, ""field_type"": 1}","{""data"": ""1700023950"", ""field_type"": 8}","{""data"": ""1700023950"", ""field_type"": 9}" +"{""data"": ""Advanced Hiring Techniques"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 0}","{""data"": ""3378"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 1}","{""data"": ""58"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 5}","{""data"": ""1676476800"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 3}","{""data"": ""206"", ""created_at"": 1700024000, ""last_modified"": 1700024000, ""field_type"": 1}","{""data"": ""1700024000"", ""field_type"": 8}","{""data"": ""1700024000"", ""field_type"": 9}" +"{""data"": ""Remote Work in Practice: A Case Study"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 0}","{""data"": ""421"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 5}","{""data"": ""1726502400"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700024050, ""last_modified"": 1700024050, ""field_type"": 1}","{""data"": ""1700024050"", ""field_type"": 8}","{""data"": ""1700024050"", ""field_type"": 9}" +"{""data"": ""How GraphQL Changed Our Team"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 0}","{""data"": ""3134"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 1}","{""data"": ""32"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 5}","{""data"": ""1673884800"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 3}","{""data"": ""198"", ""created_at"": 1700024100, ""last_modified"": 1700024100, ""field_type"": 1}","{""data"": ""1700024100"", ""field_type"": 8}","{""data"": ""1700024100"", ""field_type"": 9}" +"{""data"": ""Why We Chose TypeScript"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 0}","{""data"": ""55021"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 1}","{""data"": ""766"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 5}","{""data"": ""1707235200"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 3}","{""data"": ""191"", ""created_at"": 1700024150, ""last_modified"": 1700024150, ""field_type"": 1}","{""data"": ""1700024150"", ""field_type"": 8}","{""data"": ""1700024150"", ""field_type"": 9}" +"{""data"": ""Advanced Machine Learning Techniques"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 0}","{""data"": ""1511"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 1}","{""data"": ""18"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 5}","{""data"": ""1706716800"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 3}","{""data"": ""180"", ""created_at"": 1700024200, ""last_modified"": 1700024200, ""field_type"": 1}","{""data"": ""1700024200"", ""field_type"": 8}","{""data"": ""1700024200"", ""field_type"": 9}" +"{""data"": ""The Future of Scrum"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 0}","{""data"": ""662"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 1}","{""data"": ""16"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 5}","{""data"": ""1692028800"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 3}","{""data"": ""141"", ""created_at"": 1700024250, ""last_modified"": 1700024250, ""field_type"": 1}","{""data"": ""1700024250"", ""field_type"": 8}","{""data"": ""1700024250"", ""field_type"": 9}" +"{""data"": ""Scrum in Practice: A Case Study"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 0}","{""data"": ""53"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 5}","{""data"": ""1722787200"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700024300, ""last_modified"": 1700024300, ""field_type"": 1}","{""data"": ""1700024300"", ""field_type"": 8}","{""data"": ""1700024300"", ""field_type"": 9}" +"{""data"": ""Optimizing Testing Performance"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 0}","{""data"": ""339"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 5}","{""data"": ""1695398400"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 3}","{""data"": ""129"", ""created_at"": 1700024350, ""last_modified"": 1700024350, ""field_type"": 1}","{""data"": ""1700024350"", ""field_type"": 8}","{""data"": ""1700024350"", ""field_type"": 9}" +"{""data"": ""Common Kubernetes Mistakes to Avoid"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 0}","{""data"": ""4865"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 1}","{""data"": ""70"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 5}","{""data"": ""1729180800"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700024400, ""last_modified"": 1700024400, ""field_type"": 1}","{""data"": ""1700024400"", ""field_type"": 8}","{""data"": ""1700024400"", ""field_type"": 9}" +"{""data"": ""Understanding SEO: A Deep Dive"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 0}","{""data"": ""288"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 5}","{""data"": ""1676649600"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 3}","{""data"": ""214"", ""created_at"": 1700024450, ""last_modified"": 1700024450, ""field_type"": 1}","{""data"": ""1700024450"", ""field_type"": 8}","{""data"": ""1700024450"", ""field_type"": 9}" +"{""data"": ""Building a React Strategy"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 0}","{""data"": ""152030"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 1}","{""data"": ""1113"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 5}","{""data"": ""1733500800"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 3}","{""data"": ""63"", ""created_at"": 1700024500, ""last_modified"": 1700024500, ""field_type"": 1}","{""data"": ""1700024500"", ""field_type"": 8}","{""data"": ""1700024500"", ""field_type"": 9}" +"{""data"": ""Team Management Architecture Explained"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 0}","{""data"": ""45979"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 1}","{""data"": ""140"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 5}","{""data"": ""1724860800"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 3}","{""data"": ""207"", ""created_at"": 1700024550, ""last_modified"": 1700024550, ""field_type"": 1}","{""data"": ""1700024550"", ""field_type"": 8}","{""data"": ""1700024550"", ""field_type"": 9}" +"{""data"": ""Customer Success Architecture Explained"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 0}","{""data"": ""470"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 5}","{""data"": ""1680883200"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 3}","{""data"": ""101"", ""created_at"": 1700024600, ""last_modified"": 1700024600, ""field_type"": 1}","{""data"": ""1700024600"", ""field_type"": 8}","{""data"": ""1700024600"", ""field_type"": 9}" +"{""data"": ""Android vs Content Strategy: Which is Better?"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 0}","{""data"": ""1032"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 1}","{""data"": ""12"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 5}","{""data"": ""1677340800"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 3}","{""data"": ""73"", ""created_at"": 1700024650, ""last_modified"": 1700024650, ""field_type"": 1}","{""data"": ""1700024650"", ""field_type"": 8}","{""data"": ""1700024650"", ""field_type"": 9}" +"{""data"": ""How We Scaled Sales to 20 Users"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 0}","{""data"": ""3624"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 1}","{""data"": ""39"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 5}","{""data"": ""1712592000"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 3}","{""data"": ""209"", ""created_at"": 1700024700, ""last_modified"": 1700024700, ""field_type"": 1}","{""data"": ""1700024700"", ""field_type"": 8}","{""data"": ""1700024700"", ""field_type"": 9}" +"{""data"": ""How to Build iOS in 2025"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 0}","{""data"": ""63"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 5}","{""data"": ""1681574400"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 3}","{""data"": ""118"", ""created_at"": 1700024750, ""last_modified"": 1700024750, ""field_type"": 1}","{""data"": ""1700024750"", ""field_type"": 8}","{""data"": ""1700024750"", ""field_type"": 9}" +"{""data"": ""The Future of GraphQL"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 0}","{""data"": ""4668"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 1}","{""data"": ""35"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 5}","{""data"": ""1688918400"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 3}","{""data"": ""215"", ""created_at"": 1700024800, ""last_modified"": 1700024800, ""field_type"": 1}","{""data"": ""1700024800"", ""field_type"": 8}","{""data"": ""1700024800"", ""field_type"": 9}" +"{""data"": ""Mastering Data Analytics for Beginners"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 0}","{""data"": ""436"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 5}","{""data"": ""1725811200"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 3}","{""data"": ""63"", ""created_at"": 1700024850, ""last_modified"": 1700024850, ""field_type"": 1}","{""data"": ""1700024850"", ""field_type"": 8}","{""data"": ""1700024850"", ""field_type"": 9}" +"{""data"": ""Docker Architecture Explained"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 0}","{""data"": ""4654"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 1}","{""data"": ""73"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 5}","{""data"": ""1690214400"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 3}","{""data"": ""80"", ""created_at"": 1700024900, ""last_modified"": 1700024900, ""field_type"": 1}","{""data"": ""1700024900"", ""field_type"": 8}","{""data"": ""1700024900"", ""field_type"": 9}" +"{""data"": ""Advanced Python Techniques"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 0}","{""data"": ""357"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 5}","{""data"": ""1701532800"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 3}","{""data"": ""53"", ""created_at"": 1700024950, ""last_modified"": 1700024950, ""field_type"": 1}","{""data"": ""1700024950"", ""field_type"": 8}","{""data"": ""1700024950"", ""field_type"": 9}" +"{""data"": ""The State of Team Management in 2023"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 0}","{""data"": ""19616"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 1}","{""data"": ""286"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 5}","{""data"": ""1715011200"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 3}","{""data"": ""57"", ""created_at"": 1700025000, ""last_modified"": 1700025000, ""field_type"": 1}","{""data"": ""1700025000"", ""field_type"": 8}","{""data"": ""1700025000"", ""field_type"": 9}" +"{""data"": ""Mobile Development Architecture Explained"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 0}","{""data"": ""1104"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 1}","{""data"": ""6"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 5}","{""data"": ""1689696000"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 3}","{""data"": ""70"", ""created_at"": 1700025050, ""last_modified"": 1700025050, ""field_type"": 1}","{""data"": ""1700025050"", ""field_type"": 8}","{""data"": ""1700025050"", ""field_type"": 9}" +"{""data"": ""Cloud Computing Best Practices"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 0}","{""data"": ""2646"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 1}","{""data"": ""43"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 5}","{""data"": ""1688227200"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 3}","{""data"": ""81"", ""created_at"": 1700025100, ""last_modified"": 1700025100, ""field_type"": 1}","{""data"": ""1700025100"", ""field_type"": 8}","{""data"": ""1700025100"", ""field_type"": 9}" +"{""data"": ""The Ultimate Security Checklist"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 0}","{""data"": ""405180"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 1}","{""data"": ""1459"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 5}","{""data"": ""1699459200"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 3}","{""data"": ""160"", ""created_at"": 1700025150, ""last_modified"": 1700025150, ""field_type"": 1}","{""data"": ""1700025150"", ""field_type"": 8}","{""data"": ""1700025150"", ""field_type"": 9}" +"{""data"": ""Hiring Best Practices"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 0}","{""data"": ""369"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 5}","{""data"": ""1689264000"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 3}","{""data"": ""117"", ""created_at"": 1700025200, ""last_modified"": 1700025200, ""field_type"": 1}","{""data"": ""1700025200"", ""field_type"": 8}","{""data"": ""1700025200"", ""field_type"": 9}" +"{""data"": ""Mastering Security for Beginners"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 0}","{""data"": ""73"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 5}","{""data"": ""1685635200"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 3}","{""data"": ""186"", ""created_at"": 1700025250, ""last_modified"": 1700025250, ""field_type"": 1}","{""data"": ""1700025250"", ""field_type"": 8}","{""data"": ""1700025250"", ""field_type"": 9}" +"{""data"": ""Common Android Mistakes to Avoid"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 0}","{""data"": ""38309"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 1}","{""data"": ""753"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 5}","{""data"": ""1714060800"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 3}","{""data"": ""212"", ""created_at"": 1700025300, ""last_modified"": 1700025300, ""field_type"": 1}","{""data"": ""1700025300"", ""field_type"": 8}","{""data"": ""1700025300"", ""field_type"": 9}" +"{""data"": ""How Agile Changed Our Team"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 0}","{""data"": ""241"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 5}","{""data"": ""1718985600"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 3}","{""data"": ""80"", ""created_at"": 1700025350, ""last_modified"": 1700025350, ""field_type"": 1}","{""data"": ""1700025350"", ""field_type"": 8}","{""data"": ""1700025350"", ""field_type"": 9}" +"{""data"": ""How We Scaled CI/CD to 15 Users"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 0}","{""data"": ""382"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 5}","{""data"": ""1693238400"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 3}","{""data"": ""121"", ""created_at"": 1700025400, ""last_modified"": 1700025400, ""field_type"": 1}","{""data"": ""1700025400"", ""field_type"": 8}","{""data"": ""1700025400"", ""field_type"": 9}" +"{""data"": ""Optimizing DevOps Performance"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 0}","{""data"": ""1194"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 5}","{""data"": ""1692806400"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 3}","{""data"": ""112"", ""created_at"": 1700025450, ""last_modified"": 1700025450, ""field_type"": 1}","{""data"": ""1700025450"", ""field_type"": 8}","{""data"": ""1700025450"", ""field_type"": 9}" +"{""data"": ""The Ultimate Testing Checklist"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 0}","{""data"": ""3510"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 1}","{""data"": ""62"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 5}","{""data"": ""1688313600"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700025500, ""last_modified"": 1700025500, ""field_type"": 1}","{""data"": ""1700025500"", ""field_type"": 8}","{""data"": ""1700025500"", ""field_type"": 9}" +"{""data"": ""Why React Matters for Your Business"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 0}","{""data"": ""37883"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 1}","{""data"": ""403"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 5}","{""data"": ""1681142400"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 3}","{""data"": ""42"", ""created_at"": 1700025550, ""last_modified"": 1700025550, ""field_type"": 1}","{""data"": ""1700025550"", ""field_type"": 8}","{""data"": ""1700025550"", ""field_type"": 9}" +"{""data"": ""Understanding Machine Learning: A Deep Dive"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 0}","{""data"": ""26577"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 1}","{""data"": ""155"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 5}","{""data"": ""1720540800"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700025600, ""last_modified"": 1700025600, ""field_type"": 1}","{""data"": ""1700025600"", ""field_type"": 8}","{""data"": ""1700025600"", ""field_type"": 9}" +"{""data"": ""The Future of Testing"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 0}","{""data"": ""470"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 5}","{""data"": ""1707667200"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 3}","{""data"": ""58"", ""created_at"": 1700025650, ""last_modified"": 1700025650, ""field_type"": 1}","{""data"": ""1700025650"", ""field_type"": 8}","{""data"": ""1700025650"", ""field_type"": 9}" +"{""data"": ""Building a SEO Strategy"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 0}","{""data"": ""419"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 5}","{""data"": ""1689091200"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 3}","{""data"": ""39"", ""created_at"": 1700025700, ""last_modified"": 1700025700, ""field_type"": 1}","{""data"": ""1700025700"", ""field_type"": 8}","{""data"": ""1700025700"", ""field_type"": 9}" +"{""data"": ""Common Product Development Mistakes to Avoid"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 0}","{""data"": ""14106"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 1}","{""data"": ""167"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 5}","{""data"": ""1716652800"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 3}","{""data"": ""27"", ""created_at"": 1700025750, ""last_modified"": 1700025750, ""field_type"": 1}","{""data"": ""1700025750"", ""field_type"": 8}","{""data"": ""1700025750"", ""field_type"": 9}" +"{""data"": ""Getting Started with Team Management"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 0}","{""data"": ""403"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 5}","{""data"": ""1684771200"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 3}","{""data"": ""177"", ""created_at"": 1700025800, ""last_modified"": 1700025800, ""field_type"": 1}","{""data"": ""1700025800"", ""field_type"": 8}","{""data"": ""1700025800"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from Python"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 0}","{""data"": ""245"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 5}","{""data"": ""1689091200"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 3}","{""data"": ""153"", ""created_at"": 1700025850, ""last_modified"": 1700025850, ""field_type"": 1}","{""data"": ""1700025850"", ""field_type"": 8}","{""data"": ""1700025850"", ""field_type"": 9}" +"{""data"": ""How We Scaled Data Analytics to 10 Users"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 0}","{""data"": ""1955"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 5}","{""data"": ""1678636800"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 3}","{""data"": ""154"", ""created_at"": 1700025900, ""last_modified"": 1700025900, ""field_type"": 1}","{""data"": ""1700025900"", ""field_type"": 8}","{""data"": ""1700025900"", ""field_type"": 9}" +"{""data"": ""Advanced Rust Techniques"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 0}","{""data"": ""8765"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 1}","{""data"": ""65"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 5}","{""data"": ""1707062400"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 3}","{""data"": ""76"", ""created_at"": 1700025950, ""last_modified"": 1700025950, ""field_type"": 1}","{""data"": ""1700025950"", ""field_type"": 8}","{""data"": ""1700025950"", ""field_type"": 9}" +"{""data"": ""Introduction to Web3"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 0}","{""data"": ""18531"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 1}","{""data"": ""65"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 5}","{""data"": ""1686499200"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 3}","{""data"": ""48"", ""created_at"": 1700026000, ""last_modified"": 1700026000, ""field_type"": 1}","{""data"": ""1700026000"", ""field_type"": 8}","{""data"": ""1700026000"", ""field_type"": 9}" +"{""data"": ""The Future of Company Culture"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 0}","{""data"": ""560"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 5}","{""data"": ""1725984000"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 3}","{""data"": ""126"", ""created_at"": 1700026050, ""last_modified"": 1700026050, ""field_type"": 1}","{""data"": ""1700026050"", ""field_type"": 8}","{""data"": ""1700026050"", ""field_type"": 9}" +"{""data"": ""Introduction to Serverless"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 0}","{""data"": ""197"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 5}","{""data"": ""1707062400"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 3}","{""data"": ""112"", ""created_at"": 1700026100, ""last_modified"": 1700026100, ""field_type"": 1}","{""data"": ""1700026100"", ""field_type"": 8}","{""data"": ""1700026100"", ""field_type"": 9}" +"{""data"": ""Advanced Database Design Techniques"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 0}","{""data"": ""2002"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 1}","{""data"": ""26"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 5}","{""data"": ""1693670400"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tech"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 3}","{""data"": ""21"", ""created_at"": 1700026150, ""last_modified"": 1700026150, ""field_type"": 1}","{""data"": ""1700026150"", ""field_type"": 8}","{""data"": ""1700026150"", ""field_type"": 9}" +"{""data"": ""15 Ways to Improve Your Python"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 0}","{""data"": ""161"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 1}","{""data"": ""10"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 5}","{""data"": ""1705075200"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700026200, ""last_modified"": 1700026200, ""field_type"": 1}","{""data"": ""1700026200"", ""field_type"": 8}","{""data"": ""1700026200"", ""field_type"": 9}" +"{""data"": ""How We Scaled DevOps to 5 Users"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 0}","{""data"": ""286"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 1}","{""data"": ""9"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 5}","{""data"": ""1689696000"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700026250, ""last_modified"": 1700026250, ""field_type"": 1}","{""data"": ""1700026250"", ""field_type"": 8}","{""data"": ""1700026250"", ""field_type"": 9}" +"{""data"": ""Common Security Mistakes to Avoid"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 0}","{""data"": ""48928"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 1}","{""data"": ""754"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 5}","{""data"": ""1720972800"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700026300, ""last_modified"": 1700026300, ""field_type"": 1}","{""data"": ""1700026300"", ""field_type"": 8}","{""data"": ""1700026300"", ""field_type"": 9}" +"{""data"": ""15 Ways to Improve Your Machine Learning"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 0}","{""data"": ""647"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 5}","{""data"": ""1687363200"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 3}","{""data"": ""156"", ""created_at"": 1700026350, ""last_modified"": 1700026350, ""field_type"": 1}","{""data"": ""1700026350"", ""field_type"": 8}","{""data"": ""1700026350"", ""field_type"": 9}" +"{""data"": ""How AI Changed Our Team"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 0}","{""data"": ""4860"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 1}","{""data"": ""20"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 5}","{""data"": ""1706976000"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 3}","{""data"": ""69"", ""created_at"": 1700026400, ""last_modified"": 1700026400, ""field_type"": 1}","{""data"": ""1700026400"", ""field_type"": 8}","{""data"": ""1700026400"", ""field_type"": 9}" +"{""data"": ""TypeScript Best Practices"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 0}","{""data"": ""454965"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 1}","{""data"": ""3718"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 5}","{""data"": ""1693584000"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 3}","{""data"": ""86"", ""created_at"": 1700026450, ""last_modified"": 1700026450, ""field_type"": 1}","{""data"": ""1700026450"", ""field_type"": 8}","{""data"": ""1700026450"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to SEO"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 0}","{""data"": ""1017"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 1}","{""data"": ""3"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 5}","{""data"": ""1687276800"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 3}","{""data"": ""21"", ""created_at"": 1700026500, ""last_modified"": 1700026500, ""field_type"": 1}","{""data"": ""1700026500"", ""field_type"": 8}","{""data"": ""1700026500"", ""field_type"": 9}" +"{""data"": ""Python Best Practices"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 0}","{""data"": ""2196"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 1}","{""data"": ""48"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 5}","{""data"": ""1692979200"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""biz1"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 3}","{""data"": ""132"", ""created_at"": 1700026550, ""last_modified"": 1700026550, ""field_type"": 1}","{""data"": ""1700026550"", ""field_type"": 8}","{""data"": ""1700026550"", ""field_type"": 9}" +"{""data"": ""Common Database Design Mistakes to Avoid"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 0}","{""data"": ""392880"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 1}","{""data"": ""2760"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 5}","{""data"": ""1678291200"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 3}","{""data"": ""205"", ""created_at"": 1700026600, ""last_modified"": 1700026600, ""field_type"": 1}","{""data"": ""1700026600"", ""field_type"": 8}","{""data"": ""1700026600"", ""field_type"": 9}" +"{""data"": ""Why iOS Matters for Your Business"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 0}","{""data"": ""305"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 1}","{""data"": ""4"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 5}","{""data"": ""1694707200"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700026650, ""last_modified"": 1700026650, ""field_type"": 1}","{""data"": ""1700026650"", ""field_type"": 8}","{""data"": ""1700026650"", ""field_type"": 9}" +"{""data"": ""Mastering Cloud Computing for Beginners"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 0}","{""data"": ""118"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 5}","{""data"": ""1678464000"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 3}","{""data"": ""27"", ""created_at"": 1700026700, ""last_modified"": 1700026700, ""field_type"": 1}","{""data"": ""1700026700"", ""field_type"": 8}","{""data"": ""1700026700"", ""field_type"": 9}" +"{""data"": ""Introduction to TypeScript"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 0}","{""data"": ""608"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 5}","{""data"": ""1694016000"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 3}","{""data"": ""94"", ""created_at"": 1700026750, ""last_modified"": 1700026750, ""field_type"": 1}","{""data"": ""1700026750"", ""field_type"": 8}","{""data"": ""1700026750"", ""field_type"": 9}" +"{""data"": ""Understanding Remote Work: A Deep Dive"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 0}","{""data"": ""810"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 1}","{""data"": ""13"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 5}","{""data"": ""1684339200"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 3}","{""data"": ""24"", ""created_at"": 1700026800, ""last_modified"": 1700026800, ""field_type"": 1}","{""data"": ""1700026800"", ""field_type"": 8}","{""data"": ""1700026800"", ""field_type"": 9}" +"{""data"": ""The Complete Guide to Security"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 0}","{""data"": ""694"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 1}","{""data"": ""8"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 5}","{""data"": ""1720195200"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 3}","{""data"": ""212"", ""created_at"": 1700026850, ""last_modified"": 1700026850, ""field_type"": 1}","{""data"": ""1700026850"", ""field_type"": 8}","{""data"": ""1700026850"", ""field_type"": 9}" +"{""data"": ""REST APIs Architecture Explained"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 0}","{""data"": ""549"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 5}","{""data"": ""1677081600"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 3}","{""data"": ""101"", ""created_at"": 1700026900, ""last_modified"": 1700026900, ""field_type"": 1}","{""data"": ""1700026900"", ""field_type"": 8}","{""data"": ""1700026900"", ""field_type"": 9}" +"{""data"": ""Advanced Docker Techniques"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 0}","{""data"": ""154"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 1}","{""data"": ""0"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 5}","{""data"": ""1699977600"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 3}","{""data"": ""41"", ""created_at"": 1700026950, ""last_modified"": 1700026950, ""field_type"": 1}","{""data"": ""1700026950"", ""field_type"": 8}","{""data"": ""1700026950"", ""field_type"": 9}" +"{""data"": ""How We Scaled Microservices to 15 Users"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 0}","{""data"": ""375"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 1}","{""data"": ""11"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 5}","{""data"": ""1707667200"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 3}","{""data"": ""129"", ""created_at"": 1700027000, ""last_modified"": 1700027000, ""field_type"": 1}","{""data"": ""1700027000"", ""field_type"": 8}","{""data"": ""1700027000"", ""field_type"": 9}" +"{""data"": ""7 Ways to Improve Your AI"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 0}","{""data"": ""469"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 1}","{""data"": ""18"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 5}","{""data"": ""1710259200"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 3}","{""data"": ""171"", ""created_at"": 1700027050, ""last_modified"": 1700027050, ""field_type"": 1}","{""data"": ""1700027050"", ""field_type"": 8}","{""data"": ""1700027050"", ""field_type"": 9}" +"{""data"": ""Mastering GraphQL for Beginners"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 0}","{""data"": ""29933"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 1}","{""data"": ""302"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 5}","{""data"": ""1678809600"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""tutr"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 3}","{""data"": ""118"", ""created_at"": 1700027100, ""last_modified"": 1700027100, ""field_type"": 1}","{""data"": ""1700027100"", ""field_type"": 8}","{""data"": ""1700027100"", ""field_type"": 9}" +"{""data"": ""The State of UX Design in 2024"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 0}","{""data"": ""37813"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 1}","{""data"": ""568"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 5}","{""data"": ""1707408000"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 3}","{""data"": ""135"", ""created_at"": 1700027150, ""last_modified"": 1700027150, ""field_type"": 1}","{""data"": ""1700027150"", ""field_type"": 8}","{""data"": ""1700027150"", ""field_type"": 9}" +"{""data"": ""Content Strategy: What You Need to Know"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 0}","{""data"": ""818"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 1}","{""data"": ""14"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 5}","{""data"": ""1689609600"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 3}","{""data"": ""124"", ""created_at"": 1700027200, ""last_modified"": 1700027200, ""field_type"": 1}","{""data"": ""1700027200"", ""field_type"": 8}","{""data"": ""1700027200"", ""field_type"": 9}" +"{""data"": ""Lessons Learned from DevOps"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 0}","{""data"": ""406"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 1}","{""data"": ""7"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 1}","{""data"": ""No"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 5}","{""data"": ""1693929600"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""mkt1"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 3}","{""data"": ""90"", ""created_at"": 1700027250, ""last_modified"": 1700027250, ""field_type"": 1}","{""data"": ""1700027250"", ""field_type"": 8}","{""data"": ""1700027250"", ""field_type"": 9}" +"{""data"": ""Why TypeScript Matters for Your Business"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 0}","{""data"": ""183"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 1}","{""data"": ""1"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 5}","{""data"": ""1673539200"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""dsgn"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 3}","{""data"": ""88"", ""created_at"": 1700027300, ""last_modified"": 1700027300, ""field_type"": 1}","{""data"": ""1700027300"", ""field_type"": 8}","{""data"": ""1700027300"", ""field_type"": 9}" +"{""data"": ""Leadership vs Open Source: Which is Better?"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 0}","{""data"": ""146"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 1}","{""data"": ""2"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 5}","{""data"": ""1733673600"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""eng1"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 3}","{""data"": ""202"", ""created_at"": 1700027350, ""last_modified"": 1700027350, ""field_type"": 1}","{""data"": ""1700027350"", ""field_type"": 8}","{""data"": ""1700027350"", ""field_type"": 9}" +"{""data"": ""Understanding CI/CD: A Deep Dive"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 0}","{""data"": ""422"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 1}","{""data"": ""5"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 5}","{""data"": ""1685116800"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""prd1"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 3}","{""data"": ""144"", ""created_at"": 1700027400, ""last_modified"": 1700027400, ""field_type"": 1}","{""data"": ""1700027400"", ""field_type"": 8}","{""data"": ""1700027400"", ""field_type"": 9}" +"{""data"": ""Building a Data Analytics Strategy"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 0}","{""data"": ""138289"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 1}","{""data"": ""2278"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 1}","{""data"": ""Yes"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 5}","{""data"": ""1718899200"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 2, ""reminder_id"": """", ""is_range"": false, ""include_time"": false, ""end_timestamp"": """"}","{""data"": ""cult"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 3}","{""data"": ""21"", ""created_at"": 1700027450, ""last_modified"": 1700027450, ""field_type"": 1}","{""data"": ""1700027450"", ""field_type"": 8}","{""data"": ""1700027450"", ""field_type"": 9}" \ No newline at end of file diff --git a/cypress/fixtures/database/csv/orders.csv b/cypress/fixtures/database/csv/orders.csv new file mode 100644 index 000000000..9bc46090e --- /dev/null +++ b/cypress/fixtures/database/csv/orders.csv @@ -0,0 +1,5 @@ +"{""id"":""ordNam"",""name"":""Name"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""ordSta"",""name"":""Status"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""stP\"",\""name\"":\""Pending\"",\""color\"":\""Yellow\""},{\""id\"":\""stS\"",\""name\"":\""Shipped\"",\""color\"":\""Blue\""},{\""id\"":\""stD\"",\""name\"":\""Delivered\"",\""color\"":\""Green\""},{\""id\"":\""stC\"",\""name\"":\""Cancelled\"",\""color\"":\""Red\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""ordTot"",""name"":""Total"",""field_type"":1,""type_options"":{""1"":{""format"":0,""symbol"":""USD"",""scale"":0,""name"":""Number""},""0"":{""scale"":0,""data"":"""",""format"":0,""name"":""Number"",""symbol"":""USD""}},""is_primary"":false}","{""id"":""ordDat"",""name"":""Ordered At"",""field_type"":2,""type_options"":{""2"":{""field_type"":2,""time_format"":1,""timezone_id"":"""",""date_format"":3},""0"":{""field_type"":2,""date_format"":3,""time_format"":1,""data"":"""",""timezone_id"":""""}},""is_primary"":false}","{""id"":""ordPai"",""name"":""Paid"",""field_type"":5,""type_options"":{""5"":{""is_selected"":false}},""is_primary"":false}","{""id"":""ordCus"",""name"":""Customer"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":false}","{""id"":""ordEml"",""name"":""Email"",""field_type"":6,""type_options"":{""6"":{""content"":"""",""url"":""""},""0"":{""content"":"""",""data"":"""",""url"":""""}},""is_primary"":false}","{""id"":""ordTag"",""name"":""Tags"",""field_type"":4,""type_options"":{""0"":{""content"":""{\""options\"":[],\""disable_color\"":false}"",""data"":""""},""4"":{""content"":""{\""options\"":[{\""id\"":\""tgO\"",\""name\"":\""Online\"",\""color\"":\""Purple\""},{\""id\"":\""tgW\"",\""name\"":\""Wholesale\"",\""color\"":\""Orange\""},{\""id\"":\""tgV\"",\""name\"":\""VIP\"",\""color\"":\""LightPink\""},{\""id\"":\""tgT\"",\""name\"":\""Trial\"",\""color\"":\""Lime\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""ordNot"",""name"":""Notes"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":false}" +"{""field_type"":0,""created_at"":1700000100,""last_modified"":1700000100,""data"":""Ord-1""}","{""field_type"":3,""created_at"":1700000100,""last_modified"":1700000100,""data"":""stP""}","{""field_type"":1,""created_at"":1700000100,""last_modified"":1700000100,""data"":""120""}","{""field_type"":2,""created_at"":1700000100,""last_modified"":1700000100,""data"":""1700000100"",""include_time"":false}","{""field_type"":5,""created_at"":1700000100,""last_modified"":1700000100,""data"":""Yes""}","{""field_type"":0,""created_at"":1700000100,""last_modified"":1700000100,""data"":""Alice""}","{""field_type"":6,""created_at"":1700000100,""last_modified"":1700000100,""data"":""alice@example.com"",""url"":""mailto:alice@example.com""}","{""field_type"":4,""created_at"":1700000100,""last_modified"":1700000100,""data"":""tgO,tgV""}","{""field_type"":0,""created_at"":1700000100,""last_modified"":1700000100,""data"":""First order""}" +"{""field_type"":0,""created_at"":1700000101,""last_modified"":1700000101,""data"":""Ord-2""}","{""field_type"":3,""created_at"":1700000101,""last_modified"":1700000101,""data"":""stS""}","{""field_type"":1,""created_at"":1700000101,""last_modified"":1700000101,""data"":""60""}","{""field_type"":2,""created_at"":1700000101,""last_modified"":1700000101,""data"":""1700000101"",""include_time"":false}","{""field_type"":5,""created_at"":1700000101,""last_modified"":1700000101,""data"":""Yes""}","{""field_type"":0,""created_at"":1700000101,""last_modified"":1700000101,""data"":""Bob""}","{""field_type"":6,""created_at"":1700000101,""last_modified"":1700000101,""data"":""bob@example.com"",""url"":""mailto:bob@example.com""}","{""field_type"":4,""created_at"":1700000101,""last_modified"":1700000101,""data"":""tgO""}","{""field_type"":0,""created_at"":1700000101,""last_modified"":1700000101,""data"":""Gift wrap""}" +"{""field_type"":0,""created_at"":1700000102,""last_modified"":1700000102,""data"":""Ord-3""}","{""field_type"":3,""created_at"":1700000102,""last_modified"":1700000102,""data"":""stP""}","{""field_type"":1,""created_at"":1700000102,""last_modified"":1700000102,""data"":""19""}","{""field_type"":2,""created_at"":1700000102,""last_modified"":1700000102,""data"":""1700000102"",""include_time"":false}",,"{""field_type"":0,""created_at"":1700000102,""last_modified"":1700000102,""data"":""Carol""}","{""field_type"":6,""created_at"":1700000102,""last_modified"":1700000102,""data"":""carol@example.com"",""url"":""mailto:carol@example.com""}","{""field_type"":4,""created_at"":1700000102,""last_modified"":1700000102,""data"":""tgT""}", +"{""field_type"":0,""created_at"":1700000103,""last_modified"":1700000103,""data"":""Ord-4""}","{""field_type"":3,""created_at"":1700000103,""last_modified"":1700000103,""data"":""stD""}","{""field_type"":1,""created_at"":1700000103,""last_modified"":1700000103,""data"":""250""}","{""field_type"":2,""created_at"":1700000103,""last_modified"":1700000103,""data"":""1700000103"",""include_time"":false}","{""field_type"":5,""created_at"":1700000103,""last_modified"":1700000103,""data"":""Yes""}","{""field_type"":0,""created_at"":1700000103,""last_modified"":1700000103,""data"":""Dana""}","{""field_type"":6,""created_at"":1700000103,""last_modified"":1700000103,""data"":""dana@example.com"",""url"":""mailto:dana@example.com""}","{""field_type"":4,""created_at"":1700000103,""last_modified"":1700000103,""data"":""tgW""}","{""field_type"":0,""created_at"":1700000103,""last_modified"":1700000103,""data"":""""}" diff --git a/cypress/fixtures/database/csv/recipes.csv b/cypress/fixtures/database/csv/recipes.csv new file mode 100644 index 000000000..4eb12b479 --- /dev/null +++ b/cypress/fixtures/database/csv/recipes.csv @@ -0,0 +1,4 @@ +"{""id"":""rcpNam"",""name"":""Name"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""rcpCui"",""name"":""Cuisine"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""cuIt\"",\""name\"":\""Italian\"",\""color\"":\""Green\""},{\""id\"":\""cuMe\"",\""name\"":\""Mediterranean\"",\""color\"":\""Blue\""},{\""id\"":\""cuAs\"",\""name\"":\""Asian\"",\""color\"":\""Purple\""},{\""id\"":\""cuAm\"",\""name\"":\""American\"",\""color\"":\""Orange\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""rcpDif"",""name"":""Difficulty"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""dfE\"",\""name\"":\""Easy\"",\""color\"":\""Green\""},{\""id\"":\""dfM\"",\""name\"":\""Medium\"",\""color\"":\""Yellow\""},{\""id\"":\""dfH\"",\""name\"":\""Hard\"",\""color\"":\""Red\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""rcpTim"",""name"":""Prep (min)"",""field_type"":1,""type_options"":{""1"":{""format"":0,""symbol"":"""",""scale"":0,""name"":""Number""},""0"":{""scale"":0,""data"":"""",""format"":0,""name"":""Number"",""symbol"":""""}},""is_primary"":false}","{""id"":""rcpVeg"",""name"":""Vegetarian"",""field_type"":5,""type_options"":{""5"":{""is_selected"":false}},""is_primary"":false}","{""id"":""rcpUrl"",""name"":""Recipe URL"",""field_type"":6,""type_options"":{""6"":{""content"":"""",""url"":""""},""0"":{""content"":"""",""data"":"""",""url"":""""}},""is_primary"":false}","{""id"":""rcpTag"",""name"":""Tags"",""field_type"":4,""type_options"":{""0"":{""content"":""{\""options\"":[],\""disable_color\"":false}"",""data"":""""},""4"":{""content"":""{\""options\"":[{\""id\"":\""rtQ\"",\""name\"":\""Quick\"",\""color\"":\""Lime\""},{\""id\"":\""rtK\"",\""name\"":\""Kid-friendly\"",\""color\"":\""Pink\""},{\""id\"":\""rtG\"",\""name\"":\""Gluten-free\"",\""color\"":\""Yellow\""},{\""id\"":\""rtS\"",\""name\"":\""Spicy\"",\""color\"":\""Red\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""rcpNot"",""name"":""Notes"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":false}" +"{""field_type"":0,""created_at"":1700000200,""last_modified"":1700000200,""data"":""Pasta""}","{""field_type"":3,""created_at"":1700000200,""last_modified"":1700000200,""data"":""cuIt""}","{""field_type"":3,""created_at"":1700000200,""last_modified"":1700000200,""data"":""dfM""}","{""field_type"":1,""created_at"":1700000200,""last_modified"":1700000200,""data"":""25""}",,"{""field_type"":6,""created_at"":1700000200,""last_modified"":1700000200,""data"":""Pasta recipe"",""url"":""https://example.com/pasta""}","{""field_type"":4,""created_at"":1700000200,""last_modified"":1700000200,""data"":""rtQ,rtK""}","{""field_type"":0,""created_at"":1700000200,""last_modified"":1700000200,""data"":""Try with basil""}" +"{""field_type"":0,""created_at"":1700000201,""last_modified"":1700000201,""data"":""Salad""}","{""field_type"":3,""created_at"":1700000201,""last_modified"":1700000201,""data"":""cuMe""}","{""field_type"":3,""created_at"":1700000201,""last_modified"":1700000201,""data"":""dfE""}","{""field_type"":1,""created_at"":1700000201,""last_modified"":1700000201,""data"":""10""}","{""field_type"":5,""created_at"":1700000201,""last_modified"":1700000201,""data"":""Yes""}","{""field_type"":6,""created_at"":1700000201,""last_modified"":1700000201,""data"":""Salad recipe"",""url"":""https://example.com/salad""}","{""field_type"":4,""created_at"":1700000201,""last_modified"":1700000201,""data"":""rtQ,rtG""}","{""field_type"":0,""created_at"":1700000201,""last_modified"":1700000201,""data"":""Add feta""}" +"{""field_type"":0,""created_at"":1700000202,""last_modified"":1700000202,""data"":""Curry""}","{""field_type"":3,""created_at"":1700000202,""last_modified"":1700000202,""data"":""cuAs""}","{""field_type"":3,""created_at"":1700000202,""last_modified"":1700000202,""data"":""dfH""}","{""field_type"":1,""created_at"":1700000202,""last_modified"":1700000202,""data"":""45""}",,"{""field_type"":6,""created_at"":1700000202,""last_modified"":1700000202,""data"":""Curry recipe"",""url"":""https://example.com/curry""}","{""field_type"":4,""created_at"":1700000202,""last_modified"":1700000202,""data"":""rtS""}", diff --git a/cypress/fixtures/database/csv/tasks.csv b/cypress/fixtures/database/csv/tasks.csv new file mode 100644 index 000000000..493f8e489 --- /dev/null +++ b/cypress/fixtures/database/csv/tasks.csv @@ -0,0 +1,6 @@ +"{""id"":""tskNam"",""name"":""Name"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""tskSta"",""name"":""Status"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""tsTo\"",\""name\"":\""Todo\"",\""color\"":\""Yellow\""},{\""id\"":\""tsIp\"",\""name\"":\""In Progress\"",\""color\"":\""Blue\""},{\""id\"":\""tsBl\"",\""name\"":\""Blocked\"",\""color\"":\""Red\""},{\""id\"":\""tsDn\"",\""name\"":\""Done\"",\""color\"":\""Green\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""tskPri"",""name"":""Priority"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""pLo\"",\""name\"":\""Low\"",\""color\"":\""Lime\""},{\""id\"":\""pMd\"",\""name\"":\""Medium\"",\""color\"":\""Yellow\""},{\""id\"":\""pHi\"",\""name\"":\""High\"",\""color\"":\""Red\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""tskDue"",""name"":""Due"",""field_type"":2,""type_options"":{""2"":{""field_type"":2,""time_format"":1,""timezone_id"":"""",""date_format"":3},""0"":{""field_type"":2,""date_format"":3,""time_format"":1,""data"":"""",""timezone_id"":""""}},""is_primary"":false}","{""id"":""tskDon"",""name"":""Done"",""field_type"":5,""type_options"":{""5"":{""is_selected"":false}},""is_primary"":false}","{""id"":""tskPts"",""name"":""Points"",""field_type"":1,""type_options"":{""1"":{""format"":0,""symbol"":"""",""scale"":0,""name"":""Number""},""0"":{""scale"":0,""data"":"""",""format"":0,""name"":""Number"",""symbol"":""""}},""is_primary"":false}","{""id"":""tskTag"",""name"":""Tags"",""field_type"":4,""type_options"":{""0"":{""content"":""{\""options\"":[],\""disable_color\"":false}"",""data"":""""},""4"":{""content"":""{\""options\"":[{\""id\"":\""tgBe\"",\""name\"":\""Backend\"",\""color\"":\""Purple\""},{\""id\"":\""tgFe\"",\""name\"":\""Frontend\"",\""color\"":\""LightPink\""},{\""id\"":\""tgQa\"",\""name\"":\""QA\"",\""color\"":\""Orange\""},{\""id\"":\""tgDo\"",\""name\"":\""Docs\"",\""color\"":\""Yellow\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""tskUrl"",""name"":""Spec"",""field_type"":6,""type_options"":{""6"":{""content"":"""",""url"":""""},""0"":{""content"":"""",""data"":"""",""url"":""""}},""is_primary"":false}","{""id"":""tskNot"",""name"":""Notes"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":false}" +"{""field_type"":0,""created_at"":1700000400,""last_modified"":1700000400,""data"":""Auth""}","{""field_type"":3,""created_at"":1700000400,""last_modified"":1700000400,""data"":""tsDn""}","{""field_type"":3,""created_at"":1700000400,""last_modified"":1700000400,""data"":""pHi""}","{""field_type"":2,""created_at"":1700000400,""last_modified"":1700000400,""data"":""1700000500"",""include_time"":false}","{""field_type"":5,""created_at"":1700000400,""last_modified"":1700000400,""data"":""Yes""}","{""field_type"":1,""created_at"":1700000400,""last_modified"":1700000400,""data"":""3""}","{""field_type"":4,""created_at"":1700000400,""last_modified"":1700000400,""data"":""tgBe""}","{""field_type"":6,""created_at"":1700000400,""last_modified"":1700000400,""data"":""Auth spec"",""url"":""https://example.com/auth""}","{""field_type"":0,""created_at"":1700000400,""last_modified"":1700000400,""data"":""OAuth + email""}" +"{""field_type"":0,""created_at"":1700000401,""last_modified"":1700000401,""data"":""Build App""}","{""field_type"":3,""created_at"":1700000401,""last_modified"":1700000401,""data"":""tsIp""}","{""field_type"":3,""created_at"":1700000401,""last_modified"":1700000401,""data"":""pHi""}","{""field_type"":2,""created_at"":1700000401,""last_modified"":1700000401,""data"":""1700000600"",""include_time"":false}",,"{""field_type"":1,""created_at"":1700000401,""last_modified"":1700000401,""data"":""8""}","{""field_type"":4,""created_at"":1700000401,""last_modified"":1700000401,""data"":""tgFe""}","{""field_type"":6,""created_at"":1700000401,""last_modified"":1700000401,""data"":""Build doc"",""url"":""https://example.com/build""}","{""field_type"":0,""created_at"":1700000401,""last_modified"":1700000401,""data"":""Desktop + mobile""}" +"{""field_type"":0,""created_at"":1700000402,""last_modified"":1700000402,""data"":""Dashboard""}","{""field_type"":3,""created_at"":1700000402,""last_modified"":1700000402,""data"":""tsTo""}","{""field_type"":3,""created_at"":1700000402,""last_modified"":1700000402,""data"":""pMd""}","{""field_type"":2,""created_at"":1700000402,""last_modified"":1700000402,""data"":""1700000700"",""include_time"":false}",,"{""field_type"":1,""created_at"":1700000402,""last_modified"":1700000402,""data"":""5""}","{""field_type"":4,""created_at"":1700000402,""last_modified"":1700000402,""data"":""tgFe""}",,"{""field_type"":0,""created_at"":1700000402,""last_modified"":1700000402,""data"":""Charts + KPIs""}" +"{""field_type"":0,""created_at"":1700000403,""last_modified"":1700000403,""data"":""API""}","{""field_type"":3,""created_at"":1700000403,""last_modified"":1700000403,""data"":""tsTo""}","{""field_type"":3,""created_at"":1700000403,""last_modified"":1700000403,""data"":""pHi""}","{""field_type"":2,""created_at"":1700000403,""last_modified"":1700000403,""data"":""1700000800"",""include_time"":false}",,"{""field_type"":1,""created_at"":1700000403,""last_modified"":1700000403,""data"":""13""}","{""field_type"":4,""created_at"":1700000403,""last_modified"":1700000403,""data"":""tgBe""}","{""field_type"":6,""created_at"":1700000403,""last_modified"":1700000403,""data"":""API doc"",""url"":""https://example.com/api""}","{""field_type"":0,""created_at"":1700000403,""last_modified"":1700000403,""data"":""Public endpoints""}" +"{""field_type"":0,""created_at"":1700000404,""last_modified"":1700000404,""data"":""Release""}","{""field_type"":3,""created_at"":1700000404,""last_modified"":1700000404,""data"":""tsBl""}","{""field_type"":3,""created_at"":1700000404,""last_modified"":1700000404,""data"":""pMd""}",,,"{""field_type"":1,""created_at"":1700000404,""last_modified"":1700000404,""data"":""2""}","{""field_type"":4,""created_at"":1700000404,""last_modified"":1700000404,""data"":""tgQa,tgDo""}",, diff --git a/cypress/fixtures/database/csv/test-v020.csv b/cypress/fixtures/database/csv/test-v020.csv new file mode 100644 index 000000000..68fb57848 --- /dev/null +++ b/cypress/fixtures/database/csv/test-v020.csv @@ -0,0 +1,11 @@ +Name,number +A,-1 +B,-2 +C,0.1 +D,0.2 +E,1 +,2 +,10 +,11 +,12 +, diff --git a/cypress/fixtures/database/csv/v020.csv b/cypress/fixtures/database/csv/v020.csv new file mode 100644 index 000000000..04a49dead --- /dev/null +++ b/cypress/fixtures/database/csv/v020.csv @@ -0,0 +1,11 @@ +"{""id"":""2_OVWb"",""name"":""Name"",""field_type"":0,""visibility"":true,""width"":150,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""xjmOSi"",""name"":""Type"",""field_type"":3,""visibility"":true,""width"":150,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""t1WZ\"",\""name\"":\""s6\"",\""color\"":\""Lime\""},{\""id\"":\""GzNa\"",\""name\"":\""s5\"",\""color\"":\""Yellow\""},{\""id\"":\""l_8w\"",\""name\"":\""s4\"",\""color\"":\""Orange\""},{\""id\"":\""TzVT\"",\""name\"":\""s3\"",\""color\"":\""LightPink\""},{\""id\"":\""b5WF\"",\""name\"":\""s2\"",\""color\"":\""Pink\""},{\""id\"":\""AcHA\"",\""name\"":\""s1\"",\""color\"":\""Purple\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""Hpbiwr"",""name"":""Done"",""field_type"":5,""visibility"":true,""width"":150,""type_options"":{""5"":{""is_selected"":false}},""is_primary"":false}","{""id"":""F7WLnw"",""name"":""checklist"",""field_type"":7,""visibility"":true,""width"":120,""type_options"":{""0"":{""data"":""""},""7"":{}},""is_primary"":false}","{""id"":""KABhMe"",""name"":""number"",""field_type"":1,""visibility"":true,""width"":120,""type_options"":{""1"":{""format"":0,""symbol"":""RUB"",""scale"":0,""name"":""Number""},""0"":{""scale"":0,""data"":"""",""format"":0,""name"":""Number"",""symbol"":""RUB""}},""is_primary"":false}","{""id"":""lEn6Bv"",""name"":""date"",""field_type"":2,""visibility"":true,""width"":120,""type_options"":{""2"":{""field_type"":2,""time_format"":1,""timezone_id"":"""",""date_format"":3},""0"":{""field_type"":2,""date_format"":3,""time_format"":1,""data"":"""",""timezone_id"":""""}},""is_primary"":false}","{""id"":""B8Prnx"",""name"":""url"",""field_type"":6,""visibility"":true,""width"":120,""type_options"":{""6"":{""content"":"""",""url"":""""},""0"":{""content"":"""",""data"":"""",""url"":""""}},""is_primary"":false}","{""id"":""MwUow4"",""name"":""multi-select"",""field_type"":4,""visibility"":true,""width"":240,""type_options"":{""0"":{""content"":""{\""options\"":[],\""disable_color\"":false}"",""data"":""""},""4"":{""content"":""{\""options\"":[{\""id\"":\""__Us\"",\""name\"":\""m7\"",\""color\"":\""Green\""},{\""id\"":\""n9-g\"",\""name\"":\""m6\"",\""color\"":\""Lime\""},{\""id\"":\""KFYu\"",\""name\"":\""m5\"",\""color\"":\""Yellow\""},{\""id\"":\""KftP\"",\""name\"":\""m4\"",\""color\"":\""Orange\""},{\""id\"":\""5lWo\"",\""name\"":\""m3\"",\""color\"":\""LightPink\""},{\""id\"":\""Djrz\"",\""name\"":\""m2\"",\""color\"":\""Pink\""},{\""id\"":\""2uRu\"",\""name\"":\""m1\"",\""color\"":\""Purple\""}],\""disable_color\"":false}""}},""is_primary"":false}" +"{""field_type"":0,""created_at"":1686793246,""data"":""A"",""last_modified"":1686793246}","{""last_modified"":1686793275,""created_at"":1686793261,""data"":""AcHA"",""field_type"":3}","{""created_at"":1686793241,""field_type"":5,""last_modified"":1686793241,""data"":""Yes""}","{""data"":""{\""options\"":[{\""id\"":\""pi1A\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""6Pym\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""erEe\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""pi1A\"",\""6Pym\""]}"",""created_at"":1686793302,""field_type"":7,""last_modified"":1686793308}","{""created_at"":1686793333,""field_type"":1,""data"":""-1"",""last_modified"":1686793333}","{""last_modified"":1686793370,""field_type"":2,""data"":""1685583770"",""include_time"":false,""created_at"":1686793370}","{""created_at"":1686793395,""data"":""appflowy.io"",""field_type"":6,""last_modified"":1686793399,""url"":""https://appflowy.io""}","{""last_modified"":1686793446,""field_type"":4,""data"":""2uRu"",""created_at"":1686793428}" +"{""last_modified"":1686793247,""data"":""B"",""field_type"":0,""created_at"":1686793247}","{""created_at"":1686793278,""data"":""b5WF"",""field_type"":3,""last_modified"":1686793278}","{""created_at"":1686793292,""last_modified"":1686793292,""data"":""Yes"",""field_type"":5}","{""data"":""{\""options\"":[{\""id\"":\""YHDO\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""QjtW\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""K2nM\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""YHDO\""]}"",""field_type"":7,""last_modified"":1686793318,""created_at"":1686793311}","{""data"":""-2"",""last_modified"":1686793335,""created_at"":1686793335,""field_type"":1}","{""field_type"":2,""data"":""1685670174"",""include_time"":false,""created_at"":1686793374,""last_modified"":1686793374}","{""last_modified"":1686793403,""field_type"":6,""created_at"":1686793399,""url"":"""",""data"":""no url""}","{""data"":""2uRu,Djrz"",""field_type"":4,""last_modified"":1686793449,""created_at"":1686793449}" +"{""data"":""C"",""created_at"":1686793248,""last_modified"":1686793248,""field_type"":0}","{""created_at"":1686793280,""field_type"":3,""data"":""TzVT"",""last_modified"":1686793280}","{""data"":""Yes"",""last_modified"":1686793292,""field_type"":5,""created_at"":1686793292}","{""last_modified"":1686793329,""field_type"":7,""created_at"":1686793322,""data"":""{\""options\"":[{\""id\"":\""iWM1\"",\""name\"":\""t1\"",\""color\"":\""Purple\""},{\""id\"":\""WDvF\"",\""name\"":\""t2\"",\""color\"":\""Purple\""},{\""id\"":\""w3k7\"",\""name\"":\""t3\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""iWM1\"",\""WDvF\"",\""w3k7\""]}""}","{""field_type"":1,""last_modified"":1686793339,""data"":""0.1"",""created_at"":1686793339}","{""last_modified"":1686793377,""data"":""1685756577"",""created_at"":1686793377,""include_time"":false,""field_type"":2}","{""created_at"":1686793403,""field_type"":6,""data"":""appflowy.io"",""last_modified"":1686793408,""url"":""https://appflowy.io""}","{""data"":""2uRu,Djrz,5lWo"",""created_at"":1686793453,""last_modified"":1686793454,""field_type"":4}" +"{""data"":""D"",""last_modified"":1686793249,""created_at"":1686793249,""field_type"":0}","{""data"":""l_8w"",""created_at"":1686793284,""last_modified"":1686793284,""field_type"":3}","{""data"":""Yes"",""created_at"":1686793293,""last_modified"":1686793293,""field_type"":5}",,"{""field_type"":1,""last_modified"":1686793341,""created_at"":1686793341,""data"":""0.2""}","{""created_at"":1686793379,""last_modified"":1686793379,""field_type"":2,""data"":""1685842979"",""include_time"":false}","{""last_modified"":1686793419,""field_type"":6,""created_at"":1686793408,""data"":""https://github.com/AppFlowy-IO/"",""url"":""https://github.com/AppFlowy-IO/""}","{""data"":""2uRu,Djrz,5lWo"",""last_modified"":1686793459,""field_type"":4,""created_at"":1686793459}" +"{""field_type"":0,""last_modified"":1686793250,""created_at"":1686793250,""data"":""E""}","{""field_type"":3,""last_modified"":1686793290,""created_at"":1686793290,""data"":""GzNa""}","{""last_modified"":1686793294,""created_at"":1686793294,""data"":""Yes"",""field_type"":5}",,"{""created_at"":1686793346,""field_type"":1,""last_modified"":1686793346,""data"":""1""}","{""last_modified"":1686793383,""data"":""1685929383"",""field_type"":2,""include_time"":false,""created_at"":1686793383}","{""field_type"":6,""url"":"""",""data"":"""",""last_modified"":1686793421,""created_at"":1686793419}","{""field_type"":4,""last_modified"":1686793465,""data"":""2uRu,Djrz,5lWo,KFYu,KftP"",""created_at"":1686793463}" +"{""field_type"":0,""created_at"":1686793251,""data"":"""",""last_modified"":1686793289}",,,,"{""data"":""2"",""field_type"":1,""created_at"":1686793347,""last_modified"":1686793347}","{""include_time"":false,""data"":""1685929385"",""last_modified"":1686793385,""field_type"":2,""created_at"":1686793385}",, +"{""created_at"":1686793254,""field_type"":0,""last_modified"":1686793288,""data"":""""}",,,,"{""created_at"":1686793351,""last_modified"":1686793351,""data"":""10"",""field_type"":1}","{""include_time"":false,""data"":""1686879792"",""field_type"":2,""created_at"":1686793392,""last_modified"":1686793392}",, +,,,,"{""last_modified"":1686793354,""created_at"":1686793354,""field_type"":1,""data"":""11""}",,, +,,,,"{""field_type"":1,""last_modified"":1686793356,""data"":""12"",""created_at"":1686793356}",,, +,,,,,,, diff --git a/cypress/fixtures/database/csv/v069.csv b/cypress/fixtures/database/csv/v069.csv new file mode 100644 index 000000000..bd64b8f1b --- /dev/null +++ b/cypress/fixtures/database/csv/v069.csv @@ -0,0 +1,14 @@ +"{""id"":""RGmzka"",""name"":""Name"",""field_type"":0,""type_options"":{""0"":{""data"":""""}},""is_primary"":true}","{""id"":""oYoH-q"",""name"":""Time Slot"",""field_type"":2,""type_options"":{""0"":{""date_format"":3,""data"":"""",""time_format"":1,""timezone_id"":""""},""2"":{""date_format"":3,""time_format"":1,""timezone_id"":""""}},""is_primary"":false}","{""id"":""zVrp17"",""name"":""Amount"",""field_type"":1,""type_options"":{""1"":{""scale"":0,""format"":4,""name"":""Number"",""symbol"":""RUB""},""0"":{""data"":"""",""symbol"":""RUB"",""name"":""Number"",""format"":0,""scale"":0}},""is_primary"":false}","{""id"":""_p4EGt"",""name"":""Delta"",""field_type"":1,""type_options"":{""1"":{""name"":""Number"",""format"":36,""symbol"":""RUB"",""scale"":0},""0"":{""data"":"""",""symbol"":""RUB"",""name"":""Number"",""format"":0,""scale"":0}},""is_primary"":false}","{""id"":""Z909lc"",""name"":""Email"",""field_type"":6,""type_options"":{""6"":{""url"":"""",""content"":""""},""0"":{""data"":"""",""content"":"""",""url"":""""}},""is_primary"":false}","{""id"":""dBrSc7"",""name"":""Registration Complete"",""field_type"":5,""type_options"":{""5"":{}},""is_primary"":false}","{""id"":""VoigvK"",""name"":""Progress"",""field_type"":7,""type_options"":{""0"":{""data"":""""},""7"":{}},""is_primary"":false}","{""id"":""gbbQwh"",""name"":""Attachments"",""field_type"":14,""type_options"":{""0"":{""data"":"""",""content"":""{\""files\"":[]}""},""14"":{""content"":""{\""files\"":[]}""}},""is_primary"":false}","{""id"":""id3L0G"",""name"":""Priority"",""field_type"":3,""type_options"":{""3"":{""content"":""{\""options\"":[{\""id\"":\""cplL\"",\""name\"":\""VIP\"",\""color\"":\""Purple\""},{\""id\"":\""GSf_\"",\""name\"":\""High\"",\""color\"":\""Blue\""},{\""id\"":\""qnja\"",\""name\"":\""Medium\"",\""color\"":\""Green\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""541SFC"",""name"":""Tags"",""field_type"":4,""type_options"":{""0"":{""data"":"""",""content"":""{\""options\"":[],\""disable_color\"":false}""},""4"":{""content"":""{\""options\"":[{\""id\"":\""1i4f\"",\""name\"":\""Education\"",\""color\"":\""Yellow\""},{\""id\"":\""yORP\"",\""name\"":\""Health\"",\""color\"":\""Orange\""},{\""id\"":\""SEUo\"",\""name\"":\""Hobby\"",\""color\"":\""LightPink\""},{\""id\"":\""uRAO\"",\""name\"":\""Family\"",\""color\"":\""Pink\""},{\""id\"":\""R9I7\"",\""name\"":\""Work\"",\""color\"":\""Purple\""}],\""disable_color\"":false}""}},""is_primary"":false}","{""id"":""lg0B7O"",""name"":""Last modified"",""field_type"":8,""type_options"":{""0"":{""time_format"":1,""field_type"":8,""date_format"":3,""data"":"""",""include_time"":true},""8"":{""date_format"":3,""field_type"":8,""time_format"":1,""include_time"":true}},""is_primary"":false}","{""id"":""5riGR7"",""name"":""Created at"",""field_type"":9,""type_options"":{""0"":{""field_type"":9,""include_time"":true,""date_format"":3,""time_format"":1,""data"":""""},""9"":{""include_time"":true,""field_type"":9,""date_format"":3,""time_format"":1}},""is_primary"":false}" +"{""data"":""Olaf"",""created_at"":1726063289,""last_modified"":1726063289,""field_type"":0}","{""last_modified"":1726122374,""created_at"":1726110045,""reminder_id"":"""",""is_range"":true,""include_time"":true,""end_timestamp"":""1725415200"",""field_type"":2,""data"":""1725256800""}","{""field_type"":1,""data"":""55200"",""last_modified"":1726063592,""created_at"":1726063592}","{""last_modified"":1726062441,""created_at"":1726062441,""data"":""0.5"",""field_type"":1}","{""created_at"":1726063719,""last_modified"":1726063732,""data"":""doyouwannabuildasnowman@arendelle.gov"",""field_type"":6}",,"{""field_type"":7,""last_modified"":1726064207,""data"":""{\""options\"":[{\""id\"":\""oqXQ\"",\""name\"":\""find elsa\"",\""color\"":\""Purple\""},{\""id\"":\""eQwp\"",\""name\"":\""find anna\"",\""color\"":\""Purple\""},{\""id\"":\""5-B3\"",\""name\"":\""play in the summertime\"",\""color\"":\""Purple\""},{\""id\"":\""UBFn\"",\""name\"":\""get a personal flurry\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""oqXQ\"",\""eQwp\"",\""UBFn\""]}"",""created_at"":1726064129}",,"{""created_at"":1726065208,""data"":""cplL"",""last_modified"":1726065282,""field_type"":3}","{""field_type"":4,""data"":""1i4f"",""last_modified"":1726105102,""created_at"":1726105102}","{""field_type"":8,""data"":""1726122374""}","{""data"":""1726060476"",""field_type"":9}" +"{""field_type"":0,""last_modified"":1726063323,""data"":""Beatrice"",""created_at"":1726063323}",,"{""last_modified"":1726063638,""data"":""828600"",""created_at"":1726063607,""field_type"":1}","{""field_type"":1,""created_at"":1726062488,""data"":""-2.25"",""last_modified"":1726062488}","{""last_modified"":1726063790,""data"":""btreee17@gmail.com"",""field_type"":6,""created_at"":1726063790}","{""created_at"":1726062718,""data"":""Yes"",""field_type"":5,""last_modified"":1726062724}","{""created_at"":1726064277,""data"":""{\""options\"":[{\""id\"":\""BDuH\"",\""name\"":\""get the leaf node\"",\""color\"":\""Purple\""},{\""id\"":\""GXAr\"",\""name\"":\""upgrade to b+\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[]}"",""field_type"":7,""last_modified"":1726064293}",,"{""data"":""GSf_"",""created_at"":1726065288,""last_modified"":1726065288,""field_type"":3}","{""created_at"":1726105110,""data"":""yORP,uRAO"",""last_modified"":1726105111,""field_type"":4}","{""data"":""1726105111"",""field_type"":8}","{""field_type"":9,""data"":""1726060476""}" +"{""last_modified"":1726063355,""created_at"":1726063355,""field_type"":0,""data"":""Lancelot""}","{""data"":""1726468159"",""is_range"":true,""end_timestamp"":""1726727359"",""reminder_id"":"""",""include_time"":false,""field_type"":2,""created_at"":1726122403,""last_modified"":1726122559}","{""created_at"":1726063617,""last_modified"":1726063617,""data"":""22500"",""field_type"":1}","{""data"":""11.6"",""last_modified"":1726062504,""field_type"":1,""created_at"":1726062504}","{""field_type"":6,""data"":""sir.lancelot@gmail.com"",""last_modified"":1726063812,""created_at"":1726063812}","{""data"":""No"",""field_type"":5,""last_modified"":1726062724,""created_at"":1726062375}",,,"{""data"":""cplL"",""created_at"":1726065286,""last_modified"":1726065286,""field_type"":3}","{""last_modified"":1726105237,""data"":""SEUo"",""created_at"":1726105237,""field_type"":4}","{""field_type"":8,""data"":""1726122559""}","{""field_type"":9,""data"":""1726060476""}" +"{""data"":""Scotty"",""last_modified"":1726063399,""created_at"":1726063399,""field_type"":0}","{""reminder_id"":"""",""last_modified"":1726122418,""include_time"":true,""data"":""1725868800"",""end_timestamp"":""1726646400"",""created_at"":1726122381,""field_type"":2,""is_range"":true}","{""created_at"":1726063650,""last_modified"":1726063650,""data"":""10900"",""field_type"":1}","{""data"":""0"",""created_at"":1726062581,""last_modified"":1726062581,""field_type"":1}","{""last_modified"":1726063835,""created_at"":1726063835,""field_type"":6,""data"":""scottylikestosing@outlook.com""}","{""data"":""Yes"",""field_type"":5,""created_at"":1726062718,""last_modified"":1726062718}","{""created_at"":1726064309,""data"":""{\""options\"":[{\""id\"":\""Cw0K\"",\""name\"":\""vocal warmup\"",\""color\"":\""Purple\""},{\""id\"":\""nYMo\"",\""name\"":\""mixed voice training\"",\""color\"":\""Purple\""},{\""id\"":\""i-OX\"",\""name\"":\""belting training\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""Cw0K\"",\""nYMo\"",\""i-OX\""]}"",""field_type"":7,""last_modified"":1726064325}","{""last_modified"":1726122911,""created_at"":1726122835,""data"":[""{\""id\"":\""746a741d-98f8-4cc6-b807-a82d2e78c221\"",\""name\"":\""googlelogo_color_272x92dp.png\"",\""url\"":\""https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png\"",\""upload_type\"":\""NetworkMedia\"",\""file_type\"":\""Image\""}"",""{\""id\"":\""cbbab3ee-32ab-4438-a909-3f69f935a8bd\"",\""name\"":\""tL_v571NdZ0.svg\"",\""url\"":\""https://static.xx.fbcdn.net/rsrc.php/y9/r/tL_v571NdZ0.svg\"",\""upload_type\"":\""NetworkMedia\"",\""file_type\"":\""Link\""}""],""field_type"":14}",,"{""data"":""SEUo,yORP"",""field_type"":4,""last_modified"":1726105123,""created_at"":1726105115}","{""data"":""1726122911"",""field_type"":8}","{""data"":""1726060539"",""field_type"":9}" +"{""field_type"":0,""created_at"":1726063405,""last_modified"":1726063421,""data"":""""}",,,"{""last_modified"":1726062625,""field_type"":1,""data"":"""",""created_at"":1726062607}",,"{""data"":""No"",""last_modified"":1726062702,""created_at"":1726062393,""field_type"":5}",,,,,"{""data"":""1726063421"",""field_type"":8}","{""data"":""1726060539"",""field_type"":9}" +"{""field_type"":0,""data"":""Thomas"",""last_modified"":1726063421,""created_at"":1726063421}","{""reminder_id"":"""",""field_type"":2,""data"":""1725627600"",""is_range"":false,""created_at"":1726122583,""last_modified"":1726122593,""end_timestamp"":"""",""include_time"":true}","{""last_modified"":1726063666,""field_type"":1,""data"":""465800"",""created_at"":1726063666}","{""last_modified"":1726062516,""field_type"":1,""created_at"":1726062516,""data"":""-0.03""}","{""field_type"":6,""last_modified"":1726063848,""created_at"":1726063848,""data"":""tfp3827@gmail.com""}","{""field_type"":5,""last_modified"":1726062725,""data"":""Yes"",""created_at"":1726062376}","{""created_at"":1726064344,""data"":""{\""options\"":[{\""id\"":\""D6X8\"",\""name\"":\""brainstorm\"",\""color\"":\""Purple\""},{\""id\"":\""XVN9\"",\""name\"":\""schedule\"",\""color\"":\""Purple\""},{\""id\"":\""nJx8\"",\""name\"":\""shoot\"",\""color\"":\""Purple\""},{\""id\"":\""7Mrm\"",\""name\"":\""edit\"",\""color\"":\""Purple\""},{\""id\"":\""o6vg\"",\""name\"":\""publish\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""D6X8\""]}"",""last_modified"":1726064379,""field_type"":7}",,"{""last_modified"":1726065298,""created_at"":1726065298,""field_type"":3,""data"":""GSf_""}","{""data"":""yORP,SEUo"",""field_type"":4,""last_modified"":1726105229,""created_at"":1726105229}","{""data"":""1726122593"",""field_type"":8}","{""field_type"":9,""data"":""1726060540""}" +"{""data"":""Juan"",""last_modified"":1726063423,""created_at"":1726063423,""field_type"":0}","{""created_at"":1726122510,""reminder_id"":"""",""include_time"":false,""is_range"":true,""last_modified"":1726122515,""data"":""1725604115"",""end_timestamp"":""1725776915"",""field_type"":2}","{""field_type"":1,""created_at"":1726063677,""last_modified"":1726063677,""data"":""93100""}","{""field_type"":1,""data"":""4.86"",""created_at"":1726062597,""last_modified"":1726062597}",,"{""last_modified"":1726062377,""field_type"":5,""data"":""Yes"",""created_at"":1726062377}","{""last_modified"":1726064412,""field_type"":7,""data"":""{\""options\"":[{\""id\"":\""tTDq\"",\""name\"":\""complete onboarding\"",\""color\"":\""Purple\""},{\""id\"":\""E8Ds\"",\""name\"":\""contact support\"",\""color\"":\""Purple\""},{\""id\"":\""RoGN\"",\""name\"":\""get started\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""tTDq\"",\""E8Ds\""]}"",""created_at"":1726064396}",,"{""created_at"":1726065278,""field_type"":3,""data"":""qnja"",""last_modified"":1726065278}","{""data"":""R9I7,yORP,1i4f"",""field_type"":4,""created_at"":1726105126,""last_modified"":1726105127}","{""data"":""1726122515"",""field_type"":8}","{""data"":""1726060541"",""field_type"":9}" +"{""data"":""Alex"",""created_at"":1726063432,""last_modified"":1726063432,""field_type"":0}","{""reminder_id"":"""",""data"":""1725292800"",""include_time"":true,""last_modified"":1726122448,""created_at"":1726122422,""is_range"":true,""end_timestamp"":""1725551940"",""field_type"":2}","{""field_type"":1,""last_modified"":1726063683,""created_at"":1726063683,""data"":""3560""}","{""created_at"":1726062561,""data"":""1.96"",""last_modified"":1726062561,""field_type"":1}","{""last_modified"":1726063952,""created_at"":1726063931,""data"":""al3x1343@protonmail.com"",""field_type"":6}","{""last_modified"":1726062375,""field_type"":5,""created_at"":1726062375,""data"":""Yes""}","{""data"":""{\""options\"":[{\""id\"":\""qNyr\"",\""name\"":\""finish reading book\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[]}"",""created_at"":1726064616,""last_modified"":1726064616,""field_type"":7}",,"{""data"":""qnja"",""created_at"":1726065272,""last_modified"":1726065272,""field_type"":3}","{""created_at"":1726105180,""last_modified"":1726105180,""field_type"":4,""data"":""R9I7,1i4f""}","{""field_type"":8,""data"":""1726122448""}","{""field_type"":9,""data"":""1726060541""}" +"{""last_modified"":1726063478,""created_at"":1726063436,""field_type"":0,""data"":""Alexander""}",,"{""field_type"":1,""last_modified"":1726063691,""created_at"":1726063691,""data"":""2073""}","{""field_type"":1,""data"":""0.5"",""last_modified"":1726062577,""created_at"":1726062577}","{""last_modified"":1726063991,""field_type"":6,""created_at"":1726063991,""data"":""alexandernotthedra@gmail.com""}","{""field_type"":5,""last_modified"":1726062378,""created_at"":1726062377,""data"":""No""}",,,"{""created_at"":1726065291,""data"":""GSf_"",""last_modified"":1726065291,""field_type"":3}","{""last_modified"":1726105142,""created_at"":1726105133,""data"":""SEUo"",""field_type"":4}","{""field_type"":8,""data"":""1726105142""}","{""field_type"":9,""data"":""1726060542""}" +"{""field_type"":0,""created_at"":1726063454,""last_modified"":1726063454,""data"":""George""}","{""created_at"":1726122467,""end_timestamp"":""1726468070"",""include_time"":false,""is_range"":true,""reminder_id"":"""",""field_type"":2,""data"":""1726295270"",""last_modified"":1726122470}",,,"{""field_type"":6,""data"":""george.aq@appflowy.io"",""last_modified"":1726064104,""created_at"":1726064016}","{""last_modified"":1726062376,""created_at"":1726062376,""field_type"":5,""data"":""Yes""}","{""data"":""{\""options\"":[{\""id\"":\""s_dQ\"",\""name\"":\""bug triage\"",\""color\"":\""Purple\""},{\""id\"":\""-Zfo\"",\""name\"":\""fix bugs\"",\""color\"":\""Purple\""},{\""id\"":\""wsDN\"",\""name\"":\""attend meetings\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""s_dQ\"",\""-Zfo\""]}"",""last_modified"":1726064468,""created_at"":1726064424,""field_type"":7}","{""data"":[""{\""id\"":\""8a77f84d-64e9-4e67-b902-fa23980459ec\"",\""name\"":\""BQdTmxpRI6f.png\"",\""url\"":\""https://samplelib.com/lib/preview/png/sample-blue-200x200.png\"",\""upload_type\"":\""NetworkMedia\"",\""file_type\"":\""Image\""}""],""field_type"":14,""created_at"":1726122956,""last_modified"":1726122956}","{""field_type"":3,""data"":""qnja"",""created_at"":1726065313,""last_modified"":1726065313}","{""data"":""R9I7,yORP"",""field_type"":4,""last_modified"":1726105198,""created_at"":1726105187}","{""data"":""1726122956"",""field_type"":8}","{""data"":""1726060543"",""field_type"":9}" +"{""field_type"":0,""last_modified"":1726063467,""data"":""Joanna"",""created_at"":1726063467}","{""include_time"":false,""end_timestamp"":""1727072893"",""is_range"":true,""last_modified"":1726122493,""created_at"":1726122483,""data"":""1726554493"",""field_type"":2,""reminder_id"":""""}","{""last_modified"":1726065463,""data"":""16470"",""field_type"":1,""created_at"":1726065463}","{""created_at"":1726062626,""field_type"":1,""last_modified"":1726062626,""data"":""-5.36""}","{""last_modified"":1726064069,""data"":""joannastrawberry29+hello@gmail.com"",""created_at"":1726064069,""field_type"":6}",,"{""field_type"":7,""created_at"":1726064444,""last_modified"":1726064460,""data"":""{\""options\"":[{\""id\"":\""ZxJz\"",\""name\"":\""post on Twitter\"",\""color\"":\""Purple\""},{\""id\"":\""upwi\"",\""name\"":\""watch Youtube videos\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""upwi\""]}""}",,"{""created_at"":1726065317,""last_modified"":1726065317,""field_type"":3,""data"":""qnja""}","{""field_type"":4,""last_modified"":1726105173,""data"":""uRAO,yORP"",""created_at"":1726105170}","{""data"":""1726122493"",""field_type"":8}","{""data"":""1726060545"",""field_type"":9}" +"{""last_modified"":1726063457,""created_at"":1726063457,""data"":""George"",""field_type"":0}","{""include_time"":true,""reminder_id"":"""",""field_type"":2,""is_range"":true,""created_at"":1726122521,""end_timestamp"":""1725829200"",""data"":""1725822900"",""last_modified"":1726122535}","{""last_modified"":1726065493,""field_type"":1,""data"":""9500"",""created_at"":1726065493}","{""last_modified"":1726062680,""created_at"":1726062680,""field_type"":1,""data"":""1.7""}","{""data"":""plgeorgebball@gmail.com"",""field_type"":6,""last_modified"":1726064087,""created_at"":1726064036}",,"{""last_modified"":1726064513,""data"":""{\""options\"":[{\""id\"":\""zy0x\"",\""name\"":\""game vs celtics\"",\""color\"":\""Purple\""},{\""id\"":\""WJsv\"",\""name\"":\""training\"",\""color\"":\""Purple\""},{\""id\"":\""w-f8\"",\""name\"":\""game vs spurs\"",\""color\"":\""Purple\""},{\""id\"":\""p1VQ\"",\""name\"":\""game vs knicks\"",\""color\"":\""Purple\""},{\""id\"":\""VjUA\"",\""name\"":\""recovery\"",\""color\"":\""Purple\""},{\""id\"":\""sQ8X\"",\""name\"":\""don't get injured\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[]}"",""created_at"":1726064486,""field_type"":7}",,"{""field_type"":3,""last_modified"":1726065310,""data"":""qnja"",""created_at"":1726065310}","{""created_at"":1726105205,""field_type"":4,""last_modified"":1726105249,""data"":""R9I7,1i4f,yORP,SEUo""}","{""data"":""1726122535"",""field_type"":8}","{""field_type"":9,""data"":""1726060546""}" +"{""data"":""Judy"",""created_at"":1726063475,""field_type"":0,""last_modified"":1726063487}","{""end_timestamp"":"""",""reminder_id"":"""",""data"":""1726640950"",""field_type"":2,""include_time"":false,""created_at"":1726122550,""last_modified"":1726122550,""is_range"":false}",,,"{""created_at"":1726063882,""field_type"":6,""last_modified"":1726064000,""data"":""judysmithjr@outlook.com""}","{""last_modified"":1726062712,""field_type"":5,""data"":""Yes"",""created_at"":1726062712}","{""created_at"":1726064549,""field_type"":7,""data"":""{\""options\"":[{\""id\"":\""j8cC\"",\""name\"":\""finish training\"",\""color\"":\""Purple\""},{\""id\"":\""SmSk\"",\""name\"":\""brainwash\"",\""color\"":\""Purple\""},{\""id\"":\""mnf5\"",\""name\"":\""welcome to ba sing se\"",\""color\"":\""Purple\""},{\""id\"":\""hcrj\"",\""name\"":\""don't mess up\"",\""color\"":\""Purple\""}],\""selected_option_ids\"":[\""j8cC\"",\""SmSk\"",\""mnf5\"",\""hcrj\""]}"",""last_modified"":1726064591}",,,"{""field_type"":4,""last_modified"":1726105152,""created_at"":1726105152,""data"":""R9I7""}","{""field_type"":8,""data"":""1726122550""}","{""field_type"":9,""data"":""1726060549""}" diff --git a/cypress/support/filter-test-helpers.ts b/cypress/support/filter-test-helpers.ts new file mode 100644 index 000000000..b8c1491f3 --- /dev/null +++ b/cypress/support/filter-test-helpers.ts @@ -0,0 +1,241 @@ +/** + * Filter test helpers for database E2E tests + * Provides utilities for creating, managing, and verifying filters + */ +import 'cypress-real-events'; +import { AuthTestUtils } from './auth-utils'; +import { + AddPageSelectors, + DatabaseFilterSelectors, + DatabaseGridSelectors, + waitForReactUpdate, +} from './selectors'; +import { generateRandomEmail } from './test-config'; + +// Re-export for convenience +export { generateRandomEmail }; + +/** + * Text filter condition enum values (matching TextFilterCondition) + */ +export enum TextFilterCondition { + TextIs = 0, + TextIsNot = 1, + TextContains = 2, + TextDoesNotContain = 3, + TextStartsWith = 4, + TextEndsWith = 5, + TextIsEmpty = 6, + TextIsNotEmpty = 7, +} + +/** + * Number filter condition enum values (matching NumberFilterCondition) + */ +export enum NumberFilterCondition { + Equal = 0, + NotEqual = 1, + GreaterThan = 2, + LessThan = 3, + GreaterThanOrEqualTo = 4, + LessThanOrEqualTo = 5, + NumberIsEmpty = 6, + NumberIsNotEmpty = 7, +} + +/** + * Common beforeEach setup for filter tests + */ +export const setupFilterTest = () => { + cy.on('uncaught:exception', (err) => { + if ( + err.message.includes('Minified React error') || + err.message.includes('View not found') || + err.message.includes('No workspace or service found') + ) { + return false; + } + return true; + }); + + cy.viewport(1280, 900); +}; + +/** + * Login and create a new grid for filter testing + */ +export const loginAndCreateGrid = (email: string): Cypress.Chainable => { + cy.visit('/login', { failOnStatusCode: false }); + cy.wait(1500); + const authUtils = new AuthTestUtils(); + return authUtils.signInWithTestUrl(email).then(() => { + cy.url({ timeout: 30000 }).should('include', '/app'); + cy.wait(4000); + + // Create a new grid + AddPageSelectors.inlineAddButton().first().click({ force: true }); + waitForReactUpdate(800); + AddPageSelectors.addGridButton().should('exist').click({ force: true }); + cy.wait(7000); + DatabaseGridSelectors.grid().should('exist'); + DatabaseGridSelectors.cells().should('have.length.greaterThan', 0); + }); +}; + +/** + * Type text into a cell at the specified index + */ +export const typeTextIntoCell = (fieldId: string, cellIndex: number, text: string): void => { + cy.log(`typeTextIntoCell: field=${fieldId}, dataRowIndex=${cellIndex}, text=${text}`); + + // Click to enter edit mode + DatabaseGridSelectors.dataRowCellsForField(fieldId) + .eq(cellIndex) + .should('be.visible') + .scrollIntoView() + .click() + .click(); // Double click to enter edit mode + + // Wait for textarea and type + cy.get('textarea:visible', { timeout: 8000 }) + .should('exist') + .first() + .clear() + .type(text, { delay: 30 }); + // Press Escape to close the cell and trigger save + cy.get('body').type('{esc}'); + cy.wait(500); +}; + +/** + * Open the filter menu by clicking the filter button + * If filters already exist, this toggles the filter panel + */ +export const openFilterMenu = (): void => { + DatabaseFilterSelectors.filterButton().click({ force: true }); + waitForReactUpdate(500); +}; + +/** + * Add a filter on a field by name + * Opens the filter menu, searches for the field, and selects it + */ +export const addFilterByFieldName = (fieldName: string): void => { + // Click add filter button if visible, otherwise the filter button opens a popover + cy.get('body').then(($body) => { + if ($body.find('[data-testid="database-add-filter-button"]:visible').length > 0) { + DatabaseFilterSelectors.addFilterButton().click({ force: true }); + } else { + // Filter button opens the properties popover directly when no filters exist + DatabaseFilterSelectors.filterButton().click({ force: true }); + } + }); + waitForReactUpdate(800); + + // Search for the field and click it + DatabaseFilterSelectors.propertyItemByName(fieldName).click({ force: true }); + waitForReactUpdate(1000); + + // Wait for the filter panel to be visible (it auto-expands after adding a filter) + cy.get('.database-conditions', { timeout: 10000 }).should('have.css', 'visibility', 'visible'); +}; + +/** + * Click on the active filter chip to open its menu + */ +export const clickFilterChip = (): void => { + DatabaseFilterSelectors.filterCondition().first().click({ force: true }); + waitForReactUpdate(500); +}; + +/** + * Change the filter condition by selecting from the dropdown + */ +export const changeFilterCondition = (conditionValue: number): void => { + // The filter menu should already be open + // Find the condition dropdown trigger button inside the filter popover + // Use case-insensitive matching since button text may be capitalized + cy.get('[data-radix-popper-content-wrapper]') + .last() // Get the most recently opened popover + .find('button') + .then(($buttons) => { + // Find button containing condition-related text (case-insensitive) + // Include all possible condition texts: text filters, number filters, etc. + const conditionTexts = [ + 'is', + 'contains', + 'starts', + 'ends', + 'empty', + 'equals', // number filter + 'not equal', // number filter + 'greater', + 'less', + '=', + '>', + '<', + ]; + const $conditionButton = $buttons.filter((_, el) => { + const text = el.textContent?.toLowerCase() || ''; + return conditionTexts.some((t) => text.includes(t)); + }); + if ($conditionButton.length > 0) { + cy.wrap($conditionButton.first()).click({ force: true }); + } + }); + waitForReactUpdate(500); + + // The dropdown menu items are rendered in a portal, find them + cy.get(`[data-testid="filter-condition-${conditionValue}"]`, { timeout: 10000 }) + .should('be.visible') + .click({ force: true }); + waitForReactUpdate(500); +}; + +/** + * Enter text into the filter input + */ +export const enterFilterText = (text: string): void => { + DatabaseFilterSelectors.filterInput().clear().type(text, { delay: 30 }); + waitForReactUpdate(500); +}; + +/** + * Delete the current filter + */ +export const deleteFilter = (): void => { + DatabaseFilterSelectors.deleteFilterButton().click({ force: true }); + waitForReactUpdate(500); +}; + +/** + * Assert the number of visible data rows in the grid + */ +export const assertRowCount = (expectedCount: number): void => { + DatabaseGridSelectors.dataRows().should('have.length', expectedCount); +}; + +/** + * Get the primary field ID (first column, Name field) + */ +export const getPrimaryFieldId = (): Cypress.Chainable => { + return cy + .get('[data-testid^="grid-field-header-"]') + .first() + .invoke('attr', 'data-testid') + .then((testId) => { + return testId?.replace('grid-field-header-', '') || ''; + }); +}; + +/** + * Get field ID by header name + */ +export const getFieldIdByName = (fieldName: string): Cypress.Chainable => { + return cy + .contains('[data-testid^="grid-field-header-"]', fieldName) + .invoke('attr', 'data-testid') + .then((testId) => { + return testId?.replace('grid-field-header-', '') || ''; + }); +}; diff --git a/cypress/support/selectors.ts b/cypress/support/selectors.ts index 88337f7b2..a388e3da8 100644 --- a/cypress/support/selectors.ts +++ b/cypress/support/selectors.ts @@ -461,22 +461,29 @@ export const DatabaseFilterSelectors = { // Sort button sortButton: () => cy.get(byTestId('database-actions-sort')), - // Filter condition row + // Filter condition row/chip filterCondition: () => cy.get(byTestId('database-filter-condition')), // Sort condition row sortCondition: () => cy.get(byTestId('database-sort-condition')), - // Remove filter button (inside condition) - removeFilterButton: () => - cy - .get( - 'button[aria-label*="remove"], button[aria-label*="delete"], button:contains("×"), svg[class*="close"], svg[class*="x"]' - ) - .first(), + // Delete filter button (inside filter menu) + deleteFilterButton: () => cy.get(byTestId('delete-filter-button')), - // Filter input + // Filter input (text/number) filterInput: () => cy.get(byTestId('text-filter-input')), + + // Text filter container + textFilter: () => cy.get(byTestId('text-filter')), + + // Filter condition option by value (0-7 for text, 0-7 for number, etc.) + filterConditionOption: (conditionValue: number) => cy.get(byTestId(`filter-condition-${conditionValue}`)), + + // Property/field item in filter selection popover + propertyItem: (fieldId: string) => cy.get(`[data-item-id="${fieldId}"]`), + + // Property/field item by name (searches within popover) + propertyItemByName: (name: string) => cy.contains('[data-item-id]', name), }; /** diff --git a/docs/context/database-row-loading-storage.md b/docs/context/database-row-loading-storage.md new file mode 100644 index 000000000..32e66a584 --- /dev/null +++ b/docs/context/database-row-loading-storage.md @@ -0,0 +1,141 @@ +# Database Row Loading and Storage (Web) + +## Overview +- Database content is modeled as Yjs documents: a view document (per viewId) plus row documents (per rowId). +- View docs store row ordering and view config; row docs store the actual row cells. +- Yjs docs are persisted locally with `y-indexeddb`, while a Dexie cache stores small metadata and row versions. + +## Row loading flow +1. A database view is opened via `useViewOperations.loadView` in `src/components/app/hooks/useViewOperations.ts`. + - It calls `service.getPageDoc(...)`, which opens a Yjs doc from IndexedDB via `openCollabDB(viewId)`. + - For database layouts, `loadView` resolves the databaseId and sets `doc.guid = databaseId` before sync. +2. `Database` in `src/components/database/Database.tsx` keeps a row doc map but does **not** open every row up front. + - `row_orders` is still read from the view doc when rendering. +3. Row docs are opened lazily per row: + - `useRowData(rowId)` / `useRowDataSelector(rowId)` call `ensureRowDoc(rowId)` from `DatabaseContext`. + - `ensureRowDoc` waits for the blob diff prefetch to finish (success or failure) before binding row sync. + - `ensureRowDoc` uses `getRowKey(doc.guid, rowId)` and `createRowDoc(rowKey)` to open the row doc and register sync as `Types.DatabaseRow`. +4. `rowDocMap` in `DatabaseContext` is incremental (only loaded rows): + - Grid/Board/Calendar rows read `YjsDatabaseKey.cells` from row docs when available. +5. Sorting/filtering is computed in `useRowOrdersSelector` in `src/application/database-yjs/selector.ts`: + - When row docs are incomplete, the selector returns the base `row_orders`. + - If sorts/filters exist, it loads missing row docs from IndexedDB (no sync binding) in the background and + re-applies conditions once all rows are available. + +## Where row data comes from +- WebSocket sync: `registerSyncContext` in `src/components/ws/useSync.ts` calls `initSync` in + `src/application/services/js-services/sync-protocol.ts`, which sends a sync request and applies updates to docs. +- Database blob diff prefetch (new): + - `prefetchDatabaseBlobDiff` in `src/application/database-blob/index.ts` is called from + `useViewOperations.loadView` for database layouts. + - It calls `databaseBlobDiff` in `src/application/services/js-services/http/http_api.ts` and applies + `CollabDocState` (`doc_state` + `encoder_version`) into IndexedDB row docs with + `openCollabDBWithProvider` + `applyYDoc` (V1 or V2 based on encoder version). + - Errors are logged and the UI falls back to the existing per-row sync path. +- Fetch + revalidate (mainly for publish or cache refresh): + - `getPageCollab` in `src/application/services/js-services/http/http_api.ts` returns `encoded_collab` plus `row_data`. + - `revalidateView` in `src/application/services/js-services/cache/index.ts` applies `row_data` via `updateRows`. + - `getPublishView` returns `database_collab` and `database_row_collabs`, which follow the same `updateRows` path. + +## Storage layers +### Yjs + IndexedDB (y-indexeddb) +- `openCollabDB` in `src/application/db/index.ts` uses `IndexeddbPersistence(name, doc)` and waits for the + provider `synced` event before returning. +- Each collab doc is stored in its own IndexedDB database named by `name`: + - View docs: `name = viewId`. + - Row docs: `name = getRowKey(databaseId, rowId)` => `${databaseId}_rows_${rowId}`. + - Workspace database doc: `name = databaseStorageId`. +- `closeCollabDB` destroys the provider, and `clearData` deletes all IndexedDB databases. + +### Dexie cache +- Dexie database name: `${databasePrefix}_cache` => `af_database_cache` in `src/application/db/index.ts`. +- Tables (schemas in `src/application/db/tables/*.ts`): + - `view_metas` (publish metadata and view relations). + - `users` (cached user profiles). + - `workspace_member_profiles`. + - `rows` (row_id, row_key, version). +- `updateRows` in `src/application/services/js-services/cache/index.ts` applies row updates and + increments the `rows.version` entry for each row. + +### In-memory caches +- `rowDocs` Map in `src/application/services/js-services/cache/index.ts` avoids reopening row docs. +- `openedSet` in `src/application/db/index.ts` tracks which collab databases are open. +- LocalStorage RID cache: `af_database_blob_rid:{databaseId}` stores the last RID seen from blob diff. + +## Key data structures +- View doc root: `YjsEditorKey.database` with `YjsDatabaseKey.row_orders`. +- Row doc root: `YjsEditorKey.database_row` with `YjsDatabaseKey.cells`. +- Yjs key/type definitions live in `src/application/types.ts`. + +## Notes +- `getPageDoc` in `src/application/services/js-services/index.ts` uses `StrategyType.CACHE_ONLY` for app + views, so initial data is expected to come from IndexedDB or the sync protocol rather than an immediate fetch. +- Database row docs are keyed by `databaseId`, so multiple view tabs that share the same database reuse + the same row documents. + +## Desktop blob/diff row loading (reference) +This section summarizes how the desktop client (Rust) avoids per-row sync by using the +database blob diff API. Source of truth: `AppFlowy-Premium/frontend/rust-lib/flowy-database2`. + +### Diff-based row loader +- Row loader is selected in `database_row_loader.rs`; `DatabaseBlobRowLoader` is currently enabled. +- `DatabaseBlobRowLoader` requests `database_blob_diff(database_id, max_known_rid)` via + `DatabaseCollabServiceImpl::database_blob_diff` in `collab_service.rs`. +- `max_known_rid` is stored per database in sqlite table `db_database_blob_rid_cache` + (`database_blob_rid_cache.rs`). +- A shared in-memory `BlobDiffCache` stores empty diffs for 30s to avoid repeated + "no changes" calls per RID. + +### Applying the diff +- The diff contains row updates with `encoded_collab_v1` plus optional row document updates. +- `DatabaseBlobRowLoader::prepare_diff` decodes rows and tracks missing/decode failures. +- `collab_service.merge_blob_rows(...)` merges the diff into local collab storage: + - It loads any local collab first, applies the server snapshot update on top + (preserving offline edits), and writes back to the KV store. + - Row document updates are persisted; delete markers from blob diffs are ignored + to avoid dropping offline edits. +- After merge, the loader builds row snapshots by opening `DatabaseRow` from the + merged `EncodedCollab`. + +### Missing rows and fallbacks +- If the diff is empty and a RID is known, the loader reads missing rows from + local cache first; missing rows can fall back to collab loading. +- If the diff is partial, it still reads local cache for remaining rows before + falling back to collab. +- If the diff request fails or returns non-ready status, the loader falls back + immediately to the collab row loader. +- When `auto_fetch=false`, the loader only reads local cache and skips remote + fallback. + +### Background prefetch (desktop) +- `DatabaseEditor::maybe_spawn_prefetch_missing_row_collabs` chooses: + - Blob loader prefetch (auto-fetch diff + merge) when blob backend is active. + - Missing-only collab prefetch otherwise (`prefetch_missing_row_collabs` in + `collab_service.rs`) which fetches and persists missing encoded collabs + without binding rows. + +### Desktop storage model +- Row collabs are persisted in the local KV store (`CollabKVDB`). +- The blob diff RID watermark persists in sqlite `db_database_blob_rid_cache`. +- Derived view caches and calculations are stored in sqlite (see + `database_rows_init.md` for the cache tables and backfill behavior). + +### Key desktop files +- `AppFlowy-Premium/frontend/rust-lib/flowy-database2/src/services/database/database_blob_row_loader.rs` +- `AppFlowy-Premium/frontend/rust-lib/flowy-database2/src/services/database/database_row_loader.rs` +- `AppFlowy-Premium/frontend/rust-lib/flowy-database2/src/services/database/database_blob_rid_cache.rs` +- `AppFlowy-Premium/frontend/rust-lib/flowy-database2/src/collab_service.rs` +- `AppFlowy-Premium/frontend/rust-lib/flowy-database2/database_rows_init.md` + +## Related files +- `src/components/app/hooks/useViewOperations.ts` +- `src/components/database/Database.tsx` +- `src/application/database-blob/index.ts` +- `src/application/database-yjs/row_meta.ts` +- `src/application/database-yjs/context.ts` +- `src/application/database-yjs/selector.ts` +- `src/application/db/index.ts` +- `src/application/db/tables/rows.ts` +- `src/application/services/js-services/cache/index.ts` +- `src/application/services/js-services/http/http_api.ts` +- `src/application/services/js-services/sync-protocol.ts` diff --git a/src/application/database-blob/index.ts b/src/application/database-blob/index.ts new file mode 100644 index 000000000..fc8a16b14 --- /dev/null +++ b/src/application/database-blob/index.ts @@ -0,0 +1,307 @@ +import { stringify as uuidStringify } from 'uuid'; + +import { getRowKey } from '@/application/database-yjs/row_meta'; +import { openCollabDBWithProvider } from '@/application/db'; +import { getCachedRowDoc } from '@/application/services/js-services/cache'; +import { databaseBlobDiff } from '@/application/services/js-services/http/http_api'; +import { applyYDoc } from '@/application/ydoc/apply'; +import { database_blob } from '@/proto/database_blob'; +import { Log } from '@/utils/log'; + +type DatabaseBlobRowRid = { + timestamp: number; + seqNo: number; +}; + +type RowDocSeed = { + bytes: Uint8Array; + encoderVersion: number; +}; + +const RID_CACHE_PREFIX = 'af_database_blob_rid:'; +const APPLY_CONCURRENCY = 6; +const DIFF_RETRY_COUNT = 2; +const DIFF_RETRY_DELAY_MS = 5000; +const MAX_ROW_DOC_SEEDS = 2000; + +const readyStatus = database_blob.DiffStatus.READY; + +const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); + +function ridCacheKey(databaseId: string) { + return `${RID_CACHE_PREFIX}${databaseId}`; +} + +function parseRid(rid?: database_blob.IDatabaseBlobRowRid | null): DatabaseBlobRowRid | null { + if (!rid) return null; + + const timestamp = typeof rid.timestamp === 'number' ? rid.timestamp : Number(rid.timestamp); + + if (!Number.isFinite(timestamp)) return null; + + return { + timestamp, + seqNo: rid.seqNo ?? 0, + }; +} + +function readCachedRid(databaseId: string): DatabaseBlobRowRid | null { + try { + const raw = localStorage.getItem(ridCacheKey(databaseId)); + + if (!raw) return null; + const parsed = JSON.parse(raw) as DatabaseBlobRowRid; + + if (typeof parsed?.timestamp !== 'number' || typeof parsed?.seqNo !== 'number') return null; + return parsed; + } catch { + return null; + } +} + +function writeCachedRid(databaseId: string, rid: DatabaseBlobRowRid) { + try { + localStorage.setItem(ridCacheKey(databaseId), JSON.stringify(rid)); + } catch { + // Ignore storage failures (private mode/quota). + } +} + +function compareRid(a: DatabaseBlobRowRid, b: DatabaseBlobRowRid) { + if (a.timestamp === b.timestamp) { + return a.seqNo - b.seqNo; + } + + return a.timestamp > b.timestamp ? 1 : -1; +} + +const rowDocSeedCache = new Map(); + +function cacheRowDocSeed(rowKey: string, docState?: database_blob.ICollabDocState | null) { + if (getCachedRowDoc(rowKey)) return; + + const seed = getDocState(docState); + + if (!seed) return; + + rowDocSeedCache.set(rowKey, seed); + + while (rowDocSeedCache.size > MAX_ROW_DOC_SEEDS) { + const oldestKey = rowDocSeedCache.keys().next().value; + + if (!oldestKey) break; + rowDocSeedCache.delete(oldestKey); + } +} + +export function takeDatabaseRowDocSeed(rowKey: string): RowDocSeed | null { + const seed = rowDocSeedCache.get(rowKey); + + if (!seed) return null; + + rowDocSeedCache.delete(rowKey); + return seed; +} + +export function clearDatabaseRowDocSeedCache(databaseId: string) { + const prefix = `${databaseId}_rows_`; + + for (const key of rowDocSeedCache.keys()) { + if (key.startsWith(prefix)) { + rowDocSeedCache.delete(key); + } + } +} + +function maxRidFromDiff(diff: database_blob.DatabaseBlobDiffResponse): DatabaseBlobRowRid | null { + let maxRid: DatabaseBlobRowRid | null = null; + + const updates = [...diff.creates, ...diff.updates]; + + updates.forEach((update) => { + const rid = parseRid(update.rid); + + if (!rid) return; + if (!maxRid || compareRid(rid, maxRid) > 0) { + maxRid = rid; + } + }); + + diff.deletes.forEach((del) => { + const rid = parseRid(del.rid); + + if (!rid) return; + if (!maxRid || compareRid(rid, maxRid) > 0) { + maxRid = rid; + } + }); + + return maxRid; +} + +function summarizeDiff(diff: database_blob.DatabaseBlobDiffResponse) { + const updates = diff.updates.length; + const creates = diff.creates.length; + const deletes = diff.deletes.length; + let rowDocStates = 0; + let documentDocStates = 0; + + [...diff.creates, ...diff.updates].forEach((update) => { + if (update.docState?.docState && update.docState.docState.length > 0) { + rowDocStates += 1; + } + + if (update.document?.docState?.docState && update.document.docState.docState.length > 0) { + documentDocStates += 1; + } + }); + + return { + creates, + updates, + deletes, + rowDocStates, + documentDocStates, + }; +} + +function getDocState(state?: database_blob.ICollabDocState | null) { + if (!state?.docState || state.docState.length === 0) return null; + return { + bytes: state.docState, + encoderVersion: typeof state.encoderVersion === 'number' ? state.encoderVersion : 1, + }; +} + +async function applyCollabUpdate(objectId: string, docState: database_blob.ICollabDocState) { + const state = getDocState(docState); + + if (!state) return; + + const cachedDoc = getCachedRowDoc(objectId); + + if (cachedDoc) { + Log.debug('[Database] apply blob update to cached doc', { + objectId, + bytes: state.bytes.length, + encoderVersion: state.encoderVersion, + }); + applyYDoc(cachedDoc, state.bytes, state.encoderVersion); + return; + } + + const { doc, provider } = await openCollabDBWithProvider(objectId); + + try { + applyYDoc(doc, state.bytes, state.encoderVersion); + } finally { + await provider.destroy(); + doc.destroy(); + } +} + +async function applyRowUpdate(databaseId: string, update: database_blob.IDatabaseBlobRowUpdate) { + const rowIdBytes = update.rowId; + + if (!rowIdBytes || rowIdBytes.length !== 16) return; + + const rowId = uuidStringify(rowIdBytes); + const rowDocState = update.docState; + + if (rowDocState) { + const rowKey = getRowKey(databaseId, rowId); + + cacheRowDocSeed(rowKey, rowDocState); + await applyCollabUpdate(rowKey, rowDocState); + } + + const doc = update.document; + + if (!doc || doc.deleted) return; + + if (!doc.docState) return; + + const docIdBytes = doc.documentId; + + if (!docIdBytes || docIdBytes.length !== 16) return; + + const docId = uuidStringify(docIdBytes); + + await applyCollabUpdate(docId, doc.docState); +} + +async function applyDiff(databaseId: string, diff: database_blob.DatabaseBlobDiffResponse) { + const updates = [...diff.creates, ...diff.updates]; + + for (let i = 0; i < updates.length; i += APPLY_CONCURRENCY) { + const batch = updates.slice(i, i + APPLY_CONCURRENCY); + + await Promise.all(batch.map((update) => applyRowUpdate(databaseId, update))); + } +} + +async function fetchReadyDiff(workspaceId: string, databaseId: string) { + const cachedRid = readCachedRid(databaseId); + const request = database_blob.DatabaseBlobDiffRequest.create({ + maxKnownRid: cachedRid ? { timestamp: cachedRid.timestamp, seqNo: cachedRid.seqNo } : undefined, + version: 1, + }); + + Log.debug('[Database] blob diff request', { + workspaceId, + databaseId, + maxKnownRid: cachedRid ?? null, + }); + + for (let attempt = 0; attempt <= DIFF_RETRY_COUNT; attempt += 1) { + const startedAt = Date.now(); + const diff = await databaseBlobDiff(workspaceId, databaseId, request); + + Log.debug('[Database] blob diff response', { + databaseId, + status: diff.status, + retryAfterSecs: diff.retryAfterSecs ?? null, + durationMs: Date.now() - startedAt, + attempt, + ...summarizeDiff(diff), + }); + + if (diff.status === readyStatus) { + return diff; + } + + if (attempt >= DIFF_RETRY_COUNT) { + break; + } + + await sleep(DIFF_RETRY_DELAY_MS); + } + + throw new Error('database blob diff is not ready'); +} + +export async function prefetchDatabaseBlobDiff(workspaceId: string, databaseId: string) { + const diff = await fetchReadyDiff(workspaceId, databaseId); + const applyStartedAt = Date.now(); + + await applyDiff(databaseId, diff); + + Log.debug('[Database] blob diff persisted to IndexedDB', { + databaseId, + durationMs: Date.now() - applyStartedAt, + ...summarizeDiff(diff), + }); + Log.debug('[Database] blob seed cache size', { + databaseId, + seedCount: rowDocSeedCache.size, + }); + + const maxRid = maxRidFromDiff(diff); + + if (maxRid) { + writeCachedRid(databaseId, maxRid); + Log.debug('[Database] blob updated rid cache', { databaseId, maxRid }); + } + + return diff; +} diff --git a/src/application/database-yjs/context.ts b/src/application/database-yjs/context.ts index 698ae0601..54c675f22 100644 --- a/src/application/database-yjs/context.ts +++ b/src/application/database-yjs/context.ts @@ -1,7 +1,7 @@ import EventEmitter from 'events'; import { AxiosInstance } from 'axios'; -import { createContext, useContext } from 'react'; +import { createContext, useContext, useEffect } from 'react'; import { CreateDatabaseViewPayload, @@ -48,6 +48,7 @@ export interface DatabaseContextState { */ activeViewId: string; rowDocMap: Record | null; + ensureRowDoc?: (rowId: string) => Promise | void; isDatabaseRowPage?: boolean; paddingStart?: number; paddingEnd?: number; @@ -133,9 +134,13 @@ export const useIsDatabaseRowPage = () => { }; export const useRow = (rowId: string) => { - const rows = useRowDocMap(); + const { rowDocMap, ensureRowDoc } = useDatabaseContext(); - return rows?.[rowId]?.getMap(YjsEditorKey.data_section); + useEffect(() => { + void ensureRowDoc?.(rowId); + }, [ensureRowDoc, rowId]); + + return rowDocMap?.[rowId]?.getMap(YjsEditorKey.data_section); }; export const useRowData = (rowId: string) => { diff --git a/src/application/database-yjs/selector.ts b/src/application/database-yjs/selector.ts index 6e8a869f0..cbfc76515 100644 --- a/src/application/database-yjs/selector.ts +++ b/src/application/database-yjs/selector.ts @@ -38,6 +38,7 @@ import { subscribeRollupCache, } from '@/application/database-yjs/rollup/cache'; import { getMetaJSON, getRowKey } from '@/application/database-yjs/row_meta'; +import { openCollabDBWithProvider } from '@/application/db'; import { sortBy } from '@/application/database-yjs/sort'; import { DatabaseViewLayout, @@ -752,6 +753,7 @@ export function useRowsByGroup(groupId: string) { export function useRowOrdersSelector() { const rows = useRowDocMap(); const [rowOrders, setRowOrders] = useState(); + const [cachedRowDocs, setCachedRowDocs] = useState>({}); const view = useDatabaseView(); const sorts = view?.get(YjsDatabaseKey.sorts); const fields = useDatabaseFields(); @@ -759,14 +761,28 @@ export function useRowOrdersSelector() { const database = useDatabase(); const { databaseDoc, loadView, createRowDoc, getViewIdFromDatabaseId } = useDatabaseContext(); const [rollupWatchVersion, setRollupWatchVersion] = useState(0); + const cachedRowDocsRef = useRef>({}); + const cachedRowDocPendingRef = useRef>>(new Map()); + const backgroundQueueRef = useRef>(new Set()); + const backgroundLoadingRef = useRef(false); + const backgroundCancelledRef = useRef(false); + + useEffect(() => { + cachedRowDocsRef.current = cachedRowDocs; + }, [cachedRowDocs]); + + const rowDocsForConditions = useMemo( + () => ({ ...cachedRowDocs, ...(rows || {}) }), + [cachedRowDocs, rows] + ); const relationTextGetter = useCallback( (rowId: string, fieldId: string) => { - if (!rows || !fields || !database) return ''; + if (!fields || !database) return ''; const field = fields.get(fieldId); if (!field || Number(field.get(YjsDatabaseKey.type)) !== FieldType.Relation) return ''; - const rowDoc = rows[rowId]; + const rowDoc = rowDocsForConditions[rowId]; const rowSharedRoot = rowDoc?.getMap(YjsEditorKey.data_section); const row = rowSharedRoot?.get(YjsEditorKey.database_row) as YDatabaseRow | undefined; @@ -783,16 +799,16 @@ export function useRowOrdersSelector() { getViewIdFromDatabaseId, }); }, - [rows, fields, database, databaseDoc, loadView, createRowDoc, getViewIdFromDatabaseId] + [rowDocsForConditions, fields, database, databaseDoc, loadView, createRowDoc, getViewIdFromDatabaseId] ); const rollupValueGetter = useCallback( (rowId: string, fieldId: string) => { - if (!rows || !fields || !database) return { value: '' }; + if (!fields || !database) return { value: '' }; const field = fields.get(fieldId); if (!field || Number(field.get(YjsDatabaseKey.type)) !== FieldType.Rollup) return { value: '' }; - const rowDoc = rows[rowId]; + const rowDoc = rowDocsForConditions[rowId]; const rowSharedRoot = rowDoc?.getMap(YjsEditorKey.data_section); const row = rowSharedRoot?.get(YjsEditorKey.database_row) as YDatabaseRow | undefined; @@ -809,7 +825,7 @@ export function useRowOrdersSelector() { getViewIdFromDatabaseId, }); }, - [rows, fields, database, databaseDoc, loadView, createRowDoc, getViewIdFromDatabaseId] + [rowDocsForConditions, fields, database, databaseDoc, loadView, createRowDoc, getViewIdFromDatabaseId] ); const rollupTextGetter = useCallback( @@ -822,9 +838,18 @@ export function useRowOrdersSelector() { const onConditionsChange = useCallback(() => { const originalRowOrders = view?.get(YjsDatabaseKey.row_orders).toJSON(); - if (!originalRowOrders || !rows) return; + if (!originalRowOrders) return; + + const hasConditions = (sorts?.length ?? 0) > 0 || (filters?.length ?? 0) > 0; + const rowDocCount = Object.keys(rowDocsForConditions).length; + const isRowDataComplete = rowDocCount >= originalRowOrders.length; + + if (!hasConditions) { + setRowOrders(originalRowOrders); + return; + } - if (sorts?.length === 0 && filters?.length === 0) { + if (!isRowDataComplete) { setRowOrders(originalRowOrders); return; } @@ -832,14 +857,14 @@ export function useRowOrdersSelector() { let rowOrders: Row[] | undefined; if (sorts?.length) { - rowOrders = sortBy(originalRowOrders, sorts, fields, rows, { + rowOrders = sortBy(originalRowOrders, sorts, fields, rowDocsForConditions, { getRelationCellText: relationTextGetter, getRollupCellValue: rollupValueGetter, }); } if (filters?.length) { - rowOrders = filterBy(rowOrders ?? originalRowOrders, filters, fields, rows, { + rowOrders = filterBy(rowOrders ?? originalRowOrders, filters, fields, rowDocsForConditions, { getRelationCellText: relationTextGetter, getRollupCellText: rollupTextGetter, }); @@ -850,7 +875,16 @@ export function useRowOrdersSelector() { } else { setRowOrders(originalRowOrders); } - }, [fields, filters, rows, sorts, view, relationTextGetter, rollupValueGetter, rollupTextGetter]); + }, [ + fields, + filters, + rowDocsForConditions, + sorts, + view, + relationTextGetter, + rollupValueGetter, + rollupTextGetter, + ]); useEffect(() => { onConditionsChange(); @@ -940,6 +974,129 @@ export function useRowOrdersSelector() { }; }, [onConditionsChange, view, fields, filters, sorts, rows]); + useEffect(() => { + return () => { + backgroundCancelledRef.current = true; + }; + }, []); + + useEffect(() => { + if ((sorts?.length ?? 0) === 0 && (filters?.length ?? 0) === 0) return; + + const rowOrdersData = view?.get(YjsDatabaseKey.row_orders)?.toJSON() as { id: string }[] | undefined; + + if (!rowOrdersData) return; + + rowOrdersData.forEach(({ id }) => { + if (!rowDocsForConditions[id]) { + backgroundQueueRef.current.add(id); + } + }); + + if (backgroundQueueRef.current.size === 0 || backgroundLoadingRef.current) return; + + backgroundLoadingRef.current = true; + backgroundCancelledRef.current = false; + + const BACKGROUND_BATCH_SIZE = 24; + const BACKGROUND_CONCURRENCY = 6; + + const drainQueue = async () => { + while (backgroundQueueRef.current.size > 0 && !backgroundCancelledRef.current) { + const batch = Array.from(backgroundQueueRef.current).slice(0, BACKGROUND_BATCH_SIZE); + + batch.forEach((rowId) => { + backgroundQueueRef.current.delete(rowId); + }); + + for (let i = 0; i < batch.length; i += BACKGROUND_CONCURRENCY) { + if (backgroundCancelledRef.current) break; + const slice = batch.slice(i, i + BACKGROUND_CONCURRENCY); + + await Promise.all( + slice.map(async (rowId) => { + if (rowDocsForConditions[rowId]) return; + + if (cachedRowDocPendingRef.current.has(rowId)) { + await cachedRowDocPendingRef.current.get(rowId); + return; + } + + const rowKey = getRowKey(databaseDoc.guid, rowId); + const pending = (async () => { + const { doc, provider } = await openCollabDBWithProvider(rowKey); + + await provider.destroy(); + return doc; + })(); + + cachedRowDocPendingRef.current.set(rowId, pending); + + try { + const doc = await pending; + + if (backgroundCancelledRef.current) { + doc.destroy(); + return; + } + + if (rows?.[rowId]) { + doc.destroy(); + return; + } + + setCachedRowDocs((prev) => { + if (prev[rowId] || rows?.[rowId]) return prev; + return { ...prev, [rowId]: doc }; + }); + } finally { + cachedRowDocPendingRef.current.delete(rowId); + } + }) + ); + } + + if (backgroundCancelledRef.current) break; + + await new Promise((resolve) => setTimeout(resolve, 0)); + } + + backgroundLoadingRef.current = false; + }; + + void drainQueue(); + }, [databaseDoc.guid, filters, rowDocsForConditions, rows, sorts, view]); + + useEffect(() => { + const cached = cachedRowDocsRef.current; + let changed = false; + const next: Record = {}; + + Object.entries(cached).forEach(([rowId, doc]) => { + if (rows?.[rowId]) { + doc.destroy(); + changed = true; + return; + } + + next[rowId] = doc; + }); + + if (changed) { + setCachedRowDocs(next); + } + }, [rows]); + + useEffect(() => { + const pendingRef = cachedRowDocPendingRef.current; + + return () => { + Object.values(cachedRowDocsRef.current).forEach((doc) => doc.destroy()); + cachedRowDocsRef.current = {}; + pendingRef.clear(); + }; + }, [databaseDoc.guid]); + useEffect(() => { if (!rows || !fields || !database || !loadView || !createRowDoc || !getViewIdFromDatabaseId) return; @@ -1083,11 +1240,14 @@ export function useRowOrdersSelector() { } export function useRowDataSelector(rowId: string) { - const rowMap = useRowDocMap(); - const rowDoc = rowMap?.[rowId]; + const { rowDocMap, ensureRowDoc } = useDatabaseContext(); - const rowSharedRoot = rowDoc?.getMap(YjsEditorKey.data_section); + useEffect(() => { + void ensureRowDoc?.(rowId); + }, [ensureRowDoc, rowId]); + const rowDoc = rowDocMap?.[rowId]; + const rowSharedRoot = rowDoc?.getMap(YjsEditorKey.data_section); const row = rowSharedRoot?.get(YjsEditorKey.database_row); return { diff --git a/src/application/db/index.ts b/src/application/db/index.ts index 2269fc8b0..e840dd331 100644 --- a/src/application/db/index.ts +++ b/src/application/db/index.ts @@ -74,6 +74,36 @@ export async function openCollabDB(name: string): Promise { return doc as YDoc; } +export async function openCollabDBWithProvider( + name: string, + options?: { awaitSync?: boolean } +): Promise<{ doc: YDoc; provider: IndexeddbPersistence }> { + const doc = new Y.Doc({ + guid: name, + }); + + const provider = new IndexeddbPersistence(name, doc); + + let resolve: (value: unknown) => void; + const promise = new Promise((resolveFn) => { + resolve = resolveFn; + }); + + provider.on('synced', () => { + if (!openedSet.has(name)) { + openedSet.add(name); + } + + resolve(true); + }); + + if (options?.awaitSync !== false) { + await promise; + } + + return { doc: doc as YDoc, provider }; +} + export async function closeCollabDB(name: string) { if (openedSet.has(name)) { openedSet.delete(name); diff --git a/src/application/services/js-services/cache/index.ts b/src/application/services/js-services/cache/index.ts index bc8eb077a..7f2ca852e 100644 --- a/src/application/services/js-services/cache/index.ts +++ b/src/application/services/js-services/cache/index.ts @@ -1,6 +1,6 @@ import { migrateDatabaseFieldTypes } from '@/application/database-yjs/migrations/rollup_fieldtype'; import { getRowKey } from '@/application/database-yjs/row_meta'; -import { closeCollabDB, db, openCollabDB } from '@/application/db'; +import { closeCollabDB, db, openCollabDB, openCollabDBWithProvider } from '@/application/db'; import { Fetcher, StrategyType } from '@/application/services/js-services/cache/types'; import { DatabaseId, @@ -435,18 +435,87 @@ export async function revalidateUser(fetcher: Fetcher) { return data; } -const rowDocs = new Map(); +type RowDocEntry = { + doc: YDoc; + whenSynced: Promise; +}; + +const ROW_SYNC_LOG_LIMIT = 50; +const ROW_FAST_LOG_LIMIT = 50; +let rowSyncLogCount = 0; +let rowFastLogCount = 0; + +const rowDocs = new Map(); + +async function getOrCreateRowDocEntry(rowKey: string): Promise { + const existing = rowDocs.get(rowKey); + + if (existing) { + return existing; + } + + const startedAt = Date.now(); + const { doc, provider } = await openCollabDBWithProvider(rowKey, { awaitSync: false }); + const whenSynced = provider.synced + ? Promise.resolve() + : new Promise((resolve) => { + provider.on('synced', () => { + if (rowSyncLogCount < ROW_SYNC_LOG_LIMIT) { + rowSyncLogCount += 1; + const rowSharedRoot = doc.getMap(YjsEditorKey.data_section); + const hasRowData = rowSharedRoot.has(YjsEditorKey.database_row); + + Log.debug('[Database] row doc synced', { + rowKey, + durationMs: Date.now() - startedAt, + hasRowData, + }); + } + + resolve(); + }); + }); + const entry = { doc, whenSynced }; + + rowDocs.set(rowKey, entry); + return entry; +} export async function createRowDoc(rowKey: string) { - if (rowDocs.has(rowKey)) { - return rowDocs.get(rowKey) as YDoc; + const entry = await getOrCreateRowDocEntry(rowKey); + + await entry.whenSynced; + + return entry.doc; +} + +export async function createRowDocFast( + rowKey: string, + seed?: { bytes: Uint8Array; encoderVersion: number } +) { + const entry = await getOrCreateRowDocEntry(rowKey); + + if (seed) { + applyYDoc(entry.doc, seed.bytes, seed.encoderVersion); } - const doc = await openCollabDB(rowKey); + if (rowFastLogCount < ROW_FAST_LOG_LIMIT) { + rowFastLogCount += 1; + const rowSharedRoot = entry.doc.getMap(YjsEditorKey.data_section); + const hasRowData = rowSharedRoot.has(YjsEditorKey.database_row); - rowDocs.set(rowKey, doc); + Log.debug('[Database] row doc fast open', { + rowKey, + hasSeed: Boolean(seed), + hasRowData, + }); + } + + return entry.doc; +} - return doc; +export function getCachedRowDoc(rowKey: string): YDoc | undefined { + return rowDocs.get(rowKey)?.doc; } export function deleteRowDoc(rowKey: string) { diff --git a/src/application/services/js-services/http/http_api.ts b/src/application/services/js-services/http/http_api.ts index ee828d52c..e08e06825 100644 --- a/src/application/services/js-services/http/http_api.ts +++ b/src/application/services/js-services/http/http_api.ts @@ -29,6 +29,9 @@ import { CreatePageResponse, CreateSpacePayload, CreateWorkspacePayload, + DatabaseCsvImportCreateResponse, + DatabaseCsvImportRequest, + DatabaseCsvImportStatusResponse, DatabaseId, FolderView, GenerateAISummaryRowPayload, @@ -65,6 +68,7 @@ import { } from '@/application/types'; import { notify } from '@/components/_shared/notify'; import { RepeatedChatMessage } from '@/components/chat'; +import { database_blob } from '@/proto/database_blob'; import { getAppFlowyFileUploadUrl, getAppFlowyFileUrl } from '@/utils/file-storage-url'; import { Log } from '@/utils/log'; @@ -783,6 +787,35 @@ export async function getPageCollab(workspaceId: string, viewId: string) { }; } +export async function databaseBlobDiff( + workspaceId: string, + databaseId: string, + request: database_blob.IDatabaseBlobDiffRequest +) { + if (!axiosInstance) { + return Promise.reject({ + code: -1, + message: 'API service not initialized', + }); + } + + const url = `/api/workspace/${workspaceId}/database/${databaseId}/blob/diff`; + const payload = database_blob.DatabaseBlobDiffRequest.encode(request).finish(); + + const response = await axiosInstance.post(url, payload, { + responseType: 'arraybuffer', + headers: { + 'Content-Type': 'application/octet-stream', + }, + transformRequest: [(data) => data], + validateStatus: (status) => status === 200 || status === 202, + }); + + const bytes = new Uint8Array(response.data); + + return database_blob.DatabaseBlobDiffResponse.decode(bytes); +} + export async function getPublishView(publishNamespace: string, publishName: string) { const meta = await getPublishViewMeta(publishNamespace, publishName); const blob = await getPublishViewBlob(publishNamespace, publishName); @@ -1443,6 +1476,62 @@ export async function uploadImportFile(presignedUrl: string, file: File, onProgr }); } +export async function createDatabaseCsvImportTask( + workspaceId: string, + payload: DatabaseCsvImportRequest +): Promise { + const url = `/api/workspace/${workspaceId}/database/import/csv`; + + return executeAPIRequest(() => + axiosInstance?.post>(url, payload) + ); +} + +export async function uploadDatabaseCsvImportFile( + presignedUrl: string, + file: File, + onProgress?: (progress: number) => void +) { + const response = await axios.put(presignedUrl, file, { + onUploadProgress: (progressEvent) => { + if (!onProgress) return; + const { progress = 0 } = progressEvent; + + Log.debug(`Upload progress: ${progress * 100}%`); + onProgress(progress); + }, + headers: { + 'Content-Type': 'text/csv', + }, + }); + + if (response.status === 200 || response.status === 204) { + return; + } + + return Promise.reject({ + code: -1, + message: `Upload csv file failed. ${response.statusText}`, + }); +} + +export async function getDatabaseCsvImportStatus( + workspaceId: string, + taskId: string +): Promise { + const url = `/api/workspace/${workspaceId}/database/import/csv/${taskId}`; + + return executeAPIRequest(() => + axiosInstance?.get>(url) + ); +} + +export async function cancelDatabaseCsvImportTask(workspaceId: string, taskId: string): Promise { + const url = `/api/workspace/${workspaceId}/database/import/csv/${taskId}/cancel`; + + return executeAPIVoidRequest(() => axiosInstance?.post(url)); +} + export async function createDatabaseView( workspaceId: string, viewId: string, diff --git a/src/application/services/js-services/index.ts b/src/application/services/js-services/index.ts index 7b2c944cb..7751b7b7b 100644 --- a/src/application/services/js-services/index.ts +++ b/src/application/services/js-services/index.ts @@ -39,6 +39,9 @@ import { CreatePagePayload, CreateSpacePayload, CreateWorkspacePayload, + DatabaseCsvImportCreateResponse, + DatabaseCsvImportRequest, + DatabaseCsvImportStatusResponse, DatabaseRelations, DuplicatePublishView, DuplicatePublishViewResponse, @@ -595,6 +598,32 @@ export class AFClientService implements AFService { await APIService.uploadImportFile(task.presignedUrl, file, onProgress); } + async createDatabaseCsvImportTask( + workspaceId: string, + payload: DatabaseCsvImportRequest + ): Promise { + return APIService.createDatabaseCsvImportTask(workspaceId, payload); + } + + async uploadDatabaseCsvImportFile( + presignedUrl: string, + file: File, + onProgress?: (progress: number) => void + ): Promise { + return APIService.uploadDatabaseCsvImportFile(presignedUrl, file, onProgress); + } + + async getDatabaseCsvImportStatus( + workspaceId: string, + taskId: string + ): Promise { + return APIService.getDatabaseCsvImportStatus(workspaceId, taskId); + } + + async cancelDatabaseCsvImportTask(workspaceId: string, taskId: string): Promise { + return APIService.cancelDatabaseCsvImportTask(workspaceId, taskId); + } + async createSpace(workspaceId: string, payload: CreateSpacePayload) { return APIService.createSpace(workspaceId, payload); } diff --git a/src/application/services/services.type.ts b/src/application/services/services.type.ts index b4395c6c1..eae2fa388 100644 --- a/src/application/services/services.type.ts +++ b/src/application/services/services.type.ts @@ -20,6 +20,9 @@ import { CreatePageResponse, CreateSpacePayload, CreateWorkspacePayload, + DatabaseCsvImportCreateResponse, + DatabaseCsvImportRequest, + DatabaseCsvImportStatusResponse, DatabaseRelations, DuplicatePublishView, DuplicatePublishViewResponse, @@ -145,6 +148,17 @@ export interface AppService { getActiveSubscription: (workspaceId: string) => Promise; getWorkspaceSubscriptions: (workspaceId: string) => Promise; importFile: (file: File, onProgress: (progress: number) => void) => Promise; + createDatabaseCsvImportTask: ( + workspaceId: string, + payload: DatabaseCsvImportRequest + ) => Promise; + uploadDatabaseCsvImportFile: ( + presignedUrl: string, + file: File, + onProgress?: (progress: number) => void + ) => Promise; + getDatabaseCsvImportStatus: (workspaceId: string, taskId: string) => Promise; + cancelDatabaseCsvImportTask: (workspaceId: string, taskId: string) => Promise; createSpace: (workspaceId: string, payload: CreateSpacePayload) => Promise; updateSpace: (workspaceId: string, payload: UpdateSpacePayload) => Promise; addAppPage: (workspaceId: string, parentViewId: string, payload: CreatePagePayload) => Promise; diff --git a/src/application/types.ts b/src/application/types.ts index a6c92af36..b6bd2ee36 100644 --- a/src/application/types.ts +++ b/src/application/types.ts @@ -1269,6 +1269,60 @@ export interface CreateDatabaseViewResponse { database_update?: number[]; } +export enum DatabaseCsvImportMode { + Create = 'create', + Append = 'append', + Replace = 'replace', +} + +export enum DatabaseCsvImportLayout { + Grid = 'grid', + Board = 'board', + Calendar = 'calendar', +} + +export interface DatabaseCsvOptions { + has_header: boolean; + delimiter: string; + quote: string; + escape?: string; + encoding: string; + trim: boolean; +} + +export interface DatabaseCsvImportRequest { + content_length: number; + md5_base64?: string; + mode: DatabaseCsvImportMode; + parent_view_id?: string; + database_id?: string; + name?: string; + layout: DatabaseCsvImportLayout; + csv: DatabaseCsvOptions; +} + +export interface DatabaseCsvImportCreateResponse { + task_id: string; + presigned_url: string; + expires_in_secs: number; +} + +export interface DatabaseCsvImportProgress { + rows_processed: number; + rows_total: number; +} + +export type DatabaseCsvImportStatus = 'Pending' | 'Completed' | 'Failed' | 'Expire' | 'Cancel'; + +export interface DatabaseCsvImportStatusResponse { + task_id: string; + status: DatabaseCsvImportStatus; + progress: DatabaseCsvImportProgress; + database_id?: string; + view_id?: string; + error?: string; +} + export interface CreateSpacePayload { name?: string; space_icon?: string; diff --git a/src/application/ydoc/apply/index.ts b/src/application/ydoc/apply/index.ts index 87f4cdb87..b833704fa 100644 --- a/src/application/ydoc/apply/index.ts +++ b/src/application/ydoc/apply/index.ts @@ -8,12 +8,16 @@ import { CollabOrigin } from '@/application/types'; * @param doc local Y.Doc * @param state state from server */ -export function applyYDoc(doc: Y.Doc, state: Uint8Array) { +export function applyYDoc(doc: Y.Doc, state: Uint8Array, encoderVersion = 1) { Y.transact( doc, () => { try { - Y.applyUpdate(doc, state, CollabOrigin.Remote); + if (encoderVersion === 2) { + Y.applyUpdateV2(doc, state, CollabOrigin.Remote); + } else { + Y.applyUpdate(doc, state, CollabOrigin.Remote); + } } catch(e) { console.error('Error applying', doc, e); throw e; diff --git a/src/components/app/hooks/useViewOperations.ts b/src/components/app/hooks/useViewOperations.ts index b256ee1f1..1c5ad4ba8 100644 --- a/src/components/app/hooks/useViewOperations.ts +++ b/src/components/app/hooks/useViewOperations.ts @@ -233,7 +233,8 @@ export function useViewOperations() { throw new Error('Service or workspace not found'); } - const res = await service?.getPageDoc(currentWorkspaceId, id); + const workspaceId = currentWorkspaceId; + const res = await service?.getPageDoc(workspaceId, id); if (!res) { throw new Error('View not found'); @@ -338,11 +339,14 @@ export function useViewOperations() { throw new Error('Database not found'); } - res.guid = databaseId; + const resolvedDatabaseId = databaseId; + + res.guid = resolvedDatabaseId; const { doc } = registerSyncContext({ doc: res, collabType }); // Set the view ID on the doc for React state tracking doc.object_id = id; + return doc; } catch (e) { return Promise.reject(e); diff --git a/src/components/database/Database.tsx b/src/components/database/Database.tsx index af3e17693..cd85c2e5b 100644 --- a/src/components/database/Database.tsx +++ b/src/components/database/Database.tsx @@ -1,7 +1,12 @@ -import { debounce } from 'lodash-es'; -import { useCallback, useEffect, useMemo, useState } from 'react'; +import { useCallback, useEffect, useRef, useState } from 'react'; +import { + clearDatabaseRowDocSeedCache, + prefetchDatabaseBlobDiff, + takeDatabaseRowDocSeed, +} from '@/application/database-blob'; import { getRowKey } from '@/application/database-yjs/row_meta'; +import { createRowDocFast } from '@/application/services/js-services/cache'; import { AppendBreadcrumb, CreateDatabaseViewPayload, @@ -11,9 +16,7 @@ import { LoadViewMeta, RowId, UIVariant, - YDatabase, YDoc, - YjsDatabaseKey, YjsEditorKey, } from '@/application/types'; import { DatabaseRow } from '@/components/database/DatabaseRow'; @@ -90,64 +93,107 @@ function Database(props: Database2Props) { isDocumentBlock: _isDocumentBlock, embeddedHeight, onViewIdsChanged, + workspaceId, } = props; - const database = doc.getMap(YjsEditorKey.data_section)?.get(YjsEditorKey.database) as YDatabase | null; - const views = database?.get(YjsDatabaseKey.views); + const [rowDocMap, setRowDocMap] = useState>({}); + const rowDocMapRef = useRef(rowDocMap); + const pendingRowDocsRef = useRef>>(new Map()); + const prefetchPromisesRef = useRef>>(new Map()); + const blobPrefetchPromiseRef = useRef | null>(null); + const blobPrefetchDoneRef = useRef(false); + const pendingRowSyncRef = useRef>(new Set()); + const syncedRowKeysRef = useRef>(new Set()); - const findDatabaseViewByViewId = useCallback((viewsMap: typeof views, targetViewId: string) => { - if (!viewsMap) return null; + useEffect(() => { + rowDocMapRef.current = rowDocMap; + }, [rowDocMap]); - const directView = viewsMap.get(targetViewId); + const registerRowSync = useCallback( + (rowKey: string) => { + if (!createRowDoc) return; - if (directView) return directView; + if (syncedRowKeysRef.current.has(rowKey)) { + return; + } - return null; - }, []); + Log.debug('[Database] register row sync', { + rowKey, + databaseId: doc.guid, + }); - const view = findDatabaseViewByViewId(views, databasePageId); - const rowOrders = view?.get(YjsDatabaseKey.row_orders); + syncedRowKeysRef.current.add(rowKey); + void createRowDoc(rowKey); + }, + [createRowDoc, doc.guid] + ); - const [rowIds, setRowIds] = useState([]); - const [rowDocMap, setRowDocMap] = useState | null>(null); + const flushPendingRowSync = useCallback(() => { + if (!blobPrefetchDoneRef.current) return; - const updateRowMap = useCallback(async () => { - const newRowMap: Record = {}; + const pending = Array.from(pendingRowSyncRef.current); - if (!rowIds || !createRowDoc) { - return; - } + if (!pending.length) return; - const promises = rowIds.map(async (id) => { - if (!id) { - return; - } + Log.debug('[Database] flush pending row sync', { + databaseId: doc.guid, + pendingCount: pending.length, + }); - const rowKey = getRowKey(doc.guid, id); - const rowDoc = await createRowDoc(rowKey); + pendingRowSyncRef.current.clear(); + pending.forEach((rowKey) => registerRowSync(rowKey)); + }, [registerRowSync, doc.guid]); - return { id, rowDoc }; - }); + const markPrefetchDone = useCallback(() => { + if (blobPrefetchDoneRef.current) return; + blobPrefetchDoneRef.current = true; + Log.debug('[Database] blob prefetch completed', { databaseId: doc.guid }); + flushPendingRowSync(); + }, [flushPendingRowSync, doc.guid]); - const results = await Promise.all(promises); + const ensureBlobPrefetch = useCallback(() => { + const databaseId = doc.guid; - results.forEach((result) => { - if (result) { - newRowMap[result.id] = result.rowDoc; - } - }); + if (!workspaceId || !databaseId) return null; - setRowDocMap(newRowMap); - }, [createRowDoc, doc.guid, rowIds]); + const existingPromise = prefetchPromisesRef.current.get(databaseId); - const debounceUpdateRowMap = useMemo(() => { - return debounce(updateRowMap, 200); - }, [updateRowMap]); + if (existingPromise) { + blobPrefetchPromiseRef.current = existingPromise; + void existingPromise.finally(markPrefetchDone); + Log.debug('[Database] reuse blob prefetch promise', { databaseId }); + return existingPromise; + } + + Log.debug('[Database] start blob prefetch', { databaseId, workspaceId }); + + const promise = prefetchDatabaseBlobDiff(workspaceId, databaseId) + .catch((error) => { + Log.warn('[Database] database blob diff prefetch failed', { + databaseId, + error, + }); + prefetchPromisesRef.current.delete(databaseId); + }) + .then(() => undefined) + .finally(markPrefetchDone); + + prefetchPromisesRef.current.set(databaseId, promise); + blobPrefetchPromiseRef.current = promise; + return promise; + }, [workspaceId, doc.guid, markPrefetchDone]); useEffect(() => { - void debounceUpdateRowMap(); - }, [debounceUpdateRowMap]); + void ensureBlobPrefetch(); + }, [ensureBlobPrefetch]); + useEffect(() => { + const databaseId = doc.guid; + + return () => { + clearDatabaseRowDocSeedCache(databaseId); + }; + }, [doc.guid]); const createNewRowDoc = useCallback( async (rowKey: string) => { @@ -155,34 +201,138 @@ function Database(props: Database2Props) { throw new Error('createRowDoc function is not provided'); } - const rowDoc = await createRowDoc(rowKey); + const [databaseId] = rowKey.split('_rows_'); - return rowDoc; + if (databaseId && databaseId === doc.guid) { + Log.debug('[Database] create row doc waiting for blob prefetch', { + rowKey, + databaseId, + }); + const prefetchPromise = ensureBlobPrefetch(); + + if (prefetchPromise) { + await prefetchPromise; + } + } + + return createRowDoc(rowKey); }, - [createRowDoc] + [createRowDoc, doc.guid, ensureBlobPrefetch] ); - const handleUpdateRowDocMap = useCallback(async () => { - const rowOrdersData = rowOrders?.toJSON() || []; - const ids = rowOrdersData.map(({ id }: { id: string }) => id); + const queueRowSync = useCallback( + (rowKey: string, rowId: string) => { + if (blobPrefetchDoneRef.current) { + registerRowSync(rowKey); + return; + } - Log.debug('[Database] row orders updated', { - activeViewId, - databasePageId, - ids, - raw: rowOrdersData, - }); - setRowIds(ids); - }, [databasePageId, rowOrders, activeViewId]); + Log.debug('[Database] queue row sync', { + rowId, + rowKey, + databaseId: doc.guid, + }); - useEffect(() => { - void handleUpdateRowDocMap(); + pendingRowSyncRef.current.add(rowKey); - rowOrders?.observe(handleUpdateRowDocMap); - return () => { - rowOrders?.unobserve(handleUpdateRowDocMap); - }; - }, [handleUpdateRowDocMap, rowOrders]); + if (blobPrefetchDoneRef.current) { + pendingRowSyncRef.current.delete(rowKey); + registerRowSync(rowKey); + } + }, + [registerRowSync, doc.guid] + ); + + const ensureRowDoc = useCallback( + async (rowId: string) => { + if (!createRowDoc || !rowId) return; + const existing = rowDocMapRef.current[rowId]; + + if (existing) { + return existing; + } + + const pending = pendingRowDocsRef.current.get(rowId); + + if (pending) { + return pending; + } + + const promise = (async () => { + const rowKey = getRowKey(doc.guid, rowId); + + void ensureBlobPrefetch(); + + const loadStartedAt = performance.now(); + const seed = takeDatabaseRowDocSeed(rowKey); + + Log.debug('[Database] ensure row doc start', { + rowId, + rowKey, + databaseId: doc.guid, + hasSeed: Boolean(seed), + prefetchDone: blobPrefetchDoneRef.current, + }); + + try { + const rowDoc = await createRowDocFast(rowKey, seed ?? undefined); + const loadDurationMs = Math.round(performance.now() - loadStartedAt); + const rowSharedRoot = rowDoc?.getMap(YjsEditorKey.data_section); + const hasRowData = Boolean(rowSharedRoot?.get(YjsEditorKey.database_row)); + + Log.debug('[Database] ensure row doc loaded', { + rowId, + rowKey, + databaseId: doc.guid, + hasSeed: Boolean(seed), + prefetchDone: blobPrefetchDoneRef.current, + loadDurationMs, + hasRowData, + }); + + queueRowSync(rowKey, rowId); + + return rowDoc; + } catch (error) { + Log.warn('[Database] row doc load failed', { + rowId, + rowKey, + databaseId: doc.guid, + error, + }); + return undefined; + } + })(); + + pendingRowDocsRef.current.set(rowId, promise); + + try { + const rowDoc = await promise; + + if (rowDoc) { + setRowDocMap((prev) => { + if (prev[rowId]) return prev; + return { ...prev, [rowId]: rowDoc }; + }); + } + + return rowDoc; + } finally { + pendingRowDocsRef.current.delete(rowId); + } + }, + [createRowDoc, doc.guid, ensureBlobPrefetch, queueRowSync] + ); + + useEffect(() => { + rowDocMapRef.current = {}; + pendingRowDocsRef.current.clear(); + blobPrefetchPromiseRef.current = null; + blobPrefetchDoneRef.current = false; + pendingRowSyncRef.current.clear(); + syncedRowKeysRef.current.clear(); + setRowDocMap({}); + }, [doc.guid]); const [openModalRowId, setOpenModalRowId] = useState(() => modalRowId || null); const [openModalViewId, setOpenModalViewId] = useState(() => (modalRowId ? activeViewId : null)); @@ -225,7 +375,7 @@ function Database(props: Database2Props) { setOpenModalViewId(viewId); setOpenModalRowDatabaseDoc(viewDoc); - const rowDoc = await createRowDoc?.(getRowKey(viewDoc.guid, rowId)); + const rowDoc = await createNewRowDoc(getRowKey(viewDoc.guid, rowId)); if (!rowDoc) { throw new Error('Row document not found'); @@ -239,7 +389,7 @@ function Database(props: Database2Props) { setOpenModalRowId(rowId); }, - [createRowDoc, loadView, navigateToView, onOpenRowPage, readOnly] + [createNewRowDoc, loadView, navigateToView, onOpenRowPage, readOnly] ); const handleCloseRowModal = useCallback(() => { @@ -249,7 +399,7 @@ function Database(props: Database2Props) { setOpenModalViewId(null); }, []); - if (!rowDocMap || !activeViewId) { + if (!activeViewId) { return
; } @@ -263,6 +413,7 @@ function Database(props: Database2Props) { rowDocMap={rowDocMap} readOnly={readOnly} createRowDoc={createNewRowDoc} + ensureRowDoc={ensureRowDoc} calendarViewTypeMap={calendarViewTypeMap} setCalendarViewType={setCalendarViewType} > @@ -294,6 +445,7 @@ function Database(props: Database2Props) { navigateToRow={handleOpenRow} readOnly={readOnly} createRowDoc={createNewRowDoc} + ensureRowDoc={ensureRowDoc} calendarViewTypeMap={calendarViewTypeMap} setCalendarViewType={setCalendarViewType} closeRowDetailModal={handleCloseRowModal} diff --git a/src/components/database/DatabaseViews.tsx b/src/components/database/DatabaseViews.tsx index cb2bd9a4d..6f022b23f 100644 --- a/src/components/database/DatabaseViews.tsx +++ b/src/components/database/DatabaseViews.tsx @@ -66,6 +66,9 @@ function DatabaseViews({ const toggleExpanded = useCallback(() => { setConditionsExpanded((prev) => !prev); }, []); + const setExpanded = useCallback((expanded: boolean) => { + setConditionsExpanded(expanded); + }, []); const [openFilterId, setOpenFilterId] = useState(); // Get active view from selector state, or directly from Yjs if not yet in state @@ -128,6 +131,7 @@ function DatabaseViews({ value={{ expanded: conditionsExpanded, toggleExpanded, + setExpanded, openFilterId, setOpenFilterId, }} diff --git a/src/components/database/components/cell/primary/PrimaryCell.tsx b/src/components/database/components/cell/primary/PrimaryCell.tsx index 09ab169f1..02b7c344b 100644 --- a/src/components/database/components/cell/primary/PrimaryCell.tsx +++ b/src/components/database/components/cell/primary/PrimaryCell.tsx @@ -1,11 +1,11 @@ import { useMemo, useRef } from 'react'; import { RowMetaKey, useDatabaseContext, useRowMetaSelector } from '@/application/database-yjs'; -import { CellProps, TextCell as CellType } from '@/application/database-yjs/cell.type'; +import { Cell as CellType, CellProps } from '@/application/database-yjs/cell.type'; import { useUpdateRowMetaDispatch } from '@/application/database-yjs/dispatch'; import { ReactComponent as DocumentSvg } from '@/assets/icons/doc.svg'; import { CustomIconPopover } from '@/components/_shared/cutsom-icon'; -import { TextCell } from '@/components/database/components/cell/text'; +import { Cell as DatabaseCell } from '@/components/database/components/cell'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils'; import { isFlagEmoji } from '@/utils/emoji'; @@ -69,7 +69,7 @@ export function PrimaryCell(props: CellProps) {
- +
); diff --git a/src/components/database/components/conditions/FiltersButton.tsx b/src/components/database/components/conditions/FiltersButton.tsx index 1d7b71113..4ec0702fb 100644 --- a/src/components/database/components/conditions/FiltersButton.tsx +++ b/src/components/database/components/conditions/FiltersButton.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react'; +import { useEffect, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useFiltersSelector, useReadOnly } from '@/application/database-yjs'; @@ -10,13 +10,29 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip import { useConditionsContext } from './context'; -function FiltersButton({ toggleExpanded, expanded }: { toggleExpanded?: () => void; expanded?: boolean }) { +function FiltersButton({ toggleExpanded }: { toggleExpanded?: () => void }) { const filters = useFiltersSelector(); const readOnly = useReadOnly(); const { t } = useTranslation(); const [open, setOpen] = useState(false); const addFilter = useAddFilter(); - const setOpenFilterId = useConditionsContext()?.setOpenFilterId; + const conditionsContext = useConditionsContext(); + const setOpenFilterId = conditionsContext?.setOpenFilterId; + const setExpanded = conditionsContext?.setExpanded; + const prevFiltersLengthRef = useRef(filters.length); + + // Auto-expand conditions panel when first filter is added + useEffect(() => { + const prevLength = prevFiltersLengthRef.current; + const currentLength = filters.length; + + // If filters went from 0 to 1+, expand the panel + if (prevLength === 0 && currentLength > 0) { + setExpanded?.(true); + } + + prevFiltersLengthRef.current = currentLength; + }, [filters.length, setExpanded]); return ( vo const filterId = addFilter(fieldId); setOpenFilterId?.(filterId); - if (!expanded) { - toggleExpanded?.(); - } }} asChild > diff --git a/src/components/database/components/conditions/SortsButton.tsx b/src/components/database/components/conditions/SortsButton.tsx index bd2ef793a..8ab4d81fd 100644 --- a/src/components/database/components/conditions/SortsButton.tsx +++ b/src/components/database/components/conditions/SortsButton.tsx @@ -38,7 +38,6 @@ function SortsButton ({ toggleExpanded, expanded }: { onSelect={fieldId => { addSort(fieldId); if (!expanded) { - toggleExpanded?.(); } }} diff --git a/src/components/database/components/conditions/context.ts b/src/components/database/components/conditions/context.ts index a174d7b64..9a2e15d54 100644 --- a/src/components/database/components/conditions/context.ts +++ b/src/components/database/components/conditions/context.ts @@ -3,6 +3,7 @@ import { createContext, useContext } from 'react'; interface DatabaseConditionsContextType { expanded: boolean; toggleExpanded: () => void; + setExpanded: (expanded: boolean) => void; openFilterId?: string; setOpenFilterId?: (id?: string) => void; } diff --git a/src/components/database/components/filters/filter-menu/FieldMenuTitle.tsx b/src/components/database/components/filters/filter-menu/FieldMenuTitle.tsx index 8c506eb95..d8362c764 100644 --- a/src/components/database/components/filters/filter-menu/FieldMenuTitle.tsx +++ b/src/components/database/components/filters/filter-menu/FieldMenuTitle.tsx @@ -38,6 +38,7 @@ function FieldMenuTitle ({ filterId, fieldId, renderConditionSelect }: { }} variant={'ghost'} danger + data-testid="delete-filter-button" > diff --git a/src/components/database/components/filters/filter-menu/FilterConditionsSelect.tsx b/src/components/database/components/filters/filter-menu/FilterConditionsSelect.tsx index 9a5a8f6d5..a4e685e91 100644 --- a/src/components/database/components/filters/filter-menu/FilterConditionsSelect.tsx +++ b/src/components/database/components/filters/filter-menu/FilterConditionsSelect.tsx @@ -49,6 +49,7 @@ function FilterConditionsSelect ({ {conditions.map((condition) => ( { if (onSelect) { onSelect(condition.value); diff --git a/src/proto/database_blob.d.ts b/src/proto/database_blob.d.ts new file mode 100644 index 000000000..81f88d229 --- /dev/null +++ b/src/proto/database_blob.d.ts @@ -0,0 +1,1306 @@ +import * as $protobuf from "protobufjs"; +import Long = require("long"); +/** Namespace database_blob. */ +export namespace database_blob { + + /** Properties of a DatabaseBlobRowRid. */ + interface IDatabaseBlobRowRid { + + /** DatabaseBlobRowRid timestamp */ + timestamp?: (number|Long|null); + + /** DatabaseBlobRowRid seqNo */ + seqNo?: (number|null); + } + + /** Represents a DatabaseBlobRowRid. */ + class DatabaseBlobRowRid implements IDatabaseBlobRowRid { + + /** + * Constructs a new DatabaseBlobRowRid. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobRowRid); + + /** DatabaseBlobRowRid timestamp. */ + public timestamp: (number|Long); + + /** DatabaseBlobRowRid seqNo. */ + public seqNo: number; + + /** + * Creates a new DatabaseBlobRowRid instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobRowRid instance + */ + public static create(properties?: database_blob.IDatabaseBlobRowRid): database_blob.DatabaseBlobRowRid; + + /** + * Encodes the specified DatabaseBlobRowRid message. Does not implicitly {@link database_blob.DatabaseBlobRowRid.verify|verify} messages. + * @param message DatabaseBlobRowRid message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobRowRid, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobRowRid message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowRid.verify|verify} messages. + * @param message DatabaseBlobRowRid message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobRowRid, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobRowRid message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobRowRid + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobRowRid; + + /** + * Decodes a DatabaseBlobRowRid message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobRowRid + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobRowRid; + + /** + * Verifies a DatabaseBlobRowRid message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobRowRid message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobRowRid + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobRowRid; + + /** + * Creates a plain object from a DatabaseBlobRowRid message. Also converts values to other types if specified. + * @param message DatabaseBlobRowRid + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobRowRid, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobRowRid to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobRowRid + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobDiffRequest. */ + interface IDatabaseBlobDiffRequest { + + /** DatabaseBlobDiffRequest maxKnownRid */ + maxKnownRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobDiffRequest version */ + version?: (number|null); + } + + /** Represents a DatabaseBlobDiffRequest. */ + class DatabaseBlobDiffRequest implements IDatabaseBlobDiffRequest { + + /** + * Constructs a new DatabaseBlobDiffRequest. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobDiffRequest); + + /** DatabaseBlobDiffRequest maxKnownRid. */ + public maxKnownRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobDiffRequest version. */ + public version: number; + + /** DatabaseBlobDiffRequest _maxKnownRid. */ + public _maxKnownRid?: "maxKnownRid"; + + /** + * Creates a new DatabaseBlobDiffRequest instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobDiffRequest instance + */ + public static create(properties?: database_blob.IDatabaseBlobDiffRequest): database_blob.DatabaseBlobDiffRequest; + + /** + * Encodes the specified DatabaseBlobDiffRequest message. Does not implicitly {@link database_blob.DatabaseBlobDiffRequest.verify|verify} messages. + * @param message DatabaseBlobDiffRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobDiffRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobDiffRequest message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobDiffRequest.verify|verify} messages. + * @param message DatabaseBlobDiffRequest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobDiffRequest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobDiffRequest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobDiffRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobDiffRequest; + + /** + * Decodes a DatabaseBlobDiffRequest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobDiffRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobDiffRequest; + + /** + * Verifies a DatabaseBlobDiffRequest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobDiffRequest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobDiffRequest + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobDiffRequest; + + /** + * Creates a plain object from a DatabaseBlobDiffRequest message. Also converts values to other types if specified. + * @param message DatabaseBlobDiffRequest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobDiffRequest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobDiffRequest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobDiffRequest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a CollabDocState. */ + interface ICollabDocState { + + /** CollabDocState docState */ + docState?: (Uint8Array|null); + + /** CollabDocState encoderVersion */ + encoderVersion?: (number|null); + } + + /** Represents a CollabDocState. */ + class CollabDocState implements ICollabDocState { + + /** + * Constructs a new CollabDocState. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.ICollabDocState); + + /** CollabDocState docState. */ + public docState: Uint8Array; + + /** CollabDocState encoderVersion. */ + public encoderVersion: number; + + /** + * Creates a new CollabDocState instance using the specified properties. + * @param [properties] Properties to set + * @returns CollabDocState instance + */ + public static create(properties?: database_blob.ICollabDocState): database_blob.CollabDocState; + + /** + * Encodes the specified CollabDocState message. Does not implicitly {@link database_blob.CollabDocState.verify|verify} messages. + * @param message CollabDocState message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.ICollabDocState, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified CollabDocState message, length delimited. Does not implicitly {@link database_blob.CollabDocState.verify|verify} messages. + * @param message CollabDocState message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.ICollabDocState, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a CollabDocState message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns CollabDocState + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.CollabDocState; + + /** + * Decodes a CollabDocState message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns CollabDocState + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.CollabDocState; + + /** + * Verifies a CollabDocState message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a CollabDocState message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns CollabDocState + */ + public static fromObject(object: { [k: string]: any }): database_blob.CollabDocState; + + /** + * Creates a plain object from a CollabDocState message. Also converts values to other types if specified. + * @param message CollabDocState + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.CollabDocState, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this CollabDocState to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for CollabDocState + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobRowDocument. */ + interface IDatabaseBlobRowDocument { + + /** DatabaseBlobRowDocument documentId */ + documentId?: (Uint8Array|null); + + /** DatabaseBlobRowDocument rid */ + rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobRowDocument deleted */ + deleted?: (boolean|null); + + /** DatabaseBlobRowDocument docState */ + docState?: (database_blob.ICollabDocState|null); + } + + /** Represents a DatabaseBlobRowDocument. */ + class DatabaseBlobRowDocument implements IDatabaseBlobRowDocument { + + /** + * Constructs a new DatabaseBlobRowDocument. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobRowDocument); + + /** DatabaseBlobRowDocument documentId. */ + public documentId: Uint8Array; + + /** DatabaseBlobRowDocument rid. */ + public rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobRowDocument deleted. */ + public deleted: boolean; + + /** DatabaseBlobRowDocument docState. */ + public docState?: (database_blob.ICollabDocState|null); + + /** + * Creates a new DatabaseBlobRowDocument instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobRowDocument instance + */ + public static create(properties?: database_blob.IDatabaseBlobRowDocument): database_blob.DatabaseBlobRowDocument; + + /** + * Encodes the specified DatabaseBlobRowDocument message. Does not implicitly {@link database_blob.DatabaseBlobRowDocument.verify|verify} messages. + * @param message DatabaseBlobRowDocument message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobRowDocument, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobRowDocument message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowDocument.verify|verify} messages. + * @param message DatabaseBlobRowDocument message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobRowDocument, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobRowDocument message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobRowDocument + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobRowDocument; + + /** + * Decodes a DatabaseBlobRowDocument message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobRowDocument + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobRowDocument; + + /** + * Verifies a DatabaseBlobRowDocument message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobRowDocument message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobRowDocument + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobRowDocument; + + /** + * Creates a plain object from a DatabaseBlobRowDocument message. Also converts values to other types if specified. + * @param message DatabaseBlobRowDocument + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobRowDocument, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobRowDocument to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobRowDocument + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobRowUpdate. */ + interface IDatabaseBlobRowUpdate { + + /** DatabaseBlobRowUpdate rowId */ + rowId?: (Uint8Array|null); + + /** DatabaseBlobRowUpdate rid */ + rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobRowUpdate docState */ + docState?: (database_blob.ICollabDocState|null); + + /** DatabaseBlobRowUpdate document */ + document?: (database_blob.IDatabaseBlobRowDocument|null); + } + + /** Represents a DatabaseBlobRowUpdate. */ + class DatabaseBlobRowUpdate implements IDatabaseBlobRowUpdate { + + /** + * Constructs a new DatabaseBlobRowUpdate. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobRowUpdate); + + /** DatabaseBlobRowUpdate rowId. */ + public rowId: Uint8Array; + + /** DatabaseBlobRowUpdate rid. */ + public rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** DatabaseBlobRowUpdate docState. */ + public docState?: (database_blob.ICollabDocState|null); + + /** DatabaseBlobRowUpdate document. */ + public document?: (database_blob.IDatabaseBlobRowDocument|null); + + /** DatabaseBlobRowUpdate _document. */ + public _document?: "document"; + + /** + * Creates a new DatabaseBlobRowUpdate instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobRowUpdate instance + */ + public static create(properties?: database_blob.IDatabaseBlobRowUpdate): database_blob.DatabaseBlobRowUpdate; + + /** + * Encodes the specified DatabaseBlobRowUpdate message. Does not implicitly {@link database_blob.DatabaseBlobRowUpdate.verify|verify} messages. + * @param message DatabaseBlobRowUpdate message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobRowUpdate, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobRowUpdate message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowUpdate.verify|verify} messages. + * @param message DatabaseBlobRowUpdate message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobRowUpdate, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobRowUpdate message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobRowUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobRowUpdate; + + /** + * Decodes a DatabaseBlobRowUpdate message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobRowUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobRowUpdate; + + /** + * Verifies a DatabaseBlobRowUpdate message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobRowUpdate message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobRowUpdate + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobRowUpdate; + + /** + * Creates a plain object from a DatabaseBlobRowUpdate message. Also converts values to other types if specified. + * @param message DatabaseBlobRowUpdate + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobRowUpdate, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobRowUpdate to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobRowUpdate + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobRowDelete. */ + interface IDatabaseBlobRowDelete { + + /** DatabaseBlobRowDelete rowId */ + rowId?: (Uint8Array|null); + + /** DatabaseBlobRowDelete rid */ + rid?: (database_blob.IDatabaseBlobRowRid|null); + } + + /** Represents a DatabaseBlobRowDelete. */ + class DatabaseBlobRowDelete implements IDatabaseBlobRowDelete { + + /** + * Constructs a new DatabaseBlobRowDelete. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobRowDelete); + + /** DatabaseBlobRowDelete rowId. */ + public rowId: Uint8Array; + + /** DatabaseBlobRowDelete rid. */ + public rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** + * Creates a new DatabaseBlobRowDelete instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobRowDelete instance + */ + public static create(properties?: database_blob.IDatabaseBlobRowDelete): database_blob.DatabaseBlobRowDelete; + + /** + * Encodes the specified DatabaseBlobRowDelete message. Does not implicitly {@link database_blob.DatabaseBlobRowDelete.verify|verify} messages. + * @param message DatabaseBlobRowDelete message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobRowDelete, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobRowDelete message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowDelete.verify|verify} messages. + * @param message DatabaseBlobRowDelete message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobRowDelete, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobRowDelete message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobRowDelete + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobRowDelete; + + /** + * Decodes a DatabaseBlobRowDelete message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobRowDelete + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobRowDelete; + + /** + * Verifies a DatabaseBlobRowDelete message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobRowDelete message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobRowDelete + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobRowDelete; + + /** + * Creates a plain object from a DatabaseBlobRowDelete message. Also converts values to other types if specified. + * @param message DatabaseBlobRowDelete + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobRowDelete, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobRowDelete to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobRowDelete + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobDiffResponse. */ + interface IDatabaseBlobDiffResponse { + + /** DatabaseBlobDiffResponse manifestVersion */ + manifestVersion?: (string|null); + + /** DatabaseBlobDiffResponse headBlobKey */ + headBlobKey?: (string|null); + + /** DatabaseBlobDiffResponse updates */ + updates?: (database_blob.IDatabaseBlobRowUpdate[]|null); + + /** DatabaseBlobDiffResponse deletes */ + deletes?: (database_blob.IDatabaseBlobRowDelete[]|null); + + /** DatabaseBlobDiffResponse creates */ + creates?: (database_blob.IDatabaseBlobRowUpdate[]|null); + + /** DatabaseBlobDiffResponse status */ + status?: (database_blob.DiffStatus|null); + + /** DatabaseBlobDiffResponse retryAfterSecs */ + retryAfterSecs?: (number|null); + + /** DatabaseBlobDiffResponse message */ + message?: (string|null); + } + + /** Represents a DatabaseBlobDiffResponse. */ + class DatabaseBlobDiffResponse implements IDatabaseBlobDiffResponse { + + /** + * Constructs a new DatabaseBlobDiffResponse. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobDiffResponse); + + /** DatabaseBlobDiffResponse manifestVersion. */ + public manifestVersion: string; + + /** DatabaseBlobDiffResponse headBlobKey. */ + public headBlobKey?: (string|null); + + /** DatabaseBlobDiffResponse updates. */ + public updates: database_blob.IDatabaseBlobRowUpdate[]; + + /** DatabaseBlobDiffResponse deletes. */ + public deletes: database_blob.IDatabaseBlobRowDelete[]; + + /** DatabaseBlobDiffResponse creates. */ + public creates: database_blob.IDatabaseBlobRowUpdate[]; + + /** DatabaseBlobDiffResponse status. */ + public status: database_blob.DiffStatus; + + /** DatabaseBlobDiffResponse retryAfterSecs. */ + public retryAfterSecs?: (number|null); + + /** DatabaseBlobDiffResponse message. */ + public message?: (string|null); + + /** DatabaseBlobDiffResponse _headBlobKey. */ + public _headBlobKey?: "headBlobKey"; + + /** DatabaseBlobDiffResponse _retryAfterSecs. */ + public _retryAfterSecs?: "retryAfterSecs"; + + /** DatabaseBlobDiffResponse _message. */ + public _message?: "message"; + + /** + * Creates a new DatabaseBlobDiffResponse instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobDiffResponse instance + */ + public static create(properties?: database_blob.IDatabaseBlobDiffResponse): database_blob.DatabaseBlobDiffResponse; + + /** + * Encodes the specified DatabaseBlobDiffResponse message. Does not implicitly {@link database_blob.DatabaseBlobDiffResponse.verify|verify} messages. + * @param message DatabaseBlobDiffResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobDiffResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobDiffResponse message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobDiffResponse.verify|verify} messages. + * @param message DatabaseBlobDiffResponse message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobDiffResponse, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobDiffResponse message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobDiffResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobDiffResponse; + + /** + * Decodes a DatabaseBlobDiffResponse message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobDiffResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobDiffResponse; + + /** + * Verifies a DatabaseBlobDiffResponse message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobDiffResponse message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobDiffResponse + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobDiffResponse; + + /** + * Creates a plain object from a DatabaseBlobDiffResponse message. Also converts values to other types if specified. + * @param message DatabaseBlobDiffResponse + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobDiffResponse, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobDiffResponse to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobDiffResponse + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a BlobDescriptor. */ + interface IBlobDescriptor { + + /** BlobDescriptor key */ + key?: (string|null); + + /** BlobDescriptor startRid */ + startRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** BlobDescriptor endRid */ + endRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** BlobDescriptor totalBytes */ + totalBytes?: (number|Long|null); + + /** BlobDescriptor sealed */ + sealed?: (boolean|null); + } + + /** Represents a BlobDescriptor. */ + class BlobDescriptor implements IBlobDescriptor { + + /** + * Constructs a new BlobDescriptor. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IBlobDescriptor); + + /** BlobDescriptor key. */ + public key: string; + + /** BlobDescriptor startRid. */ + public startRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** BlobDescriptor endRid. */ + public endRid?: (database_blob.IDatabaseBlobRowRid|null); + + /** BlobDescriptor totalBytes. */ + public totalBytes: (number|Long); + + /** BlobDescriptor sealed. */ + public sealed: boolean; + + /** BlobDescriptor _startRid. */ + public _startRid?: "startRid"; + + /** BlobDescriptor _endRid. */ + public _endRid?: "endRid"; + + /** + * Creates a new BlobDescriptor instance using the specified properties. + * @param [properties] Properties to set + * @returns BlobDescriptor instance + */ + public static create(properties?: database_blob.IBlobDescriptor): database_blob.BlobDescriptor; + + /** + * Encodes the specified BlobDescriptor message. Does not implicitly {@link database_blob.BlobDescriptor.verify|verify} messages. + * @param message BlobDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IBlobDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified BlobDescriptor message, length delimited. Does not implicitly {@link database_blob.BlobDescriptor.verify|verify} messages. + * @param message BlobDescriptor message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IBlobDescriptor, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a BlobDescriptor message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns BlobDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.BlobDescriptor; + + /** + * Decodes a BlobDescriptor message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns BlobDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.BlobDescriptor; + + /** + * Verifies a BlobDescriptor message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a BlobDescriptor message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns BlobDescriptor + */ + public static fromObject(object: { [k: string]: any }): database_blob.BlobDescriptor; + + /** + * Creates a plain object from a BlobDescriptor message. Also converts values to other types if specified. + * @param message BlobDescriptor + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.BlobDescriptor, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this BlobDescriptor to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for BlobDescriptor + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ManifestRowDocumentPointer. */ + interface IManifestRowDocumentPointer { + + /** ManifestRowDocumentPointer documentId */ + documentId?: (Uint8Array|null); + + /** ManifestRowDocumentPointer rid */ + rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** ManifestRowDocumentPointer deleted */ + deleted?: (boolean|null); + } + + /** Represents a ManifestRowDocumentPointer. */ + class ManifestRowDocumentPointer implements IManifestRowDocumentPointer { + + /** + * Constructs a new ManifestRowDocumentPointer. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IManifestRowDocumentPointer); + + /** ManifestRowDocumentPointer documentId. */ + public documentId: Uint8Array; + + /** ManifestRowDocumentPointer rid. */ + public rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** ManifestRowDocumentPointer deleted. */ + public deleted: boolean; + + /** + * Creates a new ManifestRowDocumentPointer instance using the specified properties. + * @param [properties] Properties to set + * @returns ManifestRowDocumentPointer instance + */ + public static create(properties?: database_blob.IManifestRowDocumentPointer): database_blob.ManifestRowDocumentPointer; + + /** + * Encodes the specified ManifestRowDocumentPointer message. Does not implicitly {@link database_blob.ManifestRowDocumentPointer.verify|verify} messages. + * @param message ManifestRowDocumentPointer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IManifestRowDocumentPointer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManifestRowDocumentPointer message, length delimited. Does not implicitly {@link database_blob.ManifestRowDocumentPointer.verify|verify} messages. + * @param message ManifestRowDocumentPointer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IManifestRowDocumentPointer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManifestRowDocumentPointer message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManifestRowDocumentPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.ManifestRowDocumentPointer; + + /** + * Decodes a ManifestRowDocumentPointer message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManifestRowDocumentPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.ManifestRowDocumentPointer; + + /** + * Verifies a ManifestRowDocumentPointer message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManifestRowDocumentPointer message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManifestRowDocumentPointer + */ + public static fromObject(object: { [k: string]: any }): database_blob.ManifestRowDocumentPointer; + + /** + * Creates a plain object from a ManifestRowDocumentPointer message. Also converts values to other types if specified. + * @param message ManifestRowDocumentPointer + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.ManifestRowDocumentPointer, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManifestRowDocumentPointer to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManifestRowDocumentPointer + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a ManifestRowPointer. */ + interface IManifestRowPointer { + + /** ManifestRowPointer rowId */ + rowId?: (Uint8Array|null); + + /** ManifestRowPointer blobIndex */ + blobIndex?: (number|null); + + /** ManifestRowPointer segmentOffset */ + segmentOffset?: (number|Long|null); + + /** ManifestRowPointer rid */ + rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** ManifestRowPointer deleted */ + deleted?: (boolean|null); + + /** ManifestRowPointer document */ + document?: (database_blob.IManifestRowDocumentPointer|null); + } + + /** Represents a ManifestRowPointer. */ + class ManifestRowPointer implements IManifestRowPointer { + + /** + * Constructs a new ManifestRowPointer. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IManifestRowPointer); + + /** ManifestRowPointer rowId. */ + public rowId: Uint8Array; + + /** ManifestRowPointer blobIndex. */ + public blobIndex: number; + + /** ManifestRowPointer segmentOffset. */ + public segmentOffset: (number|Long); + + /** ManifestRowPointer rid. */ + public rid?: (database_blob.IDatabaseBlobRowRid|null); + + /** ManifestRowPointer deleted. */ + public deleted: boolean; + + /** ManifestRowPointer document. */ + public document?: (database_blob.IManifestRowDocumentPointer|null); + + /** ManifestRowPointer _document. */ + public _document?: "document"; + + /** + * Creates a new ManifestRowPointer instance using the specified properties. + * @param [properties] Properties to set + * @returns ManifestRowPointer instance + */ + public static create(properties?: database_blob.IManifestRowPointer): database_blob.ManifestRowPointer; + + /** + * Encodes the specified ManifestRowPointer message. Does not implicitly {@link database_blob.ManifestRowPointer.verify|verify} messages. + * @param message ManifestRowPointer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IManifestRowPointer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified ManifestRowPointer message, length delimited. Does not implicitly {@link database_blob.ManifestRowPointer.verify|verify} messages. + * @param message ManifestRowPointer message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IManifestRowPointer, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a ManifestRowPointer message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns ManifestRowPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.ManifestRowPointer; + + /** + * Decodes a ManifestRowPointer message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns ManifestRowPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.ManifestRowPointer; + + /** + * Verifies a ManifestRowPointer message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a ManifestRowPointer message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns ManifestRowPointer + */ + public static fromObject(object: { [k: string]: any }): database_blob.ManifestRowPointer; + + /** + * Creates a plain object from a ManifestRowPointer message. Also converts values to other types if specified. + * @param message ManifestRowPointer + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.ManifestRowPointer, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this ManifestRowPointer to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for ManifestRowPointer + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** Properties of a DatabaseBlobManifest. */ + interface IDatabaseBlobManifest { + + /** DatabaseBlobManifest workspaceId */ + workspaceId?: (Uint8Array|null); + + /** DatabaseBlobManifest databaseId */ + databaseId?: (Uint8Array|null); + + /** DatabaseBlobManifest versionId */ + versionId?: (string|null); + + /** DatabaseBlobManifest blobs */ + blobs?: (database_blob.IBlobDescriptor[]|null); + + /** DatabaseBlobManifest rowIndex */ + rowIndex?: (database_blob.IManifestRowPointer[]|null); + + /** DatabaseBlobManifest updatedAtMillis */ + updatedAtMillis?: (number|Long|null); + + /** DatabaseBlobManifest lockEpoch */ + lockEpoch?: (number|Long|null); + } + + /** Represents a DatabaseBlobManifest. */ + class DatabaseBlobManifest implements IDatabaseBlobManifest { + + /** + * Constructs a new DatabaseBlobManifest. + * @param [properties] Properties to set + */ + constructor(properties?: database_blob.IDatabaseBlobManifest); + + /** DatabaseBlobManifest workspaceId. */ + public workspaceId: Uint8Array; + + /** DatabaseBlobManifest databaseId. */ + public databaseId: Uint8Array; + + /** DatabaseBlobManifest versionId. */ + public versionId: string; + + /** DatabaseBlobManifest blobs. */ + public blobs: database_blob.IBlobDescriptor[]; + + /** DatabaseBlobManifest rowIndex. */ + public rowIndex: database_blob.IManifestRowPointer[]; + + /** DatabaseBlobManifest updatedAtMillis. */ + public updatedAtMillis: (number|Long); + + /** DatabaseBlobManifest lockEpoch. */ + public lockEpoch: (number|Long); + + /** + * Creates a new DatabaseBlobManifest instance using the specified properties. + * @param [properties] Properties to set + * @returns DatabaseBlobManifest instance + */ + public static create(properties?: database_blob.IDatabaseBlobManifest): database_blob.DatabaseBlobManifest; + + /** + * Encodes the specified DatabaseBlobManifest message. Does not implicitly {@link database_blob.DatabaseBlobManifest.verify|verify} messages. + * @param message DatabaseBlobManifest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encode(message: database_blob.IDatabaseBlobManifest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Encodes the specified DatabaseBlobManifest message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobManifest.verify|verify} messages. + * @param message DatabaseBlobManifest message or plain object to encode + * @param [writer] Writer to encode to + * @returns Writer + */ + public static encodeDelimited(message: database_blob.IDatabaseBlobManifest, writer?: $protobuf.Writer): $protobuf.Writer; + + /** + * Decodes a DatabaseBlobManifest message from the specified reader or buffer. + * @param reader Reader or buffer to decode from + * @param [length] Message length if known beforehand + * @returns DatabaseBlobManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): database_blob.DatabaseBlobManifest; + + /** + * Decodes a DatabaseBlobManifest message from the specified reader or buffer, length delimited. + * @param reader Reader or buffer to decode from + * @returns DatabaseBlobManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): database_blob.DatabaseBlobManifest; + + /** + * Verifies a DatabaseBlobManifest message. + * @param message Plain object to verify + * @returns `null` if valid, otherwise the reason why it is not + */ + public static verify(message: { [k: string]: any }): (string|null); + + /** + * Creates a DatabaseBlobManifest message from a plain object. Also converts values to their respective internal types. + * @param object Plain object + * @returns DatabaseBlobManifest + */ + public static fromObject(object: { [k: string]: any }): database_blob.DatabaseBlobManifest; + + /** + * Creates a plain object from a DatabaseBlobManifest message. Also converts values to other types if specified. + * @param message DatabaseBlobManifest + * @param [options] Conversion options + * @returns Plain object + */ + public static toObject(message: database_blob.DatabaseBlobManifest, options?: $protobuf.IConversionOptions): { [k: string]: any }; + + /** + * Converts this DatabaseBlobManifest to JSON. + * @returns JSON object + */ + public toJSON(): { [k: string]: any }; + + /** + * Gets the default type url for DatabaseBlobManifest + * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns The default type url + */ + public static getTypeUrl(typeUrlPrefix?: string): string; + } + + /** DiffStatus enum. */ + enum DiffStatus { + READY = 0, + PENDING = 1 + } +} diff --git a/src/proto/database_blob.js b/src/proto/database_blob.js new file mode 100644 index 000000000..b19e38035 --- /dev/null +++ b/src/proto/database_blob.js @@ -0,0 +1,3558 @@ +/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/ +import * as $protobuf from "protobufjs/minimal"; + +// Common aliases +const $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util; + +// Exported root namespace +const $root = $protobuf.roots["default"] || ($protobuf.roots["default"] = {}); + +export const database_blob = $root.database_blob = (() => { + + /** + * Namespace database_blob. + * @exports database_blob + * @namespace + */ + const database_blob = {}; + + database_blob.DatabaseBlobRowRid = (function() { + + /** + * Properties of a DatabaseBlobRowRid. + * @memberof database_blob + * @interface IDatabaseBlobRowRid + * @property {number|Long|null} [timestamp] DatabaseBlobRowRid timestamp + * @property {number|null} [seqNo] DatabaseBlobRowRid seqNo + */ + + /** + * Constructs a new DatabaseBlobRowRid. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobRowRid. + * @implements IDatabaseBlobRowRid + * @constructor + * @param {database_blob.IDatabaseBlobRowRid=} [properties] Properties to set + */ + function DatabaseBlobRowRid(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobRowRid timestamp. + * @member {number|Long} timestamp + * @memberof database_blob.DatabaseBlobRowRid + * @instance + */ + DatabaseBlobRowRid.prototype.timestamp = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * DatabaseBlobRowRid seqNo. + * @member {number} seqNo + * @memberof database_blob.DatabaseBlobRowRid + * @instance + */ + DatabaseBlobRowRid.prototype.seqNo = 0; + + /** + * Creates a new DatabaseBlobRowRid instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {database_blob.IDatabaseBlobRowRid=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobRowRid} DatabaseBlobRowRid instance + */ + DatabaseBlobRowRid.create = function create(properties) { + return new DatabaseBlobRowRid(properties); + }; + + /** + * Encodes the specified DatabaseBlobRowRid message. Does not implicitly {@link database_blob.DatabaseBlobRowRid.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {database_blob.IDatabaseBlobRowRid} message DatabaseBlobRowRid message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowRid.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.timestamp != null && Object.hasOwnProperty.call(message, "timestamp")) + writer.uint32(/* id 1, wireType 0 =*/8).uint64(message.timestamp); + if (message.seqNo != null && Object.hasOwnProperty.call(message, "seqNo")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.seqNo); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobRowRid message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowRid.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {database_blob.IDatabaseBlobRowRid} message DatabaseBlobRowRid message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowRid.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobRowRid message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobRowRid} DatabaseBlobRowRid + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowRid.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobRowRid(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.timestamp = reader.uint64(); + break; + } + case 2: { + message.seqNo = reader.uint32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobRowRid message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobRowRid} DatabaseBlobRowRid + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowRid.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobRowRid message. + * @function verify + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobRowRid.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (!$util.isInteger(message.timestamp) && !(message.timestamp && $util.isInteger(message.timestamp.low) && $util.isInteger(message.timestamp.high))) + return "timestamp: integer|Long expected"; + if (message.seqNo != null && message.hasOwnProperty("seqNo")) + if (!$util.isInteger(message.seqNo)) + return "seqNo: integer expected"; + return null; + }; + + /** + * Creates a DatabaseBlobRowRid message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobRowRid} DatabaseBlobRowRid + */ + DatabaseBlobRowRid.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobRowRid) + return object; + let message = new $root.database_blob.DatabaseBlobRowRid(); + if (object.timestamp != null) + if ($util.Long) + (message.timestamp = $util.Long.fromValue(object.timestamp)).unsigned = true; + else if (typeof object.timestamp === "string") + message.timestamp = parseInt(object.timestamp, 10); + else if (typeof object.timestamp === "number") + message.timestamp = object.timestamp; + else if (typeof object.timestamp === "object") + message.timestamp = new $util.LongBits(object.timestamp.low >>> 0, object.timestamp.high >>> 0).toNumber(true); + if (object.seqNo != null) + message.seqNo = object.seqNo >>> 0; + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobRowRid message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {database_blob.DatabaseBlobRowRid} message DatabaseBlobRowRid + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobRowRid.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.timestamp = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.timestamp = options.longs === String ? "0" : 0; + object.seqNo = 0; + } + if (message.timestamp != null && message.hasOwnProperty("timestamp")) + if (typeof message.timestamp === "number") + object.timestamp = options.longs === String ? String(message.timestamp) : message.timestamp; + else + object.timestamp = options.longs === String ? $util.Long.prototype.toString.call(message.timestamp) : options.longs === Number ? new $util.LongBits(message.timestamp.low >>> 0, message.timestamp.high >>> 0).toNumber(true) : message.timestamp; + if (message.seqNo != null && message.hasOwnProperty("seqNo")) + object.seqNo = message.seqNo; + return object; + }; + + /** + * Converts this DatabaseBlobRowRid to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobRowRid + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobRowRid.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobRowRid + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobRowRid + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobRowRid.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobRowRid"; + }; + + return DatabaseBlobRowRid; + })(); + + database_blob.DatabaseBlobDiffRequest = (function() { + + /** + * Properties of a DatabaseBlobDiffRequest. + * @memberof database_blob + * @interface IDatabaseBlobDiffRequest + * @property {database_blob.IDatabaseBlobRowRid|null} [maxKnownRid] DatabaseBlobDiffRequest maxKnownRid + * @property {number|null} [version] DatabaseBlobDiffRequest version + */ + + /** + * Constructs a new DatabaseBlobDiffRequest. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobDiffRequest. + * @implements IDatabaseBlobDiffRequest + * @constructor + * @param {database_blob.IDatabaseBlobDiffRequest=} [properties] Properties to set + */ + function DatabaseBlobDiffRequest(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobDiffRequest maxKnownRid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} maxKnownRid + * @memberof database_blob.DatabaseBlobDiffRequest + * @instance + */ + DatabaseBlobDiffRequest.prototype.maxKnownRid = null; + + /** + * DatabaseBlobDiffRequest version. + * @member {number} version + * @memberof database_blob.DatabaseBlobDiffRequest + * @instance + */ + DatabaseBlobDiffRequest.prototype.version = 0; + + // OneOf field names bound to virtual getters and setters + let $oneOfFields; + + /** + * DatabaseBlobDiffRequest _maxKnownRid. + * @member {"maxKnownRid"|undefined} _maxKnownRid + * @memberof database_blob.DatabaseBlobDiffRequest + * @instance + */ + Object.defineProperty(DatabaseBlobDiffRequest.prototype, "_maxKnownRid", { + get: $util.oneOfGetter($oneOfFields = ["maxKnownRid"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DatabaseBlobDiffRequest instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {database_blob.IDatabaseBlobDiffRequest=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobDiffRequest} DatabaseBlobDiffRequest instance + */ + DatabaseBlobDiffRequest.create = function create(properties) { + return new DatabaseBlobDiffRequest(properties); + }; + + /** + * Encodes the specified DatabaseBlobDiffRequest message. Does not implicitly {@link database_blob.DatabaseBlobDiffRequest.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {database_blob.IDatabaseBlobDiffRequest} message DatabaseBlobDiffRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobDiffRequest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.maxKnownRid != null && Object.hasOwnProperty.call(message, "maxKnownRid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.maxKnownRid, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim(); + if (message.version != null && Object.hasOwnProperty.call(message, "version")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.version); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobDiffRequest message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobDiffRequest.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {database_blob.IDatabaseBlobDiffRequest} message DatabaseBlobDiffRequest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobDiffRequest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobDiffRequest message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobDiffRequest} DatabaseBlobDiffRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobDiffRequest.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobDiffRequest(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.maxKnownRid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 2: { + message.version = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobDiffRequest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobDiffRequest} DatabaseBlobDiffRequest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobDiffRequest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobDiffRequest message. + * @function verify + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobDiffRequest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + let properties = {}; + if (message.maxKnownRid != null && message.hasOwnProperty("maxKnownRid")) { + properties._maxKnownRid = 1; + { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.maxKnownRid); + if (error) + return "maxKnownRid." + error; + } + } + if (message.version != null && message.hasOwnProperty("version")) + if (!$util.isInteger(message.version)) + return "version: integer expected"; + return null; + }; + + /** + * Creates a DatabaseBlobDiffRequest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobDiffRequest} DatabaseBlobDiffRequest + */ + DatabaseBlobDiffRequest.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobDiffRequest) + return object; + let message = new $root.database_blob.DatabaseBlobDiffRequest(); + if (object.maxKnownRid != null) { + if (typeof object.maxKnownRid !== "object") + throw TypeError(".database_blob.DatabaseBlobDiffRequest.maxKnownRid: object expected"); + message.maxKnownRid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.maxKnownRid); + } + if (object.version != null) + message.version = object.version | 0; + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobDiffRequest message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {database_blob.DatabaseBlobDiffRequest} message DatabaseBlobDiffRequest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobDiffRequest.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) + object.version = 0; + if (message.maxKnownRid != null && message.hasOwnProperty("maxKnownRid")) { + object.maxKnownRid = $root.database_blob.DatabaseBlobRowRid.toObject(message.maxKnownRid, options); + if (options.oneofs) + object._maxKnownRid = "maxKnownRid"; + } + if (message.version != null && message.hasOwnProperty("version")) + object.version = message.version; + return object; + }; + + /** + * Converts this DatabaseBlobDiffRequest to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobDiffRequest + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobDiffRequest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobDiffRequest + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobDiffRequest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobDiffRequest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobDiffRequest"; + }; + + return DatabaseBlobDiffRequest; + })(); + + database_blob.CollabDocState = (function() { + + /** + * Properties of a CollabDocState. + * @memberof database_blob + * @interface ICollabDocState + * @property {Uint8Array|null} [docState] CollabDocState docState + * @property {number|null} [encoderVersion] CollabDocState encoderVersion + */ + + /** + * Constructs a new CollabDocState. + * @memberof database_blob + * @classdesc Represents a CollabDocState. + * @implements ICollabDocState + * @constructor + * @param {database_blob.ICollabDocState=} [properties] Properties to set + */ + function CollabDocState(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * CollabDocState docState. + * @member {Uint8Array} docState + * @memberof database_blob.CollabDocState + * @instance + */ + CollabDocState.prototype.docState = $util.newBuffer([]); + + /** + * CollabDocState encoderVersion. + * @member {number} encoderVersion + * @memberof database_blob.CollabDocState + * @instance + */ + CollabDocState.prototype.encoderVersion = 0; + + /** + * Creates a new CollabDocState instance using the specified properties. + * @function create + * @memberof database_blob.CollabDocState + * @static + * @param {database_blob.ICollabDocState=} [properties] Properties to set + * @returns {database_blob.CollabDocState} CollabDocState instance + */ + CollabDocState.create = function create(properties) { + return new CollabDocState(properties); + }; + + /** + * Encodes the specified CollabDocState message. Does not implicitly {@link database_blob.CollabDocState.verify|verify} messages. + * @function encode + * @memberof database_blob.CollabDocState + * @static + * @param {database_blob.ICollabDocState} message CollabDocState message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CollabDocState.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.docState != null && Object.hasOwnProperty.call(message, "docState")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.docState); + if (message.encoderVersion != null && Object.hasOwnProperty.call(message, "encoderVersion")) + writer.uint32(/* id 2, wireType 0 =*/16).int32(message.encoderVersion); + return writer; + }; + + /** + * Encodes the specified CollabDocState message, length delimited. Does not implicitly {@link database_blob.CollabDocState.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.CollabDocState + * @static + * @param {database_blob.ICollabDocState} message CollabDocState message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + CollabDocState.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a CollabDocState message from the specified reader or buffer. + * @function decode + * @memberof database_blob.CollabDocState + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.CollabDocState} CollabDocState + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CollabDocState.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.CollabDocState(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.docState = reader.bytes(); + break; + } + case 2: { + message.encoderVersion = reader.int32(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a CollabDocState message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.CollabDocState + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.CollabDocState} CollabDocState + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + CollabDocState.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a CollabDocState message. + * @function verify + * @memberof database_blob.CollabDocState + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + CollabDocState.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.docState != null && message.hasOwnProperty("docState")) + if (!(message.docState && typeof message.docState.length === "number" || $util.isString(message.docState))) + return "docState: buffer expected"; + if (message.encoderVersion != null && message.hasOwnProperty("encoderVersion")) + if (!$util.isInteger(message.encoderVersion)) + return "encoderVersion: integer expected"; + return null; + }; + + /** + * Creates a CollabDocState message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.CollabDocState + * @static + * @param {Object.} object Plain object + * @returns {database_blob.CollabDocState} CollabDocState + */ + CollabDocState.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.CollabDocState) + return object; + let message = new $root.database_blob.CollabDocState(); + if (object.docState != null) + if (typeof object.docState === "string") + $util.base64.decode(object.docState, message.docState = $util.newBuffer($util.base64.length(object.docState)), 0); + else if (object.docState.length >= 0) + message.docState = object.docState; + if (object.encoderVersion != null) + message.encoderVersion = object.encoderVersion | 0; + return message; + }; + + /** + * Creates a plain object from a CollabDocState message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.CollabDocState + * @static + * @param {database_blob.CollabDocState} message CollabDocState + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + CollabDocState.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.docState = ""; + else { + object.docState = []; + if (options.bytes !== Array) + object.docState = $util.newBuffer(object.docState); + } + object.encoderVersion = 0; + } + if (message.docState != null && message.hasOwnProperty("docState")) + object.docState = options.bytes === String ? $util.base64.encode(message.docState, 0, message.docState.length) : options.bytes === Array ? Array.prototype.slice.call(message.docState) : message.docState; + if (message.encoderVersion != null && message.hasOwnProperty("encoderVersion")) + object.encoderVersion = message.encoderVersion; + return object; + }; + + /** + * Converts this CollabDocState to JSON. + * @function toJSON + * @memberof database_blob.CollabDocState + * @instance + * @returns {Object.} JSON object + */ + CollabDocState.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for CollabDocState + * @function getTypeUrl + * @memberof database_blob.CollabDocState + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + CollabDocState.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.CollabDocState"; + }; + + return CollabDocState; + })(); + + database_blob.DatabaseBlobRowDocument = (function() { + + /** + * Properties of a DatabaseBlobRowDocument. + * @memberof database_blob + * @interface IDatabaseBlobRowDocument + * @property {Uint8Array|null} [documentId] DatabaseBlobRowDocument documentId + * @property {database_blob.IDatabaseBlobRowRid|null} [rid] DatabaseBlobRowDocument rid + * @property {boolean|null} [deleted] DatabaseBlobRowDocument deleted + * @property {database_blob.ICollabDocState|null} [docState] DatabaseBlobRowDocument docState + */ + + /** + * Constructs a new DatabaseBlobRowDocument. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobRowDocument. + * @implements IDatabaseBlobRowDocument + * @constructor + * @param {database_blob.IDatabaseBlobRowDocument=} [properties] Properties to set + */ + function DatabaseBlobRowDocument(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobRowDocument documentId. + * @member {Uint8Array} documentId + * @memberof database_blob.DatabaseBlobRowDocument + * @instance + */ + DatabaseBlobRowDocument.prototype.documentId = $util.newBuffer([]); + + /** + * DatabaseBlobRowDocument rid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} rid + * @memberof database_blob.DatabaseBlobRowDocument + * @instance + */ + DatabaseBlobRowDocument.prototype.rid = null; + + /** + * DatabaseBlobRowDocument deleted. + * @member {boolean} deleted + * @memberof database_blob.DatabaseBlobRowDocument + * @instance + */ + DatabaseBlobRowDocument.prototype.deleted = false; + + /** + * DatabaseBlobRowDocument docState. + * @member {database_blob.ICollabDocState|null|undefined} docState + * @memberof database_blob.DatabaseBlobRowDocument + * @instance + */ + DatabaseBlobRowDocument.prototype.docState = null; + + /** + * Creates a new DatabaseBlobRowDocument instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {database_blob.IDatabaseBlobRowDocument=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobRowDocument} DatabaseBlobRowDocument instance + */ + DatabaseBlobRowDocument.create = function create(properties) { + return new DatabaseBlobRowDocument(properties); + }; + + /** + * Encodes the specified DatabaseBlobRowDocument message. Does not implicitly {@link database_blob.DatabaseBlobRowDocument.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {database_blob.IDatabaseBlobRowDocument} message DatabaseBlobRowDocument message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowDocument.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.documentId != null && Object.hasOwnProperty.call(message, "documentId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.documentId); + if (message.rid != null && Object.hasOwnProperty.call(message, "rid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.rid, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.deleted != null && Object.hasOwnProperty.call(message, "deleted")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deleted); + if (message.docState != null && Object.hasOwnProperty.call(message, "docState")) + $root.database_blob.CollabDocState.encode(message.docState, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobRowDocument message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowDocument.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {database_blob.IDatabaseBlobRowDocument} message DatabaseBlobRowDocument message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowDocument.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobRowDocument message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobRowDocument} DatabaseBlobRowDocument + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowDocument.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobRowDocument(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.documentId = reader.bytes(); + break; + } + case 2: { + message.rid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 3: { + message.deleted = reader.bool(); + break; + } + case 4: { + message.docState = $root.database_blob.CollabDocState.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobRowDocument message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobRowDocument} DatabaseBlobRowDocument + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowDocument.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobRowDocument message. + * @function verify + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobRowDocument.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.documentId != null && message.hasOwnProperty("documentId")) + if (!(message.documentId && typeof message.documentId.length === "number" || $util.isString(message.documentId))) + return "documentId: buffer expected"; + if (message.rid != null && message.hasOwnProperty("rid")) { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.rid); + if (error) + return "rid." + error; + } + if (message.deleted != null && message.hasOwnProperty("deleted")) + if (typeof message.deleted !== "boolean") + return "deleted: boolean expected"; + if (message.docState != null && message.hasOwnProperty("docState")) { + let error = $root.database_blob.CollabDocState.verify(message.docState); + if (error) + return "docState." + error; + } + return null; + }; + + /** + * Creates a DatabaseBlobRowDocument message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobRowDocument} DatabaseBlobRowDocument + */ + DatabaseBlobRowDocument.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobRowDocument) + return object; + let message = new $root.database_blob.DatabaseBlobRowDocument(); + if (object.documentId != null) + if (typeof object.documentId === "string") + $util.base64.decode(object.documentId, message.documentId = $util.newBuffer($util.base64.length(object.documentId)), 0); + else if (object.documentId.length >= 0) + message.documentId = object.documentId; + if (object.rid != null) { + if (typeof object.rid !== "object") + throw TypeError(".database_blob.DatabaseBlobRowDocument.rid: object expected"); + message.rid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.rid); + } + if (object.deleted != null) + message.deleted = Boolean(object.deleted); + if (object.docState != null) { + if (typeof object.docState !== "object") + throw TypeError(".database_blob.DatabaseBlobRowDocument.docState: object expected"); + message.docState = $root.database_blob.CollabDocState.fromObject(object.docState); + } + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobRowDocument message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {database_blob.DatabaseBlobRowDocument} message DatabaseBlobRowDocument + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobRowDocument.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.documentId = ""; + else { + object.documentId = []; + if (options.bytes !== Array) + object.documentId = $util.newBuffer(object.documentId); + } + object.rid = null; + object.deleted = false; + object.docState = null; + } + if (message.documentId != null && message.hasOwnProperty("documentId")) + object.documentId = options.bytes === String ? $util.base64.encode(message.documentId, 0, message.documentId.length) : options.bytes === Array ? Array.prototype.slice.call(message.documentId) : message.documentId; + if (message.rid != null && message.hasOwnProperty("rid")) + object.rid = $root.database_blob.DatabaseBlobRowRid.toObject(message.rid, options); + if (message.deleted != null && message.hasOwnProperty("deleted")) + object.deleted = message.deleted; + if (message.docState != null && message.hasOwnProperty("docState")) + object.docState = $root.database_blob.CollabDocState.toObject(message.docState, options); + return object; + }; + + /** + * Converts this DatabaseBlobRowDocument to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobRowDocument + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobRowDocument.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobRowDocument + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobRowDocument + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobRowDocument.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobRowDocument"; + }; + + return DatabaseBlobRowDocument; + })(); + + database_blob.DatabaseBlobRowUpdate = (function() { + + /** + * Properties of a DatabaseBlobRowUpdate. + * @memberof database_blob + * @interface IDatabaseBlobRowUpdate + * @property {Uint8Array|null} [rowId] DatabaseBlobRowUpdate rowId + * @property {database_blob.IDatabaseBlobRowRid|null} [rid] DatabaseBlobRowUpdate rid + * @property {database_blob.ICollabDocState|null} [docState] DatabaseBlobRowUpdate docState + * @property {database_blob.IDatabaseBlobRowDocument|null} [document] DatabaseBlobRowUpdate document + */ + + /** + * Constructs a new DatabaseBlobRowUpdate. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobRowUpdate. + * @implements IDatabaseBlobRowUpdate + * @constructor + * @param {database_blob.IDatabaseBlobRowUpdate=} [properties] Properties to set + */ + function DatabaseBlobRowUpdate(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobRowUpdate rowId. + * @member {Uint8Array} rowId + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + */ + DatabaseBlobRowUpdate.prototype.rowId = $util.newBuffer([]); + + /** + * DatabaseBlobRowUpdate rid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} rid + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + */ + DatabaseBlobRowUpdate.prototype.rid = null; + + /** + * DatabaseBlobRowUpdate docState. + * @member {database_blob.ICollabDocState|null|undefined} docState + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + */ + DatabaseBlobRowUpdate.prototype.docState = null; + + /** + * DatabaseBlobRowUpdate document. + * @member {database_blob.IDatabaseBlobRowDocument|null|undefined} document + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + */ + DatabaseBlobRowUpdate.prototype.document = null; + + // OneOf field names bound to virtual getters and setters + let $oneOfFields; + + /** + * DatabaseBlobRowUpdate _document. + * @member {"document"|undefined} _document + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + */ + Object.defineProperty(DatabaseBlobRowUpdate.prototype, "_document", { + get: $util.oneOfGetter($oneOfFields = ["document"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DatabaseBlobRowUpdate instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {database_blob.IDatabaseBlobRowUpdate=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobRowUpdate} DatabaseBlobRowUpdate instance + */ + DatabaseBlobRowUpdate.create = function create(properties) { + return new DatabaseBlobRowUpdate(properties); + }; + + /** + * Encodes the specified DatabaseBlobRowUpdate message. Does not implicitly {@link database_blob.DatabaseBlobRowUpdate.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {database_blob.IDatabaseBlobRowUpdate} message DatabaseBlobRowUpdate message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowUpdate.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rowId != null && Object.hasOwnProperty.call(message, "rowId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.rowId); + if (message.rid != null && Object.hasOwnProperty.call(message, "rid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.rid, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.docState != null && Object.hasOwnProperty.call(message, "docState")) + $root.database_blob.CollabDocState.encode(message.docState, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.document != null && Object.hasOwnProperty.call(message, "document")) + $root.database_blob.DatabaseBlobRowDocument.encode(message.document, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobRowUpdate message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowUpdate.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {database_blob.IDatabaseBlobRowUpdate} message DatabaseBlobRowUpdate message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowUpdate.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobRowUpdate message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobRowUpdate} DatabaseBlobRowUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowUpdate.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobRowUpdate(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.rowId = reader.bytes(); + break; + } + case 2: { + message.rid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 3: { + message.docState = $root.database_blob.CollabDocState.decode(reader, reader.uint32()); + break; + } + case 4: { + message.document = $root.database_blob.DatabaseBlobRowDocument.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobRowUpdate message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobRowUpdate} DatabaseBlobRowUpdate + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowUpdate.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobRowUpdate message. + * @function verify + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobRowUpdate.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + let properties = {}; + if (message.rowId != null && message.hasOwnProperty("rowId")) + if (!(message.rowId && typeof message.rowId.length === "number" || $util.isString(message.rowId))) + return "rowId: buffer expected"; + if (message.rid != null && message.hasOwnProperty("rid")) { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.rid); + if (error) + return "rid." + error; + } + if (message.docState != null && message.hasOwnProperty("docState")) { + let error = $root.database_blob.CollabDocState.verify(message.docState); + if (error) + return "docState." + error; + } + if (message.document != null && message.hasOwnProperty("document")) { + properties._document = 1; + { + let error = $root.database_blob.DatabaseBlobRowDocument.verify(message.document); + if (error) + return "document." + error; + } + } + return null; + }; + + /** + * Creates a DatabaseBlobRowUpdate message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobRowUpdate} DatabaseBlobRowUpdate + */ + DatabaseBlobRowUpdate.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobRowUpdate) + return object; + let message = new $root.database_blob.DatabaseBlobRowUpdate(); + if (object.rowId != null) + if (typeof object.rowId === "string") + $util.base64.decode(object.rowId, message.rowId = $util.newBuffer($util.base64.length(object.rowId)), 0); + else if (object.rowId.length >= 0) + message.rowId = object.rowId; + if (object.rid != null) { + if (typeof object.rid !== "object") + throw TypeError(".database_blob.DatabaseBlobRowUpdate.rid: object expected"); + message.rid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.rid); + } + if (object.docState != null) { + if (typeof object.docState !== "object") + throw TypeError(".database_blob.DatabaseBlobRowUpdate.docState: object expected"); + message.docState = $root.database_blob.CollabDocState.fromObject(object.docState); + } + if (object.document != null) { + if (typeof object.document !== "object") + throw TypeError(".database_blob.DatabaseBlobRowUpdate.document: object expected"); + message.document = $root.database_blob.DatabaseBlobRowDocument.fromObject(object.document); + } + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobRowUpdate message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {database_blob.DatabaseBlobRowUpdate} message DatabaseBlobRowUpdate + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobRowUpdate.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.rowId = ""; + else { + object.rowId = []; + if (options.bytes !== Array) + object.rowId = $util.newBuffer(object.rowId); + } + object.rid = null; + object.docState = null; + } + if (message.rowId != null && message.hasOwnProperty("rowId")) + object.rowId = options.bytes === String ? $util.base64.encode(message.rowId, 0, message.rowId.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowId) : message.rowId; + if (message.rid != null && message.hasOwnProperty("rid")) + object.rid = $root.database_blob.DatabaseBlobRowRid.toObject(message.rid, options); + if (message.docState != null && message.hasOwnProperty("docState")) + object.docState = $root.database_blob.CollabDocState.toObject(message.docState, options); + if (message.document != null && message.hasOwnProperty("document")) { + object.document = $root.database_blob.DatabaseBlobRowDocument.toObject(message.document, options); + if (options.oneofs) + object._document = "document"; + } + return object; + }; + + /** + * Converts this DatabaseBlobRowUpdate to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobRowUpdate + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobRowUpdate.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobRowUpdate + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobRowUpdate + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobRowUpdate.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobRowUpdate"; + }; + + return DatabaseBlobRowUpdate; + })(); + + database_blob.DatabaseBlobRowDelete = (function() { + + /** + * Properties of a DatabaseBlobRowDelete. + * @memberof database_blob + * @interface IDatabaseBlobRowDelete + * @property {Uint8Array|null} [rowId] DatabaseBlobRowDelete rowId + * @property {database_blob.IDatabaseBlobRowRid|null} [rid] DatabaseBlobRowDelete rid + */ + + /** + * Constructs a new DatabaseBlobRowDelete. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobRowDelete. + * @implements IDatabaseBlobRowDelete + * @constructor + * @param {database_blob.IDatabaseBlobRowDelete=} [properties] Properties to set + */ + function DatabaseBlobRowDelete(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobRowDelete rowId. + * @member {Uint8Array} rowId + * @memberof database_blob.DatabaseBlobRowDelete + * @instance + */ + DatabaseBlobRowDelete.prototype.rowId = $util.newBuffer([]); + + /** + * DatabaseBlobRowDelete rid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} rid + * @memberof database_blob.DatabaseBlobRowDelete + * @instance + */ + DatabaseBlobRowDelete.prototype.rid = null; + + /** + * Creates a new DatabaseBlobRowDelete instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {database_blob.IDatabaseBlobRowDelete=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobRowDelete} DatabaseBlobRowDelete instance + */ + DatabaseBlobRowDelete.create = function create(properties) { + return new DatabaseBlobRowDelete(properties); + }; + + /** + * Encodes the specified DatabaseBlobRowDelete message. Does not implicitly {@link database_blob.DatabaseBlobRowDelete.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {database_blob.IDatabaseBlobRowDelete} message DatabaseBlobRowDelete message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowDelete.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rowId != null && Object.hasOwnProperty.call(message, "rowId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.rowId); + if (message.rid != null && Object.hasOwnProperty.call(message, "rid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.rid, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobRowDelete message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobRowDelete.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {database_blob.IDatabaseBlobRowDelete} message DatabaseBlobRowDelete message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobRowDelete.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobRowDelete message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobRowDelete} DatabaseBlobRowDelete + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowDelete.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobRowDelete(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.rowId = reader.bytes(); + break; + } + case 2: { + message.rid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobRowDelete message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobRowDelete} DatabaseBlobRowDelete + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobRowDelete.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobRowDelete message. + * @function verify + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobRowDelete.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.rowId != null && message.hasOwnProperty("rowId")) + if (!(message.rowId && typeof message.rowId.length === "number" || $util.isString(message.rowId))) + return "rowId: buffer expected"; + if (message.rid != null && message.hasOwnProperty("rid")) { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.rid); + if (error) + return "rid." + error; + } + return null; + }; + + /** + * Creates a DatabaseBlobRowDelete message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobRowDelete} DatabaseBlobRowDelete + */ + DatabaseBlobRowDelete.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobRowDelete) + return object; + let message = new $root.database_blob.DatabaseBlobRowDelete(); + if (object.rowId != null) + if (typeof object.rowId === "string") + $util.base64.decode(object.rowId, message.rowId = $util.newBuffer($util.base64.length(object.rowId)), 0); + else if (object.rowId.length >= 0) + message.rowId = object.rowId; + if (object.rid != null) { + if (typeof object.rid !== "object") + throw TypeError(".database_blob.DatabaseBlobRowDelete.rid: object expected"); + message.rid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.rid); + } + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobRowDelete message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {database_blob.DatabaseBlobRowDelete} message DatabaseBlobRowDelete + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobRowDelete.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.rowId = ""; + else { + object.rowId = []; + if (options.bytes !== Array) + object.rowId = $util.newBuffer(object.rowId); + } + object.rid = null; + } + if (message.rowId != null && message.hasOwnProperty("rowId")) + object.rowId = options.bytes === String ? $util.base64.encode(message.rowId, 0, message.rowId.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowId) : message.rowId; + if (message.rid != null && message.hasOwnProperty("rid")) + object.rid = $root.database_blob.DatabaseBlobRowRid.toObject(message.rid, options); + return object; + }; + + /** + * Converts this DatabaseBlobRowDelete to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobRowDelete + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobRowDelete.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobRowDelete + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobRowDelete + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobRowDelete.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobRowDelete"; + }; + + return DatabaseBlobRowDelete; + })(); + + database_blob.DatabaseBlobDiffResponse = (function() { + + /** + * Properties of a DatabaseBlobDiffResponse. + * @memberof database_blob + * @interface IDatabaseBlobDiffResponse + * @property {string|null} [manifestVersion] DatabaseBlobDiffResponse manifestVersion + * @property {string|null} [headBlobKey] DatabaseBlobDiffResponse headBlobKey + * @property {Array.|null} [updates] DatabaseBlobDiffResponse updates + * @property {Array.|null} [deletes] DatabaseBlobDiffResponse deletes + * @property {Array.|null} [creates] DatabaseBlobDiffResponse creates + * @property {database_blob.DiffStatus|null} [status] DatabaseBlobDiffResponse status + * @property {number|null} [retryAfterSecs] DatabaseBlobDiffResponse retryAfterSecs + * @property {string|null} [message] DatabaseBlobDiffResponse message + */ + + /** + * Constructs a new DatabaseBlobDiffResponse. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobDiffResponse. + * @implements IDatabaseBlobDiffResponse + * @constructor + * @param {database_blob.IDatabaseBlobDiffResponse=} [properties] Properties to set + */ + function DatabaseBlobDiffResponse(properties) { + this.updates = []; + this.deletes = []; + this.creates = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobDiffResponse manifestVersion. + * @member {string} manifestVersion + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.manifestVersion = ""; + + /** + * DatabaseBlobDiffResponse headBlobKey. + * @member {string|null|undefined} headBlobKey + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.headBlobKey = null; + + /** + * DatabaseBlobDiffResponse updates. + * @member {Array.} updates + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.updates = $util.emptyArray; + + /** + * DatabaseBlobDiffResponse deletes. + * @member {Array.} deletes + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.deletes = $util.emptyArray; + + /** + * DatabaseBlobDiffResponse creates. + * @member {Array.} creates + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.creates = $util.emptyArray; + + /** + * DatabaseBlobDiffResponse status. + * @member {database_blob.DiffStatus} status + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.status = 0; + + /** + * DatabaseBlobDiffResponse retryAfterSecs. + * @member {number|null|undefined} retryAfterSecs + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.retryAfterSecs = null; + + /** + * DatabaseBlobDiffResponse message. + * @member {string|null|undefined} message + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + DatabaseBlobDiffResponse.prototype.message = null; + + // OneOf field names bound to virtual getters and setters + let $oneOfFields; + + /** + * DatabaseBlobDiffResponse _headBlobKey. + * @member {"headBlobKey"|undefined} _headBlobKey + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + Object.defineProperty(DatabaseBlobDiffResponse.prototype, "_headBlobKey", { + get: $util.oneOfGetter($oneOfFields = ["headBlobKey"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * DatabaseBlobDiffResponse _retryAfterSecs. + * @member {"retryAfterSecs"|undefined} _retryAfterSecs + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + Object.defineProperty(DatabaseBlobDiffResponse.prototype, "_retryAfterSecs", { + get: $util.oneOfGetter($oneOfFields = ["retryAfterSecs"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * DatabaseBlobDiffResponse _message. + * @member {"message"|undefined} _message + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + */ + Object.defineProperty(DatabaseBlobDiffResponse.prototype, "_message", { + get: $util.oneOfGetter($oneOfFields = ["message"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new DatabaseBlobDiffResponse instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {database_blob.IDatabaseBlobDiffResponse=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobDiffResponse} DatabaseBlobDiffResponse instance + */ + DatabaseBlobDiffResponse.create = function create(properties) { + return new DatabaseBlobDiffResponse(properties); + }; + + /** + * Encodes the specified DatabaseBlobDiffResponse message. Does not implicitly {@link database_blob.DatabaseBlobDiffResponse.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {database_blob.IDatabaseBlobDiffResponse} message DatabaseBlobDiffResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobDiffResponse.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.manifestVersion != null && Object.hasOwnProperty.call(message, "manifestVersion")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.manifestVersion); + if (message.headBlobKey != null && Object.hasOwnProperty.call(message, "headBlobKey")) + writer.uint32(/* id 2, wireType 2 =*/18).string(message.headBlobKey); + if (message.updates != null && message.updates.length) + for (let i = 0; i < message.updates.length; ++i) + $root.database_blob.DatabaseBlobRowUpdate.encode(message.updates[i], writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.deletes != null && message.deletes.length) + for (let i = 0; i < message.deletes.length; ++i) + $root.database_blob.DatabaseBlobRowDelete.encode(message.deletes[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.creates != null && message.creates.length) + for (let i = 0; i < message.creates.length; ++i) + $root.database_blob.DatabaseBlobRowUpdate.encode(message.creates[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.status != null && Object.hasOwnProperty.call(message, "status")) + writer.uint32(/* id 6, wireType 0 =*/48).int32(message.status); + if (message.retryAfterSecs != null && Object.hasOwnProperty.call(message, "retryAfterSecs")) + writer.uint32(/* id 7, wireType 0 =*/56).uint32(message.retryAfterSecs); + if (message.message != null && Object.hasOwnProperty.call(message, "message")) + writer.uint32(/* id 8, wireType 2 =*/66).string(message.message); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobDiffResponse message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobDiffResponse.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {database_blob.IDatabaseBlobDiffResponse} message DatabaseBlobDiffResponse message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobDiffResponse.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobDiffResponse message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobDiffResponse} DatabaseBlobDiffResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobDiffResponse.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobDiffResponse(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.manifestVersion = reader.string(); + break; + } + case 2: { + message.headBlobKey = reader.string(); + break; + } + case 3: { + if (!(message.updates && message.updates.length)) + message.updates = []; + message.updates.push($root.database_blob.DatabaseBlobRowUpdate.decode(reader, reader.uint32())); + break; + } + case 4: { + if (!(message.deletes && message.deletes.length)) + message.deletes = []; + message.deletes.push($root.database_blob.DatabaseBlobRowDelete.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.creates && message.creates.length)) + message.creates = []; + message.creates.push($root.database_blob.DatabaseBlobRowUpdate.decode(reader, reader.uint32())); + break; + } + case 6: { + message.status = reader.int32(); + break; + } + case 7: { + message.retryAfterSecs = reader.uint32(); + break; + } + case 8: { + message.message = reader.string(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobDiffResponse message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobDiffResponse} DatabaseBlobDiffResponse + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobDiffResponse.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobDiffResponse message. + * @function verify + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobDiffResponse.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + let properties = {}; + if (message.manifestVersion != null && message.hasOwnProperty("manifestVersion")) + if (!$util.isString(message.manifestVersion)) + return "manifestVersion: string expected"; + if (message.headBlobKey != null && message.hasOwnProperty("headBlobKey")) { + properties._headBlobKey = 1; + if (!$util.isString(message.headBlobKey)) + return "headBlobKey: string expected"; + } + if (message.updates != null && message.hasOwnProperty("updates")) { + if (!Array.isArray(message.updates)) + return "updates: array expected"; + for (let i = 0; i < message.updates.length; ++i) { + let error = $root.database_blob.DatabaseBlobRowUpdate.verify(message.updates[i]); + if (error) + return "updates." + error; + } + } + if (message.deletes != null && message.hasOwnProperty("deletes")) { + if (!Array.isArray(message.deletes)) + return "deletes: array expected"; + for (let i = 0; i < message.deletes.length; ++i) { + let error = $root.database_blob.DatabaseBlobRowDelete.verify(message.deletes[i]); + if (error) + return "deletes." + error; + } + } + if (message.creates != null && message.hasOwnProperty("creates")) { + if (!Array.isArray(message.creates)) + return "creates: array expected"; + for (let i = 0; i < message.creates.length; ++i) { + let error = $root.database_blob.DatabaseBlobRowUpdate.verify(message.creates[i]); + if (error) + return "creates." + error; + } + } + if (message.status != null && message.hasOwnProperty("status")) + switch (message.status) { + default: + return "status: enum value expected"; + case 0: + case 1: + break; + } + if (message.retryAfterSecs != null && message.hasOwnProperty("retryAfterSecs")) { + properties._retryAfterSecs = 1; + if (!$util.isInteger(message.retryAfterSecs)) + return "retryAfterSecs: integer expected"; + } + if (message.message != null && message.hasOwnProperty("message")) { + properties._message = 1; + if (!$util.isString(message.message)) + return "message: string expected"; + } + return null; + }; + + /** + * Creates a DatabaseBlobDiffResponse message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobDiffResponse} DatabaseBlobDiffResponse + */ + DatabaseBlobDiffResponse.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobDiffResponse) + return object; + let message = new $root.database_blob.DatabaseBlobDiffResponse(); + if (object.manifestVersion != null) + message.manifestVersion = String(object.manifestVersion); + if (object.headBlobKey != null) + message.headBlobKey = String(object.headBlobKey); + if (object.updates) { + if (!Array.isArray(object.updates)) + throw TypeError(".database_blob.DatabaseBlobDiffResponse.updates: array expected"); + message.updates = []; + for (let i = 0; i < object.updates.length; ++i) { + if (typeof object.updates[i] !== "object") + throw TypeError(".database_blob.DatabaseBlobDiffResponse.updates: object expected"); + message.updates[i] = $root.database_blob.DatabaseBlobRowUpdate.fromObject(object.updates[i]); + } + } + if (object.deletes) { + if (!Array.isArray(object.deletes)) + throw TypeError(".database_blob.DatabaseBlobDiffResponse.deletes: array expected"); + message.deletes = []; + for (let i = 0; i < object.deletes.length; ++i) { + if (typeof object.deletes[i] !== "object") + throw TypeError(".database_blob.DatabaseBlobDiffResponse.deletes: object expected"); + message.deletes[i] = $root.database_blob.DatabaseBlobRowDelete.fromObject(object.deletes[i]); + } + } + if (object.creates) { + if (!Array.isArray(object.creates)) + throw TypeError(".database_blob.DatabaseBlobDiffResponse.creates: array expected"); + message.creates = []; + for (let i = 0; i < object.creates.length; ++i) { + if (typeof object.creates[i] !== "object") + throw TypeError(".database_blob.DatabaseBlobDiffResponse.creates: object expected"); + message.creates[i] = $root.database_blob.DatabaseBlobRowUpdate.fromObject(object.creates[i]); + } + } + switch (object.status) { + default: + if (typeof object.status === "number") { + message.status = object.status; + break; + } + break; + case "READY": + case 0: + message.status = 0; + break; + case "PENDING": + case 1: + message.status = 1; + break; + } + if (object.retryAfterSecs != null) + message.retryAfterSecs = object.retryAfterSecs >>> 0; + if (object.message != null) + message.message = String(object.message); + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobDiffResponse message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {database_blob.DatabaseBlobDiffResponse} message DatabaseBlobDiffResponse + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobDiffResponse.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) { + object.updates = []; + object.deletes = []; + object.creates = []; + } + if (options.defaults) { + object.manifestVersion = ""; + object.status = options.enums === String ? "READY" : 0; + } + if (message.manifestVersion != null && message.hasOwnProperty("manifestVersion")) + object.manifestVersion = message.manifestVersion; + if (message.headBlobKey != null && message.hasOwnProperty("headBlobKey")) { + object.headBlobKey = message.headBlobKey; + if (options.oneofs) + object._headBlobKey = "headBlobKey"; + } + if (message.updates && message.updates.length) { + object.updates = []; + for (let j = 0; j < message.updates.length; ++j) + object.updates[j] = $root.database_blob.DatabaseBlobRowUpdate.toObject(message.updates[j], options); + } + if (message.deletes && message.deletes.length) { + object.deletes = []; + for (let j = 0; j < message.deletes.length; ++j) + object.deletes[j] = $root.database_blob.DatabaseBlobRowDelete.toObject(message.deletes[j], options); + } + if (message.creates && message.creates.length) { + object.creates = []; + for (let j = 0; j < message.creates.length; ++j) + object.creates[j] = $root.database_blob.DatabaseBlobRowUpdate.toObject(message.creates[j], options); + } + if (message.status != null && message.hasOwnProperty("status")) + object.status = options.enums === String ? $root.database_blob.DiffStatus[message.status] === undefined ? message.status : $root.database_blob.DiffStatus[message.status] : message.status; + if (message.retryAfterSecs != null && message.hasOwnProperty("retryAfterSecs")) { + object.retryAfterSecs = message.retryAfterSecs; + if (options.oneofs) + object._retryAfterSecs = "retryAfterSecs"; + } + if (message.message != null && message.hasOwnProperty("message")) { + object.message = message.message; + if (options.oneofs) + object._message = "message"; + } + return object; + }; + + /** + * Converts this DatabaseBlobDiffResponse to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobDiffResponse + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobDiffResponse.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobDiffResponse + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobDiffResponse + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobDiffResponse.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobDiffResponse"; + }; + + return DatabaseBlobDiffResponse; + })(); + + database_blob.BlobDescriptor = (function() { + + /** + * Properties of a BlobDescriptor. + * @memberof database_blob + * @interface IBlobDescriptor + * @property {string|null} [key] BlobDescriptor key + * @property {database_blob.IDatabaseBlobRowRid|null} [startRid] BlobDescriptor startRid + * @property {database_blob.IDatabaseBlobRowRid|null} [endRid] BlobDescriptor endRid + * @property {number|Long|null} [totalBytes] BlobDescriptor totalBytes + * @property {boolean|null} [sealed] BlobDescriptor sealed + */ + + /** + * Constructs a new BlobDescriptor. + * @memberof database_blob + * @classdesc Represents a BlobDescriptor. + * @implements IBlobDescriptor + * @constructor + * @param {database_blob.IBlobDescriptor=} [properties] Properties to set + */ + function BlobDescriptor(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * BlobDescriptor key. + * @member {string} key + * @memberof database_blob.BlobDescriptor + * @instance + */ + BlobDescriptor.prototype.key = ""; + + /** + * BlobDescriptor startRid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} startRid + * @memberof database_blob.BlobDescriptor + * @instance + */ + BlobDescriptor.prototype.startRid = null; + + /** + * BlobDescriptor endRid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} endRid + * @memberof database_blob.BlobDescriptor + * @instance + */ + BlobDescriptor.prototype.endRid = null; + + /** + * BlobDescriptor totalBytes. + * @member {number|Long} totalBytes + * @memberof database_blob.BlobDescriptor + * @instance + */ + BlobDescriptor.prototype.totalBytes = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * BlobDescriptor sealed. + * @member {boolean} sealed + * @memberof database_blob.BlobDescriptor + * @instance + */ + BlobDescriptor.prototype.sealed = false; + + // OneOf field names bound to virtual getters and setters + let $oneOfFields; + + /** + * BlobDescriptor _startRid. + * @member {"startRid"|undefined} _startRid + * @memberof database_blob.BlobDescriptor + * @instance + */ + Object.defineProperty(BlobDescriptor.prototype, "_startRid", { + get: $util.oneOfGetter($oneOfFields = ["startRid"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * BlobDescriptor _endRid. + * @member {"endRid"|undefined} _endRid + * @memberof database_blob.BlobDescriptor + * @instance + */ + Object.defineProperty(BlobDescriptor.prototype, "_endRid", { + get: $util.oneOfGetter($oneOfFields = ["endRid"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new BlobDescriptor instance using the specified properties. + * @function create + * @memberof database_blob.BlobDescriptor + * @static + * @param {database_blob.IBlobDescriptor=} [properties] Properties to set + * @returns {database_blob.BlobDescriptor} BlobDescriptor instance + */ + BlobDescriptor.create = function create(properties) { + return new BlobDescriptor(properties); + }; + + /** + * Encodes the specified BlobDescriptor message. Does not implicitly {@link database_blob.BlobDescriptor.verify|verify} messages. + * @function encode + * @memberof database_blob.BlobDescriptor + * @static + * @param {database_blob.IBlobDescriptor} message BlobDescriptor message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlobDescriptor.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.key != null && Object.hasOwnProperty.call(message, "key")) + writer.uint32(/* id 1, wireType 2 =*/10).string(message.key); + if (message.startRid != null && Object.hasOwnProperty.call(message, "startRid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.startRid, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.endRid != null && Object.hasOwnProperty.call(message, "endRid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.endRid, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim(); + if (message.totalBytes != null && Object.hasOwnProperty.call(message, "totalBytes")) + writer.uint32(/* id 4, wireType 0 =*/32).uint64(message.totalBytes); + if (message.sealed != null && Object.hasOwnProperty.call(message, "sealed")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.sealed); + return writer; + }; + + /** + * Encodes the specified BlobDescriptor message, length delimited. Does not implicitly {@link database_blob.BlobDescriptor.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.BlobDescriptor + * @static + * @param {database_blob.IBlobDescriptor} message BlobDescriptor message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + BlobDescriptor.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a BlobDescriptor message from the specified reader or buffer. + * @function decode + * @memberof database_blob.BlobDescriptor + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.BlobDescriptor} BlobDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlobDescriptor.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.BlobDescriptor(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.key = reader.string(); + break; + } + case 2: { + message.startRid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 3: { + message.endRid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 4: { + message.totalBytes = reader.uint64(); + break; + } + case 5: { + message.sealed = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a BlobDescriptor message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.BlobDescriptor + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.BlobDescriptor} BlobDescriptor + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + BlobDescriptor.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a BlobDescriptor message. + * @function verify + * @memberof database_blob.BlobDescriptor + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + BlobDescriptor.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + let properties = {}; + if (message.key != null && message.hasOwnProperty("key")) + if (!$util.isString(message.key)) + return "key: string expected"; + if (message.startRid != null && message.hasOwnProperty("startRid")) { + properties._startRid = 1; + { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.startRid); + if (error) + return "startRid." + error; + } + } + if (message.endRid != null && message.hasOwnProperty("endRid")) { + properties._endRid = 1; + { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.endRid); + if (error) + return "endRid." + error; + } + } + if (message.totalBytes != null && message.hasOwnProperty("totalBytes")) + if (!$util.isInteger(message.totalBytes) && !(message.totalBytes && $util.isInteger(message.totalBytes.low) && $util.isInteger(message.totalBytes.high))) + return "totalBytes: integer|Long expected"; + if (message.sealed != null && message.hasOwnProperty("sealed")) + if (typeof message.sealed !== "boolean") + return "sealed: boolean expected"; + return null; + }; + + /** + * Creates a BlobDescriptor message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.BlobDescriptor + * @static + * @param {Object.} object Plain object + * @returns {database_blob.BlobDescriptor} BlobDescriptor + */ + BlobDescriptor.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.BlobDescriptor) + return object; + let message = new $root.database_blob.BlobDescriptor(); + if (object.key != null) + message.key = String(object.key); + if (object.startRid != null) { + if (typeof object.startRid !== "object") + throw TypeError(".database_blob.BlobDescriptor.startRid: object expected"); + message.startRid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.startRid); + } + if (object.endRid != null) { + if (typeof object.endRid !== "object") + throw TypeError(".database_blob.BlobDescriptor.endRid: object expected"); + message.endRid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.endRid); + } + if (object.totalBytes != null) + if ($util.Long) + (message.totalBytes = $util.Long.fromValue(object.totalBytes)).unsigned = true; + else if (typeof object.totalBytes === "string") + message.totalBytes = parseInt(object.totalBytes, 10); + else if (typeof object.totalBytes === "number") + message.totalBytes = object.totalBytes; + else if (typeof object.totalBytes === "object") + message.totalBytes = new $util.LongBits(object.totalBytes.low >>> 0, object.totalBytes.high >>> 0).toNumber(true); + if (object.sealed != null) + message.sealed = Boolean(object.sealed); + return message; + }; + + /** + * Creates a plain object from a BlobDescriptor message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.BlobDescriptor + * @static + * @param {database_blob.BlobDescriptor} message BlobDescriptor + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + BlobDescriptor.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + object.key = ""; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.totalBytes = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.totalBytes = options.longs === String ? "0" : 0; + object.sealed = false; + } + if (message.key != null && message.hasOwnProperty("key")) + object.key = message.key; + if (message.startRid != null && message.hasOwnProperty("startRid")) { + object.startRid = $root.database_blob.DatabaseBlobRowRid.toObject(message.startRid, options); + if (options.oneofs) + object._startRid = "startRid"; + } + if (message.endRid != null && message.hasOwnProperty("endRid")) { + object.endRid = $root.database_blob.DatabaseBlobRowRid.toObject(message.endRid, options); + if (options.oneofs) + object._endRid = "endRid"; + } + if (message.totalBytes != null && message.hasOwnProperty("totalBytes")) + if (typeof message.totalBytes === "number") + object.totalBytes = options.longs === String ? String(message.totalBytes) : message.totalBytes; + else + object.totalBytes = options.longs === String ? $util.Long.prototype.toString.call(message.totalBytes) : options.longs === Number ? new $util.LongBits(message.totalBytes.low >>> 0, message.totalBytes.high >>> 0).toNumber(true) : message.totalBytes; + if (message.sealed != null && message.hasOwnProperty("sealed")) + object.sealed = message.sealed; + return object; + }; + + /** + * Converts this BlobDescriptor to JSON. + * @function toJSON + * @memberof database_blob.BlobDescriptor + * @instance + * @returns {Object.} JSON object + */ + BlobDescriptor.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for BlobDescriptor + * @function getTypeUrl + * @memberof database_blob.BlobDescriptor + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + BlobDescriptor.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.BlobDescriptor"; + }; + + return BlobDescriptor; + })(); + + database_blob.ManifestRowDocumentPointer = (function() { + + /** + * Properties of a ManifestRowDocumentPointer. + * @memberof database_blob + * @interface IManifestRowDocumentPointer + * @property {Uint8Array|null} [documentId] ManifestRowDocumentPointer documentId + * @property {database_blob.IDatabaseBlobRowRid|null} [rid] ManifestRowDocumentPointer rid + * @property {boolean|null} [deleted] ManifestRowDocumentPointer deleted + */ + + /** + * Constructs a new ManifestRowDocumentPointer. + * @memberof database_blob + * @classdesc Represents a ManifestRowDocumentPointer. + * @implements IManifestRowDocumentPointer + * @constructor + * @param {database_blob.IManifestRowDocumentPointer=} [properties] Properties to set + */ + function ManifestRowDocumentPointer(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManifestRowDocumentPointer documentId. + * @member {Uint8Array} documentId + * @memberof database_blob.ManifestRowDocumentPointer + * @instance + */ + ManifestRowDocumentPointer.prototype.documentId = $util.newBuffer([]); + + /** + * ManifestRowDocumentPointer rid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} rid + * @memberof database_blob.ManifestRowDocumentPointer + * @instance + */ + ManifestRowDocumentPointer.prototype.rid = null; + + /** + * ManifestRowDocumentPointer deleted. + * @member {boolean} deleted + * @memberof database_blob.ManifestRowDocumentPointer + * @instance + */ + ManifestRowDocumentPointer.prototype.deleted = false; + + /** + * Creates a new ManifestRowDocumentPointer instance using the specified properties. + * @function create + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {database_blob.IManifestRowDocumentPointer=} [properties] Properties to set + * @returns {database_blob.ManifestRowDocumentPointer} ManifestRowDocumentPointer instance + */ + ManifestRowDocumentPointer.create = function create(properties) { + return new ManifestRowDocumentPointer(properties); + }; + + /** + * Encodes the specified ManifestRowDocumentPointer message. Does not implicitly {@link database_blob.ManifestRowDocumentPointer.verify|verify} messages. + * @function encode + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {database_blob.IManifestRowDocumentPointer} message ManifestRowDocumentPointer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManifestRowDocumentPointer.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.documentId != null && Object.hasOwnProperty.call(message, "documentId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.documentId); + if (message.rid != null && Object.hasOwnProperty.call(message, "rid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.rid, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim(); + if (message.deleted != null && Object.hasOwnProperty.call(message, "deleted")) + writer.uint32(/* id 3, wireType 0 =*/24).bool(message.deleted); + return writer; + }; + + /** + * Encodes the specified ManifestRowDocumentPointer message, length delimited. Does not implicitly {@link database_blob.ManifestRowDocumentPointer.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {database_blob.IManifestRowDocumentPointer} message ManifestRowDocumentPointer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManifestRowDocumentPointer.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManifestRowDocumentPointer message from the specified reader or buffer. + * @function decode + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.ManifestRowDocumentPointer} ManifestRowDocumentPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManifestRowDocumentPointer.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.ManifestRowDocumentPointer(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.documentId = reader.bytes(); + break; + } + case 2: { + message.rid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 3: { + message.deleted = reader.bool(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManifestRowDocumentPointer message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.ManifestRowDocumentPointer} ManifestRowDocumentPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManifestRowDocumentPointer.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManifestRowDocumentPointer message. + * @function verify + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManifestRowDocumentPointer.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.documentId != null && message.hasOwnProperty("documentId")) + if (!(message.documentId && typeof message.documentId.length === "number" || $util.isString(message.documentId))) + return "documentId: buffer expected"; + if (message.rid != null && message.hasOwnProperty("rid")) { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.rid); + if (error) + return "rid." + error; + } + if (message.deleted != null && message.hasOwnProperty("deleted")) + if (typeof message.deleted !== "boolean") + return "deleted: boolean expected"; + return null; + }; + + /** + * Creates a ManifestRowDocumentPointer message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {Object.} object Plain object + * @returns {database_blob.ManifestRowDocumentPointer} ManifestRowDocumentPointer + */ + ManifestRowDocumentPointer.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.ManifestRowDocumentPointer) + return object; + let message = new $root.database_blob.ManifestRowDocumentPointer(); + if (object.documentId != null) + if (typeof object.documentId === "string") + $util.base64.decode(object.documentId, message.documentId = $util.newBuffer($util.base64.length(object.documentId)), 0); + else if (object.documentId.length >= 0) + message.documentId = object.documentId; + if (object.rid != null) { + if (typeof object.rid !== "object") + throw TypeError(".database_blob.ManifestRowDocumentPointer.rid: object expected"); + message.rid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.rid); + } + if (object.deleted != null) + message.deleted = Boolean(object.deleted); + return message; + }; + + /** + * Creates a plain object from a ManifestRowDocumentPointer message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {database_blob.ManifestRowDocumentPointer} message ManifestRowDocumentPointer + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManifestRowDocumentPointer.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.documentId = ""; + else { + object.documentId = []; + if (options.bytes !== Array) + object.documentId = $util.newBuffer(object.documentId); + } + object.rid = null; + object.deleted = false; + } + if (message.documentId != null && message.hasOwnProperty("documentId")) + object.documentId = options.bytes === String ? $util.base64.encode(message.documentId, 0, message.documentId.length) : options.bytes === Array ? Array.prototype.slice.call(message.documentId) : message.documentId; + if (message.rid != null && message.hasOwnProperty("rid")) + object.rid = $root.database_blob.DatabaseBlobRowRid.toObject(message.rid, options); + if (message.deleted != null && message.hasOwnProperty("deleted")) + object.deleted = message.deleted; + return object; + }; + + /** + * Converts this ManifestRowDocumentPointer to JSON. + * @function toJSON + * @memberof database_blob.ManifestRowDocumentPointer + * @instance + * @returns {Object.} JSON object + */ + ManifestRowDocumentPointer.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManifestRowDocumentPointer + * @function getTypeUrl + * @memberof database_blob.ManifestRowDocumentPointer + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManifestRowDocumentPointer.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.ManifestRowDocumentPointer"; + }; + + return ManifestRowDocumentPointer; + })(); + + database_blob.ManifestRowPointer = (function() { + + /** + * Properties of a ManifestRowPointer. + * @memberof database_blob + * @interface IManifestRowPointer + * @property {Uint8Array|null} [rowId] ManifestRowPointer rowId + * @property {number|null} [blobIndex] ManifestRowPointer blobIndex + * @property {number|Long|null} [segmentOffset] ManifestRowPointer segmentOffset + * @property {database_blob.IDatabaseBlobRowRid|null} [rid] ManifestRowPointer rid + * @property {boolean|null} [deleted] ManifestRowPointer deleted + * @property {database_blob.IManifestRowDocumentPointer|null} [document] ManifestRowPointer document + */ + + /** + * Constructs a new ManifestRowPointer. + * @memberof database_blob + * @classdesc Represents a ManifestRowPointer. + * @implements IManifestRowPointer + * @constructor + * @param {database_blob.IManifestRowPointer=} [properties] Properties to set + */ + function ManifestRowPointer(properties) { + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * ManifestRowPointer rowId. + * @member {Uint8Array} rowId + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.rowId = $util.newBuffer([]); + + /** + * ManifestRowPointer blobIndex. + * @member {number} blobIndex + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.blobIndex = 0; + + /** + * ManifestRowPointer segmentOffset. + * @member {number|Long} segmentOffset + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.segmentOffset = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * ManifestRowPointer rid. + * @member {database_blob.IDatabaseBlobRowRid|null|undefined} rid + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.rid = null; + + /** + * ManifestRowPointer deleted. + * @member {boolean} deleted + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.deleted = false; + + /** + * ManifestRowPointer document. + * @member {database_blob.IManifestRowDocumentPointer|null|undefined} document + * @memberof database_blob.ManifestRowPointer + * @instance + */ + ManifestRowPointer.prototype.document = null; + + // OneOf field names bound to virtual getters and setters + let $oneOfFields; + + /** + * ManifestRowPointer _document. + * @member {"document"|undefined} _document + * @memberof database_blob.ManifestRowPointer + * @instance + */ + Object.defineProperty(ManifestRowPointer.prototype, "_document", { + get: $util.oneOfGetter($oneOfFields = ["document"]), + set: $util.oneOfSetter($oneOfFields) + }); + + /** + * Creates a new ManifestRowPointer instance using the specified properties. + * @function create + * @memberof database_blob.ManifestRowPointer + * @static + * @param {database_blob.IManifestRowPointer=} [properties] Properties to set + * @returns {database_blob.ManifestRowPointer} ManifestRowPointer instance + */ + ManifestRowPointer.create = function create(properties) { + return new ManifestRowPointer(properties); + }; + + /** + * Encodes the specified ManifestRowPointer message. Does not implicitly {@link database_blob.ManifestRowPointer.verify|verify} messages. + * @function encode + * @memberof database_blob.ManifestRowPointer + * @static + * @param {database_blob.IManifestRowPointer} message ManifestRowPointer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManifestRowPointer.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.rowId != null && Object.hasOwnProperty.call(message, "rowId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.rowId); + if (message.blobIndex != null && Object.hasOwnProperty.call(message, "blobIndex")) + writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.blobIndex); + if (message.segmentOffset != null && Object.hasOwnProperty.call(message, "segmentOffset")) + writer.uint32(/* id 3, wireType 0 =*/24).uint64(message.segmentOffset); + if (message.rid != null && Object.hasOwnProperty.call(message, "rid")) + $root.database_blob.DatabaseBlobRowRid.encode(message.rid, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.deleted != null && Object.hasOwnProperty.call(message, "deleted")) + writer.uint32(/* id 5, wireType 0 =*/40).bool(message.deleted); + if (message.document != null && Object.hasOwnProperty.call(message, "document")) + $root.database_blob.ManifestRowDocumentPointer.encode(message.document, writer.uint32(/* id 6, wireType 2 =*/50).fork()).ldelim(); + return writer; + }; + + /** + * Encodes the specified ManifestRowPointer message, length delimited. Does not implicitly {@link database_blob.ManifestRowPointer.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.ManifestRowPointer + * @static + * @param {database_blob.IManifestRowPointer} message ManifestRowPointer message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + ManifestRowPointer.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a ManifestRowPointer message from the specified reader or buffer. + * @function decode + * @memberof database_blob.ManifestRowPointer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.ManifestRowPointer} ManifestRowPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManifestRowPointer.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.ManifestRowPointer(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.rowId = reader.bytes(); + break; + } + case 2: { + message.blobIndex = reader.uint32(); + break; + } + case 3: { + message.segmentOffset = reader.uint64(); + break; + } + case 4: { + message.rid = $root.database_blob.DatabaseBlobRowRid.decode(reader, reader.uint32()); + break; + } + case 5: { + message.deleted = reader.bool(); + break; + } + case 6: { + message.document = $root.database_blob.ManifestRowDocumentPointer.decode(reader, reader.uint32()); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a ManifestRowPointer message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.ManifestRowPointer + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.ManifestRowPointer} ManifestRowPointer + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + ManifestRowPointer.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a ManifestRowPointer message. + * @function verify + * @memberof database_blob.ManifestRowPointer + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + ManifestRowPointer.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + let properties = {}; + if (message.rowId != null && message.hasOwnProperty("rowId")) + if (!(message.rowId && typeof message.rowId.length === "number" || $util.isString(message.rowId))) + return "rowId: buffer expected"; + if (message.blobIndex != null && message.hasOwnProperty("blobIndex")) + if (!$util.isInteger(message.blobIndex)) + return "blobIndex: integer expected"; + if (message.segmentOffset != null && message.hasOwnProperty("segmentOffset")) + if (!$util.isInteger(message.segmentOffset) && !(message.segmentOffset && $util.isInteger(message.segmentOffset.low) && $util.isInteger(message.segmentOffset.high))) + return "segmentOffset: integer|Long expected"; + if (message.rid != null && message.hasOwnProperty("rid")) { + let error = $root.database_blob.DatabaseBlobRowRid.verify(message.rid); + if (error) + return "rid." + error; + } + if (message.deleted != null && message.hasOwnProperty("deleted")) + if (typeof message.deleted !== "boolean") + return "deleted: boolean expected"; + if (message.document != null && message.hasOwnProperty("document")) { + properties._document = 1; + { + let error = $root.database_blob.ManifestRowDocumentPointer.verify(message.document); + if (error) + return "document." + error; + } + } + return null; + }; + + /** + * Creates a ManifestRowPointer message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.ManifestRowPointer + * @static + * @param {Object.} object Plain object + * @returns {database_blob.ManifestRowPointer} ManifestRowPointer + */ + ManifestRowPointer.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.ManifestRowPointer) + return object; + let message = new $root.database_blob.ManifestRowPointer(); + if (object.rowId != null) + if (typeof object.rowId === "string") + $util.base64.decode(object.rowId, message.rowId = $util.newBuffer($util.base64.length(object.rowId)), 0); + else if (object.rowId.length >= 0) + message.rowId = object.rowId; + if (object.blobIndex != null) + message.blobIndex = object.blobIndex >>> 0; + if (object.segmentOffset != null) + if ($util.Long) + (message.segmentOffset = $util.Long.fromValue(object.segmentOffset)).unsigned = true; + else if (typeof object.segmentOffset === "string") + message.segmentOffset = parseInt(object.segmentOffset, 10); + else if (typeof object.segmentOffset === "number") + message.segmentOffset = object.segmentOffset; + else if (typeof object.segmentOffset === "object") + message.segmentOffset = new $util.LongBits(object.segmentOffset.low >>> 0, object.segmentOffset.high >>> 0).toNumber(true); + if (object.rid != null) { + if (typeof object.rid !== "object") + throw TypeError(".database_blob.ManifestRowPointer.rid: object expected"); + message.rid = $root.database_blob.DatabaseBlobRowRid.fromObject(object.rid); + } + if (object.deleted != null) + message.deleted = Boolean(object.deleted); + if (object.document != null) { + if (typeof object.document !== "object") + throw TypeError(".database_blob.ManifestRowPointer.document: object expected"); + message.document = $root.database_blob.ManifestRowDocumentPointer.fromObject(object.document); + } + return message; + }; + + /** + * Creates a plain object from a ManifestRowPointer message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.ManifestRowPointer + * @static + * @param {database_blob.ManifestRowPointer} message ManifestRowPointer + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + ManifestRowPointer.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.defaults) { + if (options.bytes === String) + object.rowId = ""; + else { + object.rowId = []; + if (options.bytes !== Array) + object.rowId = $util.newBuffer(object.rowId); + } + object.blobIndex = 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.segmentOffset = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.segmentOffset = options.longs === String ? "0" : 0; + object.rid = null; + object.deleted = false; + } + if (message.rowId != null && message.hasOwnProperty("rowId")) + object.rowId = options.bytes === String ? $util.base64.encode(message.rowId, 0, message.rowId.length) : options.bytes === Array ? Array.prototype.slice.call(message.rowId) : message.rowId; + if (message.blobIndex != null && message.hasOwnProperty("blobIndex")) + object.blobIndex = message.blobIndex; + if (message.segmentOffset != null && message.hasOwnProperty("segmentOffset")) + if (typeof message.segmentOffset === "number") + object.segmentOffset = options.longs === String ? String(message.segmentOffset) : message.segmentOffset; + else + object.segmentOffset = options.longs === String ? $util.Long.prototype.toString.call(message.segmentOffset) : options.longs === Number ? new $util.LongBits(message.segmentOffset.low >>> 0, message.segmentOffset.high >>> 0).toNumber(true) : message.segmentOffset; + if (message.rid != null && message.hasOwnProperty("rid")) + object.rid = $root.database_blob.DatabaseBlobRowRid.toObject(message.rid, options); + if (message.deleted != null && message.hasOwnProperty("deleted")) + object.deleted = message.deleted; + if (message.document != null && message.hasOwnProperty("document")) { + object.document = $root.database_blob.ManifestRowDocumentPointer.toObject(message.document, options); + if (options.oneofs) + object._document = "document"; + } + return object; + }; + + /** + * Converts this ManifestRowPointer to JSON. + * @function toJSON + * @memberof database_blob.ManifestRowPointer + * @instance + * @returns {Object.} JSON object + */ + ManifestRowPointer.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for ManifestRowPointer + * @function getTypeUrl + * @memberof database_blob.ManifestRowPointer + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + ManifestRowPointer.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.ManifestRowPointer"; + }; + + return ManifestRowPointer; + })(); + + database_blob.DatabaseBlobManifest = (function() { + + /** + * Properties of a DatabaseBlobManifest. + * @memberof database_blob + * @interface IDatabaseBlobManifest + * @property {Uint8Array|null} [workspaceId] DatabaseBlobManifest workspaceId + * @property {Uint8Array|null} [databaseId] DatabaseBlobManifest databaseId + * @property {string|null} [versionId] DatabaseBlobManifest versionId + * @property {Array.|null} [blobs] DatabaseBlobManifest blobs + * @property {Array.|null} [rowIndex] DatabaseBlobManifest rowIndex + * @property {number|Long|null} [updatedAtMillis] DatabaseBlobManifest updatedAtMillis + * @property {number|Long|null} [lockEpoch] DatabaseBlobManifest lockEpoch + */ + + /** + * Constructs a new DatabaseBlobManifest. + * @memberof database_blob + * @classdesc Represents a DatabaseBlobManifest. + * @implements IDatabaseBlobManifest + * @constructor + * @param {database_blob.IDatabaseBlobManifest=} [properties] Properties to set + */ + function DatabaseBlobManifest(properties) { + this.blobs = []; + this.rowIndex = []; + if (properties) + for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) + if (properties[keys[i]] != null) + this[keys[i]] = properties[keys[i]]; + } + + /** + * DatabaseBlobManifest workspaceId. + * @member {Uint8Array} workspaceId + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.workspaceId = $util.newBuffer([]); + + /** + * DatabaseBlobManifest databaseId. + * @member {Uint8Array} databaseId + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.databaseId = $util.newBuffer([]); + + /** + * DatabaseBlobManifest versionId. + * @member {string} versionId + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.versionId = ""; + + /** + * DatabaseBlobManifest blobs. + * @member {Array.} blobs + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.blobs = $util.emptyArray; + + /** + * DatabaseBlobManifest rowIndex. + * @member {Array.} rowIndex + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.rowIndex = $util.emptyArray; + + /** + * DatabaseBlobManifest updatedAtMillis. + * @member {number|Long} updatedAtMillis + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.updatedAtMillis = $util.Long ? $util.Long.fromBits(0,0,false) : 0; + + /** + * DatabaseBlobManifest lockEpoch. + * @member {number|Long} lockEpoch + * @memberof database_blob.DatabaseBlobManifest + * @instance + */ + DatabaseBlobManifest.prototype.lockEpoch = $util.Long ? $util.Long.fromBits(0,0,true) : 0; + + /** + * Creates a new DatabaseBlobManifest instance using the specified properties. + * @function create + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {database_blob.IDatabaseBlobManifest=} [properties] Properties to set + * @returns {database_blob.DatabaseBlobManifest} DatabaseBlobManifest instance + */ + DatabaseBlobManifest.create = function create(properties) { + return new DatabaseBlobManifest(properties); + }; + + /** + * Encodes the specified DatabaseBlobManifest message. Does not implicitly {@link database_blob.DatabaseBlobManifest.verify|verify} messages. + * @function encode + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {database_blob.IDatabaseBlobManifest} message DatabaseBlobManifest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobManifest.encode = function encode(message, writer) { + if (!writer) + writer = $Writer.create(); + if (message.workspaceId != null && Object.hasOwnProperty.call(message, "workspaceId")) + writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.workspaceId); + if (message.databaseId != null && Object.hasOwnProperty.call(message, "databaseId")) + writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.databaseId); + if (message.versionId != null && Object.hasOwnProperty.call(message, "versionId")) + writer.uint32(/* id 3, wireType 2 =*/26).string(message.versionId); + if (message.blobs != null && message.blobs.length) + for (let i = 0; i < message.blobs.length; ++i) + $root.database_blob.BlobDescriptor.encode(message.blobs[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim(); + if (message.rowIndex != null && message.rowIndex.length) + for (let i = 0; i < message.rowIndex.length; ++i) + $root.database_blob.ManifestRowPointer.encode(message.rowIndex[i], writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim(); + if (message.updatedAtMillis != null && Object.hasOwnProperty.call(message, "updatedAtMillis")) + writer.uint32(/* id 6, wireType 0 =*/48).int64(message.updatedAtMillis); + if (message.lockEpoch != null && Object.hasOwnProperty.call(message, "lockEpoch")) + writer.uint32(/* id 7, wireType 0 =*/56).uint64(message.lockEpoch); + return writer; + }; + + /** + * Encodes the specified DatabaseBlobManifest message, length delimited. Does not implicitly {@link database_blob.DatabaseBlobManifest.verify|verify} messages. + * @function encodeDelimited + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {database_blob.IDatabaseBlobManifest} message DatabaseBlobManifest message or plain object to encode + * @param {$protobuf.Writer} [writer] Writer to encode to + * @returns {$protobuf.Writer} Writer + */ + DatabaseBlobManifest.encodeDelimited = function encodeDelimited(message, writer) { + return this.encode(message, writer).ldelim(); + }; + + /** + * Decodes a DatabaseBlobManifest message from the specified reader or buffer. + * @function decode + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @param {number} [length] Message length if known beforehand + * @returns {database_blob.DatabaseBlobManifest} DatabaseBlobManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobManifest.decode = function decode(reader, length, error) { + if (!(reader instanceof $Reader)) + reader = $Reader.create(reader); + let end = length === undefined ? reader.len : reader.pos + length, message = new $root.database_blob.DatabaseBlobManifest(); + while (reader.pos < end) { + let tag = reader.uint32(); + if (tag === error) + break; + switch (tag >>> 3) { + case 1: { + message.workspaceId = reader.bytes(); + break; + } + case 2: { + message.databaseId = reader.bytes(); + break; + } + case 3: { + message.versionId = reader.string(); + break; + } + case 4: { + if (!(message.blobs && message.blobs.length)) + message.blobs = []; + message.blobs.push($root.database_blob.BlobDescriptor.decode(reader, reader.uint32())); + break; + } + case 5: { + if (!(message.rowIndex && message.rowIndex.length)) + message.rowIndex = []; + message.rowIndex.push($root.database_blob.ManifestRowPointer.decode(reader, reader.uint32())); + break; + } + case 6: { + message.updatedAtMillis = reader.int64(); + break; + } + case 7: { + message.lockEpoch = reader.uint64(); + break; + } + default: + reader.skipType(tag & 7); + break; + } + } + return message; + }; + + /** + * Decodes a DatabaseBlobManifest message from the specified reader or buffer, length delimited. + * @function decodeDelimited + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from + * @returns {database_blob.DatabaseBlobManifest} DatabaseBlobManifest + * @throws {Error} If the payload is not a reader or valid buffer + * @throws {$protobuf.util.ProtocolError} If required fields are missing + */ + DatabaseBlobManifest.decodeDelimited = function decodeDelimited(reader) { + if (!(reader instanceof $Reader)) + reader = new $Reader(reader); + return this.decode(reader, reader.uint32()); + }; + + /** + * Verifies a DatabaseBlobManifest message. + * @function verify + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {Object.} message Plain object to verify + * @returns {string|null} `null` if valid, otherwise the reason why it is not + */ + DatabaseBlobManifest.verify = function verify(message) { + if (typeof message !== "object" || message === null) + return "object expected"; + if (message.workspaceId != null && message.hasOwnProperty("workspaceId")) + if (!(message.workspaceId && typeof message.workspaceId.length === "number" || $util.isString(message.workspaceId))) + return "workspaceId: buffer expected"; + if (message.databaseId != null && message.hasOwnProperty("databaseId")) + if (!(message.databaseId && typeof message.databaseId.length === "number" || $util.isString(message.databaseId))) + return "databaseId: buffer expected"; + if (message.versionId != null && message.hasOwnProperty("versionId")) + if (!$util.isString(message.versionId)) + return "versionId: string expected"; + if (message.blobs != null && message.hasOwnProperty("blobs")) { + if (!Array.isArray(message.blobs)) + return "blobs: array expected"; + for (let i = 0; i < message.blobs.length; ++i) { + let error = $root.database_blob.BlobDescriptor.verify(message.blobs[i]); + if (error) + return "blobs." + error; + } + } + if (message.rowIndex != null && message.hasOwnProperty("rowIndex")) { + if (!Array.isArray(message.rowIndex)) + return "rowIndex: array expected"; + for (let i = 0; i < message.rowIndex.length; ++i) { + let error = $root.database_blob.ManifestRowPointer.verify(message.rowIndex[i]); + if (error) + return "rowIndex." + error; + } + } + if (message.updatedAtMillis != null && message.hasOwnProperty("updatedAtMillis")) + if (!$util.isInteger(message.updatedAtMillis) && !(message.updatedAtMillis && $util.isInteger(message.updatedAtMillis.low) && $util.isInteger(message.updatedAtMillis.high))) + return "updatedAtMillis: integer|Long expected"; + if (message.lockEpoch != null && message.hasOwnProperty("lockEpoch")) + if (!$util.isInteger(message.lockEpoch) && !(message.lockEpoch && $util.isInteger(message.lockEpoch.low) && $util.isInteger(message.lockEpoch.high))) + return "lockEpoch: integer|Long expected"; + return null; + }; + + /** + * Creates a DatabaseBlobManifest message from a plain object. Also converts values to their respective internal types. + * @function fromObject + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {Object.} object Plain object + * @returns {database_blob.DatabaseBlobManifest} DatabaseBlobManifest + */ + DatabaseBlobManifest.fromObject = function fromObject(object) { + if (object instanceof $root.database_blob.DatabaseBlobManifest) + return object; + let message = new $root.database_blob.DatabaseBlobManifest(); + if (object.workspaceId != null) + if (typeof object.workspaceId === "string") + $util.base64.decode(object.workspaceId, message.workspaceId = $util.newBuffer($util.base64.length(object.workspaceId)), 0); + else if (object.workspaceId.length >= 0) + message.workspaceId = object.workspaceId; + if (object.databaseId != null) + if (typeof object.databaseId === "string") + $util.base64.decode(object.databaseId, message.databaseId = $util.newBuffer($util.base64.length(object.databaseId)), 0); + else if (object.databaseId.length >= 0) + message.databaseId = object.databaseId; + if (object.versionId != null) + message.versionId = String(object.versionId); + if (object.blobs) { + if (!Array.isArray(object.blobs)) + throw TypeError(".database_blob.DatabaseBlobManifest.blobs: array expected"); + message.blobs = []; + for (let i = 0; i < object.blobs.length; ++i) { + if (typeof object.blobs[i] !== "object") + throw TypeError(".database_blob.DatabaseBlobManifest.blobs: object expected"); + message.blobs[i] = $root.database_blob.BlobDescriptor.fromObject(object.blobs[i]); + } + } + if (object.rowIndex) { + if (!Array.isArray(object.rowIndex)) + throw TypeError(".database_blob.DatabaseBlobManifest.rowIndex: array expected"); + message.rowIndex = []; + for (let i = 0; i < object.rowIndex.length; ++i) { + if (typeof object.rowIndex[i] !== "object") + throw TypeError(".database_blob.DatabaseBlobManifest.rowIndex: object expected"); + message.rowIndex[i] = $root.database_blob.ManifestRowPointer.fromObject(object.rowIndex[i]); + } + } + if (object.updatedAtMillis != null) + if ($util.Long) + (message.updatedAtMillis = $util.Long.fromValue(object.updatedAtMillis)).unsigned = false; + else if (typeof object.updatedAtMillis === "string") + message.updatedAtMillis = parseInt(object.updatedAtMillis, 10); + else if (typeof object.updatedAtMillis === "number") + message.updatedAtMillis = object.updatedAtMillis; + else if (typeof object.updatedAtMillis === "object") + message.updatedAtMillis = new $util.LongBits(object.updatedAtMillis.low >>> 0, object.updatedAtMillis.high >>> 0).toNumber(); + if (object.lockEpoch != null) + if ($util.Long) + (message.lockEpoch = $util.Long.fromValue(object.lockEpoch)).unsigned = true; + else if (typeof object.lockEpoch === "string") + message.lockEpoch = parseInt(object.lockEpoch, 10); + else if (typeof object.lockEpoch === "number") + message.lockEpoch = object.lockEpoch; + else if (typeof object.lockEpoch === "object") + message.lockEpoch = new $util.LongBits(object.lockEpoch.low >>> 0, object.lockEpoch.high >>> 0).toNumber(true); + return message; + }; + + /** + * Creates a plain object from a DatabaseBlobManifest message. Also converts values to other types if specified. + * @function toObject + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {database_blob.DatabaseBlobManifest} message DatabaseBlobManifest + * @param {$protobuf.IConversionOptions} [options] Conversion options + * @returns {Object.} Plain object + */ + DatabaseBlobManifest.toObject = function toObject(message, options) { + if (!options) + options = {}; + let object = {}; + if (options.arrays || options.defaults) { + object.blobs = []; + object.rowIndex = []; + } + if (options.defaults) { + if (options.bytes === String) + object.workspaceId = ""; + else { + object.workspaceId = []; + if (options.bytes !== Array) + object.workspaceId = $util.newBuffer(object.workspaceId); + } + if (options.bytes === String) + object.databaseId = ""; + else { + object.databaseId = []; + if (options.bytes !== Array) + object.databaseId = $util.newBuffer(object.databaseId); + } + object.versionId = ""; + if ($util.Long) { + let long = new $util.Long(0, 0, false); + object.updatedAtMillis = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.updatedAtMillis = options.longs === String ? "0" : 0; + if ($util.Long) { + let long = new $util.Long(0, 0, true); + object.lockEpoch = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long; + } else + object.lockEpoch = options.longs === String ? "0" : 0; + } + if (message.workspaceId != null && message.hasOwnProperty("workspaceId")) + object.workspaceId = options.bytes === String ? $util.base64.encode(message.workspaceId, 0, message.workspaceId.length) : options.bytes === Array ? Array.prototype.slice.call(message.workspaceId) : message.workspaceId; + if (message.databaseId != null && message.hasOwnProperty("databaseId")) + object.databaseId = options.bytes === String ? $util.base64.encode(message.databaseId, 0, message.databaseId.length) : options.bytes === Array ? Array.prototype.slice.call(message.databaseId) : message.databaseId; + if (message.versionId != null && message.hasOwnProperty("versionId")) + object.versionId = message.versionId; + if (message.blobs && message.blobs.length) { + object.blobs = []; + for (let j = 0; j < message.blobs.length; ++j) + object.blobs[j] = $root.database_blob.BlobDescriptor.toObject(message.blobs[j], options); + } + if (message.rowIndex && message.rowIndex.length) { + object.rowIndex = []; + for (let j = 0; j < message.rowIndex.length; ++j) + object.rowIndex[j] = $root.database_blob.ManifestRowPointer.toObject(message.rowIndex[j], options); + } + if (message.updatedAtMillis != null && message.hasOwnProperty("updatedAtMillis")) + if (typeof message.updatedAtMillis === "number") + object.updatedAtMillis = options.longs === String ? String(message.updatedAtMillis) : message.updatedAtMillis; + else + object.updatedAtMillis = options.longs === String ? $util.Long.prototype.toString.call(message.updatedAtMillis) : options.longs === Number ? new $util.LongBits(message.updatedAtMillis.low >>> 0, message.updatedAtMillis.high >>> 0).toNumber() : message.updatedAtMillis; + if (message.lockEpoch != null && message.hasOwnProperty("lockEpoch")) + if (typeof message.lockEpoch === "number") + object.lockEpoch = options.longs === String ? String(message.lockEpoch) : message.lockEpoch; + else + object.lockEpoch = options.longs === String ? $util.Long.prototype.toString.call(message.lockEpoch) : options.longs === Number ? new $util.LongBits(message.lockEpoch.low >>> 0, message.lockEpoch.high >>> 0).toNumber(true) : message.lockEpoch; + return object; + }; + + /** + * Converts this DatabaseBlobManifest to JSON. + * @function toJSON + * @memberof database_blob.DatabaseBlobManifest + * @instance + * @returns {Object.} JSON object + */ + DatabaseBlobManifest.prototype.toJSON = function toJSON() { + return this.constructor.toObject(this, $protobuf.util.toJSONOptions); + }; + + /** + * Gets the default type url for DatabaseBlobManifest + * @function getTypeUrl + * @memberof database_blob.DatabaseBlobManifest + * @static + * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") + * @returns {string} The default type url + */ + DatabaseBlobManifest.getTypeUrl = function getTypeUrl(typeUrlPrefix) { + if (typeUrlPrefix === undefined) { + typeUrlPrefix = "type.googleapis.com"; + } + return typeUrlPrefix + "/database_blob.DatabaseBlobManifest"; + }; + + return DatabaseBlobManifest; + })(); + + /** + * DiffStatus enum. + * @name database_blob.DiffStatus + * @enum {number} + * @property {number} READY=0 READY value + * @property {number} PENDING=1 PENDING value + */ + database_blob.DiffStatus = (function() { + const valuesById = {}, values = Object.create(valuesById); + values[valuesById[0] = "READY"] = 0; + values[valuesById[1] = "PENDING"] = 1; + return values; + })(); + + return database_blob; +})(); + +export { $root as default }; diff --git a/src/proto/database_blob.proto b/src/proto/database_blob.proto new file mode 100644 index 000000000..a8ebd9796 --- /dev/null +++ b/src/proto/database_blob.proto @@ -0,0 +1,88 @@ +syntax = "proto3"; + +package database_blob; + +// Row RID used by database-blob storage (timestamp + u16 seq_no). +// seq_no must fit within u16; it is not a Redis stream counter. +message DatabaseBlobRowRid { + uint64 timestamp = 1; + uint32 seq_no = 2; +} + +message DatabaseBlobDiffRequest { + optional DatabaseBlobRowRid max_known_rid = 1; + int32 version = 2; +} + +message CollabDocState { + bytes doc_state = 1; + int32 encoder_version = 2; +} + +message DatabaseBlobRowDocument { + bytes document_id = 1; + DatabaseBlobRowRid rid = 2; + bool deleted = 3; + CollabDocState doc_state = 4; +} + +message DatabaseBlobRowUpdate { + bytes row_id = 1; + DatabaseBlobRowRid rid = 2; + CollabDocState doc_state = 3; + optional DatabaseBlobRowDocument document = 4; +} + +message DatabaseBlobRowDelete { + bytes row_id = 1; + DatabaseBlobRowRid rid = 2; +} + +message DatabaseBlobDiffResponse { + string manifest_version = 1; + optional string head_blob_key = 2; + repeated DatabaseBlobRowUpdate updates = 3; + repeated DatabaseBlobRowDelete deletes = 4; + repeated DatabaseBlobRowUpdate creates = 5; + DiffStatus status = 6; + optional uint32 retry_after_secs = 7; + optional string message = 8; +} + +message BlobDescriptor { + string key = 1; + optional DatabaseBlobRowRid start_rid = 2; + optional DatabaseBlobRowRid end_rid = 3; + uint64 total_bytes = 4; + bool sealed = 5; +} + +message ManifestRowDocumentPointer { + bytes document_id = 1; + DatabaseBlobRowRid rid = 2; + bool deleted = 3; +} + +message ManifestRowPointer { + bytes row_id = 1; + uint32 blob_index = 2; + uint64 segment_offset = 3; + DatabaseBlobRowRid rid = 4; + bool deleted = 5; + optional ManifestRowDocumentPointer document = 6; +} + +message DatabaseBlobManifest { + bytes workspace_id = 1; + bytes database_id = 2; + string version_id = 3; + repeated BlobDescriptor blobs = 4; + repeated ManifestRowPointer row_index = 5; + int64 updated_at_millis = 6; + uint64 lock_epoch = 7; +} + +enum DiffStatus { + READY = 0; + PENDING = 1; +}