Update permission name to match existing ones
[transitory.git] / Open-ILS / src / sql / Pg / 950.data.seed-values.sql
index 628856f..41eb5fe 100644 (file)
@@ -1,10 +1,10 @@
 --002.schema.config.sql:
-INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
-    (1, 90, oils_i18n_gettext(1, 'oclc', 'cbs', 'source'), FALSE);
-INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
-    (2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE);
-INSERT INTO config.bib_source (id, quality, source, transcendant) VALUES 
-    (3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE);
+INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
+    (1, 90, oils_i18n_gettext(1, 'oclc', 'cbs', 'source'), FALSE, TRUE);
+INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
+    (2, 10, oils_i18n_gettext(2, 'System Local', 'cbs', 'source'), FALSE, TRUE);
+INSERT INTO config.bib_source (id, quality, source, transcendant, can_have_copies) VALUES 
+    (3, 1, oils_i18n_gettext(3, 'Project Gutenberg', 'cbs', 'source'), TRUE, TRUE);
 SELECT SETVAL('config.bib_source_id_seq'::TEXT, 100);
 
 INSERT INTO biblio.peer_type (id,name) VALUES
@@ -19,6 +19,79 @@ INSERT INTO config.standing (id, value) VALUES (1, oils_i18n_gettext(1, 'Good',
 INSERT INTO config.standing (id, value) VALUES (2, oils_i18n_gettext(2, 'Barred', 'cst', 'value'));
 SELECT SETVAL('config.standing_id_seq'::TEXT, 100);
 
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
+       VALUES (1,'PATRON_EXCEEDS_FINES',oils_i18n_gettext(1, 'Patron exceeds fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
+       VALUES (2,'PATRON_EXCEEDS_OVERDUE_COUNT',oils_i18n_gettext(2, 'Patron exceeds max overdue item threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
+       VALUES (3,'PATRON_EXCEEDS_CHECKOUT_COUNT',oils_i18n_gettext(3, 'Patron exceeds max checked out item threshold', 'csp', 'label'),'CIRC|FULFILL', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert)
+       VALUES (4,'PATRON_EXCEEDS_COLLECTIONS_WARNING',oils_i18n_gettext(4, 'Patron exceeds pre-collections warning fine threshold', 'csp', 'label'),'CIRC|FULFILL|HOLD|CAPTURE|RENEW', TRUE);
+
+INSERT INTO config.standing_penalty (id,name,label,staff_alert) VALUES (20,'ALERT_NOTE',oils_i18n_gettext(20, 'Alerting Note, no blocks', 'csp', 'label'),TRUE);
+INSERT INTO config.standing_penalty (id,name,label) VALUES (21,'SILENT_NOTE',oils_i18n_gettext(21, 'Note, no blocks', 'csp', 'label'));
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (22,'STAFF_C',oils_i18n_gettext(22, 'Alerting block on Circ', 'csp', 'label'),'CIRC', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (23,'STAFF_CH',oils_i18n_gettext(23, 'Alerting block on Circ and Hold', 'csp', 'label'),'CIRC|HOLD', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (24,'STAFF_CR',oils_i18n_gettext(24, 'Alerting block on Circ and Renew', 'csp', 'label'),'CIRC|RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (25,'STAFF_CHR',oils_i18n_gettext(25, 'Alerting block on Circ, Hold and Renew', 'csp', 'label'),'CIRC|HOLD|RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (26,'STAFF_HR',oils_i18n_gettext(26, 'Alerting block on Hold and Renew', 'csp', 'label'),'HOLD|RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (27,'STAFF_H',oils_i18n_gettext(27, 'Alerting block on Hold', 'csp', 'label'),'HOLD', TRUE);
+INSERT INTO config.standing_penalty (id,name,label,block_list,staff_alert) VALUES (28,'STAFF_R',oils_i18n_gettext(28, 'Alerting block on Renew', 'csp', 'label'),'RENEW', TRUE);
+INSERT INTO config.standing_penalty (id,name,label) VALUES (29,'INVALID_PATRON_ADDRESS',oils_i18n_gettext(29, 'Patron has an invalid address', 'csp', 'label'));
+INSERT INTO config.standing_penalty (id,name,label) VALUES (30,'PATRON_IN_COLLECTIONS',oils_i18n_gettext(30, 'Patron has been referred to a collections agency', 'csp', 'label'));
+INSERT INTO config.standing_penalty (id, name, label, staff_alert, org_depth) VALUES
+    (
+        31,
+        'INVALID_PATRON_EMAIL_ADDRESS',
+        oils_i18n_gettext(
+            31,
+            'Patron had an invalid email address',
+            'csp',
+            'label'
+        ),
+        TRUE,
+        0
+    ),
+    (
+        32,
+        'INVALID_PATRON_DAY_PHONE',
+        oils_i18n_gettext(
+            32,
+            'Patron had an invalid daytime phone number',
+            'csp',
+            'label'
+        ),
+        TRUE,
+        0
+    ),
+    (
+        33,
+        'INVALID_PATRON_EVENING_PHONE',
+        oils_i18n_gettext(
+            33,
+            'Patron had an invalid evening phone number',
+            'csp',
+            'label'
+        ),
+        TRUE,
+        0
+    ),
+    (
+        34,
+        'INVALID_PATRON_OTHER_PHONE',
+        oils_i18n_gettext(
+            34,
+            'Patron had an invalid other phone number',
+            'csp',
+            'label'
+        ),
+        TRUE,
+        0
+    );
+
+
+SELECT SETVAL('config.standing_penalty_id_seq', 100);
+
 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'identifier', oils_i18n_gettext('identifier', 'Identifier', 'cmc', 'label') );
 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'keyword', oils_i18n_gettext('keyword', 'Keyword', 'cmc', 'label') );
 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'title', oils_i18n_gettext('title', 'Title', 'cmc', 'label') );
@@ -47,7 +120,7 @@ INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath )
 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
     (5, 'title', 'uniform', oils_i18n_gettext(5, 'Uniform Title', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and (@type='uniform')]$$ );
 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
-    (6, 'title', 'proper', oils_i18n_gettext(6, 'Title Proper', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleInfo[mods32:title and not (@type)]$$ );
+    (6, 'title', 'proper', oils_i18n_gettext(6, 'Title Proper', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:titleNonfiling[mods32:title and not (@type)]$$ );
 
 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_xpath, facet_field ) VALUES 
     (7, 'author', 'corporate', oils_i18n_gettext(7, 'Corporate Author', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:name[@type='corporate' and mods32:role/mods32:roleTerm[text()='creator']]$$, $$//*[local-name()='namePart']$$, TRUE ); -- /* to fool vim */;
@@ -68,39 +141,39 @@ INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath,
     (14, 'subject', 'topic', oils_i18n_gettext(14, 'Topic Subject', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject/mods32:topic$$, TRUE );
 --INSERT INTO config.metabib_field ( id, field_class, name, format, xpath ) VALUES 
 --  ( id, field_class, name, xpath ) VALUES ( 'subject', 'genre', 'mods32', $$//mods32:mods/mods32:genre$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES 
-    (15, 'keyword', 'keyword', oils_i18n_gettext(15, 'General Keywords', 'cmf', 'label'), 'mods32', $$//mods32:mods/*[not(local-name()='originInfo')]$$ ); -- /* to fool vim */;
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (16, 'subject', 'complete', oils_i18n_gettext(16, 'All Subjects', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject$$ );
-
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (17, 'identifier', 'accession', oils_i18n_gettext(17, 'Accession Number', 'cmf', 'label'), 'marcxml', $$//marc:controlfield[@tag='001']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (18, 'identifier', 'isbn', oils_i18n_gettext(18, 'ISBN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='020']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (19, 'identifier', 'issn', oils_i18n_gettext(19, 'ISSN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='022']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (20, 'identifier', 'upc', oils_i18n_gettext(20, 'UPC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='1']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (21, 'identifier', 'ismn', oils_i18n_gettext(21, 'ISMN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='2']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (22, 'identifier', 'ean', oils_i18n_gettext(22, 'EAN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='3']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (23, 'identifier', 'isrc', oils_i18n_gettext(23, 'ISRC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='0']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (24, 'identifier', 'sici', oils_i18n_gettext(24, 'SICI', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='4']/marc:subfield[@code='a' or @code='z']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='099']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (26, 'identifier', 'tcn', oils_i18n_gettext(26, 'Title Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='a']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
-    (27, 'identifier', 'bibid', oils_i18n_gettext(27, 'Internal ID', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='c']$$ );
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, search_field, facet_field) VALUES
-    (28, 'identifier', 'authority_id', oils_i18n_gettext(28, 'Authority Record ID', 'cmf', 'label'), 'marcxml', '//marc:datafield/marc:subfield[@code="0"]', FALSE, TRUE);
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath) VALUES
-    (29, 'identifier', 'scn', oils_i18n_gettext(29, 'System Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='035']/marc:subfield[@code="a"]$$);
-INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath) VALUES
-    (30, 'identifier', 'lccn', oils_i18n_gettext(30, 'LC Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='010']/marc:subfield[@code="a" or @code='z']$$);
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES 
+    (15, 'keyword', 'keyword', oils_i18n_gettext(15, 'General Keywords', 'cmf', 'label'), 'mods32', $$//mods32:mods/*[not(local-name()='originInfo')]$$, FALSE ); -- /* to fool vim */;
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (16, 'subject', 'complete', oils_i18n_gettext(16, 'All Subjects', 'cmf', 'label'), 'mods32', $$//mods32:mods/mods32:subject$$, FALSE );
+
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (17, 'identifier', 'accession', oils_i18n_gettext(17, 'Accession Number', 'cmf', 'label'), 'marcxml', $$//marc:controlfield[@tag='001']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (18, 'identifier', 'isbn', oils_i18n_gettext(18, 'ISBN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='020']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (19, 'identifier', 'issn', oils_i18n_gettext(19, 'ISSN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='022']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (20, 'identifier', 'upc', oils_i18n_gettext(20, 'UPC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='1']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (21, 'identifier', 'ismn', oils_i18n_gettext(21, 'ISMN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='2']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (22, 'identifier', 'ean', oils_i18n_gettext(22, 'EAN', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='3']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (23, 'identifier', 'isrc', oils_i18n_gettext(23, 'ISRC', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='0']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (24, 'identifier', 'sici', oils_i18n_gettext(24, 'SICI', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and @ind1='4']/marc:subfield[@code='a' or @code='z']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='099']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (26, 'identifier', 'tcn', oils_i18n_gettext(26, 'Title Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='a']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field ) VALUES
+    (27, 'identifier', 'bibid', oils_i18n_gettext(27, 'Internal ID', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='901']/marc:subfield[@code='c']$$, FALSE );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, search_field, facet_field, browse_field) VALUES
+    (28, 'identifier', 'authority_id', oils_i18n_gettext(28, 'Authority Record ID', 'cmf', 'label'), 'marcxml', '//marc:datafield/marc:subfield[@code="0"]', FALSE, TRUE, FALSE);
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
+    (29, 'identifier', 'scn', oils_i18n_gettext(29, 'System Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='035']/marc:subfield[@code="a"]$$, FALSE);
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, browse_field) VALUES
+    (30, 'identifier', 'lccn', oils_i18n_gettext(30, 'LC Control Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='010']/marc:subfield[@code="a" or @code='z']$$, FALSE);
 
 SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
 
@@ -222,14 +295,14 @@ INSERT INTO config.rule_age_hold_protect VALUES
 SELECT SETVAL('config.rule_age_hold_protect_id_seq'::TEXT, 100);
 
 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (0,oils_i18n_gettext(0, 'Available', 'ccs', 'name'),'t','t','t');
-INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (1,oils_i18n_gettext(1, 'Checked out', 'ccs', 'name'),'t','t','t');
+INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete) VALUES (1,oils_i18n_gettext(1, 'Checked out', 'ccs', 'name'),'t','t','t','t');
 INSERT INTO config.copy_status (id,name) VALUES (2,oils_i18n_gettext(2, 'Bindery', 'ccs', 'name'));
-INSERT INTO config.copy_status (id,name) VALUES (3,oils_i18n_gettext(3, 'Lost', 'ccs', 'name'));
+INSERT INTO config.copy_status (id,name,restrict_copy_delete) VALUES (3,oils_i18n_gettext(3, 'Lost', 'ccs', 'name'),'t');
 INSERT INTO config.copy_status (id,name) VALUES (4,oils_i18n_gettext(4, 'Missing', 'ccs', 'name'));
 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (5,oils_i18n_gettext(5, 'In process', 'ccs', 'name'),'t','t');
-INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (6,oils_i18n_gettext(6, 'In transit', 'ccs', 'name'),'t','t');
+INSERT INTO config.copy_status (id,name,holdable,opac_visible,restrict_copy_delete) VALUES (6,oils_i18n_gettext(6, 'In transit', 'ccs', 'name'),'t','t','t');
 INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (7,oils_i18n_gettext(7, 'Reshelving', 'ccs', 'name'),'t','t','t');
-INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active) VALUES (8,oils_i18n_gettext(8, 'On holds shelf', 'ccs', 'name'),'t','t','t');
+INSERT INTO config.copy_status (id,name,holdable,opac_visible,copy_active,restrict_copy_delete) VALUES (8,oils_i18n_gettext(8, 'On holds shelf', 'ccs', 'name'),'t','t','t','t');
 INSERT INTO config.copy_status (id,name,holdable,opac_visible) VALUES (9,oils_i18n_gettext(9, 'On order', 'ccs', 'name'),'t','t');
 INSERT INTO config.copy_status (id,name,copy_active) VALUES (10,oils_i18n_gettext(10, 'ILL', 'ccs', 'name'),'t');
 INSERT INTO config.copy_status (id,name) VALUES (11,oils_i18n_gettext(11, 'Cataloging', 'ccs', 'name'));
@@ -1446,7 +1519,57 @@ INSERT INTO permission.perm_list ( id, code, description ) VALUES
  ( 514, 'UPDATE_PATRON_ACTIVE_CARD', oils_i18n_gettext( 514,
     'Allows a user to manually adjust a patron''s active cards', 'ppl', 'description')),
  ( 515, 'UPDATE_PATRON_PRIMARY_CARD', oils_i18n_gettext( 515,
-    'Allows a user to manually adjust a patron''s primary card', 'ppl', 'description'));
+    'Allows a user to manually adjust a patron''s primary card', 'ppl', 'description')),
+ ( 516, 'CREATE_REPORT_TEMPLATE', oils_i18n_gettext( 516,
+    'Allows a user to create report templates', 'ppl', 'description' )),
+ ( 517, 'COPY_HOLDS_FORCE', oils_i18n_gettext( 517, 
+    'Allow a user to place a force hold on a specific copy', 'ppl', 'description' )),
+ ( 518, 'COPY_HOLDS_RECALL', oils_i18n_gettext( 518, 
+    'Allow a user to place a cataloging recall on a specific copy', 'ppl', 'description' )),
+ ( 519, 'ADMIN_SMS_CARRIER', oils_i18n_gettext( 519,
+    'Allows a user to add/create/delete SMS Carrier entries.', 'ppl', 'description' )),
+ ( 520, 'COPY_DELETE_WARNING.override', oils_i18n_gettext( 520,
+    'Allow a user to override warnings about deleting copies in problematic situations.', 'ppl', 'description' )),
+ ( 521, 'IMPORT_ACQ_LINEITEM_BIB_RECORD_UPLOAD', oils_i18n_gettext( 521,
+    'Allows a user to create new bibs directly from an ACQ MARC file upload', 'ppl', 'description' )),
+ ( 522, 'IMPORT_AUTHORITY_MARC', oils_i18n_gettext( 522,
+    'Allows a user to create new authority records', 'ppl', 'description' )),
+ ( 523, 'ADMIN_TOOLBAR', oils_i18n_gettext( 523,
+    'Allows a user to create, edit, and delete custom toolbars', 'ppl', 'description' )),
+ ( 524, 'PLACE_UNFILLABLE_HOLD', oils_i18n_gettext( 524,
+    'Allows a user to place a hold that cannot currently be filled.', 'ppl', 'description' )),
+ ( 525, 'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 525, 
+    'User may set a default entry in a patron statistical category', 'ppl', 'description' )),
+ ( 526, 'UPDATE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 526, 
+    'User may reset a default entry in a patron statistical category', 'ppl', 'description' )),
+ ( 527, 'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT', oils_i18n_gettext( 527, 
+    'User may unset a default entry in a patron statistical category', 'ppl', 'description' )),
+ ( 528, 'ADMIN_ORG_UNIT_CUSTOM_TREE', oils_i18n_gettext( 528, 
+    'User may update custom org unit trees', 'ppl', 'description' )),
+ ( 529, 'ADMIN_IMPORT_MATCH_SET', oils_i18n_gettext( 529,
+    'Allows a user to create/retrieve/update/delete vandelay match sets', 'ppl', 'description' )),
+ ( 530, 'VIEW_IMPORT_MATCH_SET', oils_i18n_gettext( 530,
+    'Allows a user to view vandelay match sets', 'ppl', 'description' )),
+ ( 531, 'ADMIN_ADDRESS_ALERT', oils_i18n_gettext( 531,
+    'Allows a user to create/retrieve/update/delete address alerts', 'ppl', 'description' )), 
+ ( 532, 'VIEW_ADDRESS_ALERT', oils_i18n_gettext( 532,
+    'Allows a user to view address alerts', 'ppl', 'description' )), 
+ ( 533, 'ADMIN_COPY_LOCATION_GROUP', oils_i18n_gettext( 533,
+    'Allows a user to create/retrieve/update/delete copy location groups', 'ppl', 'description' )), 
+ ( 534, 'ADMIN_USER_ACTIVITY_TYPE', oils_i18n_gettext( 534,
+    'Allows a user to create/retrieve/update/delete user activity types', 'ppl', 'description' )),
+( 535, 'VIEW_TRIGGER_EVENT', oils_i18n_gettext( 535,
+    'Allows a user to view circ- and hold-related action/trigger events', 'ppl', 'description')),
+( 536, 'IMPORT_OVERLAY_COPY', oils_i18n_gettext( 536,
+    'Allows a user to overlay copy data in MARC import', 'ppl', 'description')),
+ ( 537, 'ADMIN_SEARCH_FILTER_GROUP', oils_i18n_gettext( 537,
+    'Allows staff to manage search filter groups and entries', 'ppl', 'description' )),
+ ( 538, 'VIEW_SEARCH_FILTER_GROUP', oils_i18n_gettext( 538,
+    'Allows staff to view search filter groups and entries', 'ppl', 'description' )),
+ ( 539, 'UPDATE_ORG_UNIT_SETTING.ui.hide_copy_editor_fields', oils_i18n_gettext( 539,
+    'Allows staff to edit displayed copy editor fields', 'ppl', 'description' ))
+;
+
 
 SELECT SETVAL('permission.perm_list_id_seq'::TEXT, 1000);
 
@@ -1655,6 +1778,7 @@ INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
                        'RENEW_HOLD_OVERRIDE',
                        'UPDATE_COPY',
                        'UPDATE_VOLUME',
+                       'ADMIN_TOOLBAR',
                        'VOLUME_HOLDS');
 
 
@@ -1682,6 +1806,7 @@ INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
                        'DELETE_TITLE_NOTE',
                        'IMPORT_ACQ_LINEITEM_BIB_RECORD',
                        'IMPORT_MARC',
+            'IMPORT_AUTHORITY_MARC',
                        'MERGE_AUTH_RECORDS',
                        'MERGE_BIB_RECORDS',
                        'UPDATE_AUTHORITY_IMPORT_QUEUE',
@@ -1795,6 +1920,7 @@ INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
                        'CREATE_COPY_STAT_CAT_ENTRY',
                        'CREATE_COPY_STAT_CAT_ENTRY_MAP',
                        'RUN_REPORTS',
+                       'CREATE_REPORT_TEMPLATE',
                        'SHARE_REPORT_FOLDER',
                        'UPDATE_COPY_LOCATION',
                        'UPDATE_COPY_STAT_CAT',
@@ -1964,12 +2090,14 @@ INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
                        'CREATE_NON_CAT_TYPE',
                        'CREATE_PATRON_STAT_CAT',
                        'CREATE_PATRON_STAT_CAT_ENTRY',
+                       'CREATE_PATRON_STAT_CAT_ENTRY_DEFAULT',
                        'CREATE_PATRON_STAT_CAT_ENTRY_MAP',
                        'CREATE_USER_GROUP_LINK',
                        'DELETE_BILLING_TYPE',
                        'DELETE_NON_CAT_TYPE',
                        'DELETE_PATRON_STAT_CAT',
                        'DELETE_PATRON_STAT_CAT_ENTRY',
+                       'DELETE_PATRON_STAT_CAT_ENTRY_DEFAULT',
                        'DELETE_PATRON_STAT_CAT_ENTRY_MAP',
                        'DELETE_TRANSIT',
                        'group_application.user.staff',
@@ -2195,6 +2323,7 @@ INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
                        'DELETE_INVOICE_METHOD',
                        'DELETE_PROVIDER',
                        'RUN_REPORTS',
+                       'CREATE_REPORT_TEMPLATE',
                        'SHARE_REPORT_FOLDER',
                        'UPDATE_ACQ_FUNDING_SOURCE',
                        'UPDATE_INVOICE_ITEM_TYPE',
@@ -2298,11 +2427,11 @@ INSERT INTO asset.call_number VALUES (-1,1,NOW(),1,NOW(),-1,1,'UNCATALOGED');
 -- circ matrix
 INSERT INTO config.circ_matrix_matchpoint (org_unit,grp,circulate,duration_rule,recurring_fine_rule,max_fine_rule) VALUES (1,1,true,11,1,1);
 
-INSERT INTO config.circ_matrix_weights(name, org_unit, grp, circ_modifier, marc_type, marc_form, marc_bib_level, marc_vr_format, copy_circ_lib, copy_owning_lib, user_home_ou, ref_flag, juvenile_flag, is_renewal, usr_age_upper_bound, usr_age_lower_bound, item_age) VALUES 
-    ('Default', 10.0, 11.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
-    ('Org_Unit_First', 11.0, 10.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
-    ('Item_Owner_First', 8.0, 8.0, 5.0, 4.0, 3.0, 2.0, 2.0, 10.0, 11.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
-    ('All_Equal', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+INSERT INTO config.circ_matrix_weights(name, org_unit, grp, circ_modifier, copy_location, marc_type, marc_form, marc_bib_level, marc_vr_format, copy_circ_lib, copy_owning_lib, user_home_ou, ref_flag, juvenile_flag, is_renewal, usr_age_upper_bound, usr_age_lower_bound, item_age) VALUES 
+    ('Default', 10.0, 11.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
+    ('Org_Unit_First', 11.0, 10.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 8.0, 8.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
+    ('Item_Owner_First', 8.0, 8.0, 5.0, 5.0, 4.0, 3.0, 2.0, 2.0, 10.0, 11.0, 8.0, 1.0, 6.0, 7.0, 0.0, 0.0, 0.0),
+    ('All_Equal', 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
 
 -- hold matrix - 110.hold_matrix.sql:
 INSERT INTO config.hold_matrix_matchpoint (requestor_grp) VALUES (1);
@@ -2342,8 +2471,12 @@ INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatyp
 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
     VALUES ('circ.holds_behind_desk', FALSE, 'Hold is behind Circ Desk', 'Hold is behind Circ Desk', 'bool');
 
--- Add groups for org_unitu settings
+INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
+    VALUES ('opac.default_pickup_location', TRUE, 'Default Hold Pickup Location', 'Default location for holds pickup', 'integer');
+
+-- Add groups for org_unit settings
 INSERT INTO config.settings_group (name, label) VALUES
+('acq', oils_i18n_gettext('config.settings_group.system', 'Acquisitions', 'coust', 'label')),
 ('sys', oils_i18n_gettext('config.settings_group.system', 'System', 'coust', 'label')),
 ('gui', oils_i18n_gettext('config.settings_group.gui', 'GUI', 'coust', 'label')),
 ('lib', oils_i18n_gettext('config.settings_group.lib', 'Library', 'coust', 'label')),
@@ -2355,20 +2488,23 @@ INSERT INTO config.settings_group (name, label) VALUES
 ('opac', oils_i18n_gettext('config.settings_group.opac', 'OPAC', 'coust', 'label')),
 ('prog', oils_i18n_gettext('config.settings_group.program', 'Program', 'coust', 'label')),
 ('glob', oils_i18n_gettext('config.settings_group.global', 'Global', 'coust', 'label')),
-('finance', oils_i18n_gettext('config.settings_group.finances', 'Finanaces', 'coust', 'label')),
+('finance', oils_i18n_gettext('config.settings_group.finances', 'Finances', 'coust', 'label')),
 ('credit', oils_i18n_gettext('config.settings_group.ccp', 'Credit Card Processing', 'coust', 'label')),
 ('serial', oils_i18n_gettext('config.settings_group.serial', 'Serials', 'coust', 'label')),
 ('recall', oils_i18n_gettext('config.settings_group.recall', 'Recalls', 'coust', 'label')),
 ('booking', oils_i18n_gettext('config.settings_group.booking', 'Booking', 'coust', 'label')),
 ('offline', oils_i18n_gettext('config.settings_group.offline', 'Offline', 'coust', 'label')),
-('receipt_template', oils_i18n_gettext('config.settings_group.receipt_template', 'Receipt Template', 'coust', 'label'));
+('receipt_template', oils_i18n_gettext('config.settings_group.receipt_template', 'Receipt Template', 'coust', 'label')),
+('sms', oils_i18n_gettext('sms','SMS Text Messages','csg','label'))
+;
+
 
 
 -- org_unit setting types
 INSERT into config.org_unit_setting_type
 ( name, grp, label, description, datatype, fm_class ) VALUES
 
-( 'acq.copy_creator_uses_receiver', 'lib',
+( 'acq.copy_creator_uses_receiver', 'acq',
     oils_i18n_gettext('acq.copy_creator_uses_receiver',
         'Set copy creator as receiver',
         'coust', 'label'),
@@ -2377,7 +2513,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'bool', null)
 
-,( 'acq.default_circ_modifier', 'lib',
+,( 'acq.default_circ_modifier', 'acq',
     oils_i18n_gettext('acq.default_circ_modifier',
         'Default circulation modifier',
         'coust', 'label'),
@@ -2386,7 +2522,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'string', null)
 
-,( 'acq.default_copy_location', 'lib',
+,( 'acq.default_copy_location', 'acq',
     oils_i18n_gettext('acq.default_copy_location',
         'Default copy location',
         'coust', 'label'),
@@ -2395,7 +2531,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'link', 'acpl')
 
-,( 'acq.fund.balance_limit.block', 'finance',
+,( 'acq.fund.balance_limit.block', 'acq',
     oils_i18n_gettext('acq.fund.balance_limit.block',
         'Fund Spending Limit for Block',
         'coust', 'label'),
@@ -2404,7 +2540,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'integer', null)
 
-,( 'acq.fund.balance_limit.warn', 'finance',
+,( 'acq.fund.balance_limit.warn', 'acq',
     oils_i18n_gettext('acq.fund.balance_limit.warn',
         'Fund Spending Limit for Warning',
         'coust', 'label'),
@@ -2413,7 +2549,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'integer', null)
 
-,( 'acq.holds.allow_holds_from_purchase_request', 'lib',
+,( 'acq.holds.allow_holds_from_purchase_request', 'acq',
     oils_i18n_gettext('acq.holds.allow_holds_from_purchase_request',
         'Allows patrons to create automatic holds from purchase requests.',
         'coust', 'label'),
@@ -2422,7 +2558,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'bool', null)
 
-,( 'acq.tmp_barcode_prefix', 'lib',
+,( 'acq.tmp_barcode_prefix', 'acq',
     oils_i18n_gettext('acq.tmp_barcode_prefix',
         'Temporary barcode prefix',
         'coust', 'label'),
@@ -2431,7 +2567,7 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'string', null)
 
-,( 'acq.tmp_callnumber_prefix', 'lib',
+,( 'acq.tmp_callnumber_prefix', 'acq',
     oils_i18n_gettext('acq.tmp_callnumber_prefix',
         'Temporary call number prefix',
         'coust', 'label'),
@@ -4318,6 +4454,33 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'bool', null)
 
+,( 'ui.patron.edit.au.prefix.require', 'gui',
+    oils_i18n_gettext('ui.patron.edit.au.prefix.require',
+        'Require prefix field on patron registration',
+        'coust', 'label'),
+    oils_i18n_gettext('ui.patron.edit.au.prefix.require',
+        'The prefix field will be required on the patron registration screen.',
+        'coust', 'description'),
+    'bool', null)
+       
+,( 'ui.patron.edit.au.prefix.show', 'gui',
+    oils_i18n_gettext('ui.patron.edit.au.prefix.show',
+        'Show prefix field on patron registration',
+        'coust', 'label'),
+    oils_i18n_gettext('ui.patron.edit.au.prefix.show',
+        'The prefix field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
+        'coust', 'description'),
+    'bool', null)
+
+,( 'ui.patron.edit.au.prefix.suggest', 'gui',
+    oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
+        'Suggest prefix field on patron registration',
+        'coust', 'label'),
+    oils_i18n_gettext('ui.patron.edit.au.prefix.suggest',
+        'The prefix field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
+        'coust', 'description'),
+    'bool', null)
+
 ,( 'ui.patron.edit.au.second_given_name.show', 'gui',
     oils_i18n_gettext('ui.patron.edit.au.second_given_name.show',
         'Show second_given_name field on patron registration',
@@ -4495,6 +4658,62 @@ INSERT into config.org_unit_setting_type
         'coust', 'description'),
     'bool', null)
 
+,( 'opac.search.tag_circulated_items', 'opac',
+    oils_i18n_gettext(
+        'opac.search.tag_circulated_items',
+        'Tag Circulated Items in Results',
+        'coust', 'label'
+    ),
+    oils_i18n_gettext(
+        'opac.search.tag_circulated_items',
+        'When a user is both logged in and has opted in to circulation history tracking, turning on this setting will cause previous (or currently) circulated items to be highlighted in search results',
+        'coust', 'description'
+    ),
+    'bool', null)
+
+,( 'sms.enable', 'sms',
+    oils_i18n_gettext(
+        'sms.enable',
+        'Enable features that send SMS text messages.',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'sms.enable',
+        'Current features that use SMS include hold-ready-for-pickup notifications and a "Send Text" action for call numbers in the OPAC. If this setting is not enabled, the SMS options will not be offered to the user.  Unless you are carefully silo-ing patrons and their use of the OPAC, the context org for this setting should be the top org in the org hierarchy, otherwise patrons can trample their user settings when jumping between orgs.',
+        'coust',
+        'description'
+    ),
+    'bool', null)
+,( 'sms.disable_authentication_requirement.callnumbers', 'sms',
+    oils_i18n_gettext(
+        'sms.disable_authentication_requirement.callnumbers',
+        'Disable auth requirement for texting call numbers.',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'sms.disable_authentication_requirement.callnumbers',
+        'Disable authentication requirement for sending call number information via SMS from the OPAC.',
+        'coust',
+        'description'
+    ),
+    'bool', null)
+,( 'serial.default_display_grouping', 'serial',
+    oils_i18n_gettext(
+        'serial.default_display_grouping',
+        'Default display grouping for serials distributions presented in the OPAC.',
+        'coust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'serial.default_display_grouping',
+        'Default display grouping for serials distributions presented in the OPAC. This can be "enum" or "chron".',
+        'coust',
+        'description'
+    ),
+    'string', null)
+
 ;
 
 UPDATE config.org_unit_setting_type
@@ -5367,6 +5586,7 @@ INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfiel
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('o',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'D-2');
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('p',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'8 mm.');
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('q',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Hi-8 mm.');
+INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('s',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Blu-ray');
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('u',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Unknown');
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('v',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'DVD');
 INSERT INTO config.marc21_physical_characteristic_value_map (value,ptype_subfield,label) VALUES ('z',CURRVAL('config.marc21_physical_characteristic_subfield_map_id_seq'),'Other');
@@ -6140,6 +6360,29 @@ INSERT INTO config.coded_value_map (id, ctype, code, value) VALUES
     (535, 'bib_level', 'm', oils_i18n_gettext('535', 'Monograph/Item', 'ccvm', 'value')),
     (536, 'bib_level', 's', oils_i18n_gettext('536', 'Serial', 'ccvm', 'value'));
 
+INSERT INTO config.coded_value_map(id, ctype, code, value) VALUES
+    (537, 'vr_format', 'a', oils_i18n_gettext('537', 'Beta', 'ccvm', 'value')),
+    (538, 'vr_format', 'b', oils_i18n_gettext('538', 'VHS', 'ccvm', 'value')),
+    (539, 'vr_format', 'c', oils_i18n_gettext('539', 'U-matic', 'ccvm', 'value')),
+    (540, 'vr_format', 'd', oils_i18n_gettext('540', 'EIAJ', 'ccvm', 'value')),
+    (541, 'vr_format', 'e', oils_i18n_gettext('541', 'Type C', 'ccvm', 'value')),
+    (542, 'vr_format', 'f', oils_i18n_gettext('542', 'Quadruplex', 'ccvm', 'value')),
+    (543, 'vr_format', 'g', oils_i18n_gettext('543', 'Laserdisc', 'ccvm', 'value')),
+    (544, 'vr_format', 'h', oils_i18n_gettext('544', 'CED videodisc', 'ccvm', 'value')),
+    (545, 'vr_format', 'i', oils_i18n_gettext('545', 'Betacam', 'ccvm', 'value')),
+    (546, 'vr_format', 'j', oils_i18n_gettext('546', 'Betacam SP', 'ccvm', 'value')),
+    (547, 'vr_format', 'k', oils_i18n_gettext('547', 'Super-VHS', 'ccvm', 'value')),
+    (548, 'vr_format', 'm', oils_i18n_gettext('548', 'M-II', 'ccvm', 'value')),
+    (549, 'vr_format', 'o', oils_i18n_gettext('549', 'D-2', 'ccvm', 'value')),
+    (550, 'vr_format', 'p', oils_i18n_gettext('550', '8 mm.', 'ccvm', 'value')),
+    (551, 'vr_format', 'q', oils_i18n_gettext('551', 'Hi-8 mm.', 'ccvm', 'value')),
+    (552, 'vr_format', 's', oils_i18n_gettext('552', 'Blu-ray disc', 'ccvm', 'value')),
+    (553, 'vr_format', 'u', oils_i18n_gettext('553', 'Unknown', 'ccvm', 'value')),
+    (554, 'vr_format', 'v', oils_i18n_gettext('554', 'DVD', 'ccvm', 'value')),
+    (555, 'vr_format', 'z', oils_i18n_gettext('555', 'Other', 'ccvm', 'value')),
+    (556, 'vr_format', ' ', oils_i18n_gettext('556', 'Unspecified', 'ccvm', 'value'));
+
+SELECT SETVAL('config.coded_value_map_id_seq'::TEXT, (SELECT max(id) FROM config.coded_value_map));
 
 -- Trigger Event Definitions -------------------------------------------------
 
@@ -6158,18 +6401,23 @@ Dear [% user.family_name %], [% user.first_given_name %]
 Our records indicate the following items are overdue.
 
 [% FOR circ IN target %]
-    Title: [% circ.target_copy.call_number.record.simple_record.title %] 
-    Barcode: [% circ.target_copy.barcode %] 
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
+    Call Number: [% circ.target_copy.call_number.label %]
+    Barcode: [% circ.target_copy.barcode %]
     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
-    Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %]
+    Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
     Library: [% circ.circ_lib.name %]
+
 [% END %]
 
 $$);
 
 INSERT INTO action_trigger.environment (event_def, path) VALUES 
-    (1, 'target_copy.call_number.record.simple_record'),
+    (1, 'target_copy.call_number'),
+    (1, 'target_copy.location'),
     (1, 'usr'),
     (1, 'billable_transaction.summary'),
     (1, 'circ_lib.billing_address');
@@ -6179,6 +6427,9 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES
 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, delay, delay_field) 
     VALUES (2, 'f', 1, '90 Day Overdue Mark Lost', 'checkout.due', 'CircIsOverdue', 'MarkItemLost', '90 days', 'due_date');
 
+INSERT INTO action_trigger.event_params (event_def, param, value) VALUES
+    (2, 'editor', '''1''');
+
 -- Sample Auto Mark Lost Notice --
 
 INSERT INTO action_trigger.event_definition (id, active, owner, name, hook, validator, reactor, group_field, template) 
@@ -6194,22 +6445,28 @@ Dear [% user.family_name %], [% user.first_given_name %]
 The following items are 90 days overdue and have been marked LOST.
 
 [% FOR circ IN target %]
-    Title: [% circ.target_copy.call_number.record.simple_record.title %] 
-    Barcode: [% circ.target_copy.barcode %] 
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %], by [% copy_details.author %]
+    Call Number: [% circ.target_copy.call_number.label %]
+    Shelving Location: [% circ.target_copy.location.name %]
+    Barcode: [% circ.target_copy.barcode %]
     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
-    Total Owed For Transaction: [% circ.billable_transaction.summary.total_owed %]
+    Total Owed For Transaction: [% circ.billable_transaction.summary.balance_owed %]
     Library: [% circ.circ_lib.name %]
+
 [% END %]
 
 $$);
 
 
 INSERT INTO action_trigger.environment (event_def, path) VALUES 
-    (3, 'target_copy.call_number.record.simple_record'),
+    (3, 'target_copy.call_number'),
     (3, 'usr'),
     (3, 'billable_transaction.summary'),
-    (3, 'circ_lib.billing_address');
+    (3, 'circ_lib.billing_address'),
+    (3, 'target_copy.location');
+
 
 -- Sample Purchase Order HTML Template --
 
@@ -6368,8 +6625,9 @@ Dear [% user.family_name %], [% user.first_given_name %]
 The item(s) you requested are available for pickup from the Library.
 
 [% FOR hold IN target %]
-    Title: [% hold.current_copy.call_number.record.simple_record.title %]
-    Author: [% hold.current_copy.call_number.record.simple_record.author %]
+    [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
     Call Number: [% hold.current_copy.call_number.label %]
     Barcode: [% hold.current_copy.barcode %]
     Library: [% hold.pickup_lib.name %]
@@ -6377,6 +6635,8 @@ The item(s) you requested are available for pickup from the Library.
 
 $$);
 
+INSERT INTO action_trigger.event_params (event_def, param, value)
+    VALUES (5, 'check_email_notify', 1);
 
 INSERT INTO action_trigger.hook (
         key,
@@ -6391,7 +6651,7 @@ INSERT INTO action_trigger.hook (
     );
 
 INSERT INTO action_trigger.environment (event_def, path) VALUES
-    (5, 'current_copy.call_number.record.simple_record'),
+    (5, 'current_copy.call_number'),
     (5, 'usr'),
     (5, 'pickup_lib.billing_address');
 
@@ -6439,6 +6699,8 @@ pickup, but these holds will soon expire.
 $$
 );
 
+INSERT INTO action_trigger.event_params (event_def, param, value)
+    VALUES (7, 'check_email_notify', 1);
 
 INSERT INTO action_trigger.environment (
         event_def,
@@ -6462,6 +6724,15 @@ INSERT INTO action_trigger.hook (
         TRUE
     );
 
+INSERT INTO action_trigger.validator (module,description) VALUES
+    ('HoldNotifyCheck',
+    oils_i18n_gettext(
+        'HoldNotifyCheck',
+        'Check Hold notification flag(s)',
+        'atval',
+        'description'
+    ));
+
 INSERT INTO action_trigger.event_definition (
         id,
         active,
@@ -6480,7 +6751,7 @@ INSERT INTO action_trigger.event_definition (
         1,
         'Hold waiting for pickup for long time',
         'hold_request.long_wait',
-        'NOOP_True',
+        'HoldNotifyCheck',
         'SendEmail',
         '6 MONTHS',
         'request_time',
@@ -6500,17 +6771,21 @@ length of time.  If you would still like to receive these items,
 no action is required.
 
 [% FOR hold IN target %]
-    Title: [% hold.bib_rec.bib_record.simple_record.title %]
-    Author: [% hold.bib_rec.bib_record.simple_record.author %]
+    [%- copy_details = helpers.get_copy_bib_basics(hold.current_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
 [% END %]
 $$
 );
 
 INSERT INTO action_trigger.environment (event_def, path)
     VALUES
-        (9, 'pickup_lib'),
-        (9, 'usr'),
-        (9, 'bib_rec.bib_record.simple_record');
+    (9, 'pickup_lib'),
+    (9, 'usr'),
+    (9, 'current_copy.call_number');
+
+INSERT INTO action_trigger.event_params (event_def, param, value)
+    VALUES (9, 'check_email_notify', 1);
 
 -- trigger data related to acq user requests
 
@@ -7183,6 +7458,20 @@ INSERT INTO config.index_normalizer (name, description, func, param_count) VALUE
     1
 );
 
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+    'Coded Value Map Normalizer', 
+    'Applies coded_value_map mapping of values',
+    'coded_value_map_normalizer', 
+    1
+);
+
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+       'Search Normalize',
+       'Apply search normalization rules to the extracted text. A less extreme version of NACO normalization.',
+       'search_normalize',
+       0
+);
+
 -- make use of the index normalizers
 
 INSERT INTO config.metabib_field_index_norm_map (field,norm)
@@ -7190,7 +7479,7 @@ INSERT INTO config.metabib_field_index_norm_map (field,norm)
             i.id
       FROM  config.metabib_field m,
         config.index_normalizer i
-      WHERE i.func IN ('naco_normalize','split_date_range')
+      WHERE i.func IN ('search_normalize','split_date_range')
             AND m.id NOT IN (18, 19);
 
 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
@@ -7211,15 +7500,6 @@ INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
       WHERE i.func IN ('replace')
             AND m.id IN (19);
 
-INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
-    SELECT  m.id,
-            i.id,
-            $$[" ",""]$$
-      FROM  config.metabib_field m,
-            config.index_normalizer i
-      WHERE i.func IN ('replace')
-            AND m.id IN (19);
-
 INSERT INTO config.metabib_field_index_norm_map (field,norm,pos)
     SELECT  m.id,
             i.id,
@@ -7272,18 +7552,21 @@ Dear [% user.family_name %], [% user.first_given_name %]
 As a reminder, the following items are due in 3 days.
 
 [% FOR circ IN target %]
-    Title: [% circ.target_copy.call_number.record.simple_record.title %] 
+    [%- copy_details = helpers.get_copy_bib_basics(circ.target_copy.id) -%]
+    Title: [% copy_details.title %]
+    Author: [% copy_details.author %]
     Barcode: [% circ.target_copy.barcode %] 
     Due: [% date.format(helpers.format_date(circ.due_date), '%Y-%m-%d') %]
     Item Cost: [% helpers.get_copy_price(circ.target_copy) %]
     Library: [% circ.circ_lib.name %]
     Library Phone: [% circ.circ_lib.phone %]
+
 [% END %]
 
 $$);
 
 INSERT INTO action_trigger.environment (event_def, path) VALUES 
-    (6, 'target_copy.call_number.record.simple_record'),
+    (6, 'target_copy.call_number'),
     (6, 'usr'),
     (6, 'circ_lib.billing_address');
 
@@ -7781,7 +8064,32 @@ END;
             "free-text":[ 
                 [% FOR note IN ftx_vals -%] "[% note %]"[% UNLESS loop.last %], [% END %][% END %] 
             ],            
-            "quantity":[% li.lineitem_details.size %]
+            "quantity":[% li.lineitem_details.size %],
+            "copies" : [
+                [%- IF 1 -%]
+                [%- FOR lid IN li.lineitem_details;
+                        fund = lid.fund.code;
+                        item_type = lid.circ_modifier;
+                        callnumber = lid.cn_label;
+                        owning_lib = lid.owning_lib.shortname;
+                        location = lid.location;
+    
+                        # when we have real copy data, treat it as authoritative for some fields
+                        acp = lid.eg_copy_id;
+                        IF acp;
+                            item_type = acp.circ_modifier;
+                            callnumber = acp.call_number.label;
+                            location = acp.location.name;
+                        END -%]
+                {   [%- IF fund %] "fund" : "[% fund %]",[% END -%]
+                    [%- IF callnumber %] "call_number" : "[% callnumber %]", [% END -%]
+                    [%- IF item_type %] "item_type" : "[% item_type %]", [% END -%]
+                    [%- IF location %] "copy_location" : "[% location %]", [% END -%]
+                    [%- IF owning_lib %] "owning_lib" : "[% owning_lib %]", [% END -%]
+                    [%- #chomp %]"copy_id" : "[% lid.id %]" }[% ',' UNLESS loop.last %]
+                [% END -%]
+                [%- END -%]
+             ]
         }[% UNLESS loop.last %],[% END %]
         [%-# TODO: lineitem details (later) -%]
         [% END %]
@@ -7797,7 +8105,11 @@ $$
 
 INSERT INTO action_trigger.environment (event_def, path) VALUES 
   (23, 'lineitems.attributes'), 
-  (23, 'lineitems.lineitem_details'), 
+  (23, 'lineitems.lineitem_details.owning_lib'),
+  (23, 'lineitems.lineitem_details.location'),
+  (23, 'lineitems.lineitem_details.fund'),
+  (23, 'lineitems.lineitem_details.eg_copy_id.location'),
+  (23, 'lineitems.lineitem_details.eg_copy_id.call_number'),
   (23, 'lineitems.lineitem_notes'), 
   (23, 'ordering_agency.mailing_address'), 
   (23, 'provider'),
@@ -8301,6 +8613,7 @@ INSERT INTO action_trigger.event_definition (
         cleanup_failure,
         group_field,
         granularity,
+        delay,
         template
     ) VALUES (
         31,
@@ -8314,22 +8627,42 @@ INSERT INTO action_trigger.event_definition (
         'DeleteTempBiblioBucket',
         'owner',
         NULL,
+        '00:00:00',
 $$
-[%- USE date -%]
 [%- SET user = target.0.owner -%]
 To: [%- params.recipient_email || user.email %]
 From: [%- params.sender_email || default_sender %]
 Subject: Bibliographic Records
 
-    [% FOR cbreb IN target %]
-    [% FOR cbrebi IN cbreb.items %]
-        Bib ID# [% cbrebi.target_biblio_record_entry.id %] ISBN: [% crebi.target_biblio_record_entry.simple_record.isbn %]
-        Title: [% cbrebi.target_biblio_record_entry.simple_record.title %]
-        Author: [% cbrebi.target_biblio_record_entry.simple_record.author %]
-        Publication Year: [% cbrebi.target_biblio_record_entry.simple_record.pubdate %]
+[% FOR cbreb IN target %]
+[% FOR item IN cbreb.items;
+    bre_id = item.target_biblio_record_entry;
 
-    [% END %]
-    [% END %]
+    bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
+    FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
+        title = title _ part.textContent;
+    END;
+
+    author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
+    item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
+    publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
+    pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
+    isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
+    issn = bibxml.findnodes('//*[@tag="022"]/*[@code="a"]').textContent;
+    upc = bibxml.findnodes('//*[@tag="024"]/*[@code="a"]').textContent;
+%]
+
+[% loop.count %]/[% loop.size %].  Bib ID# [% bre_id %] 
+[% IF isbn %]ISBN: [% isbn _ "\n" %][% END -%]
+[% IF issn %]ISSN: [% issn _ "\n" %][% END -%]
+[% IF upc  %]UPC:  [% upc _ "\n" %] [% END -%]
+Title: [% title %]
+Author: [% author %]
+Publication Info: [% publisher %] [% pubdate %]
+Item Type: [% item_type %]
+
+[% END %]
+[% END %]
 $$
     )
     ,(
@@ -8344,17 +8677,33 @@ $$
         'DeleteTempBiblioBucket',
         'owner',
         'print-on-demand',
+        '00:00:00',
 $$
-[%- USE date -%]
 <div>
     <style> li { padding: 8px; margin 5px; }</style>
     <ol>
     [% FOR cbreb IN target %]
-    [% FOR cbrebi IN cbreb.items %]
-        <li>Bib ID# [% cbrebi.target_biblio_record_entry.id %] ISBN: [% crebi.target_biblio_record_entry.simple_record.isbn %]<br />
-            Title: [% cbrebi.target_biblio_record_entry.simple_record.title %]<br />
-            Author: [% cbrebi.target_biblio_record_entry.simple_record.author %]<br />
-            Publication Year: [% cbrebi.target_biblio_record_entry.simple_record.pubdate %]
+    [% FOR item IN cbreb.items;
+        bre_id = item.target_biblio_record_entry;
+
+        bibxml = helpers.unapi_bre(bre_id, {flesh => '{mra}'});
+        FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
+            title = title _ part.textContent;
+        END;
+
+        author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
+        item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
+        publisher = bibxml.findnodes('//*[@tag="260"]/*[@code="b"]').textContent;
+        pubdate = bibxml.findnodes('//*[@tag="260"]/*[@code="c"]').textContent;
+        isbn = bibxml.findnodes('//*[@tag="020"]/*[@code="a"]').textContent;
+        %]
+
+        <li>
+            Bib ID# [% bre_id %] ISBN: [% isbn %]<br />
+            Title: [% title %]<br />
+            Author: [% author %]<br />
+            Publication Info: [% publisher %] [% pubdate %]<br/>
+            Item Type: [% item_type %]
         </li>
     [% END %]
     [% END %]
@@ -8370,20 +8719,7 @@ INSERT INTO action_trigger.environment (
     ) VALUES -- for fleshing cbreb objects
          ( 31, 'owner' )
         ,( 31, 'items' )
-        ,( 31, 'items.target_biblio_record_entry' )
-        ,( 31, 'items.target_biblio_record_entry.simple_record' )
-        ,( 31, 'items.target_biblio_record_entry.call_numbers' )
-        ,( 31, 'items.target_biblio_record_entry.fixed_fields' )
-        ,( 31, 'items.target_biblio_record_entry.notes' )
-        ,( 31, 'items.target_biblio_record_entry.full_record_entries' )
-        ,( 32, 'owner' )
         ,( 32, 'items' )
-        ,( 32, 'items.target_biblio_record_entry' )
-        ,( 32, 'items.target_biblio_record_entry.simple_record' )
-        ,( 32, 'items.target_biblio_record_entry.call_numbers' )
-        ,( 32, 'items.target_biblio_record_entry.fixed_fields' )
-        ,( 32, 'items.target_biblio_record_entry.notes' )
-        ,( 32, 'items.target_biblio_record_entry.full_record_entries' )
 ;
 
 INSERT INTO acq.invoice_item_type (code,name) VALUES ('TAX',oils_i18n_gettext('TAX', 'Tax', 'aiit', 'name'));
@@ -8405,618 +8741,18 @@ INSERT INTO acq.cancel_reason ( id, org_unit, label, description, keep_debits )
        oils_i18n_gettext( 2, 'Delivered but not received; presumed lost', 'acqcr', 'label' ), TRUE );
 
 INSERT INTO acq.cancel_reason (keep_debits, id, org_unit, label, description) VALUES 
-('t',(  1+1000), 1, 'Added',     'The information is to be or has been added.'),
 ('f',(  2+1000), 1, 'Deleted',   'The information is to be or has been deleted.'),
 ('t',(  3+1000), 1, 'Changed',   'The information is to be or has been changed.'),
 ('t',(  4+1000), 1, 'No action',                  'This line item is not affected by the actual message.'),
 ('t',(  5+1000), 1, 'Accepted without amendment', 'This line item is entirely accepted by the seller.'),
-('t',(  6+1000), 1, 'Accepted with amendment',    'This line item is accepted but amended by the seller.'),
-('f',(  7+1000), 1, 'Not accepted',               'This line item is not accepted by the seller.'),
-('t',(  8+1000), 1, 'Schedule only', 'Code specifying that the message is a schedule only.'),
-('t',(  9+1000), 1, 'Amendments',    'Code specifying that amendments are requested/notified.'),
 ('f',( 10+1000), 1, 'Not found',   'This line item is not found in the referenced message.'),
-('t',( 11+1000), 1, 'Not amended', 'This line is not amended by the buyer.'),
-('t',( 12+1000), 1, 'Line item numbers changed', 'Code specifying that the line item numbers have changed.'),
-('t',( 13+1000), 1, 'Buyer has deducted amount', 'Buyer has deducted amount from payment.'),
-('t',( 14+1000), 1, 'Buyer claims against invoice', 'Buyer has a claim against an outstanding invoice.'),
-('t',( 15+1000), 1, 'Charge back by seller', 'Factor has been requested to charge back the outstanding item.'),
-('t',( 16+1000), 1, 'Seller will issue credit note', 'Seller agrees to issue a credit note.'),
-('t',( 17+1000), 1, 'Terms changed for new terms', 'New settlement terms have been agreed.'),
-('t',( 18+1000), 1, 'Abide outcome of negotiations', 'Factor agrees to abide by the outcome of negotiations between seller and buyer.'),
-('t',( 19+1000), 1, 'Seller rejects dispute', 'Seller does not accept validity of dispute.'),
-('t',( 20+1000), 1, 'Settlement', 'The reported situation is settled.'),
-('t',( 21+1000), 1, 'No delivery', 'Code indicating that no delivery will be required.'),
-('t',( 22+1000), 1, 'Call-off delivery', 'A request for delivery of a particular quantity of goods to be delivered on a particular date (or within a particular period).'),
-('t',( 23+1000), 1, 'Proposed amendment', 'A code used to indicate an amendment suggested by the sender.'),
-('t',( 24+1000), 1, 'Accepted with amendment, no confirmation required', 'Accepted with changes which require no confirmation.'),
-('t',( 25+1000), 1, 'Equipment provisionally repaired', 'The equipment or component has been provisionally repaired.'),
-('t',( 26+1000), 1, 'Included', 'Code indicating that the entity is included.'),
-('t',( 27+1000), 1, 'Verified documents for coverage', 'Upon receipt and verification of documents we shall cover you when due as per your instructions.'),
-('t',( 28+1000), 1, 'Verified documents for debit',    'Upon receipt and verification of documents we shall authorize you to debit our account with you when due.'),
-('t',( 29+1000), 1, 'Authenticated advice for coverage',      'On receipt of your authenticated advice we shall cover you when due as per your instructions.'),
-('t',( 30+1000), 1, 'Authenticated advice for authorization', 'On receipt of your authenticated advice we shall authorize you to debit our account with you when due.'),
-('t',( 31+1000), 1, 'Authenticated advice for credit',        'On receipt of your authenticated advice we shall credit your account with us when due.'),
-('t',( 32+1000), 1, 'Credit advice requested for direct debit',           'A credit advice is requested for the direct debit.'),
-('t',( 33+1000), 1, 'Credit advice and acknowledgement for direct debit', 'A credit advice and acknowledgement are requested for the direct debit.'),
-('t',( 34+1000), 1, 'Inquiry',     'Request for information.'),
-('t',( 35+1000), 1, 'Checked',     'Checked.'),
-('t',( 36+1000), 1, 'Not checked', 'Not checked.'),
-('f',( 37+1000), 1, 'Cancelled',   'Discontinued.'),
-('t',( 38+1000), 1, 'Replaced',    'Provide a replacement.'),
-('t',( 39+1000), 1, 'New',         'Not existing before.'),
-('t',( 40+1000), 1, 'Agreed',      'Consent.'),
-('t',( 41+1000), 1, 'Proposed',    'Put forward for consideration.'),
-('t',( 42+1000), 1, 'Already delivered', 'Delivery has taken place.'),
-('t',( 43+1000), 1, 'Additional subordinate structures will follow', 'Additional subordinate structures will follow the current hierarchy level.'),
-('t',( 44+1000), 1, 'Additional subordinate structures will not follow', 'No additional subordinate structures will follow the current hierarchy level.'),
-('t',( 45+1000), 1, 'Result opposed',         'A notification that the result is opposed.'),
-('t',( 46+1000), 1, 'Auction held',           'A notification that an auction was held.'),
-('t',( 47+1000), 1, 'Legal action pursued',   'A notification that legal action has been pursued.'),
-('t',( 48+1000), 1, 'Meeting held',           'A notification that a meeting was held.'),
-('t',( 49+1000), 1, 'Result set aside',       'A notification that the result has been set aside.'),
-('t',( 50+1000), 1, 'Result disputed',        'A notification that the result has been disputed.'),
-('t',( 51+1000), 1, 'Countersued',            'A notification that a countersuit has been filed.'),
-('t',( 52+1000), 1, 'Pending',                'A notification that an action is awaiting settlement.'),
-('f',( 53+1000), 1, 'Court action dismissed', 'A notification that a court action will no longer be heard.'),
-('t',( 54+1000), 1, 'Referred item, accepted', 'The item being referred to has been accepted.'),
-('f',( 55+1000), 1, 'Referred item, rejected', 'The item being referred to has been rejected.'),
-('t',( 56+1000), 1, 'Debit advice statement line',  'Notification that the statement line is a debit advice.'),
-('t',( 57+1000), 1, 'Credit advice statement line', 'Notification that the statement line is a credit advice.'),
-('t',( 58+1000), 1, 'Grouped credit advices',       'Notification that the credit advices are grouped.'),
-('t',( 59+1000), 1, 'Grouped debit advices',        'Notification that the debit advices are grouped.'),
-('t',( 60+1000), 1, 'Registered', 'The name is registered.'),
-('f',( 61+1000), 1, 'Payment denied', 'The payment has been denied.'),
-('t',( 62+1000), 1, 'Approved as amended', 'Approved with modifications.'),
-('t',( 63+1000), 1, 'Approved as submitted', 'The request has been approved as submitted.'),
-('f',( 64+1000), 1, 'Cancelled, no activity', 'Cancelled due to the lack of activity.'),
-('t',( 65+1000), 1, 'Under investigation', 'Investigation is being done.'),
-('t',( 66+1000), 1, 'Initial claim received', 'Notification that the initial claim was received.'),
-('f',( 67+1000), 1, 'Not in process', 'Not in process.'),
-('f',( 68+1000), 1, 'Rejected, duplicate', 'Rejected because it is a duplicate.'),
-('f',( 69+1000), 1, 'Rejected, resubmit with corrections', 'Rejected but may be resubmitted when corrected.'),
-('t',( 70+1000), 1, 'Pending, incomplete', 'Pending because of incomplete information.'),
-('t',( 71+1000), 1, 'Under field office investigation', 'Investigation by the field is being done.'),
-('t',( 72+1000), 1, 'Pending, awaiting additional material', 'Pending awaiting receipt of additional material.'),
-('t',( 73+1000), 1, 'Pending, awaiting review', 'Pending while awaiting review.'),
-('t',( 74+1000), 1, 'Reopened', 'Opened again.'),
-('t',( 75+1000), 1, 'Processed by primary, forwarded to additional payer(s)',   'This request has been processed by the primary payer and sent to additional payer(s).'),
-('t',( 76+1000), 1, 'Processed by secondary, forwarded to additional payer(s)', 'This request has been processed by the secondary payer and sent to additional payer(s).'),
-('t',( 77+1000), 1, 'Processed by tertiary, forwarded to additional payer(s)',  'This request has been processed by the tertiary payer and sent to additional payer(s).'),
-('t',( 78+1000), 1, 'Previous payment decision reversed', 'A previous payment decision has been reversed.'),
-('t',( 79+1000), 1, 'Not our claim, forwarded to another payer(s)', 'A request does not belong to this payer but has been forwarded to another payer(s).'),
-('t',( 80+1000), 1, 'Transferred to correct insurance carrier', 'The request has been transferred to the correct insurance carrier for processing.'),
-('t',( 81+1000), 1, 'Not paid, predetermination pricing only', 'Payment has not been made and the enclosed response is predetermination pricing only.'),
-('t',( 82+1000), 1, 'Documentation claim', 'The claim is for documentation purposes only, no payment required.'),
-('t',( 83+1000), 1, 'Reviewed', 'Assessed.'),
-('f',( 84+1000), 1, 'Repriced', 'This price was changed.'),
-('t',( 85+1000), 1, 'Audited', 'An official examination has occurred.'),
-('t',( 86+1000), 1, 'Conditionally paid', 'Payment has been conditionally made.'),
-('t',( 87+1000), 1, 'On appeal', 'Reconsideration of the decision has been applied for.'),
-('t',( 88+1000), 1, 'Closed', 'Shut.'),
-('t',( 89+1000), 1, 'Reaudited', 'A subsequent official examination has occurred.'),
-('t',( 90+1000), 1, 'Reissued', 'Issued again.'),
-('t',( 91+1000), 1, 'Closed after reopening', 'Reopened and then closed.'),
-('t',( 92+1000), 1, 'Redetermined', 'Determined again or differently.'),
-('t',( 93+1000), 1, 'Processed as primary',   'Processed as the first.'),
-('t',( 94+1000), 1, 'Processed as secondary', 'Processed as the second.'),
-('t',( 95+1000), 1, 'Processed as tertiary',  'Processed as the third.'),
-('t',( 96+1000), 1, 'Correction of error', 'A correction to information previously communicated which contained an error.'),
-('t',( 97+1000), 1, 'Single credit item of a group', 'Notification that the credit item is a single credit item of a group of credit items.'),
-('t',( 98+1000), 1, 'Single debit item of a group',  'Notification that the debit item is a single debit item of a group of debit items.'),
-('t',( 99+1000), 1, 'Interim response', 'The response is an interim one.'),
-('t',(100+1000), 1, 'Final response',   'The response is an final one.'),
-('t',(101+1000), 1, 'Debit advice requested', 'A debit advice is requested for the transaction.'),
-('t',(102+1000), 1, 'Transaction not impacted', 'Advice that the transaction is not impacted.'),
-('t',(103+1000), 1, 'Patient to be notified',                    'The action to take is to notify the patient.'),
-('t',(104+1000), 1, 'Healthcare provider to be notified',        'The action to take is to notify the healthcare provider.'),
-('t',(105+1000), 1, 'Usual general practitioner to be notified', 'The action to take is to notify the usual general practitioner.'),
-('t',(106+1000), 1, 'Advice without details', 'An advice without details is requested or notified.'),
-('t',(107+1000), 1, 'Advice with details', 'An advice with details is requested or notified.'),
-('t',(108+1000), 1, 'Amendment requested', 'An amendment is requested.'),
-('t',(109+1000), 1, 'For information', 'Included for information only.'),
-('f',(110+1000), 1, 'Withdraw', 'A code indicating discontinuance or retraction.'),
-('t',(111+1000), 1, 'Delivery date change', 'The action / notiification is a change of the delivery date.'),
-('f',(112+1000), 1, 'Quantity change',      'The action / notification is a change of quantity.'),
-('t',(113+1000), 1, 'Resale and claim', 'The identified items have been sold by the distributor to the end customer, and compensation for the loss of inventory value is claimed.'),
-('t',(114+1000), 1, 'Resale',           'The identified items have been sold by the distributor to the end customer.'),
-('t',(115+1000), 1, 'Prior addition', 'This existing line item becomes available at an earlier date.');
-
--- We won't necessarily use all of these, but they are here for completeness.
--- Source is the EDI spec 6063 codelist, eg: http://www.stylusstudio.com/edifact/D04B/6063.htm
--- Values are the EDI code value + 1200
+('t',( 24+1000), 1, 'Accepted with amendment, no confirmation required', 'Accepted with changes which require no confirmation.');
 
 INSERT INTO acq.cancel_reason (org_unit, keep_debits, id, label, description) VALUES 
-(1, 't', 1201, 'Discrete quantity', 'Individually separated and distinct quantity.'),
-(1, 't', 1202, 'Charge', 'Quantity relevant for charge.'),
-(1, 't', 1203, 'Cumulative quantity', 'Quantity accumulated.'),
-(1, 't', 1204, 'Interest for overdrawn account', 'Interest for overdrawing the account.'),
-(1, 't', 1205, 'Active ingredient dose per unit', 'The dosage of active ingredient per unit.'),
-(1, 't', 1206, 'Auditor', 'The number of entities that audit accounts.'),
-(1, 't', 1207, 'Branch locations, leased', 'The number of branch locations being leased by an entity.'),
-(1, 't', 1208, 'Inventory quantity at supplier''s subject to inspection by', 'customer Quantity of goods which the customer requires the supplier to have in inventory and which may be inspected by the customer if desired.'),
-(1, 't', 1209, 'Branch locations, owned', 'The number of branch locations owned by an entity.'),
-(1, 't', 1210, 'Judgements registered', 'The number of judgements registered against an entity.'),
 (1, 't', 1211, 'Split quantity', 'Part of the whole quantity.'),
-(1, 't', 1212, 'Despatch quantity', 'Quantity despatched by the seller.'),
-(1, 't', 1213, 'Liens registered', 'The number of liens registered against an entity.'),
-(1, 't', 1214, 'Livestock', 'The number of animals kept for use or profit.'),
-(1, 't', 1215, 'Insufficient funds returned cheques', 'The number of cheques returned due to insufficient funds.'),
-(1, 't', 1216, 'Stolen cheques', 'The number of stolen cheques.'),
-(1, 't', 1217, 'Quantity on hand', 'The total quantity of a product on hand at a location. This includes as well units awaiting return to manufacturer, units unavailable due to inspection procedures and undamaged stock available for despatch, resale or use.'),
-(1, 't', 1218, 'Previous quantity', 'Quantity previously referenced.'),
-(1, 't', 1219, 'Paid-in security shares', 'The number of security shares issued and for which full payment has been made.'),
-(1, 't', 1220, 'Unusable quantity', 'Quantity not usable.'),
 (1, 't', 1221, 'Ordered quantity', '[6024] The quantity which has been ordered.'),
-(1, 't', 1222, 'Quantity at 100%', 'Equivalent quantity at 100% purity.'),
-(1, 't', 1223, 'Active ingredient', 'Quantity at 100% active agent content.'),
-(1, 't', 1224, 'Inventory quantity at supplier''s not subject to inspection', 'by customer Quantity of goods which the customer requires the supplier to have in inventory but which will not be checked by the customer.'),
-(1, 't', 1225, 'Retail sales', 'Quantity of retail point of sale activity.'),
-(1, 't', 1226, 'Promotion quantity', 'A quantity associated with a promotional event.'),
-(1, 't', 1227, 'On hold for shipment', 'Article received which cannot be shipped in its present form.'),
-(1, 't', 1228, 'Military sales quantity', 'Quantity of goods or services sold to a military organization.'),
-(1, 't', 1229, 'On premises sales',  'Sale of product in restaurants or bars.'),
-(1, 't', 1230, 'Off premises sales', 'Sale of product directly to a store.'),
-(1, 't', 1231, 'Estimated annual volume', 'Volume estimated for a year.'),
-(1, 't', 1232, 'Minimum delivery batch', 'Minimum quantity of goods delivered at one time.'),
-(1, 't', 1233, 'Maximum delivery batch', 'Maximum quantity of goods delivered at one time.'),
-(1, 't', 1234, 'Pipes', 'The number of tubes used to convey a substance.'),
-(1, 't', 1235, 'Price break from', 'The minimum quantity of a quantity range for a specified (unit) price.'),
-(1, 't', 1236, 'Price break to', 'Maximum quantity to which the price break applies.'),
-(1, 't', 1237, 'Poultry', 'The number of domestic fowl.'),
-(1, 't', 1238, 'Secured charges registered', 'The number of secured charges registered against an entity.'),
-(1, 't', 1239, 'Total properties owned', 'The total number of properties owned by an entity.'),
-(1, 't', 1240, 'Normal delivery', 'Quantity normally delivered by the seller.'),
-(1, 't', 1241, 'Sales quantity not included in the replenishment', 'calculation Sales which will not be included in the calculation of replenishment requirements.'),
-(1, 't', 1242, 'Maximum supply quantity, supplier endorsed', 'Maximum supply quantity endorsed by a supplier.'),
-(1, 't', 1243, 'Buyer', 'The number of buyers.'),
-(1, 't', 1244, 'Debenture bond', 'The number of fixed-interest bonds of an entity backed by general credit rather than specified assets.'),
-(1, 't', 1245, 'Debentures filed against directors', 'The number of notices of indebtedness filed against an entity''s directors.'),
 (1, 't', 1246, 'Pieces delivered', 'Number of pieces actually received at the final destination.'),
-(1, 't', 1247, 'Invoiced quantity', 'The quantity as per invoice.'),
-(1, 't', 1248, 'Received quantity', 'The quantity which has been received.'),
-(1, 't', 1249, 'Chargeable distance', '[6110] The distance between two points for which a specific tariff applies.'),
-(1, 't', 1250, 'Disposition undetermined quantity', 'Product quantity that has not yet had its disposition determined.'),
-(1, 't', 1251, 'Inventory category transfer', 'Inventory that has been moved from one inventory category to another.'),
-(1, 't', 1252, 'Quantity per pack', 'Quantity for each pack.'),
-(1, 't', 1253, 'Minimum order quantity', 'Minimum quantity of goods for an order.'),
-(1, 't', 1254, 'Maximum order quantity', 'Maximum quantity of goods for an order.'),
-(1, 't', 1255, 'Total sales', 'The summation of total quantity sales.'),
-(1, 't', 1256, 'Wholesaler to wholesaler sales', 'Sale of product to other wholesalers by a wholesaler.'),
-(1, 't', 1257, 'In transit quantity', 'A quantity that is en route.'),
-(1, 't', 1258, 'Quantity withdrawn', 'Quantity withdrawn from a location.'),
-(1, 't', 1259, 'Numbers of consumer units in the traded unit', 'Number of units for consumer sales in a unit for trading.'),
-(1, 't', 1260, 'Current inventory quantity available for shipment', 'Current inventory quantity available for shipment.'),
-(1, 't', 1261, 'Return quantity', 'Quantity of goods returned.'),
-(1, 't', 1262, 'Sorted quantity', 'The quantity that is sorted.'),
-(1, 'f', 1263, 'Sorted quantity rejected', 'The sorted quantity that is rejected.'),
-(1, 't', 1264, 'Scrap quantity', 'Remainder of the total quantity after split deliveries.'),
-(1, 'f', 1265, 'Destroyed quantity', 'Quantity of goods destroyed.'),
-(1, 't', 1266, 'Committed quantity', 'Quantity a party is committed to.'),
-(1, 't', 1267, 'Estimated reading quantity', 'The value that is estimated to be the reading of a measuring device (e.g. meter).'),
-(1, 't', 1268, 'End quantity', 'The quantity recorded at the end of an agreement or period.'),
-(1, 't', 1269, 'Start quantity', 'The quantity recorded at the start of an agreement or period.'),
-(1, 't', 1270, 'Cumulative quantity received', 'Cumulative quantity of all deliveries of this article received by the buyer.'),
-(1, 't', 1271, 'Cumulative quantity ordered', 'Cumulative quantity of all deliveries, outstanding and scheduled orders.'),
-(1, 't', 1272, 'Cumulative quantity received end of prior year', 'Cumulative quantity of all deliveries of the product received by the buyer till end of prior year.'),
-(1, 't', 1273, 'Outstanding quantity', 'Difference between quantity ordered and quantity received.'),
-(1, 't', 1274, 'Latest cumulative quantity', 'Cumulative quantity after complete delivery of all scheduled quantities of the product.'),
-(1, 't', 1275, 'Previous highest cumulative quantity', 'Cumulative quantity after complete delivery of all scheduled quantities of the product from a prior schedule period.'),
-(1, 't', 1276, 'Adjusted corrector reading', 'A corrector reading after it has been adjusted.'),
-(1, 't', 1277, 'Work days', 'Number of work days, e.g. per respective period.'),
-(1, 't', 1278, 'Cumulative quantity scheduled', 'Adding the quantity actually scheduled to previous cumulative quantity.'),
-(1, 't', 1279, 'Previous cumulative quantity', 'Cumulative quantity prior the actual order.'),
-(1, 't', 1280, 'Unadjusted corrector reading', 'A corrector reading before it has been adjusted.'),
-(1, 't', 1281, 'Extra unplanned delivery', 'Non scheduled additional quantity.'),
-(1, 't', 1282, 'Quantity requirement for sample inspection', 'Required quantity for sample inspection.'),
-(1, 't', 1283, 'Backorder quantity', 'The quantity of goods that is on back-order.'),
-(1, 't', 1284, 'Urgent delivery quantity', 'Quantity for urgent delivery.'),
-(1, 'f', 1285, 'Previous order quantity to be cancelled', 'Quantity ordered previously to be cancelled.'),
-(1, 't', 1286, 'Normal reading quantity', 'The value recorded or read from a measuring device (e.g. meter) in the normal conditions.'),
-(1, 't', 1287, 'Customer reading quantity', 'The value recorded or read from a measuring device (e.g. meter) by the customer.'),
-(1, 't', 1288, 'Information reading quantity', 'The value recorded or read from a measuring device (e.g. meter) for information purposes.'),
-(1, 't', 1289, 'Quality control held', 'Quantity of goods held pending completion of a quality control assessment.'),
-(1, 't', 1290, 'As is quantity', 'Quantity as it is in the existing circumstances.'),
-(1, 't', 1291, 'Open quantity', 'Quantity remaining after partial delivery.'),
-(1, 't', 1292, 'Final delivery quantity', 'Quantity of final delivery to a respective order.'),
-(1, 't', 1293, 'Subsequent delivery quantity', 'Quantity delivered to a respective order after it''s final delivery.'),
-(1, 't', 1294, 'Substitutional quantity', 'Quantity delivered replacing previous deliveries.'),
-(1, 't', 1295, 'Redelivery after post processing', 'Quantity redelivered after post processing.'),
-(1, 'f', 1296, 'Quality control failed', 'Quantity of goods which have failed quality control.'),
-(1, 't', 1297, 'Minimum inventory', 'Minimum stock quantity on which replenishment is based.'),
-(1, 't', 1298, 'Maximum inventory', 'Maximum stock quantity on which replenishment is based.'),
-(1, 't', 1299, 'Estimated quantity', 'Quantity estimated.'),
-(1, 't', 1300, 'Chargeable weight', 'The weight on which charges are based.'),
-(1, 't', 1301, 'Chargeable gross weight', 'The gross weight on which charges are based.'),
-(1, 't', 1302, 'Chargeable tare weight', 'The tare weight on which charges are based.'),
-(1, 't', 1303, 'Chargeable number of axles', 'The number of axles on which charges are based.'),
-(1, 't', 1304, 'Chargeable number of containers', 'The number of containers on which charges are based.'),
-(1, 't', 1305, 'Chargeable number of rail wagons', 'The number of rail wagons on which charges are based.'),
-(1, 't', 1306, 'Chargeable number of packages', 'The number of packages on which charges are based.'),
-(1, 't', 1307, 'Chargeable number of units', 'The number of units on which charges are based.'),
-(1, 't', 1308, 'Chargeable period', 'The period of time on which charges are based.'),
-(1, 't', 1309, 'Chargeable volume', 'The volume on which charges are based.'),
-(1, 't', 1310, 'Chargeable cubic measurements', 'The cubic measurements on which charges are based.'),
-(1, 't', 1311, 'Chargeable surface', 'The surface area on which charges are based.'),
-(1, 't', 1312, 'Chargeable length', 'The length on which charges are based.'),
-(1, 't', 1313, 'Quantity to be delivered', 'The quantity to be delivered.'),
-(1, 't', 1314, 'Number of passengers', 'Total number of passengers on the conveyance.'),
-(1, 't', 1315, 'Number of crew', 'Total number of crew members on the conveyance.'),
-(1, 't', 1316, 'Number of transport documents', 'Total number of air waybills, bills of lading, etc. being reported for a specific conveyance.'),
-(1, 't', 1317, 'Quantity landed', 'Quantity of goods actually arrived.'),
-(1, 't', 1318, 'Quantity manifested', 'Quantity of goods contracted for delivery by the carrier.'),
-(1, 't', 1319, 'Short shipped', 'Indication that part of the consignment was not shipped.'),
-(1, 't', 1320, 'Split shipment', 'Indication that the consignment has been split into two or more shipments.'),
-(1, 't', 1321, 'Over shipped', 'The quantity of goods shipped that exceeds the quantity contracted.'),
-(1, 't', 1322, 'Short-landed goods', 'If quantity of goods actually landed is less than the quantity which appears in the documentation. This quantity is the difference between these quantities.'),
-(1, 't', 1323, 'Surplus goods', 'If quantity of goods actually landed is more than the quantity which appears in the documentation. This quantity is the difference between these quantities.'),
-(1, 'f', 1324, 'Damaged goods', 'Quantity of goods which have deteriorated in transport such that they cannot be used for the purpose for which they were originally intended.'),
-(1, 'f', 1325, 'Pilferage goods', 'Quantity of goods stolen during transport.'),
-(1, 'f', 1326, 'Lost goods', 'Quantity of goods that disappeared in transport.'),
-(1, 't', 1327, 'Report difference', 'The quantity concerning the same transaction differs between two documents/messages and the source of this difference is a typing error.'),
-(1, 't', 1328, 'Quantity loaded', 'Quantity of goods loaded onto a means of transport.'),
-(1, 't', 1329, 'Units per unit price', 'Number of units per unit price.'),
-(1, 't', 1330, 'Allowance', 'Quantity relevant for allowance.'),
-(1, 't', 1331, 'Delivery quantity', 'Quantity required by buyer to be delivered.'),
-(1, 't', 1332, 'Cumulative quantity, preceding period, planned', 'Cumulative quantity originally planned for the preceding period.'),
-(1, 't', 1333, 'Cumulative quantity, preceding period, reached', 'Cumulative quantity reached in the preceding period.'),
-(1, 't', 1334, 'Cumulative quantity, actual planned',            'Cumulative quantity planned for now.'),
-(1, 't', 1335, 'Period quantity, planned', 'Quantity planned for this period.'),
-(1, 't', 1336, 'Period quantity, reached', 'Quantity reached during this period.'),
-(1, 't', 1337, 'Cumulative quantity, preceding period, estimated', 'Estimated cumulative quantity reached in the preceding period.'),
-(1, 't', 1338, 'Cumulative quantity, actual estimated',            'Estimated cumulative quantity reached now.'),
-(1, 't', 1339, 'Cumulative quantity, preceding period, measured', 'Surveyed cumulative quantity reached in the preceding period.'),
-(1, 't', 1340, 'Cumulative quantity, actual measured', 'Surveyed cumulative quantity reached now.'),
-(1, 't', 1341, 'Period quantity, measured',            'Surveyed quantity reached during this period.'),
-(1, 't', 1342, 'Total quantity, planned', 'Total quantity planned.'),
-(1, 't', 1343, 'Quantity, remaining', 'Quantity remaining.'),
-(1, 't', 1344, 'Tolerance', 'Plus or minus tolerance expressed as a monetary amount.'),
-(1, 't', 1345, 'Actual stock',          'The stock on hand, undamaged, and available for despatch, sale or use.'),
-(1, 't', 1346, 'Model or target stock', 'The stock quantity required or planned to have on hand, undamaged and available for use.'),
-(1, 't', 1347, 'Direct shipment quantity', 'Quantity to be shipped directly to a customer from a manufacturing site.'),
-(1, 't', 1348, 'Amortization total quantity',     'Indication of final quantity for amortization.'),
-(1, 't', 1349, 'Amortization order quantity',     'Indication of actual share of the order quantity for amortization.'),
-(1, 't', 1350, 'Amortization cumulated quantity', 'Indication of actual cumulated quantity of previous and actual amortization order quantity.'),
-(1, 't', 1351, 'Quantity advised',  'Quantity advised by supplier or shipper, in contrast to quantity actually received.'),
-(1, 't', 1352, 'Consignment stock', 'Quantity of goods with an external customer which is still the property of the supplier. Payment for these goods is only made to the supplier when the ownership has been transferred between the trading partners.'),
-(1, 't', 1353, 'Statistical sales quantity', 'Quantity of goods sold in a specified period.'),
-(1, 't', 1354, 'Sales quantity planned',     'Quantity of goods required to meet future demands. - Market intelligence quantity.'),
-(1, 't', 1355, 'Replenishment quantity',     'Quantity required to maintain the requisite on-hand stock of goods.'),
-(1, 't', 1356, 'Inventory movement quantity', 'To specify the quantity of an inventory movement.'),
-(1, 't', 1357, 'Opening stock balance quantity', 'To specify the quantity of an opening stock balance.'),
-(1, 't', 1358, 'Closing stock balance quantity', 'To specify the quantity of a closing stock balance.'),
-(1, 't', 1359, 'Number of stops', 'Number of times a means of transport stops before arriving at destination.'),
-(1, 't', 1360, 'Minimum production batch', 'The quantity specified is the minimum output from a single production run.'),
-(1, 't', 1361, 'Dimensional sample quantity', 'The quantity defined is a sample for the purpose of validating dimensions.'),
-(1, 't', 1362, 'Functional sample quantity', 'The quantity defined is a sample for the purpose of validating function and performance.'),
-(1, 't', 1363, 'Pre-production quantity', 'Quantity of the referenced item required prior to full production.'),
-(1, 't', 1364, 'Delivery batch', 'Quantity of the referenced item which constitutes a standard batch for deliver purposes.'),
-(1, 't', 1365, 'Delivery batch multiple', 'The multiples in which delivery batches can be supplied.'),
-(1, 't', 1366, 'All time buy',             'The total quantity of the referenced covering all future needs. Further orders of the referenced item are not expected.'),
-(1, 't', 1367, 'Total delivery quantity',  'The total quantity required by the buyer to be delivered.'),
-(1, 't', 1368, 'Single delivery quantity', 'The quantity required by the buyer to be delivered in a single shipment.'),
-(1, 't', 1369, 'Supplied quantity',  'Quantity of the referenced item actually shipped.'),
-(1, 't', 1370, 'Allocated quantity', 'Quantity of the referenced item allocated from available stock for delivery.'),
-(1, 't', 1371, 'Maximum stackability', 'The number of pallets/handling units which can be safely stacked one on top of another.'),
-(1, 't', 1372, 'Amortisation quantity', 'The quantity of the referenced item which has a cost for tooling amortisation included in the item price.'),
-(1, 't', 1373, 'Previously amortised quantity', 'The cumulative quantity of the referenced item which had a cost for tooling amortisation included in the item price.'),
-(1, 't', 1374, 'Total amortisation quantity', 'The total quantity of the referenced item which has a cost for tooling amortisation included in the item price.'),
-(1, 't', 1375, 'Number of moulds', 'The number of pressing moulds contained within a single piece of the referenced tooling.'),
-(1, 't', 1376, 'Concurrent item output of tooling', 'The number of related items which can be produced simultaneously with a single piece of the referenced tooling.'),
-(1, 't', 1377, 'Periodic capacity of tooling', 'Maximum production output of the referenced tool over a period of time.'),
-(1, 't', 1378, 'Lifetime capacity of tooling', 'Maximum production output of the referenced tool over its productive lifetime.'),
-(1, 't', 1379, 'Number of deliveries per despatch period', 'The number of deliveries normally expected to be despatched within each despatch period.'),
-(1, 't', 1380, 'Provided quantity', 'The quantity of a referenced component supplied by the buyer for manufacturing of an ordered item.'),
-(1, 't', 1381, 'Maximum production batch', 'The quantity specified is the maximum output from a single production run.'),
-(1, 'f', 1382, 'Cancelled quantity', 'Quantity of the referenced item which has previously been ordered and is now cancelled.'),
-(1, 't', 1383, 'No delivery requirement in this instruction', 'This delivery instruction does not contain any delivery requirements.'),
-(1, 't', 1384, 'Quantity of material in ordered time', 'Quantity of the referenced material within the ordered time.'),
-(1, 'f', 1385, 'Rejected quantity', 'The quantity of received goods rejected for quantity reasons.'),
-(1, 't', 1386, 'Cumulative quantity scheduled up to accumulation start date', 'The cumulative quantity scheduled up to the accumulation start date.'),
-(1, 't', 1387, 'Quantity scheduled', 'The quantity scheduled for delivery.'),
-(1, 't', 1388, 'Number of identical handling units', 'Number of identical handling units in terms of type and contents.'),
-(1, 't', 1389, 'Number of packages in handling unit', 'The number of packages contained in one handling unit.'),
-(1, 't', 1390, 'Despatch note quantity', 'The item quantity specified on the despatch note.'),
-(1, 't', 1391, 'Adjustment to inventory quantity', 'An adjustment to inventory quantity.'),
-(1, 't', 1392, 'Free goods quantity',    'Quantity of goods which are free of charge.'),
-(1, 't', 1393, 'Free quantity included', 'Quantity included to which no charge is applicable.'),
-(1, 't', 1394, 'Received and accepted',  'Quantity which has been received and accepted at a given location.'),
-(1, 'f', 1395, 'Received, not accepted, to be returned',  'Quantity which has been received but not accepted at a given location and which will consequently be returned to the relevant party.'),
-(1, 'f', 1396, 'Received, not accepted, to be destroyed', 'Quantity which has been received but not accepted at a given location and which will consequently be destroyed.'),
-(1, 't', 1397, 'Reordering level', 'Quantity at which an order may be triggered to replenish.'),
-(1, 't', 1399, 'Inventory withdrawal quantity', 'Quantity which has been withdrawn from inventory since the last inventory report.'),
-(1, 't', 1400, 'Free quantity not included', 'Free quantity not included in ordered quantity.'),
-(1, 't', 1401, 'Recommended overhaul and repair quantity', 'To indicate the recommended quantity of an article required to support overhaul and repair activities.'),
-(1, 't', 1402, 'Quantity per next higher assembly', 'To indicate the quantity required for the next higher assembly.'),
-(1, 't', 1403, 'Quantity per unit of issue', 'Provides the standard quantity of an article in which one unit can be issued.'),
-(1, 't', 1404, 'Cumulative scrap quantity',  'Provides the cumulative quantity of an item which has been identified as scrapped.'),
-(1, 't', 1405, 'Publication turn size', 'The quantity of magazines or newspapers grouped together with the spine facing alternate directions in a bundle.'),
-(1, 't', 1406, 'Recommended maintenance quantity', 'Recommended quantity of an article which is required to meet an agreed level of maintenance.'),
-(1, 't', 1407, 'Labour hours', 'Number of labour hours.'),
-(1, 't', 1408, 'Quantity requirement for maintenance and repair of', 'equipment Quantity of the material needed to maintain and repair equipment.'),
-(1, 't', 1409, 'Additional replenishment demand quantity', 'Incremental needs over and above normal replenishment calculations, but not intended to permanently change the model parameters.'),
-(1, 't', 1410, 'Returned by consumer quantity', 'Quantity returned by a consumer.'),
-(1, 't', 1411, 'Replenishment override quantity', 'Quantity to override the normal replenishment model calculations, but not intended to permanently change the model parameters.'),
-(1, 't', 1412, 'Quantity sold, net', 'Net quantity sold which includes returns of saleable inventory and other adjustments.'),
-(1, 't', 1413, 'Transferred out quantity',   'Quantity which was transferred out of this location.'),
-(1, 't', 1414, 'Transferred in quantity',    'Quantity which was transferred into this location.'),
-(1, 't', 1415, 'Unsaleable quantity',        'Quantity of inventory received which cannot be sold in its present condition.'),
-(1, 't', 1416, 'Consumer reserved quantity', 'Quantity reserved for consumer delivery or pickup and not yet withdrawn from inventory.'),
-(1, 't', 1417, 'Out of inventory quantity',  'Quantity of inventory which was requested but was not available.'),
-(1, 't', 1418, 'Quantity returned, defective or damaged', 'Quantity returned in a damaged or defective condition.'),
-(1, 't', 1419, 'Taxable quantity',           'Quantity subject to taxation.'),
-(1, 't', 1420, 'Meter reading', 'The numeric value of measure units counted by a meter.'),
-(1, 't', 1421, 'Maximum requestable quantity', 'The maximum quantity which may be requested.'),
-(1, 't', 1422, 'Minimum requestable quantity', 'The minimum quantity which may be requested.'),
-(1, 't', 1423, 'Daily average quantity', 'The quantity for a defined period divided by the number of days of the period.'),
-(1, 't', 1424, 'Budgeted hours',     'The number of budgeted hours.'),
-(1, 't', 1425, 'Actual hours',       'The number of actual hours.'),
-(1, 't', 1426, 'Earned value hours', 'The number of earned value hours.'),
-(1, 't', 1427, 'Estimated hours',    'The number of estimated hours.'),
-(1, 't', 1428, 'Level resource task quantity', 'Quantity of a resource that is level for the duration of the task.'),
-(1, 't', 1429, 'Available resource task quantity', 'Quantity of a resource available to complete a task.'),
-(1, 't', 1430, 'Work time units',   'Quantity of work units of time.'),
-(1, 't', 1431, 'Daily work shifts', 'Quantity of work shifts per day.'),
-(1, 't', 1432, 'Work time units per shift', 'Work units of time per work shift.'),
-(1, 't', 1433, 'Work calendar units',       'Work calendar units of time.'),
-(1, 't', 1434, 'Elapsed duration',   'Quantity representing the elapsed duration.'),
-(1, 't', 1435, 'Remaining duration', 'Quantity representing the remaining duration.'),
-(1, 't', 1436, 'Original duration',  'Quantity representing the original duration.'),
-(1, 't', 1437, 'Current duration',   'Quantity representing the current duration.'),
-(1, 't', 1438, 'Total float time',   'Quantity representing the total float time.'),
-(1, 't', 1439, 'Free float time',    'Quantity representing the free float time.'),
-(1, 't', 1440, 'Lag time',           'Quantity representing lag time.'),
-(1, 't', 1441, 'Lead time',          'Quantity representing lead time.'),
-(1, 't', 1442, 'Number of months', 'The number of months.'),
-(1, 't', 1443, 'Reserved quantity customer direct delivery sales', 'Quantity of products reserved for sales delivered direct to the customer.'),
-(1, 't', 1444, 'Reserved quantity retail sales', 'Quantity of products reserved for retail sales.'),
-(1, 't', 1445, 'Consolidated discount inventory', 'A quantity of inventory supplied at consolidated discount terms.'),
-(1, 't', 1446, 'Returns replacement quantity',    'A quantity of goods issued as a replacement for a returned quantity.'),
-(1, 't', 1447, 'Additional promotion sales forecast quantity', 'A forecast of additional quantity which will be sold during a period of promotional activity.'),
-(1, 't', 1448, 'Reserved quantity', 'Quantity reserved for specific purposes.'),
-(1, 't', 1449, 'Quantity displayed not available for sale', 'Quantity displayed within a retail outlet but not available for sale.'),
-(1, 't', 1450, 'Inventory discrepancy', 'The difference recorded between theoretical and physical inventory.'),
-(1, 't', 1451, 'Incremental order quantity', 'The incremental quantity by which ordering is carried out.'),
-(1, 't', 1452, 'Quantity requiring manipulation before despatch', 'A quantity of goods which needs manipulation before despatch.'),
-(1, 't', 1453, 'Quantity in quarantine',              'A quantity of goods which are held in a restricted area for quarantine purposes.'),
-(1, 't', 1454, 'Quantity withheld by owner of goods', 'A quantity of goods which has been withheld by the owner of the goods.'),
-(1, 't', 1455, 'Quantity not available for despatch', 'A quantity of goods not available for despatch.'),
-(1, 't', 1456, 'Quantity awaiting delivery', 'Quantity of goods which are awaiting delivery.'),
-(1, 't', 1457, 'Quantity in physical inventory',      'A quantity of goods held in physical inventory.'),
-(1, 't', 1458, 'Quantity held by logistic service provider', 'Quantity of goods under the control of a logistic service provider.'),
-(1, 't', 1459, 'Optimal quantity', 'The optimal quantity for a given purpose.'),
-(1, 't', 1460, 'Delivery quantity balance', 'The difference between the scheduled quantity and the quantity delivered to the consignee at a given date.'),
-(1, 't', 1461, 'Cumulative quantity shipped', 'Cumulative quantity of all shipments.'),
-(1, 't', 1462, 'Quantity suspended', 'The quantity of something which is suspended.'),
-(1, 't', 1463, 'Control quantity', 'The quantity designated for control purposes.'),
-(1, 't', 1464, 'Equipment quantity', 'A count of a quantity of equipment.'),
-(1, 't', 1465, 'Factor', 'Number by which the measured unit has to be multiplied to calculate the units used.'),
-(1, 't', 1466, 'Unsold quantity held by wholesaler', 'Unsold quantity held by the wholesaler.'),
-(1, 't', 1467, 'Quantity held by delivery vehicle', 'Quantity of goods held by the delivery vehicle.'),
-(1, 't', 1468, 'Quantity held by retail outlet', 'Quantity held by the retail outlet.'),
-(1, 'f', 1469, 'Rejected return quantity', 'A quantity for return which has been rejected.'),
-(1, 't', 1470, 'Accounts', 'The number of accounts.'),
-(1, 't', 1471, 'Accounts placed for collection', 'The number of accounts placed for collection.'),
-(1, 't', 1472, 'Activity codes', 'The number of activity codes.'),
-(1, 't', 1473, 'Agents', 'The number of agents.'),
-(1, 't', 1474, 'Airline attendants', 'The number of airline attendants.'),
-(1, 't', 1475, 'Authorised shares',  'The number of shares authorised for issue.'),
-(1, 't', 1476, 'Employee average',   'The average number of employees.'),
-(1, 't', 1477, 'Branch locations',   'The number of branch locations.'),
-(1, 't', 1478, 'Capital changes',    'The number of capital changes made.'),
-(1, 't', 1479, 'Clerks', 'The number of clerks.'),
-(1, 't', 1480, 'Companies in same activity', 'The number of companies doing business in the same activity category.'),
-(1, 't', 1481, 'Companies included in consolidated financial statement', 'The number of companies included in a consolidated financial statement.'),
-(1, 't', 1482, 'Cooperative shares', 'The number of cooperative shares.'),
-(1, 't', 1483, 'Creditors',   'The number of creditors.'),
-(1, 't', 1484, 'Departments', 'The number of departments.'),
-(1, 't', 1485, 'Design employees', 'The number of employees involved in the design process.'),
-(1, 't', 1486, 'Physicians', 'The number of medical doctors.'),
-(1, 't', 1487, 'Domestic affiliated companies', 'The number of affiliated companies located within the country.'),
-(1, 't', 1488, 'Drivers', 'The number of drivers.'),
-(1, 't', 1489, 'Employed at location',     'The number of employees at the specified location.'),
-(1, 't', 1490, 'Employed by this company', 'The number of employees at the specified company.'),
-(1, 't', 1491, 'Total employees',    'The total number of employees.'),
-(1, 't', 1492, 'Employees shared',   'The number of employees shared among entities.'),
-(1, 't', 1493, 'Engineers',          'The number of engineers.'),
-(1, 't', 1494, 'Estimated accounts', 'The estimated number of accounts.'),
-(1, 't', 1495, 'Estimated employees at location', 'The estimated number of employees at the specified location.'),
-(1, 't', 1496, 'Estimated total employees',       'The total estimated number of employees.'),
-(1, 't', 1497, 'Executives', 'The number of executives.'),
-(1, 't', 1498, 'Agricultural workers',   'The number of agricultural workers.'),
-(1, 't', 1499, 'Financial institutions', 'The number of financial institutions.'),
-(1, 't', 1500, 'Floors occupied', 'The number of floors occupied.'),
-(1, 't', 1501, 'Foreign related entities', 'The number of related entities located outside the country.'),
-(1, 't', 1502, 'Group employees',    'The number of employees within the group.'),
-(1, 't', 1503, 'Indirect employees', 'The number of employees not associated with direct production.'),
-(1, 't', 1504, 'Installers',    'The number of employees involved with the installation process.'),
-(1, 't', 1505, 'Invoices',      'The number of invoices.'),
-(1, 't', 1506, 'Issued shares', 'The number of shares actually issued.'),
-(1, 't', 1507, 'Labourers',     'The number of labourers.'),
-(1, 't', 1508, 'Manufactured units', 'The number of units manufactured.'),
-(1, 't', 1509, 'Maximum number of employees', 'The maximum number of people employed.'),
-(1, 't', 1510, 'Maximum number of employees at location', 'The maximum number of people employed at a location.'),
-(1, 't', 1511, 'Members in group', 'The number of members within a group.'),
-(1, 't', 1512, 'Minimum number of employees at location', 'The minimum number of people employed at a location.'),
-(1, 't', 1513, 'Minimum number of employees', 'The minimum number of people employed.'),
-(1, 't', 1514, 'Non-union employees', 'The number of employees not belonging to a labour union.'),
-(1, 't', 1515, 'Floors', 'The number of floors in a building.'),
-(1, 't', 1516, 'Nurses', 'The number of nurses.'),
-(1, 't', 1517, 'Office workers', 'The number of workers in an office.'),
-(1, 't', 1518, 'Other employees', 'The number of employees otherwise categorised.'),
-(1, 't', 1519, 'Part time employees', 'The number of employees working on a part time basis.'),
-(1, 't', 1520, 'Accounts payable average overdue days', 'The average number of days accounts payable are overdue.'),
-(1, 't', 1521, 'Pilots', 'The number of pilots.'),
-(1, 't', 1522, 'Plant workers', 'The number of workers within a plant.'),
-(1, 't', 1523, 'Previous number of accounts', 'The number of accounts which preceded the current count.'),
-(1, 't', 1524, 'Previous number of branch locations', 'The number of branch locations which preceded the current count.'),
-(1, 't', 1525, 'Principals included as employees', 'The number of principals which are included in the count of employees.'),
-(1, 't', 1526, 'Protested bills', 'The number of bills which are protested.'),
-(1, 't', 1527, 'Registered brands distributed', 'The number of registered brands which are being distributed.'),
-(1, 't', 1528, 'Registered brands manufactured', 'The number of registered brands which are being manufactured.'),
-(1, 't', 1529, 'Related business entities', 'The number of related business entities.'),
-(1, 't', 1530, 'Relatives employed', 'The number of relatives which are counted as employees.'),
-(1, 't', 1531, 'Rooms',        'The number of rooms.'),
-(1, 't', 1532, 'Salespersons', 'The number of salespersons.'),
-(1, 't', 1533, 'Seats',        'The number of seats.'),
-(1, 't', 1534, 'Shareholders', 'The number of shareholders.'),
-(1, 't', 1535, 'Shares of common stock', 'The number of shares of common stock.'),
-(1, 't', 1536, 'Shares of preferred stock', 'The number of shares of preferred stock.'),
-(1, 't', 1537, 'Silent partners', 'The number of silent partners.'),
-(1, 't', 1538, 'Subcontractors',  'The number of subcontractors.'),
-(1, 't', 1539, 'Subsidiaries',    'The number of subsidiaries.'),
-(1, 't', 1540, 'Law suits',       'The number of law suits.'),
-(1, 't', 1541, 'Suppliers',       'The number of suppliers.'),
-(1, 't', 1542, 'Teachers',        'The number of teachers.'),
-(1, 't', 1543, 'Technicians',     'The number of technicians.'),
-(1, 't', 1544, 'Trainees',        'The number of trainees.'),
-(1, 't', 1545, 'Union employees', 'The number of employees who are members of a labour union.'),
-(1, 't', 1546, 'Number of units', 'The quantity of units.'),
-(1, 't', 1547, 'Warehouse employees', 'The number of employees who work in a warehouse setting.'),
-(1, 't', 1548, 'Shareholders holding remainder of shares', 'Number of shareholders owning the remainder of shares.'),
-(1, 't', 1549, 'Payment orders filed', 'Number of payment orders filed.'),
-(1, 't', 1550, 'Uncovered cheques', 'Number of uncovered cheques.'),
-(1, 't', 1551, 'Auctions', 'Number of auctions.'),
-(1, 't', 1552, 'Units produced', 'The number of units produced.'),
-(1, 't', 1553, 'Added employees', 'Number of employees that were added to the workforce.'),
-(1, 't', 1554, 'Number of added locations', 'Number of locations that were added.'),
-(1, 't', 1555, 'Total number of foreign subsidiaries not included in', 'financial statement The total number of foreign subsidiaries not included in the financial statement.'),
-(1, 't', 1556, 'Number of closed locations', 'Number of locations that were closed.'),
-(1, 't', 1557, 'Counter clerks', 'The number of clerks that work behind a flat-topped fitment.'),
-(1, 't', 1558, 'Payment experiences in the last 3 months', 'The number of payment experiences received for an entity over the last 3 months.'),
-(1, 't', 1559, 'Payment experiences in the last 12 months', 'The number of payment experiences received for an entity over the last 12 months.'),
-(1, 't', 1560, 'Total number of subsidiaries not included in the financial', 'statement The total number of subsidiaries not included in the financial statement.'),
-(1, 't', 1561, 'Paid-in common shares', 'The number of paid-in common shares.'),
-(1, 't', 1562, 'Total number of domestic subsidiaries not included in', 'financial statement The total number of domestic subsidiaries not included in the financial statement.'),
-(1, 't', 1563, 'Total number of foreign subsidiaries included in financial statement', 'The total number of foreign subsidiaries included in the financial statement.'),
-(1, 't', 1564, 'Total number of domestic subsidiaries included in financial statement', 'The total number of domestic subsidiaries included in the financial statement.'),
-(1, 't', 1565, 'Total transactions', 'The total number of transactions.'),
-(1, 't', 1566, 'Paid-in preferred shares', 'The number of paid-in preferred shares.'),
-(1, 't', 1567, 'Employees', 'Code specifying the quantity of persons working for a company, whose services are used for pay.'),
-(1, 't', 1568, 'Active ingredient dose per unit, dispensed', 'The dosage of active ingredient per dispensed unit.'),
-(1, 't', 1569, 'Budget', 'Budget quantity.'),
-(1, 't', 1570, 'Budget, cumulative to date', 'Budget quantity, cumulative to date.'),
-(1, 't', 1571, 'Actual units', 'The number of actual units.'),
-(1, 't', 1572, 'Actual units, cumulative to date', 'The number of cumulative to date actual units.'),
-(1, 't', 1573, 'Earned value', 'Earned value quantity.'),
-(1, 't', 1574, 'Earned value, cumulative to date', 'Earned value quantity accumulated to date.'),
-(1, 't', 1575, 'At completion quantity, estimated', 'The estimated quantity when a project is complete.'),
-(1, 't', 1576, 'To complete quantity, estimated', 'The estimated quantity required to complete a project.'),
-(1, 't', 1577, 'Adjusted units', 'The number of adjusted units.'),
-(1, 't', 1578, 'Number of limited partnership shares', 'Number of shares held in a limited partnership.'),
-(1, 't', 1579, 'National business failure incidences', 'Number of firms in a country that discontinued with a loss to creditors.'),
-(1, 't', 1580, 'Industry business failure incidences', 'Number of firms in a specific industry that discontinued with a loss to creditors.'),
-(1, 't', 1581, 'Business class failure incidences', 'Number of firms in a specific class that discontinued with a loss to creditors.'),
-(1, 't', 1582, 'Mechanics', 'Number of mechanics.'),
-(1, 't', 1583, 'Messengers', 'Number of messengers.'),
-(1, 't', 1584, 'Primary managers', 'Number of primary managers.'),
-(1, 't', 1585, 'Secretaries', 'Number of secretaries.'),
-(1, 't', 1586, 'Detrimental legal filings', 'Number of detrimental legal filings.'),
-(1, 't', 1587, 'Branch office locations, estimated', 'Estimated number of branch office locations.'),
-(1, 't', 1588, 'Previous number of employees', 'The number of employees for a previous period.'),
-(1, 't', 1589, 'Asset seizers', 'Number of entities that seize assets of another entity.'),
-(1, 't', 1590, 'Out-turned quantity', 'The quantity discharged.'),
-(1, 't', 1591, 'Material on-board quantity, prior to loading', 'The material in vessel tanks, void spaces, and pipelines prior to loading.'),
-(1, 't', 1592, 'Supplier estimated previous meter reading', 'Previous meter reading estimated by the supplier.'),
-(1, 't', 1593, 'Supplier estimated latest meter reading',   'Latest meter reading estimated by the supplier.'),
-(1, 't', 1594, 'Customer estimated previous meter reading', 'Previous meter reading estimated by the customer.'),
-(1, 't', 1595, 'Customer estimated latest meter reading',   'Latest meter reading estimated by the customer.'),
-(1, 't', 1596, 'Supplier previous meter reading',           'Previous meter reading done by the supplier.'),
-(1, 't', 1597, 'Supplier latest meter reading',             'Latest meter reading recorded by the supplier.'),
-(1, 't', 1598, 'Maximum number of purchase orders allowed', 'Maximum number of purchase orders that are allowed.'),
-(1, 't', 1599, 'File size before compression', 'The size of a file before compression.'),
-(1, 't', 1600, 'File size after compression', 'The size of a file after compression.'),
-(1, 't', 1601, 'Securities shares', 'Number of shares of securities.'),
-(1, 't', 1602, 'Patients',         'Number of patients.'),
-(1, 't', 1603, 'Completed projects', 'Number of completed projects.'),
-(1, 't', 1604, 'Promoters',        'Number of entities who finance or organize an event or a production.'),
-(1, 't', 1605, 'Administrators',   'Number of administrators.'),
-(1, 't', 1606, 'Supervisors',      'Number of supervisors.'),
-(1, 't', 1607, 'Professionals',    'Number of professionals.'),
-(1, 't', 1608, 'Debt collectors',  'Number of debt collectors.'),
-(1, 't', 1609, 'Inspectors',       'Number of individuals who perform inspections.'),
-(1, 't', 1610, 'Operators',        'Number of operators.'),
-(1, 't', 1611, 'Trainers',         'Number of trainers.'),
-(1, 't', 1612, 'Active accounts',  'Number of accounts in a current or active status.'),
-(1, 't', 1613, 'Trademarks used',  'Number of trademarks used.'),
-(1, 't', 1614, 'Machines',         'Number of machines.'),
-(1, 't', 1615, 'Fuel pumps',       'Number of fuel pumps.'),
-(1, 't', 1616, 'Tables available', 'Number of tables available for use.'),
-(1, 't', 1617, 'Directors',        'Number of directors.'),
-(1, 't', 1618, 'Freelance debt collectors', 'Number of debt collectors who work on a freelance basis.'),
-(1, 't', 1619, 'Freelance salespersons',    'Number of salespersons who work on a freelance basis.'),
-(1, 't', 1620, 'Travelling employees',      'Number of travelling employees.'),
-(1, 't', 1621, 'Foremen', 'Number of workers with limited supervisory responsibilities.'),
-(1, 't', 1622, 'Production workers', 'Number of employees engaged in production.'),
-(1, 't', 1623, 'Employees not including owners', 'Number of employees excluding business owners.'),
-(1, 't', 1624, 'Beds', 'Number of beds.'),
-(1, 't', 1625, 'Resting quantity', 'A quantity of product that is at rest before it can be used.'),
-(1, 't', 1626, 'Production requirements', 'Quantity needed to meet production requirements.'),
-(1, 't', 1627, 'Corrected quantity', 'The quantity has been corrected.'),
-(1, 't', 1628, 'Operating divisions', 'Number of divisions operating.'),
-(1, 't', 1629, 'Quantitative incentive scheme base', 'Quantity constituting the base for the quantitative incentive scheme.'),
-(1, 't', 1630, 'Petitions filed', 'Number of petitions that have been filed.'),
-(1, 't', 1631, 'Bankruptcy petitions filed', 'Number of bankruptcy petitions that have been filed.'),
-(1, 't', 1632, 'Projects in process', 'Number of projects in process.'),
-(1, 't', 1633, 'Changes in capital structure', 'Number of modifications made to the capital structure of an entity.'),
-(1, 't', 1634, 'Detrimental legal filings against directors', 'The number of legal filings that are of a detrimental nature that have been filed against the directors.'),
-(1, 't', 1635, 'Number of failed businesses of directors', 'The number of failed businesses with which the directors have been associated.'),
-(1, 't', 1636, 'Professor', 'The number of professors.'),
-(1, 't', 1637, 'Seller',    'The number of sellers.'),
-(1, 't', 1638, 'Skilled worker', 'The number of skilled workers.'),
-(1, 't', 1639, 'Trademark represented', 'The number of trademarks represented.'),
-(1, 't', 1640, 'Number of quantitative incentive scheme units', 'Number of units allocated to a quantitative incentive scheme.'),
-(1, 't', 1641, 'Quantity in manufacturing process', 'Quantity currently in the manufacturing process.'),
-(1, 't', 1642, 'Number of units in the width of a layer', 'Number of units which make up the width of a layer.'),
-(1, 't', 1643, 'Number of units in the depth of a layer', 'Number of units which make up the depth of a layer.'),
-(1, 't', 1644, 'Return to warehouse', 'A quantity of products sent back to the warehouse.'),
-(1, 't', 1645, 'Return to the manufacturer', 'A quantity of products sent back from the manufacturer.'),
-(1, 't', 1646, 'Delta quantity', 'An increment or decrement to a quantity.'),
-(1, 't', 1647, 'Quantity moved between outlets', 'A quantity of products moved between outlets.'),
-(1, 't', 1648, 'Pre-paid invoice annual consumption, estimated', 'The estimated annual consumption used for a prepayment invoice.'),
-(1, 't', 1649, 'Total quoted quantity', 'The sum of quoted quantities.'),
-(1, 't', 1650, 'Requests pertaining to entity in last 12 months', 'Number of requests received in last 12 months pertaining to the entity.'),
-(1, 't', 1651, 'Total inquiry matches', 'Number of instances which correspond with the inquiry.'),
-(1, 't', 1652, 'En route to warehouse quantity',   'A quantity of products that is en route to a warehouse.'),
-(1, 't', 1653, 'En route from warehouse quantity', 'A quantity of products that is en route from a warehouse.'),
-(1, 't', 1654, 'Quantity ordered but not yet allocated from stock', 'A quantity of products which has been ordered but which has not yet been allocated from stock.'),
-(1, 't', 1655, 'Not yet ordered quantity', 'The quantity which has not yet been ordered.'),
-(1, 't', 1656, 'Net reserve power', 'The reserve power available for the net.'),
-(1, 't', 1657, 'Maximum number of units per shelf', 'Maximum number of units of a product that can be placed on a shelf.'),
-(1, 't', 1658, 'Stowaway', 'Number of stowaway(s) on a conveyance.'),
-(1, 't', 1659, 'Tug', 'The number of tugboat(s).'),
-(1, 't', 1660, 'Maximum quantity capability of the package', 'Maximum quantity of a product that can be contained in a package.'),
-(1, 't', 1661, 'Calculated', 'The calculated quantity.'),
-(1, 't', 1662, 'Monthly volume, estimated', 'Volume estimated for a month.'),
-(1, 't', 1663, 'Total number of persons', 'Quantity representing the total number of persons.'),
-(1, 't', 1664, 'Tariff Quantity', 'Quantity of the goods in the unit as required by Customs for duty/tax/fee assessment. These quantities may also be used for other fiscal or statistical purposes.'),
-(1, 't', 1665, 'Deducted tariff quantity',   'Quantity deducted from tariff quantity to reckon duty/tax/fee assessment bases.'),
-(1, 't', 1666, 'Advised but not arrived',    'Goods are advised by the consignor or supplier, but have not yet arrived at the destination.'),
-(1, 't', 1667, 'Received but not available', 'Goods have been received in the arrival area but are not yet available.'),
-(1, 't', 1668, 'Goods blocked for transshipment process', 'Goods are physically present, but can not be ordered because they are scheduled for a transshipment process.'),
-(1, 't', 1669, 'Goods blocked for cross docking process', 'Goods are physically present, but can not be ordered because they are scheduled for a cross docking process.'),
-(1, 't', 1670, 'Chargeable number of trailers', 'The number of trailers on which charges are based.'),
-(1, 't', 1671, 'Number of packages for a set', 'Number of packages used to pack the individual items in a grouping of merchandise that is sold together as a single trade item.'),
-(1, 't', 1672, 'Number of items in a set', 'The number of individual items in a grouping of merchandise that is sold together as a single trade item.'),
-(1, 't', 1673, 'Order sizing factor', 'A trade item specification other than gross, net weight, or volume for a trade item or a transaction, used for order sizing and pricing purposes.'),
-(1, 't', 1674, 'Number of different next lower level trade items', 'Value indicates the number of differrent next lower level trade items contained in a complex trade item.'),
-(1, 't', 1675, 'Agreed maximum buying quantity', 'The agreed maximum quantity of the trade item that may be purchased.'),
-(1, 't', 1676, 'Agreed minimum buying quantity', 'The agreed minimum quantity of the trade item that may be purchased.'),
-(1, 't', 1677, 'Free quantity of next lower level trade item', 'The numeric quantity of free items in a combination pack. The unit of measure used for the free quantity of the next lower level must be the same as the unit of measure of the Net Content of the Child Trade Item.'),
-(1, 't', 1678, 'Marine Diesel Oil bunkers on board, on arrival',     'Number of Marine Diesel Oil (MDO) bunkers on board when the vessel arrives in the port.'),
-(1, 't', 1679, 'Marine Diesel Oil bunkers, loaded',                  'Number of Marine Diesel Oil (MDO) bunkers taken on in the port.'),
-(1, 't', 1680, 'Intermediate Fuel Oil bunkers on board, on arrival', 'Number of Intermediate Fuel Oil (IFO) bunkers on board when the vessel arrives in the port.'),
-(1, 't', 1681, 'Intermediate Fuel Oil bunkers, loaded',              'Number of Intermediate Fuel Oil (IFO) bunkers taken on in the port.'),
-(1, 't', 1682, 'Bunker C bunkers on board, on arrival',              'Number of Bunker C, or Number 6 fuel oil bunkers on board when the vessel arrives in the port.'),
-(1, 't', 1683, 'Bunker C bunkers, loaded', 'Number of Bunker C, or Number 6 fuel oil bunkers, taken on in the port.'),
-(1, 't', 1684, 'Number of individual units within the smallest packaging', 'unit Total number of individual units contained within the smallest unit of packaging.'),
-(1, 't', 1685, 'Percentage of constituent element', 'The part of a product or material that is composed of the constituent element, as a percentage.'),
-(1, 't', 1686, 'Quantity to be decremented (LPCO)', 'Quantity to be decremented from the allowable quantity on a License, Permit, Certificate, or Other document (LPCO).'),
-(1, 't', 1687, 'Regulated commodity count', 'The number of regulated items.'),
-(1, 't', 1688, 'Number of passengers, embarking', 'The number of passengers going aboard a conveyance.'),
-(1, 't', 1689, 'Number of passengers, disembarking', 'The number of passengers disembarking the conveyance.'),
-(1, 't', 1690, 'Constituent element or component quantity', 'The specific quantity of the identified constituent element.')
-;
--- ZZZ, 'Mutually defined', 'As agreed by the trading partners.'),
+(1, 't', 1283, 'Backorder quantity', 'The quantity of goods that is on back-order.');
 
 INSERT INTO config.global_flag (name, label, enabled)
     VALUES (
@@ -9111,6 +8847,20 @@ INSERT INTO config.global_flag (name, label, enabled)
         FALSE
     );
 
+INSERT INTO config.global_flag (name, label, value, enabled)
+    VALUES (
+        'opac.use_autosuggest',
+        oils_i18n_gettext(
+            'opac.use_autosuggest',
+            'OPAC: Show auto-completing suggestions dialog under basic search box (put ''opac_visible'' into the value field to limit suggestions to OPAC-visible items, or blank the field for a possible performance improvement)',
+            'cgf',
+            'label'
+        ),
+        'opac_visible',
+        TRUE
+    );
+
+
 INSERT INTO config.usr_setting_type (name,opac_visible,label,description,datatype)
     VALUES (
         'history.circ.retention_age',
@@ -9583,6 +9333,8 @@ INSERT INTO vandelay.import_error ( code, description ) VALUES (
     'import.item.invalid.copy_number', oils_i18n_gettext('import.item.invalid.copy_number', 'Invalid value for "copy_number"', 'vie', 'description') );
 INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
     'import.item.invalid.circ_as_type', oils_i18n_gettext('import.item.invalid.circ_as_type', 'Invalid value for "circ_as_type"', 'vie', 'description') );
+INSERT INTO vandelay.import_error ( code, description ) VALUES ( 
+    'import.record.perm_failure', oils_i18n_gettext('import.record.perm_failure', 'Perm failure creating a record', 'vie', 'description') );
 
 -- Event def for email notice for hold cancelled due to lack of target -----
 
@@ -9615,6 +9367,9 @@ INSERT INTO action_trigger.environment (event_def, path) VALUES
     (38, 'pickup_lib'),
     (38, 'bib_rec.bib_record.simple_record');
 
+INSERT INTO action_trigger.event_params (event_def, param, value)
+    VALUES (38, 'check_email_notify', 1);
+
 ----------------------------------------------------------------
 -- Seed data for queued record/item exports
 ----------------------------------------------------------------
 # the environment because a special reactor will take care of filling it in.
 
 FOR item IN items;
-    bibxml = helpers.xml_doc(item.target_biblio_record_entry.marc);
+    bibxml = helpers.unapi_bre(item.target_biblio_record_entry, {flesh => '{mra}'});
     title = "";
     FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
         title = title _ part.textContent;
     END;
     author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
+    item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value');
 
-    helpers.csv_datum(title) %],[% helpers.csv_datum(author) %],[% FOR note IN item.notes; helpers.csv_datum(note.note); ","; END; "\n";
+    helpers.csv_datum(title) %],[% helpers.csv_datum(author) %],[% helpers.csv_datum(item_type) %],[% FOR note IN item.notes; helpers.csv_datum(note.note); ","; END; "\n";
 END -%]
 $$
 );
@@ -10387,7 +10143,7 @@ INSERT INTO authority.thesaurus (code, name, control_set) VALUES
     ('s', oils_i18n_gettext('s','Sears List of Subject Headings','at','name'), 1),
     ('v', oils_i18n_gettext('v','Repertoire de vedettes-matiere','at','name'), 1),
     ('z', oils_i18n_gettext('z','Other','at','name'), 1),
-    ('|', oils_i18n_gettext('|','No attempt to code','at','name'), 1);
+    ('|', oils_i18n_gettext('|','No attempt to code','at','name'), NULL);
 
 INSERT INTO action_trigger.hook ( key, core_type, description, passive ) VALUES (
     'reservation.available',
@@ -10406,4 +10162,1677 @@ INSERT INTO container.biblio_record_entry_bucket_type (code, label) VALUES (
     oils_i18n_gettext('vandelay_queue', 'Vandelay Queue', 'cbrebt', 'label')
 );
 
+INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype,fm_class) VALUES (
+    'opac.default_sms_carrier',
+    'sms',
+    TRUE,
+    oils_i18n_gettext(
+        'opac.default_sms_carrier',
+        'Default SMS/Text Carrier',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'opac.default_sms_carrier',
+        'Default SMS/Text Carrier',
+        'cust',
+        'description'
+    ),
+    'link',
+    'csc'
+);
+
+INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
+    'opac.default_sms_notify',
+    'sms',
+    TRUE,
+    oils_i18n_gettext(
+        'opac.default_sms_notify',
+        'Default SMS/Text Number',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'opac.default_sms_notify',
+        'Default SMS/Text Number',
+        'cust',
+        'description'
+    ),
+    'string'
+);
+
+INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
+    'opac.default_phone',
+    'opac',
+    TRUE,
+    oils_i18n_gettext(
+        'opac.default_phone',
+        'Default Phone Number',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'opac.default_phone',
+        'Default Phone Number',
+        'cust',
+        'description'
+    ),
+    'string'
+);
+
+INSERT INTO config.usr_setting_type (name,grp,opac_visible,label,description,datatype) VALUES (
+    'ui.grid_columns.circ.hold_pull_list',
+    'gui',
+    FALSE,
+    oils_i18n_gettext(
+        'ui.grid_columns.circ.hold_pull_list',
+        'Hold Pull List',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.grid_columns.circ.hold_pull_list',
+        'Hold Pull List Saved Column Settings',
+        'cust',
+        'description'
+    ),
+    'string'
+), (
+    'ui.grid_columns.actor.user.event_log',
+    'gui',
+    FALSE,
+    oils_i18n_gettext(
+        'ui.grid_columns.actor.user.event_log',
+        'User Event Log',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'ui.grid_columns.actor.user.event_log',
+        'User Event Log Saved Column Settings',
+        'cust',
+        'description'
+    ),
+    'string'
+) ;
+
+SELECT setval( 'config.sms_carrier_id_seq', 1000 );
+INSERT INTO config.sms_carrier VALUES
+
+    -- Testing
+    (
+        1,
+        oils_i18n_gettext(
+            1,
+            'Local',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            1,
+            'Test Carrier',
+            'csc',
+            'name'
+        ),
+        'opensrf+$number@localhost',
+        FALSE
+    ),
+
+    -- Canada & USA
+    (
+        2,
+        oils_i18n_gettext(
+            2,
+            'Canada & USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            2,
+            'Rogers Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@pcs.rogers.com',
+        TRUE
+    ),
+    (
+        3,
+        oils_i18n_gettext(
+            3,
+            'Canada & USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            3,
+            'Rogers Wireless (Alternate)',
+            'csc',
+            'name'
+        ),
+        '1$number@mms.rogers.com',
+        TRUE
+    ),
+    (
+        4,
+        oils_i18n_gettext(
+            4,
+            'Canada & USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            4,
+            'Telus Mobility',
+            'csc',
+            'name'
+        ),
+        '$number@msg.telus.com',
+        TRUE
+    ),
+
+    -- Canada
+    (
+        5,
+        oils_i18n_gettext(
+            5,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            5,
+            'Koodo Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@msg.telus.com',
+        TRUE
+    ),
+    (
+        6,
+        oils_i18n_gettext(
+            6,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            6,
+            'Fido',
+            'csc',
+            'name'
+        ),
+        '$number@fido.ca',
+        TRUE
+    ),
+    (
+        7,
+        oils_i18n_gettext(
+            7,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            7,
+            'Bell Mobility & Solo Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@txt.bell.ca',
+        TRUE
+    ),
+    (
+        8,
+        oils_i18n_gettext(
+            8,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            8,
+            'Bell Mobility & Solo Mobile (Alternate)',
+            'csc',
+            'name'
+        ),
+        '$number@txt.bellmobility.ca',
+        TRUE
+    ),
+    (
+        9,
+        oils_i18n_gettext(
+            9,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            9,
+            'Aliant',
+            'csc',
+            'name'
+        ),
+        '$number@sms.wirefree.informe.ca',
+        TRUE
+    ),
+    (
+        10,
+        oils_i18n_gettext(
+            10,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            10,
+            'PC Telecom',
+            'csc',
+            'name'
+        ),
+        '$number@mobiletxt.ca',
+        TRUE
+    ),
+    (
+        11,
+        oils_i18n_gettext(
+            11,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            11,
+            'SaskTel',
+            'csc',
+            'name'
+        ),
+        '$number@sms.sasktel.com',
+        TRUE
+    ),
+    (
+        12,
+        oils_i18n_gettext(
+            12,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            12,
+            'MTS Mobility',
+            'csc',
+            'name'
+        ),
+        '$number@text.mtsmobility.com',
+        TRUE
+    ),
+    (
+        13,
+        oils_i18n_gettext(
+            13,
+            'Canada',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            13,
+            'Virgin Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@vmobile.ca',
+        TRUE
+    ),
+
+    -- International
+    (
+        14,
+        oils_i18n_gettext(
+            14,
+            'International',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            14,
+            'Iridium',
+            'csc',
+            'name'
+        ),
+        '$number@msg.iridium.com',
+        TRUE
+    ),
+    (
+        15,
+        oils_i18n_gettext(
+            15,
+            'International',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            15,
+            'Globalstar',
+            'csc',
+            'name'
+        ),
+        '$number@msg.globalstarusa.com',
+        TRUE
+    ),
+    (
+        16,
+        oils_i18n_gettext(
+            16,
+            'International',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            16,
+            'Bulletin.net',
+            'csc',
+            'name'
+        ),
+        '$number@bulletinmessenger.net', -- International Formatted number
+        TRUE
+    ),
+    (
+        17,
+        oils_i18n_gettext(
+            17,
+            'International',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            17,
+            'Panacea Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@api.panaceamobile.com',
+        TRUE
+    ),
+
+    -- USA
+    (
+        18,
+        oils_i18n_gettext(
+            18,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            18,
+            'C Beyond',
+            'csc',
+            'name'
+        ),
+        '$number@cbeyond.sprintpcs.com',
+        TRUE
+    ),
+    (
+        19,
+        oils_i18n_gettext(
+            19,
+            'Alaska, USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            19,
+            'General Communications, Inc.',
+            'csc',
+            'name'
+        ),
+        '$number@mobile.gci.net',
+        TRUE
+    ),
+    (
+        20,
+        oils_i18n_gettext(
+            20,
+            'California, USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            20,
+            'Golden State Cellular',
+            'csc',
+            'name'
+        ),
+        '$number@gscsms.com',
+        TRUE
+    ),
+    (
+        21,
+        oils_i18n_gettext(
+            21,
+            'Cincinnati, Ohio, USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            21,
+            'Cincinnati Bell',
+            'csc',
+            'name'
+        ),
+        '$number@gocbw.com',
+        TRUE
+    ),
+    (
+        22,
+        oils_i18n_gettext(
+            22,
+            'Hawaii, USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            22,
+            'Hawaiian Telcom Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@hawaii.sprintpcs.com',
+        TRUE
+    ),
+    (
+        23,
+        oils_i18n_gettext(
+            23,
+            'Midwest, USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            23,
+            'i wireless (T-Mobile)',
+            'csc',
+            'name'
+        ),
+        '$number.iws@iwspcs.net',
+        TRUE
+    ),
+    (
+        24,
+        oils_i18n_gettext(
+            24,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            24,
+            'i-wireless (Sprint PCS)',
+            'csc',
+            'name'
+        ),
+        '$number@iwirelesshometext.com',
+        TRUE
+    ),
+    (
+        25,
+        oils_i18n_gettext(
+            25,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            25,
+            'MetroPCS',
+            'csc',
+            'name'
+        ),
+        '$number@mymetropcs.com',
+        TRUE
+    ),
+    (
+        26,
+        oils_i18n_gettext(
+            26,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            26,
+            'Kajeet',
+            'csc',
+            'name'
+        ),
+        '$number@mobile.kajeet.net',
+        TRUE
+    ),
+    (
+        27,
+        oils_i18n_gettext(
+            27,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            27,
+            'Element Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@SMS.elementmobile.net',
+        TRUE
+    ),
+    (
+        28,
+        oils_i18n_gettext(
+            28,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            28,
+            'Esendex',
+            'csc',
+            'name'
+        ),
+        '$number@echoemail.net',
+        TRUE
+    ),
+    (
+        29,
+        oils_i18n_gettext(
+            29,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            29,
+            'Boost Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@myboostmobile.com',
+        TRUE
+    ),
+    (
+        30,
+        oils_i18n_gettext(
+            30,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            30,
+            'BellSouth',
+            'csc',
+            'name'
+        ),
+        '$number@bellsouth.com',
+        TRUE
+    ),
+    (
+        31,
+        oils_i18n_gettext(
+            31,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            31,
+            'Bluegrass Cellular',
+            'csc',
+            'name'
+        ),
+        '$number@sms.bluecell.com',
+        TRUE
+    ),
+    (
+        32,
+        oils_i18n_gettext(
+            32,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            32,
+            'AT&T Enterprise Paging',
+            'csc',
+            'name'
+        ),
+        '$number@page.att.net',
+        TRUE
+    ),
+    (
+        33,
+        oils_i18n_gettext(
+            33,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            33,
+            'AT&T Mobility/Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@txt.att.net',
+        TRUE
+    ),
+    (
+        34,
+        oils_i18n_gettext(
+            34,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            34,
+            'AT&T Global Smart Messaging Suite',
+            'csc',
+            'name'
+        ),
+        '$number@sms.smartmessagingsuite.com',
+        TRUE
+    ),
+    (
+        35,
+        oils_i18n_gettext(
+            35,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            35,
+            'Alltel (Allied Wireless)',
+            'csc',
+            'name'
+        ),
+        '$number@sms.alltelwireless.com',
+        TRUE
+    ),
+    (
+        36,
+        oils_i18n_gettext(
+            36,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            36,
+            'Alaska Communications',
+            'csc',
+            'name'
+        ),
+        '$number@msg.acsalaska.com',
+        TRUE
+    ),
+    (
+        37,
+        oils_i18n_gettext(
+            37,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            37,
+            'Ameritech',
+            'csc',
+            'name'
+        ),
+        '$number@paging.acswireless.com',
+        TRUE
+    ),
+    (
+        38,
+        oils_i18n_gettext(
+            38,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            38,
+            'Cingular (GoPhone prepaid)',
+            'csc',
+            'name'
+        ),
+        '$number@cingulartext.com',
+        TRUE
+    ),
+    (
+        39,
+        oils_i18n_gettext(
+            39,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            39,
+            'Cingular (Postpaid)',
+            'csc',
+            'name'
+        ),
+        '$number@cingular.com',
+        TRUE
+    ),
+    (
+        40,
+        oils_i18n_gettext(
+            40,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            40,
+            'Cellular One (Dobson) / O2 / Orange',
+            'csc',
+            'name'
+        ),
+        '$number@mobile.celloneusa.com',
+        TRUE
+    ),
+    (
+        41,
+        oils_i18n_gettext(
+            41,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            41,
+            'Cellular South',
+            'csc',
+            'name'
+        ),
+        '$number@csouth1.com',
+        TRUE
+    ),
+    (
+        42,
+        oils_i18n_gettext(
+            42,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            42,
+            'Cellcom',
+            'csc',
+            'name'
+        ),
+        '$number@cellcom.quiktxt.com',
+        TRUE
+    ),
+    (
+        43,
+        oils_i18n_gettext(
+            43,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            43,
+            'Chariton Valley Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@sms.cvalley.net',
+        TRUE
+    ),
+    (
+        44,
+        oils_i18n_gettext(
+            44,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            44,
+            'Cricket',
+            'csc',
+            'name'
+        ),
+        '$number@sms.mycricket.com',
+        TRUE
+    ),
+    (
+        45,
+        oils_i18n_gettext(
+            45,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            45,
+            'Cleartalk Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@sms.cleartalk.us',
+        TRUE
+    ),
+    (
+        46,
+        oils_i18n_gettext(
+            46,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            46,
+            'Edge Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@sms.edgewireless.com',
+        TRUE
+    ),
+    (
+        47,
+        oils_i18n_gettext(
+            47,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            47,
+            'Syringa Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@rinasms.com',
+        TRUE
+    ),
+    (
+        48,
+        oils_i18n_gettext(
+            48,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            48,
+            'T-Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@tmomail.net',
+        TRUE
+    ),
+    (
+        49,
+        oils_i18n_gettext(
+            49,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            49,
+            'Straight Talk / PagePlus Cellular',
+            'csc',
+            'name'
+        ),
+        '$number@vtext.com',
+        TRUE
+    ),
+    (
+        50,
+        oils_i18n_gettext(
+            50,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            50,
+            'South Central Communications',
+            'csc',
+            'name'
+        ),
+        '$number@rinasms.com',
+        TRUE
+    ),
+    (
+        51,
+        oils_i18n_gettext(
+            51,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            51,
+            'Simple Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@smtext.com',
+        TRUE
+    ),
+    (
+        52,
+        oils_i18n_gettext(
+            52,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            52,
+            'Sprint (PCS)',
+            'csc',
+            'name'
+        ),
+        '$number@messaging.sprintpcs.com',
+        TRUE
+    ),
+    (
+        53,
+        oils_i18n_gettext(
+            53,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            53,
+            'Nextel',
+            'csc',
+            'name'
+        ),
+        '$number@messaging.nextel.com',
+        TRUE
+    ),
+    (
+        54,
+        oils_i18n_gettext(
+            54,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            54,
+            'Pioneer Cellular',
+            'csc',
+            'name'
+        ),
+        '$number@zsend.com', -- nine digit number
+        TRUE
+    ),
+    (
+        55,
+        oils_i18n_gettext(
+            55,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            55,
+            'Qwest Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@qwestmp.com',
+        TRUE
+    ),
+    (
+        56,
+        oils_i18n_gettext(
+            56,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            56,
+            'US Cellular',
+            'csc',
+            'name'
+        ),
+        '$number@email.uscc.net',
+        TRUE
+    ),
+    (
+        57,
+        oils_i18n_gettext(
+            57,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            57,
+            'Unicel',
+            'csc',
+            'name'
+        ),
+        '$number@utext.com',
+        TRUE
+    ),
+    (
+        58,
+        oils_i18n_gettext(
+            58,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            58,
+            'Teleflip',
+            'csc',
+            'name'
+        ),
+        '$number@teleflip.com',
+        TRUE
+    ),
+    (
+        59,
+        oils_i18n_gettext(
+            59,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            59,
+            'Virgin Mobile',
+            'csc',
+            'name'
+        ),
+        '$number@vmobl.com',
+        TRUE
+    ),
+    (
+        60,
+        oils_i18n_gettext(
+            60,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            60,
+            'Verizon Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@vtext.com',
+        TRUE
+    ),
+    (
+        61,
+        oils_i18n_gettext(
+            61,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            61,
+            'USA Mobility',
+            'csc',
+            'name'
+        ),
+        '$number@usamobility.net',
+        TRUE
+    ),
+    (
+        62,
+        oils_i18n_gettext(
+            62,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            62,
+            'Viaero',
+            'csc',
+            'name'
+        ),
+        '$number@viaerosms.com',
+        TRUE
+    ),
+    (
+        63,
+        oils_i18n_gettext(
+            63,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            63,
+            'TracFone',
+            'csc',
+            'name'
+        ),
+        '$number@mmst5.tracfone.com',
+        TRUE
+    ),
+    (
+        64,
+        oils_i18n_gettext(
+            64,
+            'USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            64,
+            'Centennial Wireless',
+            'csc',
+            'name'
+        ),
+        '$number@cwemail.com',
+        TRUE
+    ),
+
+    -- South Korea and USA
+    (
+        65,
+        oils_i18n_gettext(
+            65,
+            'South Korea and USA',
+            'csc',
+            'region'
+        ),
+        oils_i18n_gettext(
+            65,
+            'Helio',
+            'csc',
+            'name'
+        ),
+        '$number@myhelio.com',
+        TRUE
+    )
+;
+
+INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
+    SELECT
+        pgt.id, perm.id, aout.depth, TRUE
+    FROM
+        permission.grp_tree pgt,
+        permission.perm_list perm,
+        actor.org_unit_type aout
+    WHERE
+        pgt.name = 'Global Administrator' AND
+        aout.name = 'Consortium' AND
+        perm.code = 'ADMIN_SMS_CARRIER';
+
+INSERT INTO action_trigger.reactor (
+    module,
+    description
+) VALUES (
+    'SendSMS',
+    'Send an SMS text message based on a user-defined template'
+);
+
+INSERT INTO action_trigger.event_definition (
+    active,
+    owner,
+    name,
+    hook,
+    validator,
+    reactor,
+    cleanup_success,
+    delay,
+    delay_field,
+    group_field,
+    template
+) VALUES (
+    true,
+    1, -- admin
+    'Hold Ready for Pickup SMS Notification',
+    'hold.available',
+    'HoldIsAvailable',
+    'SendSMS',
+    'CreateHoldNotification',
+    '00:30:00',
+    'shelf_time',
+    'sms_notify',
+    '[%- USE date -%]
+[%- user = target.0.usr -%]
+From: [%- params.sender_email || default_sender %]
+To: [%- params.recipient_email || helpers.get_sms_gateway_email(target.0.sms_carrier,target.0.sms_notify) %]
+Subject: [% target.size %] hold(s) ready
+
+[% FOR hold IN target %][%-
+  bibxml = helpers.xml_doc( hold.current_copy.call_number.record.marc );
+  title = "";
+  FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a"]'');
+    title = title _ part.textContent;
+  END;
+  author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
+%][% hold.usr.first_given_name %]:[% title %] @ [% hold.pickup_lib.name %]
+[% END %]
+'
+);
+
+INSERT INTO action_trigger.environment (
+    event_def,
+    path
+) VALUES (
+    currval('action_trigger.event_definition_id_seq'),
+    'current_copy.call_number.record.simple_record'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'usr'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'pickup_lib.billing_address'
+);
+
+INSERT INTO action_trigger.event_params (event_def, param, value)
+    VALUES (currval('action_trigger.event_definition_id_seq'), 'check_sms_notify', 1);
+
+INSERT INTO action_trigger.hook(
+    key,
+    core_type,
+    description,
+    passive
+) VALUES (
+    'acn.format.sms_text',
+    'acn',
+    oils_i18n_gettext(
+        'acn.format.sms_text',
+        'A text message has been requested for a call number.',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.event_definition (
+    active,
+    owner,
+    name,
+    hook,
+    validator,
+    reactor,
+    template
+) VALUES (
+    true,
+    1, -- admin
+    'SMS Call Number',
+    'acn.format.sms_text',
+    'NOOP_True',
+    'SendSMS',
+    '[%- USE date -%]
+From: [%- params.sender_email || default_sender %]
+To: [%- params.recipient_email || helpers.get_sms_gateway_email(user_data.sms_carrier,user_data.sms_notify) %]
+Subject: Call Number
+
+[%-
+  bibxml = helpers.xml_doc( target.record.marc );
+  title = "";
+  FOR part IN bibxml.findnodes(''//*[@tag="245"]/*[@code="a" or @code="b"]'');
+    title = title _ part.textContent;
+  END;
+  author = bibxml.findnodes(''//*[@tag="100"]/*[@code="a"]'').textContent;
+%]
+Call Number: [% target.label %]
+Location: [% helpers.get_most_populous_location( target.id ).name %]
+Library: [% target.owning_lib.name %]
+[%- IF title %]
+Title: [% title %]
+[%- END %]
+[%- IF author %]
+Author: [% author %]
+[%- END %]
+'
+);
+
+INSERT INTO action_trigger.environment (
+    event_def,
+    path
+) VALUES (
+    currval('action_trigger.event_definition_id_seq'),
+    'record.simple_record'
+), (
+    currval('action_trigger.event_definition_id_seq'),
+    'owning_lib.billing_address'
+);
+
+INSERT INTO vandelay.merge_profile (owner, name, replace_spec) 
+    VALUES (1, 'Match-Only Merge', '901c');
+
+INSERT INTO vandelay.merge_profile (owner, name, preserve_spec) 
+    VALUES (1, 'Full Overlay', '901c');
+
+-- user activity seed data --
+
+INSERT INTO config.usr_activity_type (id, ewho, ewhat, ehow, egroup, label) VALUES
+
+     -- authen/authz actions
+     -- note: "opensrf" is the default ingress/ehow
+     (1,  NULL, 'login',  'opensrf',      'authen', oils_i18n_gettext(1 , 'Login via opensrf', 'cuat', 'label'))
+    ,(2,  NULL, 'login',  'srfsh',        'authen', oils_i18n_gettext(2 , 'Login via srfsh', 'cuat', 'label'))
+    ,(3,  NULL, 'login',  'gateway-v1',   'authen', oils_i18n_gettext(3 , 'Login via gateway-v1', 'cuat', 'label'))
+    ,(4,  NULL, 'login',  'translator-v1','authen', oils_i18n_gettext(4 , 'Login via translator-v1', 'cuat', 'label'))
+    ,(5,  NULL, 'login',  'xmlrpc',       'authen', oils_i18n_gettext(5 , 'Login via xmlrpc', 'cuat', 'label'))
+    ,(6,  NULL, 'login',  'remoteauth',   'authen', oils_i18n_gettext(6 , 'Login via remoteauth', 'cuat', 'label'))
+    ,(7,  NULL, 'login',  'sip2',         'authen', oils_i18n_gettext(7 , 'SIP2 Proxy Login', 'cuat', 'label'))
+    ,(8,  NULL, 'login',  'apache',       'authen', oils_i18n_gettext(8 , 'Login via Apache module', 'cuat', 'label'))
+
+    ,(9,  NULL, 'verify', 'opensrf',      'authz',  oils_i18n_gettext(9 , 'Verification via opensrf', 'cuat', 'label'))
+    ,(10, NULL, 'verify', 'srfsh',        'authz',  oils_i18n_gettext(10, 'Verification via srfsh', 'cuat', 'label'))
+    ,(11, NULL, 'verify', 'gateway-v1',   'authz',  oils_i18n_gettext(11, 'Verification via gateway-v1', 'cuat', 'label'))
+    ,(12, NULL, 'verify', 'translator-v1','authz',  oils_i18n_gettext(12, 'Verification via translator-v1', 'cuat', 'label'))
+    ,(13, NULL, 'verify', 'xmlrpc',       'authz',  oils_i18n_gettext(13, 'Verification via xmlrpc', 'cuat', 'label'))
+    ,(14, NULL, 'verify', 'remoteauth',   'authz',  oils_i18n_gettext(14, 'Verification via remoteauth', 'cuat', 'label'))
+    ,(15, NULL, 'verify', 'sip2',         'authz',  oils_i18n_gettext(15, 'SIP2 User Verification', 'cuat', 'label'))
+
+     -- authen/authz actions w/ known uses of "who"
+    ,(16, 'opac',        'login',  'gateway-v1',   'authen', oils_i18n_gettext(16, 'OPAC Login (jspac)', 'cuat', 'label'))
+    ,(17, 'opac',        'login',  'apache',       'authen', oils_i18n_gettext(17, 'OPAC Login (tpac)', 'cuat', 'label'))
+    ,(18, 'staffclient', 'login',  'gateway-v1',   'authen', oils_i18n_gettext(18, 'Staff Client Login', 'cuat', 'label'))
+    ,(19, 'selfcheck',   'login',  'translator-v1','authen', oils_i18n_gettext(19, 'Self-Check Proxy Login', 'cuat', 'label'))
+    ,(20, 'ums',         'login',  'xmlrpc',       'authen', oils_i18n_gettext(20, 'Unique Mgt Login', 'cuat', 'label'))
+    ,(21, 'authproxy',   'login',  'apache',       'authen', oils_i18n_gettext(21, 'Apache Auth Proxy Login', 'cuat', 'label'))
+    ,(22, 'libraryelf',  'login',  'xmlrpc',       'authz',  oils_i18n_gettext(22, 'LibraryElf Login', 'cuat', 'label'))
+
+    ,(23, 'selfcheck',   'verify', 'translator-v1','authz',  oils_i18n_gettext(23, 'Self-Check User Verification', 'cuat', 'label'))
+    ,(24, 'ezproxy',     'verify', 'remoteauth',   'authz',  oils_i18n_gettext(24, 'EZProxy Verification', 'cuat', 'label'))
+    -- ...
+    ;
+
+-- reserve the first 1000 slots
+SELECT SETVAL('config.usr_activity_type_id_seq'::TEXT, 1000);
+
+INSERT INTO config.org_unit_setting_type 
+    (name, label, description, grp, datatype) 
+    VALUES (
+        'circ.fines.charge_when_closed',
+         oils_i18n_gettext(
+            'circ.fines.charge_when_closed',
+            'Charge fines on overdue circulations when closed',
+            'coust', 
+            'label'
+        ),
+        oils_i18n_gettext(
+            'circ.fines.charge_when_closed',
+            'Normally, fines are not charged when a library is closed.  When set to True, fines will be charged during scheduled closings and normal weekly closed days.',
+            'coust', 
+            'description'
+        ),
+        'circ',
+        'bool'
+    );
+
+INSERT INTO config.org_unit_setting_type 
+    (name, label, description, grp, datatype) 
+    VALUES (
+        'circ.patron.usr_activity_retrieve.max',
+         oils_i18n_gettext(
+            'circ.patron.usr_activity_retrieve.max',
+            'Max user activity entries to retrieve (staff client)',
+            'coust', 
+            'label'
+        ),
+        oils_i18n_gettext(
+            'circ.patron.usr_activity_retrieve.max',
+            'Sets the maxinum number of recent user activity entries to retrieve for display in the staff client.  0 means show none, -1 means show all.  Default is 1.',
+            'coust', 
+            'description'
+        ),
+        'gui',
+        'integer'
+    );
+-- circ export csv export --
+
+INSERT INTO action_trigger.hook (key, core_type, description, passive)
+VALUES (
+    'circ.format.history.csv',
+    'circ',
+    oils_i18n_gettext(
+        'circ.format.history.csv',
+        'Produce CSV of circulation history',
+        'ath',
+        'description'
+    ),
+    FALSE
+);
+
+INSERT INTO action_trigger.event_definition (
+    active, owner, name, hook, reactor, validator, group_field, template) 
+VALUES (
+    TRUE, 1, 'Circ History CSV', 'circ.format.history.csv', 'ProcessTemplate', 'NOOP_True', 'usr',
+$$
+Title,Author,Call Number,Barcode,Format
+[%-
+FOR circ IN target;
+    bibxml = helpers.unapi_bre(circ.target_copy.call_number.record, {flesh => '{mra}'});
+    title = "";
+    FOR part IN bibxml.findnodes('//*[@tag="245"]/*[@code="a" or @code="b"]');
+        title = title _ part.textContent;
+    END;
+    author = bibxml.findnodes('//*[@tag="100"]/*[@code="a"]').textContent;
+    item_type = bibxml.findnodes('//*[local-name()="attributes"]/*[local-name()="field"][@name="item_type"]').getAttribute('coded-value') %]
+
+    [%- helpers.csv_datum(title) -%],
+    [%- helpers.csv_datum(author) -%],
+    [%- helpers.csv_datum(circ.target_copy.call_number.label) -%],
+    [%- helpers.csv_datum(circ.target_copy.barcode) -%],
+    [%- helpers.csv_datum(item_type) %]
+[%- END -%]
+$$
+);
+
+INSERT INTO action_trigger.environment (event_def, path)
+    VALUES (
+        currval('action_trigger.event_definition_id_seq'),
+        'target_copy.call_number'
+    );
+
+INSERT INTO actor.toolbar(org,label,layout) VALUES
+    ( 1, 'circ', '["circ_checkout","circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","patron_search","patron_register","toolbarspacer.3","hotkeys_toggle"]' ),
+    ( 1, 'cat', '["circ_checkin","toolbarseparator.1","search_opac","copy_status","toolbarseparator.2","create_marc","authority_manage","retrieve_last_record","toolbarspacer.3","hotkeys_toggle"]' );
+
+INSERT INTO config.global_flag (name, enabled, label) 
+    VALUES (
+        'opac.org_unit.non_inherited_visibility',
+        FALSE,
+        oils_i18n_gettext(
+            'opac.org_unit.non_inherited_visibility',
+            'Org Units Do Not Inherit Visibility',
+            'cgf',
+            'label'
+        )
+    );
+
+INSERT INTO config.org_unit_setting_type ( name, label, description, datatype, grp, update_perm )
+    VALUES (
+        'ui.hide_copy_editor_fields',
+        oils_i18n_gettext(
+            'ui.hide_copy_editor_fields',
+            'GUI: Hide these fields within the Item Attribute Editor',
+            'coust',
+            'label'
+        ),
+        oils_i18n_gettext(
+            'ui.hide_copy_editor_fields',
+            'This setting may be best maintained with the dedicated configuration'
+            || ' interface within the Item Attribute Editor.  However, here it'
+            || ' shows up as comma separated list of field identifiers to hide.',
+            'coust',
+            'description'
+        ),
+        'array',
+        'gui',
+        539
+    );
+
+INSERT into config.org_unit_setting_type 
+    (name, grp, label, description, datatype) 
+    VALUES ( 
+        'opac.patron.auto_overide_hold_events', 
+        'opac',
+        oils_i18n_gettext(
+            'opac.patron.auto_overide_hold_events',
+            'Auto-Override Permitted Hold Blocks (Patrons)',
+            'coust', 
+            'label'
+        ),
+        oils_i18n_gettext(
+            'opac.patron.auto_overide_hold_events',
+            'When a patron places a hold that fails and the patron has the correct permission ' || 
+            'to override the hold, automatically override the hold without presenting a message ' || 
+            'to the patron and requiring that the patron make a decision to override',
+            'coust', 
+            'description'
+        ),
+        'bool'
+    );
+
+INSERT into config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES (
+        'opac.patron.temporary_list_warn',
+        'opac',
+        oils_i18n_gettext(
+            'opac.patron.temporary_list_warn',
+            'Warn patrons when adding to a temporary book list',
+            'coust',
+            'label'
+        ),
+        oils_i18n_gettext(
+            'opac.patron.temporary_list_warn',
+            'Present a warning dialog to the patron when a patron adds a book to a temporary book bag.',
+            'coust',
+            'description'
+        ),
+        'bool'
+    );
+
+INSERT INTO config.usr_setting_type
+    (name,grp,opac_visible,label,description,datatype)
+VALUES (
+    'opac.temporary_list_no_warn',
+    'opac',
+    TRUE,
+    oils_i18n_gettext(
+        'opac.temporary_list_no_warn',
+        'Opt out of warning when adding a book to a temporary book list',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'opac.temporary_list_no_warn',
+        'Opt out of warning when adding a book to a temporary book list',
+        'cust',
+        'description'
+    ),
+    'bool'
+);
+
+INSERT INTO config.usr_setting_type
+    (name,grp,opac_visible,label,description,datatype)
+VALUES (
+    'opac.default_list',
+    'opac',
+    FALSE,
+    oils_i18n_gettext(
+        'opac.default_list',
+        'Default list to use when adding to a bookbag',
+        'cust',
+        'label'
+    ),
+    oils_i18n_gettext(
+        'opac.default_list',
+        'Default list to use when adding to a bookbag',
+        'cust',
+        'description'
+    ),
+    'integer'
+);
+
+INSERT INTO config.org_unit_setting_type (
+    name, grp, label, description, datatype
+) VALUES (
+    'circ.staff.max_visible_event_age',
+    'circ',
+    'Maximum visible age of User Trigger Events in Staff Interfaces',
+    'If this is unset, staff can view User Trigger Events regardless of age. When this is set to an interval, it represents the age of the oldest possible User Trigger Event that can be viewed.',
+    'interval'
+);
+
+-- kid's opac main search filter
+
+INSERT INTO actor.search_filter_group (owner, code, label) 
+    VALUES (1, 'kpac_main', 'Kid''s OPAC Search Filter');
+
+INSERT INTO actor.search_query (label, query_text) 
+    VALUES ('Children''s Materials', 'audience(a,b,c)');
+INSERT INTO actor.search_query (label, query_text) 
+    VALUES ('Young Adult Materials', 'audience(j,d)');
+INSERT INTO actor.search_query (label, query_text) 
+    VALUES ('General/Adult Materials',  'audience(e,f,g, )');
+
+INSERT INTO actor.search_filter_group_entry (grp, query, pos)
+    VALUES (
+        (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
+        (SELECT id FROM actor.search_query WHERE label = 'Children''s Materials'),
+        0
+    );
+INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
+    VALUES (
+        (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
+        (SELECT id FROM actor.search_query WHERE label = 'Young Adult Materials'),
+        1
+    );
+INSERT INTO actor.search_filter_group_entry (grp, query, pos) 
+    VALUES (
+        (SELECT id FROM actor.search_filter_group WHERE code = 'kpac_main'),
+        (SELECT id FROM actor.search_query WHERE label = 'General/Adult Materials'),
+        2
+    );
+INSERT into config.org_unit_setting_type
+    (name, grp, label, description, datatype)
+    VALUES (
+        'acq.fund.allow_rollover_without_money',
+        'acq',
+        oils_i18n_gettext(
+            'acq.fund.allow_rollover_without_money',
+            'Allow funds to be rolled over without bringing the money along',
+            'coust',
+            'label'
+        ),
+        oils_i18n_gettext(
+            'acq.fund.allow_rollover_without_money',
+            'Allow funds to be rolled over without bringing the money along.  This makes money left in the old fund disappear, modeling its return to some outside entity.',
+            'coust',
+            'description'
+        ),
+        'bool'
+    );