From 0a1df03a5deb973a58b285790766467fa81de492 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Thu, 17 Dec 2015 08:34:53 +0000
Subject: [PATCH] SSDM-2903 : V3 AS API - fix inconsistencies between Java and
 JS DTOs found by automated test

SVN: 35355
---
 .../html/test/test-jsVSjava.js                |  2 +-
 .../db/openbis_test_js_common.sql             |  2 +-
 .../openbis/jstest/report/V3APIReport.java    | 12 +++++++++--
 .../api/v3/helper/generators/Generator.java   |  3 ++-
 .../common/fetchoptions/EmptyFetchOptions.js  |  6 ++++++
 .../v3/dto/common/fetchoptions/SortOptions.js |  3 +++
 .../search/AbstractCompositeSearchCriteria.js |  3 +++
 .../common/search/AbstractSearchCriteria.js   |  2 ++
 .../search/NumberFieldSearchCriteria.js       |  2 +-
 .../resources/api/v3/dto/dataset/DataSet.js   |  4 ++++
 .../id/BdsDirectoryStorageFormatPermId.js     | 15 +++++++++++++
 .../api/v3/dto/dataset/id/ILocatorTypeId.js   | 11 ++++++++++
 .../api/v3/dto/dataset/id/IStorageFormatId.js | 11 ++++++++++
 .../v3/dto/dataset/id/LocatorTypePermId.js    | 19 +++++++++++++++++
 .../id/ProprietaryStorageFormatPermId.js      | 15 +++++++++++++
 .../id/RelativeLocationLocatorTypePermId.js   | 15 +++++++++++++
 .../v3/dto/dataset/id/StorageFormatPermId.js  | 19 +++++++++++++++++
 .../v3/dto/dataset/update/DataSetUpdate.js    | 21 +++++++++++++++++++
 .../v3/dto/dataset/update/LinkedDataUpdate.js |  3 +++
 .../dto/dataset/update/PhysicalDataUpdate.js  |  2 ++
 .../fetchoptions/DeletionFetchOptions.js      |  5 ++++-
 .../api/v3/dto/experiment/Experiment.js       |  4 ++++
 .../dto/experiment/update/ExperimentUpdate.js |  6 ++++++
 .../resources/api/v3/dto/material/Material.js |  4 ++++
 .../dto/material/create/MaterialCreation.js   |  3 +++
 .../api/v3/dto/material/id/MaterialPermId.js  |  4 +++-
 .../v3/dto/material/update/MaterialUpdate.js  |  7 +++++++
 .../resources/api/v3/dto/project/Project.js   | 15 +++++++++++++
 .../fetchoptions/ProjectFetchOptions.js       | 18 +++++++++++++++-
 .../v3/dto/project/update/ProjectUpdate.js    |  4 ++++
 .../resources/api/v3/dto/sample/Sample.js     |  4 ++++
 .../v3/dto/sample/create/SampleCreation.js    |  8 ++++++-
 .../api/v3/dto/sample/update/SampleUpdate.js  | 10 +++++++++
 .../api/v3/dto/space/update/SpaceUpdate.js    |  1 +
 .../v3/dto/tag/fetchoptions/TagSortOptions.js | 18 ++++++++++++++++
 .../api/v3/dto/vocabulary/VocabularyTerm.js   |  2 +-
 .../public/resources/api/v3/util/Json.js      | 18 +++++++++-------
 .../search/AbstractFieldSearchCriteria.java   |  5 -----
 .../v3/dto/dataset/id/LocatorTypePermId.java  |  2 +-
 39 files changed, 284 insertions(+), 24 deletions(-)
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/BdsDirectoryStorageFormatPermId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ILocatorTypeId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/IStorageFormatId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/LocatorTypePermId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ProprietaryStorageFormatPermId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/RelativeLocationLocatorTypePermId.js
 create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/StorageFormatPermId.js

diff --git a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
index be1380243da..30eb37c902b 100644
--- a/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
+++ b/js-test/servers/common/core-plugins/tests/1/as/webapps/openbis-v3-api-test/html/test/test-jsVSjava.js
@@ -95,7 +95,7 @@ define([ 'jquery', 'underscore', 'openbis', 'test/common' ], function($, _, open
 
 			// Java Fields found in Javascript
 			for (var fIdx = 0; fIdx < javaClassReport.fields.length; fIdx++) {
-				if (!jsPrototype[javaClassReport.fields[fIdx]]) {
+				if (jsPrototype[javaClassReport.fields[fIdx]] === undefined) {
 					var errorResult = "JS class missing field: " + javaClassReport.jsonObjAnnotation + " - " + javaClassReport.fields[fIdx];
 					testsResults.error.push(errorResult);
 					console.info(errorResult);
diff --git a/js-test/servers/common/openBIS-server/db/openbis_test_js_common.sql b/js-test/servers/common/openBIS-server/db/openbis_test_js_common.sql
index 9066b699905..ff21f4ee231 100644
--- a/js-test/servers/common/openBIS-server/db/openbis_test_js_common.sql
+++ b/js-test/servers/common/openBIS-server/db/openbis_test_js_common.sql
@@ -4561,7 +4561,7 @@ COPY persons (id, first_name, last_name, user_id, email, space_id, registration_
 3	Stéphane	Čapek	admin	franz-josef.elmer@systemsx.ch	\N	2013-04-12 10:07:44.572139+02	1	\\xaced00057372004163682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e446973706c617953657474696e6773000000000000000102000e5a0009646562756767696e675a001669676e6f72654c617374486973746f7279546f6b656e5a001575736557696c64636172645365617263684d6f64654c000e636f6c756d6e53657474696e677374000f4c6a6176612f7574696c2f4d61703b4c001b637573746f6d576562417070446973706c617953657474696e677371007e00014c001064726f70446f776e53657474696e677371007e00014c00166c617374486973746f7279546f6b656e4f724e756c6c7400124c6a6176612f6c616e672f537472696e673b4c001670616e656c436f6c6c617073656453657474696e677371007e00014c001170616e656c53697a6553657474696e677371007e00014c0015706f72746c6574436f6e66696775726174696f6e7371007e00014c001d7265616c4e756d626572466f726d6174696e67506172616d65746572737400514c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f5265616c4e756d626572466f726d6174696e67506172616d65746572733b4c000b74616253657474696e677371007e00014c001a746563686e6f6c6f6779537065636966696353657474696e677371007e00014c00067669736974737400104c6a6176612f7574696c2f4c6973743b7870000000737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f400000000000307708000000400000002d740017766f636162756c6172792d62726f777365722d67726964737200136a6176612e7574696c2e41727261794c6973747881d21d99c7619d03000149000473697a6578700000000877040000000a7372003f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e436f6c756d6e53657474696e6700000000000000010200055a000968617346696c7465725a000668696464656e49000577696474684c0008636f6c756d6e494471007e00024c0007736f72744469727400444c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f536f7274496e666f24536f72744469723b78700100000000c8740004434f44457e72004263682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e536f7274496e666f24536f727444697200000000000000001200007872000e6a6176612e6c616e672e456e756d000000000000000012000078707400034153437371007e000b00000000012c74000b4445534352495054494f4e707371007e000b00000000009674001549535f4d414e414745445f494e5445524e414c4c59707371007e000b00000000009674000b5245474953545241544f52707371007e000b00000000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c74000c55524c5f54454d504c415445707371007e000b00010000009674002b564f434142554c4152595f53484f575f415641494c41424c455f5445524d535f494e5f43484f4f53455253707371007e000b00010000012c7400114d4f44494649434154494f4e5f4441544570787400246578706572696d656e742d64657461696c732d677269642d4843535f504c41544f4e49437371007e0009000000237704000000267371007e000b0100000000e2740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e707371007e000b00000000009674002270726f70657274792d494e5445524e2d414e414c595349535f50524f4345445552457078740017706c6174652d6d6174657269616c2d72657669657765727371007e00090000000e7704000000107371007e000b0000000001f474000b57454c4c5f494d41474553707371007e000b0000000000967400234d4154455249414c5f50524f50455254592d47454e452d242424555345522d47454e45707371007e000b00000000009674002f4d4154455249414c5f50524f50455254592d50524f502d24242447454e452d555345522d4445534352495054494f4e707371007e000b0000000000967400304d4154455249414c5f50524f50455254592d50524f502d24242447454e452d555345522d47454e455f53594d424f4c53707371007e000b0000000000967400254d4154455249414c5f50524f50455254592d5349524e412d242424555345522d5349524e41707371007e000b0000000000967400314d4154455249414c5f50524f50455254592d50524f502d2424245349524e412d555345522d494e48494249544f525f4f46707371007e000b0000000000967400384d4154455249414c5f50524f50455254592d50524f502d2424245349524e412d555345522d4e55434c454f544944455f53455155454e4345707371007e000b00000000018a74000a6578706572696d656e74707371007e000b010000000096740005504c415445707371007e000b01000000009674000457454c4c707371007e000b00000000009674001066696c655f666f726d61745f74797065707371007e000b00000000009674000e494d4147455f444154415f534554707371007e000b000000000096740017494d4147455f414e414c595349535f444154415f534554707371007e000b000000000096740012414e414c595349535f50524f434544555245707874002973616d706c652d64657461696c732d677269642d53414d504c452d4d4943524f53434f50595f494d477371007e0009000000147704000000197371007e000b010000000096740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a454354537078740034646174612d7365742d64657461696c732d677269642d4843535f494d4147455f434f4e5441494e45525f5241572d504152454e547371007e00090000001f7704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a454354537078740044646174612d7365742d64657461696c732d677269642d4843535f414e414c595349535f434f4e5441494e45525f57454c4c5f46454154555245532d434f4e5441494e45527371007e0009000000217704000000267371007e000b0100000000ee740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b00000000011b74000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707874001b73616d706c652d64657461696c732d677269642d554e4b4e4f574e7371007e0009000000227704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e7078740037646174612d7365742d64657461696c732d677269642d4843535f494d4147455f434f4e5441494e45525f5241572d434f4e5441494e45527371007e0009000000227704000000267371007e000b010000000156740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e7078740020656e746974792d62726f777365722d677269642d53414d504c452d504c4154457371007e0009000000157704000000197371007e000b010000000096740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001e70726f70657274792d494e5445524e2d504c4154455f47454f4d4554525970787400176174746163686d656e742d62726f777365722d677269647371007e00090000000777040000000a7371007e000b0000000000c874000946494c455f4e414d45707371007e000b0000000000967400085045524d4c494e4b707371007e000b00000000009674000756455253494f4e707371007e000b0000000000c87400055449544c45707371007e000b00000000012c74000b4445534352495054494f4e707371007e000b00000000009674000b5245474953545241544f52707371007e000b00000000012c740011524547495354524154494f4e5f44415445707874002073616d706c652d64657461696c732d677269642d53414d504c452d504c4154457371007e0009000000167704000000197371007e000b010000000096740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001270726f70657274792d555345522d47454e45707371007e000b00000000009674001370726f70657274792d555345522d5349524e41707874001b646174612d7365742d7365617263682d726573756c742d677269647371007e0009000000247704000000267371007e000b01000000010c740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b00000000012d74000d444154415f5345545f5459504571007e00117371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674002270726f70657274792d494e5445524e2d414e414c595349535f50524f434544555245707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e707874002b6578706572696d656e742d64657461696c732d677269642d53414d504c452d4843535f504c41544f4e49437371007e0009000000157704000000197371007e000b010000000096740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001e70726f70657274792d494e5445524e2d504c4154455f47454f4d455452597078740013706572736f6e2d62726f777365722d677269647371007e00090000000777040000000a7371007e000b0100000000fe740007555345525f494471007e00117371007e000b00000000009674000a46495253545f4e414d45707371007e000b0000000000967400094c4153545f4e414d45707371007e000b0000000000c8740005454d41494c707371007e000b00000000009674000b5245474953545241544f52707371007e000b00000000012c740011524547495354524154494f4e5f44415445707371007e000b00000000005074000949535f414354495645707874001c747970652d62726f777365722d677269642d4558504552494d454e547371007e00090000000477040000000a7371007e000b010000000096740004434f4445707371007e000b00000000012c74000b4445534352495054494f4e707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b00010000009674001156414c49444154494f4e5f534352495054707874001470726f6a6563742d62726f777365722d677269647371007e00090000000777040000000a7371007e000b010000000096740004434f4445707371007e000b0100000000967400055350414345707371007e000b0000000000c874000b4445534352495054494f4e707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0001000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707874001564656c6574696f6e2d62726f777365722d677269647371007e00090000000477040000000a7371007e000b00000000012c74000d44454c4554494f4e5f44415445707371007e000b0100000000c874000744454c45544552707371007e000b00000000012c740008454e544954494553707371007e000b0100000001f4740006524541534f4e7078740018747970652d62726f777365722d677269642d53414d504c457371007e00090000000c7704000000107371007e000b010000000096740004434f4445707371007e000b00000000012c74000b4445534352495054494f4e707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b00010000009674001156414c49444154494f4e5f534352495054707371007e000b00010000009674000b49535f4c49535441424c45707371007e000b0001000000c874001149535f53484f575f434f4e5441494e4552707371007e000b0001000000c874000f49535f53484f575f504152454e5453707371007e000b000100000096740014535542434f44455f554e495155455f4c4142454c707371007e000b0001000000967400194155544f5f47454e45524154455f434f4445535f4c4142454c707371007e000b00010000009674001749535f53484f575f504152454e545f4d45544144415441707371007e000b00010000009674001547454e4552415445445f434f44455f505245464958707371007e000b00010000012c7400114d4f44494649434154494f4e5f444154457078740041646174612d7365742d64657461696c732d677269642d4843535f414e414c595349535f434f4e5441494e45525f57454c4c5f46454154555245532d504152454e547371007e00090000001f7704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a454354537078740023646174612d7365742d64657461696c732d677269642d554e4b4e4f574e2d4348494c447371007e0009000000217704000000267371007e000b010000000110740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707874001973616d706c652d64657461696c732d677269642d504c4154457371007e0009000000237704000000267371007e000b01000000016c740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b00000000014774000d444154415f5345545f54595045707371007e000b00000000010a740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00000000013874000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e707371007e000b00000000009674002270726f70657274792d494e5445524e2d414e414c595349535f50524f4345445552457078740024656e746974792d70726f70657274792d686973746f72792d62726f777365722d677269647371007e00090000000777040000000a7371007e000b00010000009674001250524f50455254595f545950455f434f4445707371007e000b00000000009674001350524f50455254595f545950455f4c4142454c707371007e000b00000000009674000d52454c4154494f4e5f54595045707371007e000b00000000009674000556414c5545707371007e000b000000000096740006415554484f52707371007e000b00000000009674000f56414c49445f46524f4d5f44415445707371007e000b00000000009674001056414c49445f554e54494c5f4441544570787400326578706572696d656e742d64657461696c732d677269642d53414d504c452d4d4943524f53434f50595f504c41544f4e49437371007e0009000000147704000000197371007e000b010000000096740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a4543545370787400127365617263682d726573756c742d677269647371007e00090000000677040000000a7371007e000b00000000009674000b454e544954595f4b494e44707371007e000b01000000009674000b454e544954595f54595045707371007e000b01000000015e74000a4944454e544946494552707371007e000b00000000009674000b5245474953545241544f52707371007e000b01000000008c74000e4d41544348494e475f4649454c44707371007e000b0000000000c874000d4d41544348494e475f54455854707874001273706163652d62726f777365722d677269647371007e00090000000477040000000a7371007e000b000000000096740004434f4445707371007e000b0000000000c874000b4445534352495054494f4e707371007e000b0000000000c874000b5245474953545241544f52707371007e000b00010000012c740011524547495354524154494f4e5f44415445707874001d66696c652d666f726d61742d747970652d62726f777365722d677269647371007e00090000000277040000000a7371007e000b000000000096740004434f4445707371007e000b00000000012c74000b4445534352495054494f4e707874001e73616d706c652d64657461696c732d677269642d5349524e415f57454c4c7371007e00090000001f7704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a454354537078740021656e746974792d62726f777365722d677269642d4d4154455249414c2d47454e457371007e00090000000977040000000a7371007e000b010000000096740004434f4445707371007e000b00010000009674000d4d4154455249414c5f54595045707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e707371007e000b00000000009674001a70726f70657274792d555345522d47454e455f53594d424f4c53707874002570726f70657274792d747970652d61737369676e6d656e742d62726f777365722d677269647371007e00090000000f7704000000107371007e000b0100000000c874001250524f50455254595f545950455f434f4445707371007e000b0001000000967400054c4142454c707371007e000b00010000009674000b4445534352495054494f4e707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b0100000000c874000b41535349474e45445f544f7e71007e000f740004444553437371007e000b010000000096740007545950455f4f46707371007e000b00000000009674000c49535f4d414e4441544f5259707371007e000b0000000000c8740009444154415f54595045707371007e000b0001000000647400074f5244494e414c707371007e000b00000000009674000753454354494f4e707371007e000b00000000009674000a49535f44594e414d4943707371007e000b00000000009674000a49535f4d414e41474544707371007e000b00000000009674001749535f53484f574e5f494e5f454449544f525f56494557707371007e000b00000000009674000e53484f575f5241575f56414c5545707371007e000b000000000096740006534352495054707874000c71756572792d656469746f727371007e00090000000977040000000a7371007e000b0100000000967400044e414d45707371007e000b00000000009674000b4445534352495054494f4e707371007e000b00010000009674000953514c5f5155455259707371007e000b01010000009674000949535f5055424c4943707371007e000b00010000009674000a51554552595f54595045707371007e000b00010000009674000b454e544954595f54595045707371007e000b00010000009674000e51554552595f4441544142415345707371007e000b00010000009674000b5245474953545241544f52707371007e000b00010000012c740011524547495354524154494f4e5f444154457078740033646174612d7365742d7265706f7274696e672d6772696464656661756c742d706c6174652d696d6167652d616e616c797369737371007e00090000000877040000000a7371007e000b00000000012074000d444154415f5345545f434f4445707371007e000b000000000096740010504c4154455f4944454e544946494552707371007e000b000000000096740003524f57707371007e000b000000000096740006434f4c554d4e707371007e000b000000000096740012666561747572652d524f575f4e554d424552707371007e000b000000000096740015666561747572652d434f4c554d4e5f4e554d424552707371007e000b00000000009674000b666561747572652d545055707371007e000b00000000009674000d666561747572652d5354415445707874001a747970652d62726f777365722d677269642d444154415f5345547371007e00090000000977040000000a7371007e000b010000000146740004434f4445707371007e000b0000000001e274000b4445534352495054494f4e707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b00010000009674001156414c49444154494f4e5f534352495054707371007e000b00000000009674000d444154415f5345545f4b494e44707371007e000b00010000009674001144454c4554494f4e5f444953414c4c4f57707371007e000b0001000000967400124d41494e5f444154415f5345545f50415448707371007e000b0001000000967400154d41494e5f444154415f5345545f5041545445524e707371007e000b00010000012c7400114d4f44494649434154494f4e5f444154457078740040646174612d7365742d64657461696c732d677269642d4843535f414e414c595349535f434f4e5441494e45525f57454c4c5f46454154555245532d4348494c447371007e00090000001f7704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707874001c656e746974792d62726f777365722d677269642d4d4154455249414c7371007e00090000000077040000000a78740013656e746974792d62726f777365722d677269647371007e00090000000e7704000000107371007e000b010000000096740004434f4445707371007e000b00010000009674000f4558504552494d454e545f54595045707371007e000b0001000000967400154558504552494d454e545f4944454e544946494552707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707874002273616d706c652d64657461696c732d677269642d53414d504c452d554e4b4e4f574e7371007e0009000000147704000000197371007e000b0100000000f4740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707874002273616d706c652d64657461696c732d677269642d4d4943524f53434f50595f494d477371007e0009000000227704000000267371007e000b010000000151740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e7078740038646174612d7365742d64657461696c732d677269642d4d4943524f53434f50595f494d475f434f4e5441494e45522d434f4e5441494e45527371007e0009000000227704000000267371007e000b010000000096740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001a70726f70657274792d494e5445524e2d5245534f4c5554494f4e707874001c726f6c652d61737369676e6d656e742d62726f777365722d677269647371007e00090000000577040000000a7371007e000b010000000096740006504552534f4e707371007e000b010000000096740013415554484f52495a4154494f4e5f47524f5550707371007e000b0100000000967400055350414345707371007e000b010000000096740004524f4c45707371007e000b01000000009674001144415441424153455f494e5354414e43457078740020646174612d7365742d7265706f7274696e672d677269643937323031333937337371007e00090000000177040000000a7371007e000b00000000009674000b746573745f636f6c756d6e7078740015766f636162756c6172792d7465726d732d677269647371007e00090000000d7704000000107371007e000b010000000096740004434f4445707371007e000b0100000000c87400054c4142454c707371007e000b00000000012c74000b4445534352495054494f4e707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b0001000000647400074f5244494e414c707371007e000b0000000000c874000355524c707371007e000b00010000006474000b49535f4f4646494349414c707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000647400105445524d5f544f54414c5f5553414745707371007e000b0001000000647400175445524d5f464f525f444154415f5345545f5553414745707371007e000b00010000006474001a5445524d5f464f525f4558504552494d454e54535f5553414745707371007e000b0001000000647400185445524d5f464f525f4d4154455249414c535f5553414745707371007e000b0001000000647400165445524d5f464f525f53414d504c45535f555341474570787400266578706572696d656e742d64657461696c732d677269642d53414d504c452d554e4b4e4f574e7371007e0009000000157704000000197371007e000b010000000163740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00010000012c740011524547495354524154494f4e5f44415445707371007e000b00010000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e7078740020656e746974792d62726f777365722d677269642d53414d504c452d28616c6c297371007e0009000000187704000000197371007e000b01000000014e740004434f4445707371007e000b000100000096740007535542434f4445707371007e000b00010000009674001144415441424153455f494e5354414e4345707371007e000b0001000000967400055350414345707371007e000b00010000009674001153414d504c455f4944454e544946494552707371007e000b00010000009674000b53414d504c455f54595045707371007e000b00010000009674001249535f494e5354414e43455f53414d504c45707371007e000b00010000009674000a49535f44454c45544544707371007e000b0000000000c874000b5245474953545241544f52707371007e000b0000000000c87400084d4f444946494552707371007e000b00000000012c740011524547495354524154494f4e5f44415445707371007e000b00000000012c7400114d4f44494649434154494f4e5f44415445707371007e000b01000000009674000a4558504552494d454e54707371007e000b0001000000c87400154558504552494d454e545f4944454e544946494552707371007e000b01000000009674000750524f4a454354707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000010c74001367656e65726174656446726f6d506172656e74707371007e000b00000000009674000f636f6e7461696e6572506172656e74707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001e70726f70657274792d494e5445524e2d504c4154455f47454f4d45545259707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e707371007e000b00000000009674001270726f70657274792d555345522d47454e45707371007e000b00000000009674001370726f70657274792d555345522d5349524e417078740024646174612d7365742d64657461696c732d677269642d554e4b4e4f574e2d504152454e547371007e0009000000227704000000267371007e000b0100000000e3740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e707874001f6578706572696d656e742d64657461696c732d677269642d554e4b4e4f574e7371007e0009000000227704000000267371007e000b010000000129740004434f4445707371007e000b00010000009674000d45585445524e414c5f434f4445707371007e000b0000000000c874000d444154415f5345545f54595045707371007e000b000100000096740011434f4e5441494e45525f44415441534554707371007e000b0001000000647400124f524445525f494e5f434f4e5441494e4552707371007e000b00010000009674000f504152454e545f4441544153455453707371007e000b00010000006474000653414d504c45707371007e000b0000000000c874001f45585445524e414c5f444154415f53414d504c455f4944454e544946494552707371007e000b00000000009674000b53414d504c455f54595045707371007e000b00010000006474000a4558504552494d454e54707371007e000b00010000006474002345585445524e414c5f444154415f4558504552494d454e545f4944454e544946494552707371007e000b00010000007874000f4558504552494d454e545f54595045707371007e000b00000000009674000750524f4a454354707371007e000b00000000009674000b5245474953545241544f52707371007e000b0000000000967400084d4f444946494552707371007e000b0000000000c8740011524547495354524154494f4e5f44415445707371007e000b0001000000c87400114d4f44494649434154494f4e5f44415445707371007e000b00010000009674000a49535f44454c45544544707371007e000b00010000009674000b534f555243455f54595045707371007e000b00010000009674000b49535f434f4d504c455445707371007e000b0001000000967400084c4f434154494f4e707371007e000b0001000000c8740010415243484956494e475f535441545553707371007e000b01010000009674001046494c455f464f524d41545f54595045707371007e000b0001000000c874000f50524f44554354494f4e5f44415445707371007e000b000100000096740012444154415f50524f44554345525f434f4445707371007e000b00010000009674000f444154415f53544f52455f434f4445707371007e000b00010000009674001145585445524e414c5f444d535f434f4445707371007e000b00010000009674001245585445524e414c5f444d535f4c4142454c707371007e000b0001000000967400075045524d5f4944707371007e000b00010000009674001153484f575f44455441494c535f4c494e4b707371007e000b00000000009674000c4d45544150524f4a45435453707371007e000b00000000009674001250524553454e545f494e5f41524348495645707371007e000b00000000009674001453544f524147455f434f4e4649524d4154494f4e707371007e000b00000000009674001970726f70657274792d555345522d4445534352495054494f4e707878707371007e00063f4000000000000c7708000000100000000374001e73616d706c652d747970656d61696e5f73616d706c655f62726f7773657274000528616c6c2974003773616d706c652d7479706573616d706c655f726567697374726174696f6e5f636f6e7461696e65725f63686f6f736572554e4b4e4f574e71007e06f174003473616d706c652d7479706573616d706c655f726567697374726174696f6e5f706172656e745f63686f6f736572554e4b4e4f574e71007e06f17874001d616374696f6e3d53454152434826656e746974793d444154415f5345547371007e00063f4000000000000c77080000001000000000787371007e00063f40000000000018770800000020000000117400216c6566745f70616e656c5f4843535f494d4147455f5345474d454e544154494f4e737200116a6176612e6c616e672e496e746567657212e2a0a4f781873802000149000576616c7565787200106a6176612e6c616e672e4e756d62657286ac951d0b94e08b02000078700000015e74000f6c6566745f70616e656c5f47454e457371007e06f80000015e7400226c6566745f70616e656c5f4d4943524f53434f50595f494d475f4f564552564945577371007e06f80000015e74001d6c6566745f70616e656c5f4843535f494d4147455f4f564552564945577371007e06f80000015e7400256c6566745f70616e656c5f4843535f414e414c595349535f46454154555245535f4c4953547371007e06f80000015e7400176c6566745f70616e656c5f4843535f504c41544f4e49437371007e06f80000015e74002f6c6566745f70616e656c5f4843535f414e414c595349535f434f4e5441494e45525f57454c4c5f46454154555245537371007e06f8000001d874001e6c6566745f70616e656c5f4d4943524f53434f50595f504c41544f4e49437371007e06f80000015e7400236c6566745f70616e656c5f4d4943524f53434f50595f494d475f434f4e5441494e45527371007e06f80000015e7400126c6566745f70616e656c5f554e4b4e4f574e7371007e06f80000015e7400196c6566745f70616e656c5f4d4943524f53434f50595f494d477371007e06f80000015e7400226c6566745f70616e656c5f4843535f494d4147455f434f4e5441494e45525f5241577371007e06f80000015e7400256c6566745f70616e656c5f4843535f414e414c595349535f57454c4c5f46454154555245537371007e06f80000015e74002b6c6566745f70616e656c5f4843535f494d4147455f434f4e5441494e45525f5345474d454e544154494f4e7371007e06f80000015e7400156c6566745f70616e656c5f5349524e415f57454c4c7371007e06f80000015e7400106c6566745f70616e656c5f504c4154457371007e06f80000015e7400186c6566745f70616e656c5f4843535f494d4147455f5241577371007e06f8000001c9787371007e00063f4000000000000c77080000001000000002740007486973746f72797372004663682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e506f72746c6574436f6e66696775726174696f6e00000000000000010200014c00046e616d6571007e0002787071007e071c74000757656c636f6d657371007e071d71007e071f787372004f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e5265616c4e756d626572466f726d6174696e67506172616d657465727300000000000000010200035a0010666f726d6174696e67456e61626c6564490009707265636973696f6e5a000a736369656e746966696378700100000004007371007e00063f400000000000187708000000200000001474002e67656e657269635f646174617365745f7669657765724d4943524f53434f50595f494d475f434f4e5441494e455274001a646174612d7365742d636f6e7461696e65642d73656374696f6e74003067656e657269635f646174617365745f7669657765724843535f414e414c595349535f57454c4c5f4645415455524553740015646174612d7365742d646174612d73656374696f6e74003067656e657269635f646174617365745f7669657765724843535f414e414c595349535f46454154555245535f4c49535471007e072774001d67656e657269635f646174617365745f766965776572554e4b4e4f574e71007e072774002d67656e657269635f646174617365745f7669657765724d4943524f53434f50595f494d475f4f5645525649455771007e072774001f67656e657269635f73616d706c655f7669657765725349524e415f57454c4c740011646174612d736574732d73656374696f6e74003a67656e657269635f646174617365745f7669657765724843535f414e414c595349535f434f4e5441494e45525f57454c4c5f464541545552455371007e072574002467656e657269635f646174617365745f7669657765724d4943524f53434f50595f494d4771007e072774001b67656e657269635f6d6174657269616c5f76696577657247454e45740020706c6174652d6c6f636174696f6e732d6d6174657269616c2d73656374696f6e74002567656e657269635f6578706572696d656e745f7669657765724843535f504c41544f4e49437400196578706572696d656e742d73616d706c652d73656374696f6e74002c67656e657269635f6578706572696d656e745f7669657765724d4943524f53434f50595f504c41544f4e494371007e073274001a67656e657269635f73616d706c655f766965776572504c41544571007e072c74002067656e657269635f6578706572696d656e745f766965776572554e4b4e4f574e71007e073274002367656e657269635f73616d706c655f7669657765724d4943524f53434f50595f494d4774001a6c6f676963616c2d696d6167652d77656c6c2d73656374696f6e74003667656e657269635f646174617365745f7669657765724843535f494d4147455f434f4e5441494e45525f5345474d454e544154494f4e71007e072774001c67656e657269635f73616d706c655f766965776572554e4b4e4f574e7400126174746163686d656e742d73656374696f6e74002867656e657269635f646174617365745f7669657765724843535f494d4147455f4f5645525649455771007e072774002d67656e657269635f646174617365745f7669657765724843535f494d4147455f434f4e5441494e45525f52415771007e072574002367656e657269635f646174617365745f7669657765724843535f494d4147455f52415771007e072774002c67656e657269635f646174617365745f7669657765724843535f494d4147455f5345474d454e544154494f4e71007e0727787371007e00063f4000000000000c7708000000100000000174000973637265656e696e677372005363682e73797374656d73782e636973642e6f70656e6269732e706c7567696e2e73637265656e696e672e7368617265642e62617369632e64746f2e53637265656e696e67446973706c617953657474696e677300000000000000010200074c001864656661756c74416e616c7973697350726f63656475726571007e00024c000f64656661756c744368616e6e656c7371007e00014c001864656661756c744665617475726552616e6765547970657371007e00014c001264656661756c744d6f76696544656c61797371007e00014c001264656661756c745265736f6c7574696f6e7371007e00014c001664656661756c745472616e73666f726d6174696f6e7371007e00014c001a696e74656e7369747952616e676573466f724368616e6e656c7371007e00017870740003416c6c7371007e00063f4000000000000c770800000010000000047400256578706572696d656e742d6368616e6e656c32303133303431323130353233323631362d3274000f4d6572676564204368616e6e656c737400276578706572696d656e742d6368616e6e656c32303133303431323135303034393434362d32303471007e07467400276578706572696d656e742d6368616e6e656c32303133303431323135353133383031392d3339367400035247427400166578706572696d656e742d6368616e6e656c6e756c6c71007e07467870707371007e00063f4000000000000c7708000000100000000171007e07457372004a63682e73797374656d73782e636973642e6f70656e6269732e706c7567696e2e73637265656e696e672e7368617265642e62617369632e64746f2e496d6167655265736f6c7574696f6e0000000000000001020002490006686569676874490005776964746878700000020000000200787371007e00063f4000000000000c7708000000100000000471007e07457371007e00063f4000000000000c7708000000100000000271007e07467400092444454641554c54247400044441504971007e07507871007e07477371007e00063f4000000000000c7708000000100000000271007e074671007e075071007e075171007e07507871007e07487371007e00063f4000000000000c7708000000100000000171007e074971007e07507871007e074a7371007e00063f4000000000000c7708000000100000000171007e074671007e075078787371007e00063f4000000000000c7708000000100000000371007e07457371007e00063f4000000000000c770800000010000000007871007e07477371007e00063f4000000000000c770800000010000000007871007e07487371007e00063f4000000000000c770800000010000000007878787371007e0009000000147704000000197372003d63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e456e74697479566973697400000000000000010200054a000974696d655374616d704c000a656e746974794b696e6471007e00024c000e656e7469747954797065436f646571007e00024c000a6964656e74696669657271007e00024c00067065726d494471007e000278700000013ea857eae7740008444154415f5345547400174843535f494d4147455f434f4e5441494e45525f52415774001532303133303431323134333132313038312d32303071007e075e7371007e075a0000013e3c15424371007e075c7400204843535f494d4147455f434f4e5441494e45525f5345474d454e544154494f4e74001532303133303431323135333131393836342d33383571007e07617371007e075a0000013e3be9c7d374000a4558504552494d454e547400134d4943524f53434f50595f504c41544f4e49437400222f504c41544f4e49432f53435245454e494e472d4558414d504c45532f4558502d3274001532303133303431323135353133383031392d3339367371007e075a0000013e3be6ea1a74000653414d504c4574000e4d4943524f53434f50595f494d477400122f504c41544f4e49432f5345524945532d3174001532303133303431373039343931313936372d3432367371007e075a0000013e3be5a6f571007e076374000c4843535f504c41544f4e49437400222f504c41544f4e49432f53435245454e494e472d4558414d504c45532f4558502d3174001332303133303431323130353233323631362d327371007e075a0000013e3be3f2b271007e0768740005504c4154457400112f504c41544f4e49432f504c4154452d3174001432303133303431323134303134373733352d32307371007e075a0000013e3be0e86e71007e0768740007554e4b4e4f574e74002d2f544553542f544553542d53414d504c452d313a544553542d53414d504c452d312d434f4e5441494e45442d3174001532303133303432343133343732313634342d3433347371007e075a0000013e3bdeea3771007e076871007e07757400132f544553542f544553542d53414d504c452d3274001532303133303431353039313932333438352d3430327371007e075a0000013e3bb49dea71007e075c7400174d4943524f53434f50595f494d475f4f5645525649455774001532303133303431373039343933343639332d34323771007e077d7371007e075a0000013e3b56365571007e075c74001a4843535f414e414c595349535f46454154555245535f4c49535474001532303133303432343131313735313433322d34333171007e07807371007e075a0000013e3b55e9be71007e075c71007e077f74001532303133303432343131313735313230392d34333071007e07827371007e075a0000013e3b55cc3971007e075c7400244843535f414e414c595349535f434f4e5441494e45525f57454c4c5f464541545552455374001532303133303431323135333635393939342d33393171007e07857371007e075a0000013e3b500a5971007e075c74001a4843535f414e414c595349535f57454c4c5f464541545552455374001532303133303431323135333635393934352d33393071007e07887371007e075a0000013e16fe882971007e075c7400184d4943524f53434f50595f494d475f434f4e5441494e455274001532303133303431373039343933373134342d34323971007e078b7371007e075a0000013e16fbc42471007e075c71007e076974001532303133303431373039343933363032312d34323871007e078d7371007e075a0000013e16f7a38271007e076371007e07757400242f544553542f544553542d50524f4a4543542f544553542d4558504552494d454e542d3274001532303133303431353039313734353039392d3430317371007e075a0000013e13682eea71007e075c71007e077574001532303133303431353130303233383039382d34303871007e07927371007e075a0000013e1305b69371007e076874000a5349524e415f57454c4c7400142f504c41544f4e49432f504c4154452d313a423274001432303133303431323134303135313939392d33357371007e075a0000013e12e3717371007e076871007e07947400142f504c41544f4e49432f504c4154452d313a413174001432303133303431323134303135313633382d32327371007e075a0000013e12e1b0b071007e076871007e077174000d2f544553542f504c4154452d3274001532303133303431323135303535373132382d32303678	t
 9	Günter	Lévi-Strauss	selenium	franz-josef.elmer@systemsx.ch	\N	2013-04-23 12:02:27.70936+02	1	\\xaced00057372004163682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e446973706c617953657474696e6773000000000000000102000e5a0009646562756767696e675a001669676e6f72654c617374486973746f7279546f6b656e5a001575736557696c64636172645365617263684d6f64654c000e636f6c756d6e53657474696e677374000f4c6a6176612f7574696c2f4d61703b4c001b637573746f6d576562417070446973706c617953657474696e677371007e00014c001064726f70446f776e53657474696e677371007e00014c00166c617374486973746f7279546f6b656e4f724e756c6c7400124c6a6176612f6c616e672f537472696e673b4c001670616e656c436f6c6c617073656453657474696e677371007e00014c001170616e656c53697a6553657474696e677371007e00014c0015706f72746c6574436f6e66696775726174696f6e7371007e00014c001d7265616c4e756d626572466f726d6174696e67506172616d65746572737400514c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f5265616c4e756d626572466f726d6174696e67506172616d65746572733b4c000b74616253657474696e677371007e00014c001a746563686e6f6c6f6779537065636966696353657474696e677371007e00014c00067669736974737400104c6a6176612f7574696c2f4c6973743b7870000000737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c7708000000100000000078707371007e00063f4000000000000c7708000000100000000078707371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c7708000000100000000078707372004f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e5265616c4e756d626572466f726d6174696e67506172616d657465727300000000000000010200035a0010666f726d6174696e67456e61626c6564490009707265636973696f6e5a000a736369656e746966696378700100000004007371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c770800000010000000007870	t
 2	Elfriede	Jelinek	etlserver	franz-josef.elmer@systemsx.ch	\N	2013-04-12 10:06:08.930166+02	1	\\xaced00057372004163682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e446973706c617953657474696e6773000000000000000102000e5a0009646562756767696e675a001669676e6f72654c617374486973746f7279546f6b656e5a001575736557696c64636172645365617263684d6f64654c000e636f6c756d6e53657474696e677374000f4c6a6176612f7574696c2f4d61703b4c001b637573746f6d576562417070446973706c617953657474696e677371007e00014c001064726f70446f776e53657474696e677371007e00014c00166c617374486973746f7279546f6b656e4f724e756c6c7400124c6a6176612f6c616e672f537472696e673b4c001670616e656c436f6c6c617073656453657474696e677371007e00014c001170616e656c53697a6553657474696e677371007e00014c0015706f72746c6574436f6e66696775726174696f6e7371007e00014c001d7265616c4e756d626572466f726d6174696e67506172616d65746572737400514c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f5265616c4e756d626572466f726d6174696e67506172616d65746572733b4c000b74616253657474696e677371007e00014c001a746563686e6f6c6f6779537065636966696353657474696e677371007e00014c00067669736974737400104c6a6176612f7574696c2f4c6973743b7870000000737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c7708000000100000000078707371007e00063f4000000000000c7708000000100000000078707371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c7708000000100000000078707372004f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e5265616c4e756d626572466f726d6174696e67506172616d657465727300000000000000010200035a0010666f726d6174696e67456e61626c6564490009707265636973696f6e5a000a736369656e746966696378700100000004007371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c770800000010000000007870	t
-9	Günter	Lévi-Strauss	observer	franz-josef.elmer@systemsx.ch	\N	2013-04-23 12:02:27.70936+02	1	\\xaced00057372004163682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e446973706c617953657474696e6773000000000000000102000e5a0009646562756767696e675a001669676e6f72654c617374486973746f7279546f6b656e5a001575736557696c64636172645365617263684d6f64654c000e636f6c756d6e53657474696e677374000f4c6a6176612f7574696c2f4d61703b4c001b637573746f6d576562417070446973706c617953657474696e677371007e00014c001064726f70446f776e53657474696e677371007e00014c00166c617374486973746f7279546f6b656e4f724e756c6c7400124c6a6176612f6c616e672f537472696e673b4c001670616e656c436f6c6c617073656453657474696e677371007e00014c001170616e656c53697a6553657474696e677371007e00014c0015706f72746c6574436f6e66696775726174696f6e7371007e00014c001d7265616c4e756d626572466f726d6174696e67506172616d65746572737400514c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f5265616c4e756d626572466f726d6174696e67506172616d65746572733b4c000b74616253657474696e677371007e00014c001a746563686e6f6c6f6779537065636966696353657474696e677371007e00014c00067669736974737400104c6a6176612f7574696c2f4c6973743b7870000000737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c7708000000100000000078707371007e00063f4000000000000c7708000000100000000078707371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c7708000000100000000078707372004f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e5265616c4e756d626572466f726d6174696e67506172616d657465727300000000000000010200035a0010666f726d6174696e67456e61626c6564490009707265636973696f6e5a000a736369656e746966696378700100000004007371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c770800000010000000007870	t
+10	Günter	Lévi-Strauss	observer	franz-josef.elmer@systemsx.ch	\N	2013-04-23 12:02:27.70936+02	1	\\xaced00057372004163682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e446973706c617953657474696e6773000000000000000102000e5a0009646562756767696e675a001669676e6f72654c617374486973746f7279546f6b656e5a001575736557696c64636172645365617263684d6f64654c000e636f6c756d6e53657474696e677374000f4c6a6176612f7574696c2f4d61703b4c001b637573746f6d576562417070446973706c617953657474696e677371007e00014c001064726f70446f776e53657474696e677371007e00014c00166c617374486973746f7279546f6b656e4f724e756c6c7400124c6a6176612f6c616e672f537472696e673b4c001670616e656c436f6c6c617073656453657474696e677371007e00014c001170616e656c53697a6553657474696e677371007e00014c0015706f72746c6574436f6e66696775726174696f6e7371007e00014c001d7265616c4e756d626572466f726d6174696e67506172616d65746572737400514c63682f73797374656d73782f636973642f6f70656e6269732f67656e657269632f7368617265642f62617369632f64746f2f5265616c4e756d626572466f726d6174696e67506172616d65746572733b4c000b74616253657474696e677371007e00014c001a746563686e6f6c6f6779537065636966696353657474696e677371007e00014c00067669736974737400104c6a6176612f7574696c2f4c6973743b7870000000737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c7708000000100000000078707371007e00063f4000000000000c7708000000100000000078707371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c7708000000100000000078707372004f63682e73797374656d73782e636973642e6f70656e6269732e67656e657269632e7368617265642e62617369632e64746f2e5265616c4e756d626572466f726d6174696e67506172616d657465727300000000000000010200035a0010666f726d6174696e67456e61626c6564490009707265636973696f6e5a000a736369656e746966696378700100000004007371007e00063f4000000000000c77080000001000000000787371007e00063f4000000000000c770800000010000000007870	t
 \.
 
 
diff --git a/js-test/source/java/ch/systemsx/cisd/openbis/jstest/report/V3APIReport.java b/js-test/source/java/ch/systemsx/cisd/openbis/jstest/report/V3APIReport.java
index 628ee1dc91c..81eba33a696 100644
--- a/js-test/source/java/ch/systemsx/cisd/openbis/jstest/report/V3APIReport.java
+++ b/js-test/source/java/ch/systemsx/cisd/openbis/jstest/report/V3APIReport.java
@@ -36,6 +36,7 @@ import org.reflections.util.FilterBuilder;
 import org.testng.annotations.Test;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.base.Predicate;
 import com.google.common.collect.Collections2;
@@ -143,7 +144,11 @@ public class V3APIReport
         Collection<Field> fields = new ArrayList<Field>();
         for (Field field : clazz.getDeclaredFields())
         {
-            if (Modifier.isPublic(field.getModifiers()) && field.getAnnotation(JsonIgnore.class) == null)
+            boolean isPublic = Modifier.isPublic(field.getModifiers());
+            boolean hasJsonIgnore = field.getAnnotation(JsonIgnore.class) != null;
+            boolean hasJsonProperty = field.getAnnotation(JsonProperty.class) != null;
+
+            if (hasJsonProperty || (isPublic && false == hasJsonIgnore))
             {
                 fields.add(field);
             }
@@ -157,7 +162,10 @@ public class V3APIReport
 
         for (Method method : clazz.getDeclaredMethods())
         {
-            if (Modifier.isPublic(method.getModifiers()) && method.getAnnotation(JsonIgnore.class) == null)
+            boolean isPublic = Modifier.isPublic(method.getModifiers());
+            boolean isAbstract = Modifier.isAbstract(method.getModifiers());
+
+            if (false == isAbstract && isPublic)
             {
                 methods.add(method);
             }
diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/helper/generators/Generator.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/helper/generators/Generator.java
index ef11dc9ff30..efc4352e20d 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/helper/generators/Generator.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/api/v3/helper/generators/Generator.java
@@ -29,6 +29,7 @@ import ch.ethz.sis.openbis.generic.as.api.v3.dto.dataset.fetchoptions.StorageFor
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.dataset.id.DataSetPermId;
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.datastore.DataStore;
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.datastore.fetchoptions.DataStoreFetchOptions;
+import ch.ethz.sis.openbis.generic.as.api.v3.dto.deletion.fetchoptions.DeletedObjectFetchOptions;
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.deletion.fetchoptions.DeletionFetchOptions;
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.deletion.id.IDeletionId;
 import ch.ethz.sis.openbis.generic.as.api.v3.dto.entitytype.id.EntityTypePermId;
@@ -342,7 +343,7 @@ public class Generator extends AbstractGenerator
         DtoGenerator gen = new DtoGenerator("deletion", "Deletion", DeletionFetchOptions.class);
         gen.addSimpleField(IDeletionId.class, "id");
         gen.addStringField("reason");
-        gen.addPluralFetchedField("List<DeletedObject>", List.class.getName(), "deletedObjects", "Deleted objects", DeletionFetchOptions.class);
+        gen.addPluralFetchedField("List<DeletedObject>", List.class.getName(), "deletedObjects", "Deleted objects", DeletedObjectFetchOptions.class);
 
         gen.setToStringMethod("\"Deletion \" + id");
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/EmptyFetchOptions.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/EmptyFetchOptions.js
index ec20845e714..566441ad880 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/EmptyFetchOptions.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/EmptyFetchOptions.js
@@ -5,6 +5,12 @@ define([ "stjs", "dto/common/fetchoptions/FetchOptions" ], function(stjs, FetchO
 	stjs.extend(EmptyFetchOptions, FetchOptions, [ FetchOptions ], function(constructor, prototype) {
 		prototype['@type'] = 'dto.common.fetchoptions.EmptyFetchOptions';
 		constructor.serialVersionUID = 1;
+		prototype.sortBy = function() {
+			return null;
+		};
+		prototype.getSortBy = function() {
+			return null;
+		};
 	}, {});
 	return EmptyFetchOptions;
 })
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/SortOptions.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/SortOptions.js
index 94da9d200cf..8e0ee21d685 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/SortOptions.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/fetchoptions/SortOptions.js
@@ -23,6 +23,9 @@ define([ "require", "stjs", "dto/common/fetchoptions/SortOrder", "dto/common/fet
 			});
 			return order;
 		};
+		prototype.getSortings = function() {
+			return this.sortings;
+		};
 	}, {});
 	return SortOptions;
 })
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractCompositeSearchCriteria.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractCompositeSearchCriteria.js
index 4813af98f9a..1bdb8df23a1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractCompositeSearchCriteria.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractCompositeSearchCriteria.js
@@ -20,6 +20,9 @@ define([ "stjs", "dto/common/search/AbstractSearchCriteria", "dto/common/search/
 			this.criteria.push(criteria);
 			return criteria;
 		};
+		prototype.getOperator = function() {
+			return this.operator;
+		}
 		prototype.withOrOperator = function() {
 			this.operator = SearchOperator.OR;
 		}
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractSearchCriteria.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractSearchCriteria.js
index c0c28f07330..d4fbfaaef0d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractSearchCriteria.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/AbstractSearchCriteria.js
@@ -7,6 +7,8 @@ define([ "stjs", "dto/common/search/ISearchCriteria" ], function(stjs, ISearchCr
 	stjs.extend(AbstractSearchCriteria, null, [ ISearchCriteria ], function(constructor, prototype) {
 		prototype['@type'] = 'dto.common.search.AbstractSearchCriteria';
 		constructor.serialVersionUID = 1;
+		prototype.hashCode = function() {
+		};
 	}, {});
 	return AbstractSearchCriteria;
 })
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/NumberFieldSearchCriteria.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/NumberFieldSearchCriteria.js
index 4a600bdd8b8..f42aa3fd5f5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/NumberFieldSearchCriteria.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/common/search/NumberFieldSearchCriteria.js
@@ -7,7 +7,7 @@ define([ "require", "stjs", "dto/common/search/AbstractFieldSearchCriteria", "dt
 	stjs.extend(NumberFieldSearchCriteria, AbstractFieldSearchCriteria, [ AbstractFieldSearchCriteria ], function(constructor, prototype) {
 		prototype['@type'] = 'dto.common.search.NumberFieldSearchCriteria';
 		constructor.serialVersionUID = 1;
-		prototype.equalTo = function(number) {
+		prototype.thatEquals = function(number) {
 			var NumberEqualToValue = require("dto/common/search/NumberEqualToValue");
 			this.setFieldValue(new NumberEqualToValue(number));
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/DataSet.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/DataSet.js
index 19a20bc3053..3e83a0e86e8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/DataSet.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/DataSet.js
@@ -234,6 +234,10 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setProperties = function(properties) {
 			this.properties = properties;
 		};
+		prototype.getMaterialProperty = function(propertyName) {
+			var properties = this.getMaterialProperties();
+			return properties ? properties[propertyName] : null;
+		};
 		prototype.getMaterialProperties = function() {
 			if (this.getFetchOptions().hasMaterialProperties()) {
 				return this.materialProperties;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/BdsDirectoryStorageFormatPermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/BdsDirectoryStorageFormatPermId.js
new file mode 100644
index 00000000000..e9080fc4336
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/BdsDirectoryStorageFormatPermId.js
@@ -0,0 +1,15 @@
+/**
+ * Bds directory storage format perm id.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/dataset/id/StorageFormatPermId" ], function(stjs, StorageFormatPermId) {
+	var BdsDirectoryStorageFormatPermId = function() {
+		StorageFormatPermId.call(this, "BDS_DIRECTORY");
+	};
+	stjs.extend(BdsDirectoryStorageFormatPermId, StorageFormatPermId, [ StorageFormatPermId ], function(constructor, prototype) {
+		prototype['@type'] = 'dto.dataset.id.BdsDirectoryStorageFormatPermId';
+		constructor.serialVersionUID = 1;
+	}, {});
+	return BdsDirectoryStorageFormatPermId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ILocatorTypeId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ILocatorTypeId.js
new file mode 100644
index 00000000000..3444f7ebbb7
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ILocatorTypeId.js
@@ -0,0 +1,11 @@
+/**
+ * Holds information that uniquely identifies a locator type in openBIS.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/common/id/IObjectId" ], function(stjs, IObjectId) {
+	var ILocatorTypeId = function() {
+	};
+	stjs.extend(ILocatorTypeId, null, [ IObjectId ], null, {});
+	return ILocatorTypeId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/IStorageFormatId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/IStorageFormatId.js
new file mode 100644
index 00000000000..b3885931ecf
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/IStorageFormatId.js
@@ -0,0 +1,11 @@
+/**
+ * Holds information that uniquely identifies a storage format in openBIS.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/common/id/IObjectId" ], function(stjs, IObjectId) {
+	var IStorageFormatId = function() {
+	};
+	stjs.extend(IStorageFormatId, null, [ IObjectId ], null, {});
+	return IStorageFormatId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/LocatorTypePermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/LocatorTypePermId.js
new file mode 100644
index 00000000000..183fda7150f
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/LocatorTypePermId.js
@@ -0,0 +1,19 @@
+/**
+ * Locator type perm id.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/common/id/ObjectPermId", "dto/dataset/id/ILocatorTypeId" ], function(stjs, ObjectPermId, ILocatorTypeId) {
+	/**
+	 * @param permId
+	 *            Locator type perm id, e.g. "RELATIVE_LOCATION".
+	 */
+	var LocatorTypePermId = function(permId) {
+		ObjectPermId.call(this, permId);
+	};
+	stjs.extend(LocatorTypePermId, ObjectPermId, [ ObjectPermId, ILocatorTypeId ], function(constructor, prototype) {
+		prototype['@type'] = 'dto.dataset.id.LocatorTypePermId';
+		constructor.serialVersionUID = 1;
+	}, {});
+	return LocatorTypePermId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ProprietaryStorageFormatPermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ProprietaryStorageFormatPermId.js
new file mode 100644
index 00000000000..c724e8ac716
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/ProprietaryStorageFormatPermId.js
@@ -0,0 +1,15 @@
+/**
+ * Proprietary storage format perm id.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/dataset/id/StorageFormatPermId" ], function(stjs, StorageFormatPermId) {
+	var ProprietaryStorageFormatPermId = function() {
+		StorageFormatPermId.call(this, "PROPRIETARY");
+	};
+	stjs.extend(ProprietaryStorageFormatPermId, StorageFormatPermId, [ StorageFormatPermId ], function(constructor, prototype) {
+		prototype['@type'] = 'dto.dataset.id.ProprietaryStorageFormatPermId';
+		constructor.serialVersionUID = 1;
+	}, {});
+	return ProprietaryStorageFormatPermId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/RelativeLocationLocatorTypePermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/RelativeLocationLocatorTypePermId.js
new file mode 100644
index 00000000000..50df2e2002d
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/RelativeLocationLocatorTypePermId.js
@@ -0,0 +1,15 @@
+/**
+ * Relative location perm id.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/dataset/id/LocatorTypePermId" ], function(stjs, LocatorTypePermId) {
+	var RelativeLocationLocatorTypePermId = function() {
+		LocatorTypePermId.call(this, "RELATIVE_LOCATION");
+	};
+	stjs.extend(RelativeLocationLocatorTypePermId, LocatorTypePermId, [ LocatorTypePermId ], function(constructor, prototype) {
+		prototype['@type'] = 'dto.dataset.id.RelativeLocationLocatorTypePermId';
+		constructor.serialVersionUID = 1;
+	}, {});
+	return RelativeLocationLocatorTypePermId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/StorageFormatPermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/StorageFormatPermId.js
new file mode 100644
index 00000000000..cfeb15ab80b
--- /dev/null
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/id/StorageFormatPermId.js
@@ -0,0 +1,19 @@
+/**
+ * Storage format perm id.
+ * 
+ * @author pkupczyk
+ */
+define([ "stjs", "dto/common/id/ObjectPermId", "dto/dataset/id/IStorageFormatId" ], function(stjs, ObjectPermId, IStorageFormatId) {
+	/**
+	 * @param permId
+	 *            Storage format perm id, e.g. "PROPRIETARY".
+	 */
+	var StorageFormatPermId = function(permId) {
+		ObjectPermId.call(this, permId);
+	};
+	stjs.extend(StorageFormatPermId, ObjectPermId, [ ObjectPermId, IStorageFormatId ], function(constructor, prototype) {
+		prototype['@type'] = 'dto.dataset.id.StorageFormatPermId';
+		constructor.serialVersionUID = 1;
+	}, {});
+	return StorageFormatPermId;
+})
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/DataSetUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/DataSetUpdate.js
index 46b68b226ff..fefdbf21ba5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/DataSetUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/DataSetUpdate.js
@@ -6,6 +6,7 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 		this.experimentId = new FieldUpdateValue();
 		this.sampleId = new FieldUpdateValue();
 		this.physicalData = new FieldUpdateValue();
+		this.linkedData = new FieldUpdateValue();
 		this.properties = {};
 		this.tagIds = new IdListUpdateValue();
 		this.containerIds = new IdListUpdateValue();
@@ -17,6 +18,16 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 		prototype['@type'] = 'dto.dataset.update.DataSetUpdate';
 		constructor.serialVersionUID = 1;
 		prototype.dataSetId = null;
+		prototype.experimentId = null;
+		prototype.sampleId = null;
+		prototype.physicalData = null;
+		prototype.linkedData = null;
+		prototype.properties = null;
+		prototype.tagIds = null;
+		prototype.containerIds = null;
+		prototype.componentIds = null;
+		prototype.parentIds = null;
+		prototype.childIds = null;
 
 		prototype.getDataSetId = function() {
 			return this.dataSetId;
@@ -42,6 +53,12 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 		prototype.setPhysicalData = function(physicalData) {
 			this.physicalData.setValue(physicalData);
 		};
+		prototype.getLinkedData = function() {
+			return this.linkedData;
+		};
+		prototype.setLinkedData = function(linkedData) {
+			this.linkedData.setValue(linkedData);
+		};
 		prototype.setProperty = function(key, value) {
 			this.properties[key] = value;
 		};
@@ -92,6 +109,10 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 			name : "FieldUpdateValue",
 			arguments : [ "PhysicalDataUpdate" ]
 		},
+		linkedData : {
+			name : "FieldUpdateValue",
+			arguments : [ "LinkedDataUpdate" ]
+		},
 		properties : {
 			name : "Map",
 			arguments : [ null, null ]
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/LinkedDataUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/LinkedDataUpdate.js
index a6e21a53da3..64901978864 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/LinkedDataUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/LinkedDataUpdate.js
@@ -10,6 +10,9 @@ define([ "stjs", "dto/common/update/FieldUpdateValue" ], function(stjs, FieldUpd
 		prototype['@type'] = 'dto.dataset.update.LinkedDataUpdate';
 		constructor.serialVersionUID = 1;
 
+		prototype.externalCode = null;
+		prototype.externalDmsId = null;
+
 		prototype.getExternalCode = function() {
 			return this.externalCode;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/PhysicalDataUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/PhysicalDataUpdate.js
index 9cc2902038c..f37d7f4538a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/PhysicalDataUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/dataset/update/PhysicalDataUpdate.js
@@ -9,6 +9,8 @@ define([ "stjs", "dto/common/update/FieldUpdateValue" ], function(stjs, FieldUpd
 		prototype['@type'] = 'dto.dataset.update.PhysicalDataUpdate';
 		constructor.serialVersionUID = 1;
 
+		prototype.fileFormatTypeId = null;
+
 		prototype.getFileFormatTypeId = function() {
 			return this.fileFormatTypeId;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/deletion/fetchoptions/DeletionFetchOptions.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/deletion/fetchoptions/DeletionFetchOptions.js
index a73b6a1e68b..1eb85740882 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/deletion/fetchoptions/DeletionFetchOptions.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/deletion/fetchoptions/DeletionFetchOptions.js
@@ -10,13 +10,16 @@ define([ "require", "stjs", "dto/common/fetchoptions/FetchOptions", "dto/deletio
 		constructor.serialVersionUID = 1;
 		prototype.deletedObjects = null;
 		prototype.sort = null;
-		prototype.fetchDeletedObjects = function() {
+		prototype.withDeletedObjects = function() {
 			if (this.deletedObjects == null) {
 				var DeletedObjectFetchOptions = require("dto/deletion/fetchoptions/DeletedObjectFetchOptions");
 				this.deletedObjects = new DeletedObjectFetchOptions();
 			}
 			return this.deletedObjects;
 		};
+		prototype.withDeletedObjectsUsing = function(deletedObjects) {
+			this.deletedObjects = deletedObjects;
+		};
 		prototype.hasDeletedObjects = function() {
 			return this.deletedObjects != null;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/Experiment.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/Experiment.js
index 00274a84a93..36c18bf4f10 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/Experiment.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/Experiment.js
@@ -125,6 +125,10 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setProperties = function(properties) {
 			this.properties = properties;
 		};
+		prototype.getMaterialProperty = function(propertyName) {
+			var properties = this.getMaterialProperties();
+			return properties ? properties[propertyName] : null;
+		};
 		prototype.getMaterialProperties = function() {
 			if (this.getFetchOptions().hasMaterialProperties()) {
 				return this.materialProperties;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/update/ExperimentUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/update/ExperimentUpdate.js
index a506301c8ee..de7f2c1e165 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/update/ExperimentUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/experiment/update/ExperimentUpdate.js
@@ -13,6 +13,12 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 		prototype['@type'] = 'dto.experiment.update.ExperimentUpdate';
 		constructor.serialVersionUID = 1;
 		prototype.experimentId = null;
+
+		prototype.properties = null;
+		prototype.projectId = null;
+		prototype.tagIds = null;
+		prototype.attachments = null;
+
 		prototype.getExperimentId = function() {
 			return this.experimentId;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/Material.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/Material.js
index 29e12c745ae..2b28f01661d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/Material.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/Material.js
@@ -93,6 +93,10 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setProperties = function(properties) {
 			this.properties = properties;
 		};
+		prototype.getMaterialProperty = function(propertyName) {
+			var properties = this.getMaterialProperties();
+			return properties ? properties[propertyName] : null;
+		};
 		prototype.getMaterialProperties = function() {
 			if (this.getFetchOptions().hasMaterialProperties()) {
 				return this.materialProperties;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/create/MaterialCreation.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/create/MaterialCreation.js
index ec10299ccb2..cd7839a7aba 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/create/MaterialCreation.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/create/MaterialCreation.js
@@ -51,6 +51,9 @@ define([ "stjs" ], function(stjs) {
 		prototype.getProperties = function() {
 			return this.properties;
 		};
+		prototype.setProperties = function(properties) {
+			this.properties = properties;
+		};
 	}, {
 		typeId : "IEntityTypeId",
 		creationId : "CreationId",
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/id/MaterialPermId.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/id/MaterialPermId.js
index 1777c6cf3a3..057bd360907 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/id/MaterialPermId.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/id/MaterialPermId.js
@@ -31,8 +31,10 @@ define([ "stjs", "dto/material/id/IMaterialId" ], function(stjs, IMaterialId) {
 		}
 		prototype.toString = function() {
 			return this.getCode() + " (" + this.getTypeCode() + ")";
-		}
+		};
+		prototype.hashCode = function() {
 
+		};
 	}, {});
 	return MaterialPermId;
 })
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/update/MaterialUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/update/MaterialUpdate.js
index 1d13f38f883..7deee53aad1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/update/MaterialUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/material/update/MaterialUpdate.js
@@ -9,7 +9,11 @@ define([ "stjs", "dto/common/update/IdListUpdateValue" ], function(stjs, IdListU
 	stjs.extend(MaterialUpdate, null, [], function(constructor, prototype) {
 		prototype['@type'] = 'dto.material.update.MaterialUpdate';
 		constructor.serialVersionUID = 1;
+
 		prototype.materialId = null;
+		prototype.properties = null;
+		prototype.tagIds = null;
+
 		prototype.getMaterialId = function() {
 			return this.materialId;
 		};
@@ -25,6 +29,9 @@ define([ "stjs", "dto/common/update/IdListUpdateValue" ], function(stjs, IdListU
 		prototype.getTagIds = function() {
 			return this.tagIds;
 		};
+		prototype.setTagActions = function(actions) {
+			this.tagIds.setActions(actions);
+		};
 	}, {
 		materialId : "IMaterialId",
 		properties : {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/Project.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/Project.js
index fc1fde32711..84d958ea924 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/Project.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/Project.js
@@ -17,6 +17,7 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.modificationDate = null;
 		prototype.experiments = null;
 		prototype.samples = null;
+		prototype.history = null;
 		prototype.space = null;
 		prototype.registrator = null;
 		prototype.modifier = null;
@@ -84,6 +85,16 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setSamples = function(samples) {
 			this.samples = samples;
 		};
+		prototype.getHistory = function() {
+			if (this.getFetchOptions().hasHistory()) {
+				return this.history;
+			} else {
+				throw new exceptions.NotFetchedException("History have not been fetched.");
+			}
+		};
+		prototype.setHistory = function(history) {
+			this.history = history;
+		};
 		prototype.getSpace = function() {
 			if (this.getFetchOptions().hasSpace()) {
 				return this.space;
@@ -144,6 +155,10 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 			name : "List",
 			arguments : [ "Sample" ]
 		},
+		history : {
+			name : "List",
+			arguments : [ "HistoryEntry" ]
+		},
 		experiments : {
 			name : "List",
 			arguments : [ "Experiment" ]
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/fetchoptions/ProjectFetchOptions.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/fetchoptions/ProjectFetchOptions.js
index 01b2a3bda5b..1db90421434 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/fetchoptions/ProjectFetchOptions.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/fetchoptions/ProjectFetchOptions.js
@@ -4,7 +4,7 @@
  */
 define([ "require", "stjs", "dto/common/fetchoptions/FetchOptions", 'dto/person/fetchoptions/PersonFetchOptions', 'dto/space/fetchoptions/SpaceFetchOptions',
 		'dto/sample/fetchoptions/SampleFetchOptions', 'dto/experiment/fetchoptions/ExperimentFetchOptions', 'dto/attachment/fetchoptions/AttachmentFetchOptions',
-		'dto/project/fetchoptions/ProjectSortOptions' ], function(require, stjs, FetchOptions) {
+		'dto/project/fetchoptions/ProjectSortOptions', 'dto/history/fetchoptions/HistoryEntryFetchOptions' ], function(require, stjs, FetchOptions) {
 	var ProjectFetchOptions = function() {
 	};
 	stjs.extend(ProjectFetchOptions, FetchOptions, [ FetchOptions ], function(constructor, prototype) {
@@ -17,6 +17,7 @@ define([ "require", "stjs", "dto/common/fetchoptions/FetchOptions", 'dto/person/
 		prototype.modifier = null;
 		prototype.leader = null;
 		prototype.attachments = null;
+		prototype.history = null;
 		prototype.sort = null;
 		prototype.withExperiments = function() {
 			if (this.experiments == null) {
@@ -109,6 +110,19 @@ define([ "require", "stjs", "dto/common/fetchoptions/FetchOptions", 'dto/person/
 		prototype.hasAttachments = function() {
 			return this.attachments != null;
 		};
+		prototype.withHistory = function() {
+			if (this.history == null) {
+				var HistoryEntryFetchOptions = require("dto/history/fetchoptions/HistoryEntryFetchOptions");
+				this.history = new HistoryEntryFetchOptions();
+			}
+			return this.history;
+		};
+		prototype.withHistoryUsing = function(fetchOptions) {
+			return this.history = fetchOptions;
+		};
+		prototype.hasHistory = function() {
+			return this.history != null;
+		};
 		prototype.sortBy = function() {
 			if (this.sort == null) {
 				var ProjectSortOptions = require("dto/project/fetchoptions/ProjectSortOptions");
@@ -121,11 +135,13 @@ define([ "require", "stjs", "dto/common/fetchoptions/FetchOptions", 'dto/person/
 		};
 	}, {
 		experiments : "ExperimentFetchOptions",
+		samples : "SampleFetchOptions",
 		space : "SpaceFetchOptions",
 		registrator : "PersonFetchOptions",
 		modifier : "PersonFetchOptions",
 		leader : "PersonFetchOptions",
 		attachments : "AttachmentFetchOptions",
+		history : "HistoryEntryFetchOptions",
 		sort : "ProjectSortOptions"
 	});
 	return ProjectFetchOptions;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/update/ProjectUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/update/ProjectUpdate.js
index e7d875b9da2..39049d5fad7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/update/ProjectUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/project/update/ProjectUpdate.js
@@ -11,6 +11,10 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/attachment/update/At
 		prototype['@type'] = 'dto.project.update.ProjectUpdate';
 		constructor.serialVersionUID = 1;
 		prototype.projectId = null;
+		prototype.spaceId = null;
+		prototype.description = null;
+		prototype.attachments = null;
+
 		prototype.getProjectId = function() {
 			return this.projectId;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/Sample.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/Sample.js
index 88dfa14ab17..b5b3b6890fd 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/Sample.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/Sample.js
@@ -120,6 +120,10 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setProperties = function(properties) {
 			this.properties = properties;
 		};
+		prototype.getMaterialProperty = function(propertyName) {
+			var properties = this.getMaterialProperties();
+			return properties ? properties[propertyName] : null;
+		};
 		prototype.getMaterialProperties = function() {
 			if (this.getFetchOptions().hasMaterialProperties()) {
 				return this.materialProperties;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/create/SampleCreation.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/create/SampleCreation.js
index 196b67dfce9..63980e82e44 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/create/SampleCreation.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/create/SampleCreation.js
@@ -50,6 +50,12 @@ define([ "stjs" ], function(stjs) {
 		prototype.setCode = function(code) {
 			this.code = code;
 		};
+		prototype.isAutoGeneratedCode = function() {
+			return this.autoGeneratedCode;
+		}
+		prototype.setAutoGeneratedCode = function(autoGeneratedCode) {
+			this.autoGeneratedCode = autoGeneratedCode;
+		};
 		prototype.getTagIds = function() {
 			return this.tagIds;
 		};
@@ -62,7 +68,7 @@ define([ "stjs" ], function(stjs) {
 		prototype.setContainerId = function(containerId) {
 			this.containerId = containerId;
 		};
-		prototype.getcomponentIds = function() {
+		prototype.getComponentIds = function() {
 			return this.componentIds;
 		};
 		prototype.setComponentIds = function(componentIds) {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/update/SampleUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/update/SampleUpdate.js
index fbaa005dfac..73964a82eda 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/update/SampleUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/sample/update/SampleUpdate.js
@@ -19,6 +19,16 @@ define([ "stjs", "dto/common/update/FieldUpdateValue", "dto/common/update/IdList
 		prototype['@type'] = 'dto.sample.update.SampleUpdate';
 		constructor.serialVersionUID = 1;
 		prototype.sampleId = null;
+		prototype.properties = null;
+		prototype.experimentId = null;
+		prototype.projectId = null;
+		prototype.spaceId = null;
+		prototype.tagIds = null;
+		prototype.containerId = null;
+		prototype.componentIds = null;
+		prototype.parentIds = null;
+		prototype.childIds = null;
+		prototype.attachments = null;
 
 		prototype.getSampleId = function() {
 			return this.sampleId;
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/space/update/SpaceUpdate.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/space/update/SpaceUpdate.js
index 23dd379bca0..210b7167093 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/space/update/SpaceUpdate.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/space/update/SpaceUpdate.js
@@ -9,6 +9,7 @@ define([ "stjs", "dto/common/update/FieldUpdateValue" ], function(stjs, FieldUpd
 		prototype['@type'] = 'dto.space.update.SpaceUpdate';
 		constructor.serialVersionUID = 1;
 		prototype.spaceId = null;
+		prototype.description = null;
 		prototype.getSpaceId = function() {
 			return this.spaceId;
 		};
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/tag/fetchoptions/TagSortOptions.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/tag/fetchoptions/TagSortOptions.js
index eff26932446..635de2d044b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/tag/fetchoptions/TagSortOptions.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/tag/fetchoptions/TagSortOptions.js
@@ -2,9 +2,27 @@ define([ "require", "stjs", "dto/common/fetchoptions/SortOptions" ], function(re
 	var TagSortOptions = function() {
 		SortOptions.call(this);
 	};
+
+	var fields = {
+		CODE : "CODE",
+		REGISTRATION_DATE : "REGISTRATION_DATE"
+	};
+
 	stjs.extend(TagSortOptions, SortOptions, [ SortOptions ], function(constructor, prototype) {
 		prototype['@type'] = 'dto.tag.fetchoptions.TagSortOptions';
 		constructor.serialVersionUID = 1;
+		prototype.code = function() {
+			return this.getOrCreateSorting(fields.CODE);
+		};
+		prototype.getCode = function() {
+			return this.getSorting(fields.CODE);
+		};
+		prototype.registrationDate = function() {
+			return this.getOrCreateSorting(fields.REGISTRATION_DATE);
+		};
+		prototype.getRegistrationDate = function() {
+			return this.getSorting(fields.REGISTRATION_DATE);
+		};
 	}, {});
 	return TagSortOptions;
 })
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/vocabulary/VocabularyTerm.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/vocabulary/VocabularyTerm.js
index 95bad10bdc9..35a1d9475d8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/vocabulary/VocabularyTerm.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/dto/vocabulary/VocabularyTerm.js
@@ -49,7 +49,7 @@ define([ "stjs", "util/Exceptions" ], function(stjs, exceptions) {
 		prototype.setOrdinal = function(ordinal) {
 			this.ordinal = ordinal;
 		};
-		prototype.getOfficial = function() {
+		prototype.isOfficial = function() {
 			return this.official;
 		};
 		prototype.setOfficial = function(official) {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/util/Json.js b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/util/Json.js
index da775c7d3b4..fdc5b64fa95 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/util/Json.js
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/public/resources/api/v3/util/Json.js
@@ -57,14 +57,18 @@ define([ "underscore" ], function(_) {
 
 	var fromJsonObjectWithTypeOrArrayOrMap = function(jsonType, jsonObject, hashedObjects, modulesMap) {
 		if (jsonObject instanceof Array) {
-			var array = [];
-			var jsonType = jsonType ? jsonType["arguments"][0] : null;
+			if (jsonType && _.isString(jsonType) && jsonObject.length == 2) {
+				return jsonObject[1];
+			} else {
+				var array = [];
+				var jsonType = jsonType ? jsonType["arguments"][0] : null;
 
-			jsonObject.forEach(function(item, index) {
-				var dto = fromJsonObjectWithTypeOrArrayOrMap(jsonType, item, hashedObjects, modulesMap);
-				array.push(dto);
-			});
-			return array;
+				jsonObject.forEach(function(item, index) {
+					var dto = fromJsonObjectWithTypeOrArrayOrMap(jsonType, item, hashedObjects, modulesMap);
+					array.push(dto);
+				});
+				return array;
+			}
 		} else if (jsonObject instanceof Object) {
 			if (jsonObject["@type"]) {
 				return fromJsonObjectWithType(jsonObject, hashedObjects, modulesMap)
diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/common/search/AbstractFieldSearchCriteria.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/common/search/AbstractFieldSearchCriteria.java
index bcb7d7e3637..5135e9cb03f 100644
--- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/common/search/AbstractFieldSearchCriteria.java
+++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/common/search/AbstractFieldSearchCriteria.java
@@ -41,11 +41,6 @@ public abstract class AbstractFieldSearchCriteria<T> extends AbstractSearchCrite
         return fieldName;
     }
 
-    public void setFieldName(String name)
-    {
-        this.fieldName = name;
-    }
-
     public SearchFieldType getFieldType()
     {
         return fieldType;
diff --git a/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/dataset/id/LocatorTypePermId.java b/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/dataset/id/LocatorTypePermId.java
index 59246963ad2..be9f4718090 100644
--- a/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/dataset/id/LocatorTypePermId.java
+++ b/openbis_api/source/java/ch/ethz/sis/openbis/generic/as/api/v3/dto/dataset/id/LocatorTypePermId.java
@@ -24,7 +24,7 @@ import ch.systemsx.cisd.base.annotation.JsonObject;
  * 
  * @author pkupczyk
  */
-@JsonObject("dto.dataset.id.LocatorTypeTypePermId")
+@JsonObject("dto.dataset.id.LocatorTypePermId")
 public class LocatorTypePermId extends ObjectPermId implements ILocatorTypeId
 {
 
-- 
GitLab