ICC profile, version 4: GraphViz block diagram (.dot) source

KS implementation details

License: CC0-1.0

This page hosts a formal specification of ICC profile, version 4 using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.

GraphViz block diagram source

icc_4.dot

digraph {
	rankdir=LR;
	node [shape=plaintext];
	subgraph cluster__icc_4 {
		label="Icc4";
		graph[style=dotted];

		icc_4__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
			<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
			<TR><TD PORT="header_pos">0</TD><TD PORT="header_size">128</TD><TD>ProfileHeader</TD><TD PORT="header_type">header</TD></TR>
			<TR><TD PORT="tag_table_pos">128</TD><TD PORT="tag_table_size">...</TD><TD>TagTable</TD><TD PORT="tag_table_type">tag_table</TD></TR>
		</TABLE>>];
		subgraph cluster__u_8_fixed_8_number {
			label="Icc4::U8Fixed8Number";
			graph[style=dotted];

			u_8_fixed_8_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="number_pos">0</TD><TD PORT="number_size">2</TD><TD></TD><TD PORT="number_type">number</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__u_16_fixed_16_number {
			label="Icc4::U16Fixed16Number";
			graph[style=dotted];

			u_16_fixed_16_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="number_pos">0</TD><TD PORT="number_size">4</TD><TD></TD><TD PORT="number_type">number</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__standard_illuminant_encoding {
			label="Icc4::StandardIlluminantEncoding";
			graph[style=dotted];

			standard_illuminant_encoding__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="standard_illuminant_encoding_pos">0</TD><TD PORT="standard_illuminant_encoding_size">4</TD><TD>u4be→StandardIlluminantEncodings</TD><TD PORT="standard_illuminant_encoding_type">standard_illuminant_encoding</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__profile_header {
			label="Icc4::ProfileHeader";
			graph[style=dotted];

			profile_header__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="size_pos">0</TD><TD PORT="size_size">4</TD><TD>u4be</TD><TD PORT="size_type">size</TD></TR>
				<TR><TD PORT="preferred_cmm_type_pos">4</TD><TD PORT="preferred_cmm_type_size">4</TD><TD>u4be→CmmSignatures</TD><TD PORT="preferred_cmm_type_type">preferred_cmm_type</TD></TR>
				<TR><TD PORT="version_pos">8</TD><TD PORT="version_size">4</TD><TD>VersionField</TD><TD PORT="version_type">version</TD></TR>
				<TR><TD PORT="device_class_pos">12</TD><TD PORT="device_class_size">4</TD><TD>u4be→ProfileClasses</TD><TD PORT="device_class_type">device_class</TD></TR>
				<TR><TD PORT="color_space_pos">16</TD><TD PORT="color_space_size">4</TD><TD>u4be→DataColourSpaces</TD><TD PORT="color_space_type">color_space</TD></TR>
				<TR><TD PORT="pcs_pos">20</TD><TD PORT="pcs_size">4</TD><TD>str(ASCII)</TD><TD PORT="pcs_type">pcs</TD></TR>
				<TR><TD PORT="creation_date_time_pos">24</TD><TD PORT="creation_date_time_size">12</TD><TD>DateTimeNumber</TD><TD PORT="creation_date_time_type">creation_date_time</TD></TR>
				<TR><TD PORT="file_signature_pos">36</TD><TD PORT="file_signature_size">4</TD><TD>61 63 73 70</TD><TD PORT="file_signature_type">file_signature</TD></TR>
				<TR><TD PORT="primary_platform_pos">40</TD><TD PORT="primary_platform_size">4</TD><TD>u4be→PrimaryPlatforms</TD><TD PORT="primary_platform_type">primary_platform</TD></TR>
				<TR><TD PORT="profile_flags_pos">44</TD><TD PORT="profile_flags_size">4</TD><TD>ProfileFlags</TD><TD PORT="profile_flags_type">profile_flags</TD></TR>
				<TR><TD PORT="device_manufacturer_pos">48</TD><TD PORT="device_manufacturer_size">4</TD><TD>DeviceManufacturer</TD><TD PORT="device_manufacturer_type">device_manufacturer</TD></TR>
				<TR><TD PORT="device_model_pos">52</TD><TD PORT="device_model_size">4</TD><TD>str(ASCII)</TD><TD PORT="device_model_type">device_model</TD></TR>
				<TR><TD PORT="device_attributes_pos">56</TD><TD PORT="device_attributes_size">8</TD><TD>DeviceAttributes</TD><TD PORT="device_attributes_type">device_attributes</TD></TR>
				<TR><TD PORT="rendering_intent_pos">64</TD><TD PORT="rendering_intent_size">4</TD><TD>u4be→RenderingIntents</TD><TD PORT="rendering_intent_type">rendering_intent</TD></TR>
				<TR><TD PORT="nciexyz_values_of_illuminant_of_pcs_pos">68</TD><TD PORT="nciexyz_values_of_illuminant_of_pcs_size">12</TD><TD>XyzNumber</TD><TD PORT="nciexyz_values_of_illuminant_of_pcs_type">nciexyz_values_of_illuminant_of_pcs</TD></TR>
				<TR><TD PORT="creator_pos">80</TD><TD PORT="creator_size">4</TD><TD>DeviceManufacturer</TD><TD PORT="creator_type">creator</TD></TR>
				<TR><TD PORT="identifier_pos">84</TD><TD PORT="identifier_size">16</TD><TD></TD><TD PORT="identifier_type">identifier</TD></TR>
				<TR><TD PORT="reserved_data_pos">100</TD><TD PORT="reserved_data_size">28</TD><TD></TD><TD PORT="reserved_data_type">reserved_data</TD></TR>
			</TABLE>>];
			subgraph cluster__version_field {
				label="Icc4::ProfileHeader::VersionField";
				graph[style=dotted];

				version_field__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="major_pos">0</TD><TD PORT="major_size">1</TD><TD>04</TD><TD PORT="major_type">major</TD></TR>
					<TR><TD PORT="minor_pos">1</TD><TD PORT="minor_size">4b</TD><TD>b4</TD><TD PORT="minor_type">minor</TD></TR>
					<TR><TD PORT="bug_fix_level_pos">1:4</TD><TD PORT="bug_fix_level_size">4b</TD><TD>b4</TD><TD PORT="bug_fix_level_type">bug_fix_level</TD></TR>
					<TR><TD PORT="reserved_pos">2</TD><TD PORT="reserved_size">2</TD><TD>00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
				</TABLE>>];
			}
			subgraph cluster__profile_flags {
				label="Icc4::ProfileHeader::ProfileFlags";
				graph[style=dotted];

				profile_flags__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="embedded_profile_pos">0</TD><TD PORT="embedded_profile_size">1b</TD><TD>BitsType1</TD><TD PORT="embedded_profile_type">embedded_profile</TD></TR>
					<TR><TD PORT="profile_can_be_used_independently_of_embedded_colour_data_pos">0:1</TD><TD PORT="profile_can_be_used_independently_of_embedded_colour_data_size">1b</TD><TD>BitsType1</TD><TD PORT="profile_can_be_used_independently_of_embedded_colour_data_type">profile_can_be_used_independently_of_embedded_colour_data</TD></TR>
					<TR><TD PORT="other_flags_pos">0:2</TD><TD PORT="other_flags_size">30b</TD><TD>b30</TD><TD PORT="other_flags_type">other_flags</TD></TR>
				</TABLE>>];
			}
		}
		subgraph cluster__xyz_number {
			label="Icc4::XyzNumber";
			graph[style=dotted];

			xyz_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="x_pos">0</TD><TD PORT="x_size">4</TD><TD></TD><TD PORT="x_type">x</TD></TR>
				<TR><TD PORT="y_pos">4</TD><TD PORT="y_size">4</TD><TD></TD><TD PORT="y_type">y</TD></TR>
				<TR><TD PORT="z_pos">8</TD><TD PORT="z_size">4</TD><TD></TD><TD PORT="z_type">z</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__date_time_number {
			label="Icc4::DateTimeNumber";
			graph[style=dotted];

			date_time_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="year_pos">0</TD><TD PORT="year_size">2</TD><TD>u2be</TD><TD PORT="year_type">year</TD></TR>
				<TR><TD PORT="month_pos">2</TD><TD PORT="month_size">2</TD><TD>u2be</TD><TD PORT="month_type">month</TD></TR>
				<TR><TD PORT="day_pos">4</TD><TD PORT="day_size">2</TD><TD>u2be</TD><TD PORT="day_type">day</TD></TR>
				<TR><TD PORT="hour_pos">6</TD><TD PORT="hour_size">2</TD><TD>u2be</TD><TD PORT="hour_type">hour</TD></TR>
				<TR><TD PORT="minute_pos">8</TD><TD PORT="minute_size">2</TD><TD>u2be</TD><TD PORT="minute_type">minute</TD></TR>
				<TR><TD PORT="second_pos">10</TD><TD PORT="second_size">2</TD><TD>u2be</TD><TD PORT="second_type">second</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__response_16_number {
			label="Icc4::Response16Number";
			graph[style=dotted];

			response_16_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="number_pos">0</TD><TD PORT="number_size">4</TD><TD>u4be</TD><TD PORT="number_type">number</TD></TR>
				<TR><TD PORT="reserved_pos">4</TD><TD PORT="reserved_size">2</TD><TD>00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
				<TR><TD PORT="measurement_value_pos">6</TD><TD PORT="measurement_value_size">4</TD><TD>S15Fixed16Number</TD><TD PORT="measurement_value_type">measurement_value</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__u_1_fixed_15_number {
			label="Icc4::U1Fixed15Number";
			graph[style=dotted];

			u_1_fixed_15_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="number_pos">0</TD><TD PORT="number_size">2</TD><TD></TD><TD PORT="number_type">number</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__tag_table {
			label="Icc4::TagTable";
			graph[style=dotted];

			tag_table__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="tag_count_pos">0</TD><TD PORT="tag_count_size">4</TD><TD>u4be</TD><TD PORT="tag_count_type">tag_count</TD></TR>
				<TR><TD PORT="tags_pos">4</TD><TD PORT="tags_size">12</TD><TD>TagDefinition</TD><TD PORT="tags_type">tags</TD></TR>
				<TR><TD COLSPAN="4" PORT="tags__repeat">repeat tag_count times</TD></TR>
			</TABLE>>];
			subgraph cluster__tag_definition {
				label="Icc4::TagTable::TagDefinition";
				graph[style=dotted];

				tag_definition__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="tag_signature_pos">0</TD><TD PORT="tag_signature_size">4</TD><TD>u4be→TagSignatures</TD><TD PORT="tag_signature_type">tag_signature</TD></TR>
					<TR><TD PORT="offset_to_data_element_pos">4</TD><TD PORT="offset_to_data_element_size">4</TD><TD>u4be</TD><TD PORT="offset_to_data_element_type">offset_to_data_element</TD></TR>
					<TR><TD PORT="size_of_data_element_pos">8</TD><TD PORT="size_of_data_element_size">4</TD><TD>u4be</TD><TD PORT="size_of_data_element_type">size_of_data_element</TD></TR>
				</TABLE>>];
				tag_definition__inst__tag_data_element [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
					<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
					<TR><TD PORT="tag_data_element_pos">offset_to_data_element</TD><TD PORT="tag_data_element_size">...</TD><TD>switch (tag_signature)</TD><TD PORT="tag_data_element_type">tag_data_element</TD></TR>
				</TABLE>>];
tag_definition__inst__tag_data_element_tag_data_element_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_signatures_profile_sequence_identifier</TD><TD PORT="case0">ProfileSequenceIdentifierTag</TD></TR>
	<TR><TD>:tag_signatures_colorimetric_intent_image_state</TD><TD PORT="case1">ColorimetricIntentImageStateTag</TD></TR>
	<TR><TD>:tag_signatures_red_trc</TD><TD PORT="case2">RedTrcTag</TD></TR>
	<TR><TD>:tag_signatures_preview_0</TD><TD PORT="case3">Preview0Tag</TD></TR>
	<TR><TD>:tag_signatures_green_trc</TD><TD PORT="case4">GreenTrcTag</TD></TR>
	<TR><TD>:tag_signatures_b_to_d_0</TD><TD PORT="case5">BToD0Tag</TD></TR>
	<TR><TD>:tag_signatures_colorant_table_out</TD><TD PORT="case6">ColorantTableOutTag</TD></TR>
	<TR><TD>:tag_signatures_b_to_a_2</TD><TD PORT="case7">BToA2Tag</TD></TR>
	<TR><TD>:tag_signatures_calibration_date_time</TD><TD PORT="case8">CalibrationDateTimeTag</TD></TR>
	<TR><TD>:tag_signatures_chromatic_adaptation</TD><TD PORT="case9">ChromaticAdaptationTag</TD></TR>
	<TR><TD>:tag_signatures_colorant_table</TD><TD PORT="case10">ColorantTableTag</TD></TR>
	<TR><TD>:tag_signatures_a_to_b_2</TD><TD PORT="case11">AToB2Tag</TD></TR>
	<TR><TD>:tag_signatures_d_to_b_1</TD><TD PORT="case12">DToB1Tag</TD></TR>
	<TR><TD>:tag_signatures_chromaticity</TD><TD PORT="case13">ChromaticityTag</TD></TR>
	<TR><TD>:tag_signatures_blue_matrix_column</TD><TD PORT="case14">BlueMatrixColumnTag</TD></TR>
	<TR><TD>:tag_signatures_a_to_b_0</TD><TD PORT="case15">AToB0Tag</TD></TR>
	<TR><TD>:tag_signatures_b_to_d_2</TD><TD PORT="case16">BToD2Tag</TD></TR>
	<TR><TD>:tag_signatures_b_to_a_1</TD><TD PORT="case17">BToA1Tag</TD></TR>
	<TR><TD>:tag_signatures_media_white_point</TD><TD PORT="case18">MediaWhitePointTag</TD></TR>
	<TR><TD>:tag_signatures_d_to_b_0</TD><TD PORT="case19">DToB0Tag</TD></TR>
	<TR><TD>:tag_signatures_named_color_2</TD><TD PORT="case20">NamedColor2Tag</TD></TR>
	<TR><TD>:tag_signatures_d_to_b_2</TD><TD PORT="case21">DToB2Tag</TD></TR>
	<TR><TD>:tag_signatures_red_matrix_column</TD><TD PORT="case22">RedMatrixColumnTag</TD></TR>
	<TR><TD>:tag_signatures_viewing_conditions</TD><TD PORT="case23">ViewingConditionsTag</TD></TR>
	<TR><TD>:tag_signatures_a_to_b_1</TD><TD PORT="case24">AToB1Tag</TD></TR>
	<TR><TD>:tag_signatures_preview_1</TD><TD PORT="case25">Preview1Tag</TD></TR>
	<TR><TD>:tag_signatures_gray_trc</TD><TD PORT="case26">GrayTrcTag</TD></TR>
	<TR><TD>:tag_signatures_device_mfg_desc</TD><TD PORT="case27">DeviceMfgDescTag</TD></TR>
	<TR><TD>:tag_signatures_b_to_d_1</TD><TD PORT="case28">BToD1Tag</TD></TR>
	<TR><TD>:tag_signatures_colorant_order</TD><TD PORT="case29">ColorantOrderTag</TD></TR>
	<TR><TD>:tag_signatures_copyright</TD><TD PORT="case30">CopyrightTag</TD></TR>
	<TR><TD>:tag_signatures_gamut</TD><TD PORT="case31">GamutTag</TD></TR>
	<TR><TD>:tag_signatures_char_target</TD><TD PORT="case32">CharTargetTag</TD></TR>
	<TR><TD>:tag_signatures_output_response</TD><TD PORT="case33">OutputResponseTag</TD></TR>
	<TR><TD>:tag_signatures_technology</TD><TD PORT="case34">TechnologyTag</TD></TR>
	<TR><TD>:tag_signatures_viewing_cond_desc</TD><TD PORT="case35">ViewingCondDescTag</TD></TR>
	<TR><TD>:tag_signatures_profile_description</TD><TD PORT="case36">ProfileDescriptionTag</TD></TR>
	<TR><TD>:tag_signatures_luminance</TD><TD PORT="case37">LuminanceTag</TD></TR>
	<TR><TD>:tag_signatures_d_to_b_3</TD><TD PORT="case38">DToB3Tag</TD></TR>
	<TR><TD>:tag_signatures_b_to_d_3</TD><TD PORT="case39">BToD3Tag</TD></TR>
	<TR><TD>:tag_signatures_b_to_a_0</TD><TD PORT="case40">BToA0Tag</TD></TR>
	<TR><TD>:tag_signatures_preview_2</TD><TD PORT="case41">Preview2Tag</TD></TR>
	<TR><TD>:tag_signatures_green_matrix_column</TD><TD PORT="case42">GreenMatrixColumnTag</TD></TR>
	<TR><TD>:tag_signatures_profile_sequence</TD><TD PORT="case43">ProfileSequenceTag</TD></TR>
	<TR><TD>:tag_signatures_saturation_rendering_intent_gamut</TD><TD PORT="case44">SaturationRenderingIntentGamutTag</TD></TR>
	<TR><TD>:tag_signatures_perceptual_rendering_intent_gamut</TD><TD PORT="case45">PerceptualRenderingIntentGamutTag</TD></TR>
	<TR><TD>:tag_signatures_blue_trc</TD><TD PORT="case46">BlueTrcTag</TD></TR>
	<TR><TD>:tag_signatures_device_model_desc</TD><TD PORT="case47">DeviceModelDescTag</TD></TR>
	<TR><TD>:tag_signatures_measurement</TD><TD PORT="case48">MeasurementTag</TD></TR>
</TABLE>>];
				subgraph cluster__blue_matrix_column_tag {
					label="Icc4::TagTable::TagDefinition::BlueMatrixColumnTag";
					graph[style=dotted];

					blue_matrix_column_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
blue_matrix_column_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_xyz_type</TD><TD PORT="case0">XyzType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__device_mfg_desc_tag {
					label="Icc4::TagTable::TagDefinition::DeviceMfgDescTag";
					graph[style=dotted];

					device_mfg_desc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
device_mfg_desc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_localized_unicode_type</TD><TD PORT="case0">MultiLocalizedUnicodeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__named_color_2_type {
					label="Icc4::TagTable::TagDefinition::NamedColor2Type";
					graph[style=dotted];

					named_color_2_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="vendor_specific_flag_pos">4</TD><TD PORT="vendor_specific_flag_size">4</TD><TD>u4be</TD><TD PORT="vendor_specific_flag_type">vendor_specific_flag</TD></TR>
						<TR><TD PORT="count_of_named_colours_pos">8</TD><TD PORT="count_of_named_colours_size">4</TD><TD>u4be</TD><TD PORT="count_of_named_colours_type">count_of_named_colours</TD></TR>
						<TR><TD PORT="number_of_device_coordinates_for_each_named_colour_pos">12</TD><TD PORT="number_of_device_coordinates_for_each_named_colour_size">4</TD><TD>u4be</TD><TD PORT="number_of_device_coordinates_for_each_named_colour_type">number_of_device_coordinates_for_each_named_colour</TD></TR>
						<TR><TD PORT="prefix_for_each_colour_name_pos">16</TD><TD PORT="prefix_for_each_colour_name_size">...</TD><TD>str(ASCII)</TD><TD PORT="prefix_for_each_colour_name_type">prefix_for_each_colour_name</TD></TR>
						<TR><TD PORT="prefix_for_each_colour_name_padding_pos">...</TD><TD PORT="prefix_for_each_colour_name_padding_size">1</TD><TD>00</TD><TD PORT="prefix_for_each_colour_name_padding_type">prefix_for_each_colour_name_padding</TD></TR>
						<TR><TD COLSPAN="4" PORT="prefix_for_each_colour_name_padding__repeat">repeat (32 - prefix_for_each_colour_name.size) times</TD></TR>
						<TR><TD PORT="suffix_for_each_colour_name_pos">...</TD><TD PORT="suffix_for_each_colour_name_size">...</TD><TD>str(ASCII)</TD><TD PORT="suffix_for_each_colour_name_type">suffix_for_each_colour_name</TD></TR>
						<TR><TD PORT="suffix_for_each_colour_name_padding_pos">...</TD><TD PORT="suffix_for_each_colour_name_padding_size">1</TD><TD>00</TD><TD PORT="suffix_for_each_colour_name_padding_type">suffix_for_each_colour_name_padding</TD></TR>
						<TR><TD COLSPAN="4" PORT="suffix_for_each_colour_name_padding__repeat">repeat (32 - suffix_for_each_colour_name.size) times</TD></TR>
						<TR><TD PORT="named_colour_definitions_pos">...</TD><TD PORT="named_colour_definitions_size">...</TD><TD>NamedColourDefinition</TD><TD PORT="named_colour_definitions_type">named_colour_definitions</TD></TR>
						<TR><TD COLSPAN="4" PORT="named_colour_definitions__repeat">repeat count_of_named_colours times</TD></TR>
					</TABLE>>];
					subgraph cluster__named_colour_definition {
						label="Icc4::TagTable::TagDefinition::NamedColor2Type::NamedColourDefinition";
						graph[style=dotted];

						named_colour_definition__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="root_name_pos">0</TD><TD PORT="root_name_size">...</TD><TD>str(ASCII)</TD><TD PORT="root_name_type">root_name</TD></TR>
							<TR><TD PORT="root_name_padding_pos">...</TD><TD PORT="root_name_padding_size">1</TD><TD>00</TD><TD PORT="root_name_padding_type">root_name_padding</TD></TR>
							<TR><TD COLSPAN="4" PORT="root_name_padding__repeat">repeat (32 - root_name.size) times</TD></TR>
							<TR><TD PORT="pcs_coordinates_pos">...</TD><TD PORT="pcs_coordinates_size">6</TD><TD></TD><TD PORT="pcs_coordinates_type">pcs_coordinates</TD></TR>
							<TR><TD PORT="device_coordinates_pos">...</TD><TD PORT="device_coordinates_size">2</TD><TD>u2be</TD><TD PORT="device_coordinates_type">device_coordinates</TD></TR>
							<TR><TD COLSPAN="4" PORT="device_coordinates__repeat">repeat _parent.count_of_named_colours times</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__viewing_conditions_tag {
					label="Icc4::TagTable::TagDefinition::ViewingConditionsTag";
					graph[style=dotted];

					viewing_conditions_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
viewing_conditions_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_viewing_conditions_type</TD><TD PORT="case0">ViewingConditionsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__blue_trc_tag {
					label="Icc4::TagTable::TagDefinition::BlueTrcTag";
					graph[style=dotted];

					blue_trc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
blue_trc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_curve_type</TD><TD PORT="case0">CurveType</TD></TR>
	<TR><TD>:tag_type_signatures_parametric_curve_type</TD><TD PORT="case1">ParametricCurveType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__response_curve_set_16_type {
					label="Icc4::TagTable::TagDefinition::ResponseCurveSet16Type";
					graph[style=dotted];

					response_curve_set_16_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_channels_pos">4</TD><TD PORT="number_of_channels_size">2</TD><TD>u2be</TD><TD PORT="number_of_channels_type">number_of_channels</TD></TR>
						<TR><TD PORT="count_of_measurement_types_pos">6</TD><TD PORT="count_of_measurement_types_size">2</TD><TD>u2be</TD><TD PORT="count_of_measurement_types_type">count_of_measurement_types</TD></TR>
						<TR><TD PORT="response_curve_structure_offsets_pos">8</TD><TD PORT="response_curve_structure_offsets_size">4</TD><TD>u4be</TD><TD PORT="response_curve_structure_offsets_type">response_curve_structure_offsets</TD></TR>
						<TR><TD COLSPAN="4" PORT="response_curve_structure_offsets__repeat">repeat count_of_measurement_types times</TD></TR>
						<TR><TD PORT="response_curve_structures_pos">...</TD><TD PORT="response_curve_structures_size">⇲</TD><TD></TD><TD PORT="response_curve_structures_type">response_curve_structures</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__curve_type {
					label="Icc4::TagTable::TagDefinition::CurveType";
					graph[style=dotted];

					curve_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_entries_pos">4</TD><TD PORT="number_of_entries_size">4</TD><TD>u4be</TD><TD PORT="number_of_entries_type">number_of_entries</TD></TR>
						<TR><TD PORT="curve_values_pos">8</TD><TD PORT="curve_values_size">4</TD><TD>u4be</TD><TD PORT="curve_values_type">curve_values</TD></TR>
						<TR><TD COLSPAN="4" PORT="curve_values__repeat">repeat number_of_entries times</TD></TR>
						<TR><TD PORT="curve_value_pos">...</TD><TD PORT="curve_value_size">1</TD><TD>u1</TD><TD PORT="curve_value_type">curve_value</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__saturation_rendering_intent_gamut_tag {
					label="Icc4::TagTable::TagDefinition::SaturationRenderingIntentGamutTag";
					graph[style=dotted];

					saturation_rendering_intent_gamut_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
saturation_rendering_intent_gamut_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_signature_type</TD><TD PORT="case0">SignatureType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__xyz_type {
					label="Icc4::TagTable::TagDefinition::XyzType";
					graph[style=dotted];

					xyz_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">12</TD><TD>XyzNumber</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__lut_8_type {
					label="Icc4::TagTable::TagDefinition::Lut8Type";
					graph[style=dotted];

					lut_8_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_input_channels_pos">4</TD><TD PORT="number_of_input_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_input_channels_type">number_of_input_channels</TD></TR>
						<TR><TD PORT="number_of_output_channels_pos">5</TD><TD PORT="number_of_output_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_output_channels_type">number_of_output_channels</TD></TR>
						<TR><TD PORT="number_of_clut_grid_points_pos">6</TD><TD PORT="number_of_clut_grid_points_size">1</TD><TD>u1</TD><TD PORT="number_of_clut_grid_points_type">number_of_clut_grid_points</TD></TR>
						<TR><TD PORT="padding_pos">7</TD><TD PORT="padding_size">1</TD><TD>00</TD><TD PORT="padding_type">padding</TD></TR>
						<TR><TD PORT="encoded_e_parameters_pos">8</TD><TD PORT="encoded_e_parameters_size">4</TD><TD>s4be</TD><TD PORT="encoded_e_parameters_type">encoded_e_parameters</TD></TR>
						<TR><TD COLSPAN="4" PORT="encoded_e_parameters__repeat">repeat 9 times</TD></TR>
						<TR><TD PORT="number_of_input_table_entries_pos">44</TD><TD PORT="number_of_input_table_entries_size">4</TD><TD>u4be</TD><TD PORT="number_of_input_table_entries_type">number_of_input_table_entries</TD></TR>
						<TR><TD PORT="number_of_output_table_entries_pos">48</TD><TD PORT="number_of_output_table_entries_size">4</TD><TD>u4be</TD><TD PORT="number_of_output_table_entries_type">number_of_output_table_entries</TD></TR>
						<TR><TD PORT="input_tables_pos">52</TD><TD PORT="input_tables_size">(256 * number_of_input_channels)</TD><TD></TD><TD PORT="input_tables_type">input_tables</TD></TR>
						<TR><TD PORT="clut_values_pos">...</TD><TD PORT="clut_values_size">((number_of_clut_grid_points ^ number_of_input_channels) * number_of_output_channels)</TD><TD></TD><TD PORT="clut_values_type">clut_values</TD></TR>
						<TR><TD PORT="output_tables_pos">...</TD><TD PORT="output_tables_size">(256 * number_of_output_channels)</TD><TD></TD><TD PORT="output_tables_type">output_tables</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__b_to_a_2_tag {
					label="Icc4::TagTable::TagDefinition::BToA2Tag";
					graph[style=dotted];

					b_to_a_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_a_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__lut_a_to_b_type {
					label="Icc4::TagTable::TagDefinition::LutAToBType";
					graph[style=dotted];

					lut_a_to_b_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_input_channels_pos">4</TD><TD PORT="number_of_input_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_input_channels_type">number_of_input_channels</TD></TR>
						<TR><TD PORT="number_of_output_channels_pos">5</TD><TD PORT="number_of_output_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_output_channels_type">number_of_output_channels</TD></TR>
						<TR><TD PORT="padding_pos">6</TD><TD PORT="padding_size">2</TD><TD>00 00</TD><TD PORT="padding_type">padding</TD></TR>
						<TR><TD PORT="offset_to_first_b_curve_pos">8</TD><TD PORT="offset_to_first_b_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_b_curve_type">offset_to_first_b_curve</TD></TR>
						<TR><TD PORT="offset_to_matrix_pos">12</TD><TD PORT="offset_to_matrix_size">4</TD><TD>u4be</TD><TD PORT="offset_to_matrix_type">offset_to_matrix</TD></TR>
						<TR><TD PORT="offset_to_first_m_curve_pos">16</TD><TD PORT="offset_to_first_m_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_m_curve_type">offset_to_first_m_curve</TD></TR>
						<TR><TD PORT="offset_to_clut_pos">20</TD><TD PORT="offset_to_clut_size">4</TD><TD>u4be</TD><TD PORT="offset_to_clut_type">offset_to_clut</TD></TR>
						<TR><TD PORT="offset_to_first_a_curve_pos">24</TD><TD PORT="offset_to_first_a_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_a_curve_type">offset_to_first_a_curve</TD></TR>
						<TR><TD PORT="data_pos">28</TD><TD PORT="data_size">⇲</TD><TD></TD><TD PORT="data_type">data</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__b_to_a_0_tag {
					label="Icc4::TagTable::TagDefinition::BToA0Tag";
					graph[style=dotted];

					b_to_a_0_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_a_0_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__media_white_point_tag {
					label="Icc4::TagTable::TagDefinition::MediaWhitePointTag";
					graph[style=dotted];

					media_white_point_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
media_white_point_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_xyz_type</TD><TD PORT="case0">XyzType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__lut_16_type {
					label="Icc4::TagTable::TagDefinition::Lut16Type";
					graph[style=dotted];

					lut_16_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_input_channels_pos">4</TD><TD PORT="number_of_input_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_input_channels_type">number_of_input_channels</TD></TR>
						<TR><TD PORT="number_of_output_channels_pos">5</TD><TD PORT="number_of_output_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_output_channels_type">number_of_output_channels</TD></TR>
						<TR><TD PORT="number_of_clut_grid_points_pos">6</TD><TD PORT="number_of_clut_grid_points_size">1</TD><TD>u1</TD><TD PORT="number_of_clut_grid_points_type">number_of_clut_grid_points</TD></TR>
						<TR><TD PORT="padding_pos">7</TD><TD PORT="padding_size">1</TD><TD>00</TD><TD PORT="padding_type">padding</TD></TR>
						<TR><TD PORT="encoded_e_parameters_pos">8</TD><TD PORT="encoded_e_parameters_size">4</TD><TD>s4be</TD><TD PORT="encoded_e_parameters_type">encoded_e_parameters</TD></TR>
						<TR><TD COLSPAN="4" PORT="encoded_e_parameters__repeat">repeat 9 times</TD></TR>
						<TR><TD PORT="number_of_input_table_entries_pos">44</TD><TD PORT="number_of_input_table_entries_size">4</TD><TD>u4be</TD><TD PORT="number_of_input_table_entries_type">number_of_input_table_entries</TD></TR>
						<TR><TD PORT="number_of_output_table_entries_pos">48</TD><TD PORT="number_of_output_table_entries_size">4</TD><TD>u4be</TD><TD PORT="number_of_output_table_entries_type">number_of_output_table_entries</TD></TR>
						<TR><TD PORT="input_tables_pos">52</TD><TD PORT="input_tables_size">((2 * number_of_input_channels) * number_of_input_table_entries)</TD><TD></TD><TD PORT="input_tables_type">input_tables</TD></TR>
						<TR><TD PORT="clut_values_pos">...</TD><TD PORT="clut_values_size">((2 * (number_of_clut_grid_points ^ number_of_input_channels)) * number_of_output_channels)</TD><TD></TD><TD PORT="clut_values_type">clut_values</TD></TR>
						<TR><TD PORT="output_tables_pos">...</TD><TD PORT="output_tables_size">((2 * number_of_output_channels) * number_of_output_table_entries)</TD><TD></TD><TD PORT="output_tables_type">output_tables</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__perceptual_rendering_intent_gamut_tag {
					label="Icc4::TagTable::TagDefinition::PerceptualRenderingIntentGamutTag";
					graph[style=dotted];

					perceptual_rendering_intent_gamut_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
perceptual_rendering_intent_gamut_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_signature_type</TD><TD PORT="case0">SignatureType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__u_16_fixed_16_array_type {
					label="Icc4::TagTable::TagDefinition::U16Fixed16ArrayType";
					graph[style=dotted];

					u_16_fixed_16_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">4</TD><TD>U16Fixed16Number</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__colorant_table_out_tag {
					label="Icc4::TagTable::TagDefinition::ColorantTableOutTag";
					graph[style=dotted];

					colorant_table_out_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
colorant_table_out_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_colorant_table_type</TD><TD PORT="case0">ColorantTableType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__measurement_tag {
					label="Icc4::TagTable::TagDefinition::MeasurementTag";
					graph[style=dotted];

					measurement_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
measurement_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_measurement_type</TD><TD PORT="case0">MeasurementType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__profile_sequence_tag {
					label="Icc4::TagTable::TagDefinition::ProfileSequenceTag";
					graph[style=dotted];

					profile_sequence_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
profile_sequence_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_profile_sequence_desc_type</TD><TD PORT="case0">ProfileSequenceDescType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__technology_tag {
					label="Icc4::TagTable::TagDefinition::TechnologyTag";
					graph[style=dotted];

					technology_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
technology_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_signature_type</TD><TD PORT="case0">SignatureType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__a_to_b_0_tag {
					label="Icc4::TagTable::TagDefinition::AToB0Tag";
					graph[style=dotted];

					a_to_b_0_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
a_to_b_0_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_a_to_b_table_type</TD><TD PORT="case2">LutAToBType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__d_to_b_0_tag {
					label="Icc4::TagTable::TagDefinition::DToB0Tag";
					graph[style=dotted];

					d_to_b_0_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
d_to_b_0_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__output_response_tag {
					label="Icc4::TagTable::TagDefinition::OutputResponseTag";
					graph[style=dotted];

					output_response_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
output_response_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_response_curve_set_16_type</TD><TD PORT="case0">ResponseCurveSet16Type</TD></TR>
</TABLE>>];
				}
				subgraph cluster__green_matrix_column_tag {
					label="Icc4::TagTable::TagDefinition::GreenMatrixColumnTag";
					graph[style=dotted];

					green_matrix_column_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
green_matrix_column_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_xyz_type</TD><TD PORT="case0">XyzType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__profile_description_tag {
					label="Icc4::TagTable::TagDefinition::ProfileDescriptionTag";
					graph[style=dotted];

					profile_description_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
profile_description_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_localized_unicode_type</TD><TD PORT="case0">MultiLocalizedUnicodeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__preview_1_tag {
					label="Icc4::TagTable::TagDefinition::Preview1Tag";
					graph[style=dotted];

					preview_1_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
preview_1_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__red_trc_tag {
					label="Icc4::TagTable::TagDefinition::RedTrcTag";
					graph[style=dotted];

					red_trc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
red_trc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_curve_type</TD><TD PORT="case0">CurveType</TD></TR>
	<TR><TD>:tag_type_signatures_parametric_curve_type</TD><TD PORT="case1">ParametricCurveType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__b_to_d_0_tag {
					label="Icc4::TagTable::TagDefinition::BToD0Tag";
					graph[style=dotted];

					b_to_d_0_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_d_0_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__d_to_b_1_tag {
					label="Icc4::TagTable::TagDefinition::DToB1Tag";
					graph[style=dotted];

					d_to_b_1_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
d_to_b_1_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__b_to_a_1_tag {
					label="Icc4::TagTable::TagDefinition::BToA1Tag";
					graph[style=dotted];

					b_to_a_1_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_a_1_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__parametric_curve_type {
					label="Icc4::TagTable::TagDefinition::ParametricCurveType";
					graph[style=dotted];

					parametric_curve_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="function_type_pos">4</TD><TD PORT="function_type_size">2</TD><TD>u2be→ParametricCurveTypeFunctions</TD><TD PORT="function_type_type">function_type</TD></TR>
						<TR><TD PORT="reserved_2_pos">6</TD><TD PORT="reserved_2_size">2</TD><TD>00 00</TD><TD PORT="reserved_2_type">reserved_2</TD></TR>
						<TR><TD PORT="parameters_pos">8</TD><TD PORT="parameters_size">...</TD><TD>switch (function_type)</TD><TD PORT="parameters_type">parameters</TD></TR>
					</TABLE>>];
parametric_curve_type__seq_parameters_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:parametric_curve_type_functions_y_equals_x_to_power_of_g</TD><TD PORT="case0">ParamsYEqualsXToPowerOfG</TD></TR>
	<TR><TD>:parametric_curve_type_functions_cie_122_1996</TD><TD PORT="case1">ParamsCie1221996</TD></TR>
	<TR><TD>:parametric_curve_type_functions_iec_61966_2_1</TD><TD PORT="case2">ParamsIec6196621</TD></TR>
	<TR><TD>:parametric_curve_type_functions_y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c</TD><TD PORT="case3">ParamsYEqualsObAxPlusBCbToPowerOfGPlusC</TD></TR>
	<TR><TD>:parametric_curve_type_functions_iec_61966_3</TD><TD PORT="case4">ParamsIec619663</TD></TR>
</TABLE>>];
					subgraph cluster__params_iec_61966_3 {
						label="Icc4::TagTable::TagDefinition::ParametricCurveType::ParamsIec619663";
						graph[style=dotted];

						params_iec_61966_3__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="g_pos">0</TD><TD PORT="g_size">4</TD><TD>s4be</TD><TD PORT="g_type">g</TD></TR>
							<TR><TD PORT="a_pos">4</TD><TD PORT="a_size">4</TD><TD>s4be</TD><TD PORT="a_type">a</TD></TR>
							<TR><TD PORT="b_pos">8</TD><TD PORT="b_size">4</TD><TD>s4be</TD><TD PORT="b_type">b</TD></TR>
							<TR><TD PORT="c_pos">12</TD><TD PORT="c_size">4</TD><TD>s4be</TD><TD PORT="c_type">c</TD></TR>
						</TABLE>>];
					}
					subgraph cluster__params_iec_61966_2_1 {
						label="Icc4::TagTable::TagDefinition::ParametricCurveType::ParamsIec6196621";
						graph[style=dotted];

						params_iec_61966_2_1__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="g_pos">0</TD><TD PORT="g_size">4</TD><TD>s4be</TD><TD PORT="g_type">g</TD></TR>
							<TR><TD PORT="a_pos">4</TD><TD PORT="a_size">4</TD><TD>s4be</TD><TD PORT="a_type">a</TD></TR>
							<TR><TD PORT="b_pos">8</TD><TD PORT="b_size">4</TD><TD>s4be</TD><TD PORT="b_type">b</TD></TR>
							<TR><TD PORT="c_pos">12</TD><TD PORT="c_size">4</TD><TD>s4be</TD><TD PORT="c_type">c</TD></TR>
							<TR><TD PORT="d_pos">16</TD><TD PORT="d_size">4</TD><TD>s4be</TD><TD PORT="d_type">d</TD></TR>
						</TABLE>>];
					}
					subgraph cluster__params_y_equals_x_to_power_of_g {
						label="Icc4::TagTable::TagDefinition::ParametricCurveType::ParamsYEqualsXToPowerOfG";
						graph[style=dotted];

						params_y_equals_x_to_power_of_g__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="g_pos">0</TD><TD PORT="g_size">4</TD><TD>s4be</TD><TD PORT="g_type">g</TD></TR>
						</TABLE>>];
					}
					subgraph cluster__params_y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c {
						label="Icc4::TagTable::TagDefinition::ParametricCurveType::ParamsYEqualsObAxPlusBCbToPowerOfGPlusC";
						graph[style=dotted];

						params_y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="g_pos">0</TD><TD PORT="g_size">4</TD><TD>s4be</TD><TD PORT="g_type">g</TD></TR>
							<TR><TD PORT="a_pos">4</TD><TD PORT="a_size">4</TD><TD>s4be</TD><TD PORT="a_type">a</TD></TR>
							<TR><TD PORT="b_pos">8</TD><TD PORT="b_size">4</TD><TD>s4be</TD><TD PORT="b_type">b</TD></TR>
							<TR><TD PORT="c_pos">12</TD><TD PORT="c_size">4</TD><TD>s4be</TD><TD PORT="c_type">c</TD></TR>
							<TR><TD PORT="d_pos">16</TD><TD PORT="d_size">4</TD><TD>s4be</TD><TD PORT="d_type">d</TD></TR>
							<TR><TD PORT="e_pos">20</TD><TD PORT="e_size">4</TD><TD>s4be</TD><TD PORT="e_type">e</TD></TR>
							<TR><TD PORT="f_pos">24</TD><TD PORT="f_size">4</TD><TD>s4be</TD><TD PORT="f_type">f</TD></TR>
						</TABLE>>];
					}
					subgraph cluster__params_cie_122_1996 {
						label="Icc4::TagTable::TagDefinition::ParametricCurveType::ParamsCie1221996";
						graph[style=dotted];

						params_cie_122_1996__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="g_pos">0</TD><TD PORT="g_size">4</TD><TD>s4be</TD><TD PORT="g_type">g</TD></TR>
							<TR><TD PORT="a_pos">4</TD><TD PORT="a_size">4</TD><TD>s4be</TD><TD PORT="a_type">a</TD></TR>
							<TR><TD PORT="b_pos">8</TD><TD PORT="b_size">4</TD><TD>s4be</TD><TD PORT="b_type">b</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__chromaticity_tag {
					label="Icc4::TagTable::TagDefinition::ChromaticityTag";
					graph[style=dotted];

					chromaticity_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
chromaticity_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_chromaticity_type</TD><TD PORT="case0">ChromaticityType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__chromatic_adaptation_tag {
					label="Icc4::TagTable::TagDefinition::ChromaticAdaptationTag";
					graph[style=dotted];

					chromatic_adaptation_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
chromatic_adaptation_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_s_15_fixed_16_array_type</TD><TD PORT="case0">S15Fixed16ArrayType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__measurement_type {
					label="Icc4::TagTable::TagDefinition::MeasurementType";
					graph[style=dotted];

					measurement_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="standard_observer_encoding_pos">4</TD><TD PORT="standard_observer_encoding_size">4</TD><TD>u4be→StandardObserverEncodings</TD><TD PORT="standard_observer_encoding_type">standard_observer_encoding</TD></TR>
						<TR><TD PORT="nciexyz_tristimulus_values_for_measurement_backing_pos">8</TD><TD PORT="nciexyz_tristimulus_values_for_measurement_backing_size">12</TD><TD>XyzNumber</TD><TD PORT="nciexyz_tristimulus_values_for_measurement_backing_type">nciexyz_tristimulus_values_for_measurement_backing</TD></TR>
						<TR><TD PORT="measurement_geometry_encoding_pos">20</TD><TD PORT="measurement_geometry_encoding_size">4</TD><TD>u4be→MeasurementGeometryEncodings</TD><TD PORT="measurement_geometry_encoding_type">measurement_geometry_encoding</TD></TR>
						<TR><TD PORT="measurement_flare_encoding_pos">24</TD><TD PORT="measurement_flare_encoding_size">4</TD><TD>u4be→MeasurementFlareEncodings</TD><TD PORT="measurement_flare_encoding_type">measurement_flare_encoding</TD></TR>
						<TR><TD PORT="standard_illuminant_encoding_pos">28</TD><TD PORT="standard_illuminant_encoding_size">4</TD><TD>StandardIlluminantEncoding</TD><TD PORT="standard_illuminant_encoding_type">standard_illuminant_encoding</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__text_type {
					label="Icc4::TagTable::TagDefinition::TextType";
					graph[style=dotted];

					text_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="value_pos">4</TD><TD PORT="value_size">⇲</TD><TD>str(ASCII)</TD><TD PORT="value_type">value</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__profile_sequence_identifier_type {
					label="Icc4::TagTable::TagDefinition::ProfileSequenceIdentifierType";
					graph[style=dotted];

					profile_sequence_identifier_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_structures_pos">4</TD><TD PORT="number_of_structures_size">4</TD><TD>u4be</TD><TD PORT="number_of_structures_type">number_of_structures</TD></TR>
						<TR><TD PORT="positions_table_pos">8</TD><TD PORT="positions_table_size">8</TD><TD>PositionNumber</TD><TD PORT="positions_table_type">positions_table</TD></TR>
						<TR><TD COLSPAN="4" PORT="positions_table__repeat">repeat number_of_structures times</TD></TR>
						<TR><TD PORT="profile_identifiers_pos">...</TD><TD PORT="profile_identifiers_size">...</TD><TD>ProfileIdentifier</TD><TD PORT="profile_identifiers_type">profile_identifiers</TD></TR>
						<TR><TD COLSPAN="4" PORT="profile_identifiers__repeat">repeat number_of_structures times</TD></TR>
					</TABLE>>];
					subgraph cluster__profile_identifier {
						label="Icc4::TagTable::TagDefinition::ProfileSequenceIdentifierType::ProfileIdentifier";
						graph[style=dotted];

						profile_identifier__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="profile_id_pos">0</TD><TD PORT="profile_id_size">16</TD><TD></TD><TD PORT="profile_id_type">profile_id</TD></TR>
							<TR><TD PORT="profile_description_pos">16</TD><TD PORT="profile_description_size">...</TD><TD>MultiLocalizedUnicodeType</TD><TD PORT="profile_description_type">profile_description</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__colorant_table_type {
					label="Icc4::TagTable::TagDefinition::ColorantTableType";
					graph[style=dotted];

					colorant_table_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="count_of_colorants_pos">4</TD><TD PORT="count_of_colorants_size">4</TD><TD>u4be</TD><TD PORT="count_of_colorants_type">count_of_colorants</TD></TR>
						<TR><TD PORT="colorants_pos">8</TD><TD PORT="colorants_size">...</TD><TD>Colorant</TD><TD PORT="colorants_type">colorants</TD></TR>
						<TR><TD COLSPAN="4" PORT="colorants__repeat">repeat count_of_colorants times</TD></TR>
					</TABLE>>];
					subgraph cluster__colorant {
						label="Icc4::TagTable::TagDefinition::ColorantTableType::Colorant";
						graph[style=dotted];

						colorant__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="name_pos">0</TD><TD PORT="name_size">...</TD><TD>str(ASCII)</TD><TD PORT="name_type">name</TD></TR>
							<TR><TD PORT="padding_pos">...</TD><TD PORT="padding_size">1</TD><TD>00</TD><TD PORT="padding_type">padding</TD></TR>
							<TR><TD COLSPAN="4" PORT="padding__repeat">repeat (32 - name.size) times</TD></TR>
							<TR><TD PORT="pcs_values_pos">...</TD><TD PORT="pcs_values_size">6</TD><TD></TD><TD PORT="pcs_values_type">pcs_values</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__signature_type {
					label="Icc4::TagTable::TagDefinition::SignatureType";
					graph[style=dotted];

					signature_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="signature_pos">4</TD><TD PORT="signature_size">4</TD><TD>str(ASCII)</TD><TD PORT="signature_type">signature</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__copyright_tag {
					label="Icc4::TagTable::TagDefinition::CopyrightTag";
					graph[style=dotted];

					copyright_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
copyright_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_localized_unicode_type</TD><TD PORT="case0">MultiLocalizedUnicodeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__preview_0_tag {
					label="Icc4::TagTable::TagDefinition::Preview0Tag";
					graph[style=dotted];

					preview_0_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
preview_0_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_a_to_b_table_type</TD><TD PORT="case2">LutAToBType</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case3">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__date_time_type {
					label="Icc4::TagTable::TagDefinition::DateTimeType";
					graph[style=dotted];

					date_time_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="date_and_time_pos">4</TD><TD PORT="date_and_time_size">12</TD><TD>DateTimeNumber</TD><TD PORT="date_and_time_type">date_and_time</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__d_to_b_3_tag {
					label="Icc4::TagTable::TagDefinition::DToB3Tag";
					graph[style=dotted];

					d_to_b_3_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
d_to_b_3_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__preview_2_tag {
					label="Icc4::TagTable::TagDefinition::Preview2Tag";
					graph[style=dotted];

					preview_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
preview_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__device_model_desc_tag {
					label="Icc4::TagTable::TagDefinition::DeviceModelDescTag";
					graph[style=dotted];

					device_model_desc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
device_model_desc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_localized_unicode_type</TD><TD PORT="case0">MultiLocalizedUnicodeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__multi_process_elements_type {
					label="Icc4::TagTable::TagDefinition::MultiProcessElementsType";
					graph[style=dotted];

					multi_process_elements_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_input_channels_pos">4</TD><TD PORT="number_of_input_channels_size">2</TD><TD>u2be</TD><TD PORT="number_of_input_channels_type">number_of_input_channels</TD></TR>
						<TR><TD PORT="number_of_output_channels_pos">6</TD><TD PORT="number_of_output_channels_size">2</TD><TD>u2be</TD><TD PORT="number_of_output_channels_type">number_of_output_channels</TD></TR>
						<TR><TD PORT="number_of_processing_elements_pos">8</TD><TD PORT="number_of_processing_elements_size">4</TD><TD>u4be</TD><TD PORT="number_of_processing_elements_type">number_of_processing_elements</TD></TR>
						<TR><TD PORT="process_element_positions_table_pos">12</TD><TD PORT="process_element_positions_table_size">8</TD><TD>PositionNumber</TD><TD PORT="process_element_positions_table_type">process_element_positions_table</TD></TR>
						<TR><TD COLSPAN="4" PORT="process_element_positions_table__repeat">repeat number_of_processing_elements times</TD></TR>
						<TR><TD PORT="data_pos">...</TD><TD PORT="data_size">⇲</TD><TD></TD><TD PORT="data_type">data</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__u_int_16_array_type {
					label="Icc4::TagTable::TagDefinition::UInt16ArrayType";
					graph[style=dotted];

					u_int_16_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">2</TD><TD>u2be</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__colorant_order_tag {
					label="Icc4::TagTable::TagDefinition::ColorantOrderTag";
					graph[style=dotted];

					colorant_order_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
colorant_order_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_colorant_order_type</TD><TD PORT="case0">ColorantOrderType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__data_type {
					label="Icc4::TagTable::TagDefinition::DataType";
					graph[style=dotted];

					data_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="data_flag_pos">0</TD><TD PORT="data_flag_size">4</TD><TD>u4be→DataTypes</TD><TD PORT="data_flag_type">data_flag</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__chromaticity_type {
					label="Icc4::TagTable::TagDefinition::ChromaticityType";
					graph[style=dotted];

					chromaticity_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_device_channels_pos">4</TD><TD PORT="number_of_device_channels_size">2</TD><TD>u2be</TD><TD PORT="number_of_device_channels_type">number_of_device_channels</TD></TR>
						<TR><TD PORT="colorant_and_phosphor_encoding_pos">6</TD><TD PORT="colorant_and_phosphor_encoding_size">2</TD><TD>u2be→ColorantAndPhosphorEncodings</TD><TD PORT="colorant_and_phosphor_encoding_type">colorant_and_phosphor_encoding</TD></TR>
						<TR><TD PORT="ciexy_coordinates_per_channel_pos">8</TD><TD PORT="ciexy_coordinates_per_channel_size">4</TD><TD>CiexyCoordinateValues</TD><TD PORT="ciexy_coordinates_per_channel_type">ciexy_coordinates_per_channel</TD></TR>
						<TR><TD COLSPAN="4" PORT="ciexy_coordinates_per_channel__repeat">repeat number_of_device_channels times</TD></TR>
					</TABLE>>];
					subgraph cluster__ciexy_coordinate_values {
						label="Icc4::TagTable::TagDefinition::ChromaticityType::CiexyCoordinateValues";
						graph[style=dotted];

						ciexy_coordinate_values__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="x_coordinate_pos">0</TD><TD PORT="x_coordinate_size">2</TD><TD>u2be</TD><TD PORT="x_coordinate_type">x_coordinate</TD></TR>
							<TR><TD PORT="y_coordinate_pos">2</TD><TD PORT="y_coordinate_size">2</TD><TD>u2be</TD><TD PORT="y_coordinate_type">y_coordinate</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__luminance_tag {
					label="Icc4::TagTable::TagDefinition::LuminanceTag";
					graph[style=dotted];

					luminance_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
luminance_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_xyz_type</TD><TD PORT="case0">XyzType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__s_15_fixed_16_array_type {
					label="Icc4::TagTable::TagDefinition::S15Fixed16ArrayType";
					graph[style=dotted];

					s_15_fixed_16_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">4</TD><TD>S15Fixed16Number</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__multi_localized_unicode_type {
					label="Icc4::TagTable::TagDefinition::MultiLocalizedUnicodeType";
					graph[style=dotted];

					multi_localized_unicode_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_records_pos">4</TD><TD PORT="number_of_records_size">4</TD><TD>u4be</TD><TD PORT="number_of_records_type">number_of_records</TD></TR>
						<TR><TD PORT="record_size_pos">8</TD><TD PORT="record_size_size">4</TD><TD>u4be</TD><TD PORT="record_size_type">record_size</TD></TR>
						<TR><TD PORT="records_pos">12</TD><TD PORT="records_size">12</TD><TD>Record</TD><TD PORT="records_type">records</TD></TR>
						<TR><TD COLSPAN="4" PORT="records__repeat">repeat number_of_records times</TD></TR>
					</TABLE>>];
					subgraph cluster__record {
						label="Icc4::TagTable::TagDefinition::MultiLocalizedUnicodeType::Record";
						graph[style=dotted];

						record__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="language_code_pos">0</TD><TD PORT="language_code_size">2</TD><TD>u2be</TD><TD PORT="language_code_type">language_code</TD></TR>
							<TR><TD PORT="country_code_pos">2</TD><TD PORT="country_code_size">2</TD><TD>u2be</TD><TD PORT="country_code_type">country_code</TD></TR>
							<TR><TD PORT="string_length_pos">4</TD><TD PORT="string_length_size">4</TD><TD>u4be</TD><TD PORT="string_length_type">string_length</TD></TR>
							<TR><TD PORT="string_offset_pos">8</TD><TD PORT="string_offset_size">4</TD><TD>u4be</TD><TD PORT="string_offset_type">string_offset</TD></TR>
						</TABLE>>];
						record__inst__string_data [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="string_data_pos">string_offset</TD><TD PORT="string_data_size">string_length</TD><TD>str(UTF-16BE)</TD><TD PORT="string_data_type">string_data</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__a_to_b_2_tag {
					label="Icc4::TagTable::TagDefinition::AToB2Tag";
					graph[style=dotted];

					a_to_b_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
a_to_b_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_a_to_b_table_type</TD><TD PORT="case2">LutAToBType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__a_to_b_1_tag {
					label="Icc4::TagTable::TagDefinition::AToB1Tag";
					graph[style=dotted];

					a_to_b_1_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
a_to_b_1_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_a_to_b_table_type</TD><TD PORT="case2">LutAToBType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__colorimetric_intent_image_state_tag {
					label="Icc4::TagTable::TagDefinition::ColorimetricIntentImageStateTag";
					graph[style=dotted];

					colorimetric_intent_image_state_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
colorimetric_intent_image_state_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_signature_type</TD><TD PORT="case0">SignatureType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__char_target_tag {
					label="Icc4::TagTable::TagDefinition::CharTargetTag";
					graph[style=dotted];

					char_target_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
char_target_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_text_type</TD><TD PORT="case0">TextType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__colorant_table_tag {
					label="Icc4::TagTable::TagDefinition::ColorantTableTag";
					graph[style=dotted];

					colorant_table_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
colorant_table_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_colorant_table_type</TD><TD PORT="case0">ColorantTableType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__calibration_date_time_tag {
					label="Icc4::TagTable::TagDefinition::CalibrationDateTimeTag";
					graph[style=dotted];

					calibration_date_time_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
calibration_date_time_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_date_time_type</TD><TD PORT="case0">DateTimeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__named_color_2_tag {
					label="Icc4::TagTable::TagDefinition::NamedColor2Tag";
					graph[style=dotted];

					named_color_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
named_color_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_named_color_2_type</TD><TD PORT="case0">NamedColor2Type</TD></TR>
</TABLE>>];
				}
				subgraph cluster__viewing_cond_desc_tag {
					label="Icc4::TagTable::TagDefinition::ViewingCondDescTag";
					graph[style=dotted];

					viewing_cond_desc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
viewing_cond_desc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_localized_unicode_type</TD><TD PORT="case0">MultiLocalizedUnicodeType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__b_to_d_3_tag {
					label="Icc4::TagTable::TagDefinition::BToD3Tag";
					graph[style=dotted];

					b_to_d_3_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_d_3_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__profile_sequence_desc_type {
					label="Icc4::TagTable::TagDefinition::ProfileSequenceDescType";
					graph[style=dotted];

					profile_sequence_desc_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_description_structures_pos">4</TD><TD PORT="number_of_description_structures_size">4</TD><TD>u4be</TD><TD PORT="number_of_description_structures_type">number_of_description_structures</TD></TR>
						<TR><TD PORT="profile_descriptions_pos">8</TD><TD PORT="profile_descriptions_size">...</TD><TD>ProfileDescription</TD><TD PORT="profile_descriptions_type">profile_descriptions</TD></TR>
						<TR><TD COLSPAN="4" PORT="profile_descriptions__repeat">repeat number_of_description_structures times</TD></TR>
					</TABLE>>];
					subgraph cluster__profile_description {
						label="Icc4::TagTable::TagDefinition::ProfileSequenceDescType::ProfileDescription";
						graph[style=dotted];

						profile_description__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
							<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
							<TR><TD PORT="device_manufacturer_pos">0</TD><TD PORT="device_manufacturer_size">4</TD><TD>DeviceManufacturer</TD><TD PORT="device_manufacturer_type">device_manufacturer</TD></TR>
							<TR><TD PORT="device_model_pos">4</TD><TD PORT="device_model_size">4</TD><TD>str(ASCII)</TD><TD PORT="device_model_type">device_model</TD></TR>
							<TR><TD PORT="device_attributes_pos">8</TD><TD PORT="device_attributes_size">8</TD><TD>DeviceAttributes</TD><TD PORT="device_attributes_type">device_attributes</TD></TR>
							<TR><TD PORT="device_technology_pos">16</TD><TD PORT="device_technology_size">...</TD><TD>TechnologyTag</TD><TD PORT="device_technology_type">device_technology</TD></TR>
							<TR><TD PORT="description_of_device_manufacturer_pos">...</TD><TD PORT="description_of_device_manufacturer_size">...</TD><TD>DeviceMfgDescTag</TD><TD PORT="description_of_device_manufacturer_type">description_of_device_manufacturer</TD></TR>
							<TR><TD PORT="description_of_device_model_pos">...</TD><TD PORT="description_of_device_model_size">...</TD><TD>DeviceModelDescTag</TD><TD PORT="description_of_device_model_type">description_of_device_model</TD></TR>
						</TABLE>>];
					}
				}
				subgraph cluster__profile_sequence_identifier_tag {
					label="Icc4::TagTable::TagDefinition::ProfileSequenceIdentifierTag";
					graph[style=dotted];

					profile_sequence_identifier_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
profile_sequence_identifier_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_profile_sequence_identifier_type</TD><TD PORT="case0">ProfileSequenceIdentifierType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__b_to_d_1_tag {
					label="Icc4::TagTable::TagDefinition::BToD1Tag";
					graph[style=dotted];

					b_to_d_1_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_d_1_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__colorant_order_type {
					label="Icc4::TagTable::TagDefinition::ColorantOrderType";
					graph[style=dotted];

					colorant_order_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="count_of_colorants_pos">4</TD><TD PORT="count_of_colorants_size">4</TD><TD>u4be</TD><TD PORT="count_of_colorants_type">count_of_colorants</TD></TR>
						<TR><TD PORT="numbers_of_colorants_in_order_of_printing_pos">8</TD><TD PORT="numbers_of_colorants_in_order_of_printing_size">1</TD><TD>u1</TD><TD PORT="numbers_of_colorants_in_order_of_printing_type">numbers_of_colorants_in_order_of_printing</TD></TR>
						<TR><TD COLSPAN="4" PORT="numbers_of_colorants_in_order_of_printing__repeat">repeat count_of_colorants times</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__d_to_b_2_tag {
					label="Icc4::TagTable::TagDefinition::DToB2Tag";
					graph[style=dotted];

					d_to_b_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
d_to_b_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__gray_trc_tag {
					label="Icc4::TagTable::TagDefinition::GrayTrcTag";
					graph[style=dotted];

					gray_trc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
gray_trc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_curve_type</TD><TD PORT="case0">CurveType</TD></TR>
	<TR><TD>:tag_type_signatures_parametric_curve_type</TD><TD PORT="case1">ParametricCurveType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__viewing_conditions_type {
					label="Icc4::TagTable::TagDefinition::ViewingConditionsType";
					graph[style=dotted];

					viewing_conditions_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="un_normalized_ciexyz_values_for_illuminant_pos">4</TD><TD PORT="un_normalized_ciexyz_values_for_illuminant_size">12</TD><TD>XyzNumber</TD><TD PORT="un_normalized_ciexyz_values_for_illuminant_type">un_normalized_ciexyz_values_for_illuminant</TD></TR>
						<TR><TD PORT="un_normalized_ciexyz_values_for_surround_pos">16</TD><TD PORT="un_normalized_ciexyz_values_for_surround_size">12</TD><TD>XyzNumber</TD><TD PORT="un_normalized_ciexyz_values_for_surround_type">un_normalized_ciexyz_values_for_surround</TD></TR>
						<TR><TD PORT="illuminant_type_pos">28</TD><TD PORT="illuminant_type_size">4</TD><TD>StandardIlluminantEncoding</TD><TD PORT="illuminant_type_type">illuminant_type</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__lut_b_to_a_type {
					label="Icc4::TagTable::TagDefinition::LutBToAType";
					graph[style=dotted];

					lut_b_to_a_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="number_of_input_channels_pos">4</TD><TD PORT="number_of_input_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_input_channels_type">number_of_input_channels</TD></TR>
						<TR><TD PORT="number_of_output_channels_pos">5</TD><TD PORT="number_of_output_channels_size">1</TD><TD>u1</TD><TD PORT="number_of_output_channels_type">number_of_output_channels</TD></TR>
						<TR><TD PORT="padding_pos">6</TD><TD PORT="padding_size">2</TD><TD>00 00</TD><TD PORT="padding_type">padding</TD></TR>
						<TR><TD PORT="offset_to_first_b_curve_pos">8</TD><TD PORT="offset_to_first_b_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_b_curve_type">offset_to_first_b_curve</TD></TR>
						<TR><TD PORT="offset_to_matrix_pos">12</TD><TD PORT="offset_to_matrix_size">4</TD><TD>u4be</TD><TD PORT="offset_to_matrix_type">offset_to_matrix</TD></TR>
						<TR><TD PORT="offset_to_first_m_curve_pos">16</TD><TD PORT="offset_to_first_m_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_m_curve_type">offset_to_first_m_curve</TD></TR>
						<TR><TD PORT="offset_to_clut_pos">20</TD><TD PORT="offset_to_clut_size">4</TD><TD>u4be</TD><TD PORT="offset_to_clut_type">offset_to_clut</TD></TR>
						<TR><TD PORT="offset_to_first_a_curve_pos">24</TD><TD PORT="offset_to_first_a_curve_size">4</TD><TD>u4be</TD><TD PORT="offset_to_first_a_curve_type">offset_to_first_a_curve</TD></TR>
						<TR><TD PORT="data_pos">28</TD><TD PORT="data_size">⇲</TD><TD></TD><TD PORT="data_type">data</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__green_trc_tag {
					label="Icc4::TagTable::TagDefinition::GreenTrcTag";
					graph[style=dotted];

					green_trc_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
green_trc_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_curve_type</TD><TD PORT="case0">CurveType</TD></TR>
	<TR><TD>:tag_type_signatures_parametric_curve_type</TD><TD PORT="case1">ParametricCurveType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__u_int_32_array_type {
					label="Icc4::TagTable::TagDefinition::UInt32ArrayType";
					graph[style=dotted];

					u_int_32_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">4</TD><TD>u4be</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__gamut_tag {
					label="Icc4::TagTable::TagDefinition::GamutTag";
					graph[style=dotted];

					gamut_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
gamut_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_one_byte_precision_type</TD><TD PORT="case0">Lut8Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_table_with_two_byte_precision_type</TD><TD PORT="case1">Lut16Type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_function_b_to_a_table_type</TD><TD PORT="case2">LutBToAType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__u_int_8_array_type {
					label="Icc4::TagTable::TagDefinition::UInt8ArrayType";
					graph[style=dotted];

					u_int_8_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">1</TD><TD>u1</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__red_matrix_column_tag {
					label="Icc4::TagTable::TagDefinition::RedMatrixColumnTag";
					graph[style=dotted];

					red_matrix_column_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
red_matrix_column_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_xyz_type</TD><TD PORT="case0">XyzType</TD></TR>
</TABLE>>];
				}
				subgraph cluster__u_int_64_array_type {
					label="Icc4::TagTable::TagDefinition::UInt64ArrayType";
					graph[style=dotted];

					u_int_64_array_type__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="reserved_pos">0</TD><TD PORT="reserved_size">4</TD><TD>00 00 00 00</TD><TD PORT="reserved_type">reserved</TD></TR>
						<TR><TD PORT="values_pos">4</TD><TD PORT="values_size">8</TD><TD>u8be</TD><TD PORT="values_type">values</TD></TR>
						<TR><TD COLSPAN="4" PORT="values__repeat">repeat to end of stream</TD></TR>
					</TABLE>>];
				}
				subgraph cluster__b_to_d_2_tag {
					label="Icc4::TagTable::TagDefinition::BToD2Tag";
					graph[style=dotted];

					b_to_d_2_tag__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
						<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
						<TR><TD PORT="tag_type_pos">0</TD><TD PORT="tag_type_size">4</TD><TD>u4be→TagTypeSignatures</TD><TD PORT="tag_type_type">tag_type</TD></TR>
						<TR><TD PORT="tag_data_pos">4</TD><TD PORT="tag_data_size">...</TD><TD>switch (tag_type)</TD><TD PORT="tag_data_type">tag_data</TD></TR>
					</TABLE>>];
b_to_d_2_tag__seq_tag_data_switch [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
	<TR><TD BGCOLOR="#F0F2E4">case</TD><TD BGCOLOR="#F0F2E4">type</TD></TR>
	<TR><TD>:tag_type_signatures_multi_process_elements_type</TD><TD PORT="case0">MultiProcessElementsType</TD></TR>
</TABLE>>];
				}
			}
		}
		subgraph cluster__device_attributes {
			label="Icc4::DeviceAttributes";
			graph[style=dotted];

			device_attributes__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="reflective_or_transparency_pos">0</TD><TD PORT="reflective_or_transparency_size">1b</TD><TD>b1→DeviceAttributesReflectiveOrTransparency</TD><TD PORT="reflective_or_transparency_type">reflective_or_transparency</TD></TR>
				<TR><TD PORT="glossy_or_matte_pos">0:1</TD><TD PORT="glossy_or_matte_size">1b</TD><TD>b1→DeviceAttributesGlossyOrMatte</TD><TD PORT="glossy_or_matte_type">glossy_or_matte</TD></TR>
				<TR><TD PORT="positive_or_negative_media_polarity_pos">0:2</TD><TD PORT="positive_or_negative_media_polarity_size">1b</TD><TD>b1→DeviceAttributesPositiveOrNegativeMediaPolarity</TD><TD PORT="positive_or_negative_media_polarity_type">positive_or_negative_media_polarity</TD></TR>
				<TR><TD PORT="colour_or_black_and_white_media_pos">0:3</TD><TD PORT="colour_or_black_and_white_media_size">1b</TD><TD>b1→DeviceAttributesColourOrBlackAndWhiteMedia</TD><TD PORT="colour_or_black_and_white_media_type">colour_or_black_and_white_media</TD></TR>
				<TR><TD PORT="reserved_pos">0:4</TD><TD PORT="reserved_size">28b</TD><TD>b28</TD><TD PORT="reserved_type">reserved</TD></TR>
				<TR><TD PORT="vendor_specific_pos">4</TD><TD PORT="vendor_specific_size">4</TD><TD>b32</TD><TD PORT="vendor_specific_type">vendor_specific</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__device_manufacturer {
			label="Icc4::DeviceManufacturer";
			graph[style=dotted];

			device_manufacturer__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="device_manufacturer_pos">0</TD><TD PORT="device_manufacturer_size">4</TD><TD>u4be→DeviceManufacturers</TD><TD PORT="device_manufacturer_type">device_manufacturer</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__s_15_fixed_16_number {
			label="Icc4::S15Fixed16Number";
			graph[style=dotted];

			s_15_fixed_16_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="number_pos">0</TD><TD PORT="number_size">4</TD><TD></TD><TD PORT="number_type">number</TD></TR>
			</TABLE>>];
		}
		subgraph cluster__position_number {
			label="Icc4::PositionNumber";
			graph[style=dotted];

			position_number__seq [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
				<TR><TD BGCOLOR="#E0FFE0">pos</TD><TD BGCOLOR="#E0FFE0">size</TD><TD BGCOLOR="#E0FFE0">type</TD><TD BGCOLOR="#E0FFE0">id</TD></TR>
				<TR><TD PORT="offset_to_data_element_pos">0</TD><TD PORT="offset_to_data_element_size">4</TD><TD>u4be</TD><TD PORT="offset_to_data_element_type">offset_to_data_element</TD></TR>
				<TR><TD PORT="size_of_data_element_pos">4</TD><TD PORT="size_of_data_element_size">4</TD><TD>u4be</TD><TD PORT="size_of_data_element_type">size_of_data_element</TD></TR>
			</TABLE>>];
		}
	}
	icc_4__seq:header_type -> profile_header__seq [style=bold];
	icc_4__seq:tag_table_type -> tag_table__seq [style=bold];
	profile_header__seq:version_type -> version_field__seq [style=bold];
	profile_header__seq:creation_date_time_type -> date_time_number__seq [style=bold];
	profile_header__seq:profile_flags_type -> profile_flags__seq [style=bold];
	profile_header__seq:device_manufacturer_type -> device_manufacturer__seq [style=bold];
	profile_header__seq:device_attributes_type -> device_attributes__seq [style=bold];
	profile_header__seq:nciexyz_values_of_illuminant_of_pcs_type -> xyz_number__seq [style=bold];
	profile_header__seq:creator_type -> device_manufacturer__seq [style=bold];
	response_16_number__seq:measurement_value_type -> s_15_fixed_16_number__seq [style=bold];
	tag_table__seq:tags_type -> tag_definition__seq [style=bold];
	tag_table__seq:tag_count_type -> tag_table__seq:tags__repeat [color="#404040"];
	tag_definition__seq:offset_to_data_element_type -> tag_definition__inst__tag_data_element:tag_data_element_pos [color="#404040"];
	tag_definition__inst__tag_data_element:tag_data_element_type -> tag_definition__inst__tag_data_element_tag_data_element_switch [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case0 -> profile_sequence_identifier_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case1 -> colorimetric_intent_image_state_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case2 -> red_trc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case3 -> preview_0_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case4 -> green_trc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case5 -> b_to_d_0_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case6 -> colorant_table_out_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case7 -> b_to_a_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case8 -> calibration_date_time_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case9 -> chromatic_adaptation_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case10 -> colorant_table_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case11 -> a_to_b_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case12 -> d_to_b_1_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case13 -> chromaticity_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case14 -> blue_matrix_column_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case15 -> a_to_b_0_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case16 -> b_to_d_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case17 -> b_to_a_1_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case18 -> media_white_point_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case19 -> d_to_b_0_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case20 -> named_color_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case21 -> d_to_b_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case22 -> red_matrix_column_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case23 -> viewing_conditions_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case24 -> a_to_b_1_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case25 -> preview_1_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case26 -> gray_trc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case27 -> device_mfg_desc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case28 -> b_to_d_1_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case29 -> colorant_order_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case30 -> copyright_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case31 -> gamut_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case32 -> char_target_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case33 -> output_response_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case34 -> technology_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case35 -> viewing_cond_desc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case36 -> profile_description_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case37 -> luminance_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case38 -> d_to_b_3_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case39 -> b_to_d_3_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case40 -> b_to_a_0_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case41 -> preview_2_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case42 -> green_matrix_column_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case43 -> profile_sequence_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case44 -> saturation_rendering_intent_gamut_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case45 -> perceptual_rendering_intent_gamut_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case46 -> blue_trc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case47 -> device_model_desc_tag__seq [style=bold];
	tag_definition__inst__tag_data_element_tag_data_element_switch:case48 -> measurement_tag__seq [style=bold];
	tag_definition__seq:tag_signature_type -> tag_definition__inst__tag_data_element:tag_data_element_type [color="#404040"];
	blue_matrix_column_tag__seq:tag_data_type -> blue_matrix_column_tag__seq_tag_data_switch [style=bold];
	blue_matrix_column_tag__seq_tag_data_switch:case0 -> xyz_type__seq [style=bold];
	blue_matrix_column_tag__seq:tag_type_type -> blue_matrix_column_tag__seq:tag_data_type [color="#404040"];
	device_mfg_desc_tag__seq:tag_data_type -> device_mfg_desc_tag__seq_tag_data_switch [style=bold];
	device_mfg_desc_tag__seq_tag_data_switch:case0 -> multi_localized_unicode_type__seq [style=bold];
	device_mfg_desc_tag__seq:tag_type_type -> device_mfg_desc_tag__seq:tag_data_type [color="#404040"];
	named_color_2_type__seq:prefix_for_each_colour_name_type -> named_color_2_type__seq:prefix_for_each_colour_name_padding__repeat [color="#404040"];
	named_color_2_type__seq:suffix_for_each_colour_name_type -> named_color_2_type__seq:suffix_for_each_colour_name_padding__repeat [color="#404040"];
	named_color_2_type__seq:named_colour_definitions_type -> named_colour_definition__seq [style=bold];
	named_color_2_type__seq:count_of_named_colours_type -> named_color_2_type__seq:named_colour_definitions__repeat [color="#404040"];
	named_colour_definition__seq:root_name_type -> named_colour_definition__seq:root_name_padding__repeat [color="#404040"];
	named_color_2_type__seq:count_of_named_colours_type -> named_colour_definition__seq:device_coordinates__repeat [color="#404040"];
	viewing_conditions_tag__seq:tag_data_type -> viewing_conditions_tag__seq_tag_data_switch [style=bold];
	viewing_conditions_tag__seq_tag_data_switch:case0 -> viewing_conditions_type__seq [style=bold];
	viewing_conditions_tag__seq:tag_type_type -> viewing_conditions_tag__seq:tag_data_type [color="#404040"];
	blue_trc_tag__seq:tag_data_type -> blue_trc_tag__seq_tag_data_switch [style=bold];
	blue_trc_tag__seq_tag_data_switch:case0 -> curve_type__seq [style=bold];
	blue_trc_tag__seq_tag_data_switch:case1 -> parametric_curve_type__seq [style=bold];
	blue_trc_tag__seq:tag_type_type -> blue_trc_tag__seq:tag_data_type [color="#404040"];
	response_curve_set_16_type__seq:count_of_measurement_types_type -> response_curve_set_16_type__seq:response_curve_structure_offsets__repeat [color="#404040"];
	curve_type__seq:number_of_entries_type -> curve_type__seq:curve_values__repeat [color="#404040"];
	saturation_rendering_intent_gamut_tag__seq:tag_data_type -> saturation_rendering_intent_gamut_tag__seq_tag_data_switch [style=bold];
	saturation_rendering_intent_gamut_tag__seq_tag_data_switch:case0 -> signature_type__seq [style=bold];
	saturation_rendering_intent_gamut_tag__seq:tag_type_type -> saturation_rendering_intent_gamut_tag__seq:tag_data_type [color="#404040"];
	xyz_type__seq:values_type -> xyz_number__seq [style=bold];
	lut_8_type__seq:number_of_input_channels_type -> lut_8_type__seq:input_tables_size [color="#404040"];
	lut_8_type__seq:number_of_clut_grid_points_type -> lut_8_type__seq:clut_values_size [color="#404040"];
	lut_8_type__seq:number_of_input_channels_type -> lut_8_type__seq:clut_values_size [color="#404040"];
	lut_8_type__seq:number_of_output_channels_type -> lut_8_type__seq:clut_values_size [color="#404040"];
	lut_8_type__seq:number_of_output_channels_type -> lut_8_type__seq:output_tables_size [color="#404040"];
	b_to_a_2_tag__seq:tag_data_type -> b_to_a_2_tag__seq_tag_data_switch [style=bold];
	b_to_a_2_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	b_to_a_2_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	b_to_a_2_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	b_to_a_2_tag__seq:tag_type_type -> b_to_a_2_tag__seq:tag_data_type [color="#404040"];
	b_to_a_0_tag__seq:tag_data_type -> b_to_a_0_tag__seq_tag_data_switch [style=bold];
	b_to_a_0_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	b_to_a_0_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	b_to_a_0_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	b_to_a_0_tag__seq:tag_type_type -> b_to_a_0_tag__seq:tag_data_type [color="#404040"];
	media_white_point_tag__seq:tag_data_type -> media_white_point_tag__seq_tag_data_switch [style=bold];
	media_white_point_tag__seq_tag_data_switch:case0 -> xyz_type__seq [style=bold];
	media_white_point_tag__seq:tag_type_type -> media_white_point_tag__seq:tag_data_type [color="#404040"];
	lut_16_type__seq:number_of_input_channels_type -> lut_16_type__seq:input_tables_size [color="#404040"];
	lut_16_type__seq:number_of_input_table_entries_type -> lut_16_type__seq:input_tables_size [color="#404040"];
	lut_16_type__seq:number_of_clut_grid_points_type -> lut_16_type__seq:clut_values_size [color="#404040"];
	lut_16_type__seq:number_of_input_channels_type -> lut_16_type__seq:clut_values_size [color="#404040"];
	lut_16_type__seq:number_of_output_channels_type -> lut_16_type__seq:clut_values_size [color="#404040"];
	lut_16_type__seq:number_of_output_channels_type -> lut_16_type__seq:output_tables_size [color="#404040"];
	lut_16_type__seq:number_of_output_table_entries_type -> lut_16_type__seq:output_tables_size [color="#404040"];
	perceptual_rendering_intent_gamut_tag__seq:tag_data_type -> perceptual_rendering_intent_gamut_tag__seq_tag_data_switch [style=bold];
	perceptual_rendering_intent_gamut_tag__seq_tag_data_switch:case0 -> signature_type__seq [style=bold];
	perceptual_rendering_intent_gamut_tag__seq:tag_type_type -> perceptual_rendering_intent_gamut_tag__seq:tag_data_type [color="#404040"];
	u_16_fixed_16_array_type__seq:values_type -> u_16_fixed_16_number__seq [style=bold];
	colorant_table_out_tag__seq:tag_data_type -> colorant_table_out_tag__seq_tag_data_switch [style=bold];
	colorant_table_out_tag__seq_tag_data_switch:case0 -> colorant_table_type__seq [style=bold];
	colorant_table_out_tag__seq:tag_type_type -> colorant_table_out_tag__seq:tag_data_type [color="#404040"];
	measurement_tag__seq:tag_data_type -> measurement_tag__seq_tag_data_switch [style=bold];
	measurement_tag__seq_tag_data_switch:case0 -> measurement_type__seq [style=bold];
	measurement_tag__seq:tag_type_type -> measurement_tag__seq:tag_data_type [color="#404040"];
	profile_sequence_tag__seq:tag_data_type -> profile_sequence_tag__seq_tag_data_switch [style=bold];
	profile_sequence_tag__seq_tag_data_switch:case0 -> profile_sequence_desc_type__seq [style=bold];
	profile_sequence_tag__seq:tag_type_type -> profile_sequence_tag__seq:tag_data_type [color="#404040"];
	technology_tag__seq:tag_data_type -> technology_tag__seq_tag_data_switch [style=bold];
	technology_tag__seq_tag_data_switch:case0 -> signature_type__seq [style=bold];
	technology_tag__seq:tag_type_type -> technology_tag__seq:tag_data_type [color="#404040"];
	a_to_b_0_tag__seq:tag_data_type -> a_to_b_0_tag__seq_tag_data_switch [style=bold];
	a_to_b_0_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	a_to_b_0_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	a_to_b_0_tag__seq_tag_data_switch:case2 -> lut_a_to_b_type__seq [style=bold];
	a_to_b_0_tag__seq:tag_type_type -> a_to_b_0_tag__seq:tag_data_type [color="#404040"];
	d_to_b_0_tag__seq:tag_data_type -> d_to_b_0_tag__seq_tag_data_switch [style=bold];
	d_to_b_0_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	d_to_b_0_tag__seq:tag_type_type -> d_to_b_0_tag__seq:tag_data_type [color="#404040"];
	output_response_tag__seq:tag_data_type -> output_response_tag__seq_tag_data_switch [style=bold];
	output_response_tag__seq_tag_data_switch:case0 -> response_curve_set_16_type__seq [style=bold];
	output_response_tag__seq:tag_type_type -> output_response_tag__seq:tag_data_type [color="#404040"];
	green_matrix_column_tag__seq:tag_data_type -> green_matrix_column_tag__seq_tag_data_switch [style=bold];
	green_matrix_column_tag__seq_tag_data_switch:case0 -> xyz_type__seq [style=bold];
	green_matrix_column_tag__seq:tag_type_type -> green_matrix_column_tag__seq:tag_data_type [color="#404040"];
	profile_description_tag__seq:tag_data_type -> profile_description_tag__seq_tag_data_switch [style=bold];
	profile_description_tag__seq_tag_data_switch:case0 -> multi_localized_unicode_type__seq [style=bold];
	profile_description_tag__seq:tag_type_type -> profile_description_tag__seq:tag_data_type [color="#404040"];
	preview_1_tag__seq:tag_data_type -> preview_1_tag__seq_tag_data_switch [style=bold];
	preview_1_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	preview_1_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	preview_1_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	preview_1_tag__seq:tag_type_type -> preview_1_tag__seq:tag_data_type [color="#404040"];
	red_trc_tag__seq:tag_data_type -> red_trc_tag__seq_tag_data_switch [style=bold];
	red_trc_tag__seq_tag_data_switch:case0 -> curve_type__seq [style=bold];
	red_trc_tag__seq_tag_data_switch:case1 -> parametric_curve_type__seq [style=bold];
	red_trc_tag__seq:tag_type_type -> red_trc_tag__seq:tag_data_type [color="#404040"];
	b_to_d_0_tag__seq:tag_data_type -> b_to_d_0_tag__seq_tag_data_switch [style=bold];
	b_to_d_0_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	b_to_d_0_tag__seq:tag_type_type -> b_to_d_0_tag__seq:tag_data_type [color="#404040"];
	d_to_b_1_tag__seq:tag_data_type -> d_to_b_1_tag__seq_tag_data_switch [style=bold];
	d_to_b_1_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	d_to_b_1_tag__seq:tag_type_type -> d_to_b_1_tag__seq:tag_data_type [color="#404040"];
	b_to_a_1_tag__seq:tag_data_type -> b_to_a_1_tag__seq_tag_data_switch [style=bold];
	b_to_a_1_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	b_to_a_1_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	b_to_a_1_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	b_to_a_1_tag__seq:tag_type_type -> b_to_a_1_tag__seq:tag_data_type [color="#404040"];
	parametric_curve_type__seq:parameters_type -> parametric_curve_type__seq_parameters_switch [style=bold];
	parametric_curve_type__seq_parameters_switch:case0 -> params_y_equals_x_to_power_of_g__seq [style=bold];
	parametric_curve_type__seq_parameters_switch:case1 -> params_cie_122_1996__seq [style=bold];
	parametric_curve_type__seq_parameters_switch:case2 -> params_iec_61966_2_1__seq [style=bold];
	parametric_curve_type__seq_parameters_switch:case3 -> params_y_equals_ob_ax_plus_b_cb_to_power_of_g_plus_c__seq [style=bold];
	parametric_curve_type__seq_parameters_switch:case4 -> params_iec_61966_3__seq [style=bold];
	parametric_curve_type__seq:function_type_type -> parametric_curve_type__seq:parameters_type [color="#404040"];
	chromaticity_tag__seq:tag_data_type -> chromaticity_tag__seq_tag_data_switch [style=bold];
	chromaticity_tag__seq_tag_data_switch:case0 -> chromaticity_type__seq [style=bold];
	chromaticity_tag__seq:tag_type_type -> chromaticity_tag__seq:tag_data_type [color="#404040"];
	chromatic_adaptation_tag__seq:tag_data_type -> chromatic_adaptation_tag__seq_tag_data_switch [style=bold];
	chromatic_adaptation_tag__seq_tag_data_switch:case0 -> s_15_fixed_16_array_type__seq [style=bold];
	chromatic_adaptation_tag__seq:tag_type_type -> chromatic_adaptation_tag__seq:tag_data_type [color="#404040"];
	measurement_type__seq:nciexyz_tristimulus_values_for_measurement_backing_type -> xyz_number__seq [style=bold];
	measurement_type__seq:standard_illuminant_encoding_type -> standard_illuminant_encoding__seq [style=bold];
	profile_sequence_identifier_type__seq:positions_table_type -> position_number__seq [style=bold];
	profile_sequence_identifier_type__seq:number_of_structures_type -> profile_sequence_identifier_type__seq:positions_table__repeat [color="#404040"];
	profile_sequence_identifier_type__seq:profile_identifiers_type -> profile_identifier__seq [style=bold];
	profile_sequence_identifier_type__seq:number_of_structures_type -> profile_sequence_identifier_type__seq:profile_identifiers__repeat [color="#404040"];
	profile_identifier__seq:profile_description_type -> multi_localized_unicode_type__seq [style=bold];
	colorant_table_type__seq:colorants_type -> colorant__seq [style=bold];
	colorant_table_type__seq:count_of_colorants_type -> colorant_table_type__seq:colorants__repeat [color="#404040"];
	colorant__seq:name_type -> colorant__seq:padding__repeat [color="#404040"];
	copyright_tag__seq:tag_data_type -> copyright_tag__seq_tag_data_switch [style=bold];
	copyright_tag__seq_tag_data_switch:case0 -> multi_localized_unicode_type__seq [style=bold];
	copyright_tag__seq:tag_type_type -> copyright_tag__seq:tag_data_type [color="#404040"];
	preview_0_tag__seq:tag_data_type -> preview_0_tag__seq_tag_data_switch [style=bold];
	preview_0_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	preview_0_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	preview_0_tag__seq_tag_data_switch:case2 -> lut_a_to_b_type__seq [style=bold];
	preview_0_tag__seq_tag_data_switch:case3 -> lut_b_to_a_type__seq [style=bold];
	preview_0_tag__seq:tag_type_type -> preview_0_tag__seq:tag_data_type [color="#404040"];
	date_time_type__seq:date_and_time_type -> date_time_number__seq [style=bold];
	d_to_b_3_tag__seq:tag_data_type -> d_to_b_3_tag__seq_tag_data_switch [style=bold];
	d_to_b_3_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	d_to_b_3_tag__seq:tag_type_type -> d_to_b_3_tag__seq:tag_data_type [color="#404040"];
	preview_2_tag__seq:tag_data_type -> preview_2_tag__seq_tag_data_switch [style=bold];
	preview_2_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	preview_2_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	preview_2_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	preview_2_tag__seq:tag_type_type -> preview_2_tag__seq:tag_data_type [color="#404040"];
	device_model_desc_tag__seq:tag_data_type -> device_model_desc_tag__seq_tag_data_switch [style=bold];
	device_model_desc_tag__seq_tag_data_switch:case0 -> multi_localized_unicode_type__seq [style=bold];
	device_model_desc_tag__seq:tag_type_type -> device_model_desc_tag__seq:tag_data_type [color="#404040"];
	multi_process_elements_type__seq:process_element_positions_table_type -> position_number__seq [style=bold];
	multi_process_elements_type__seq:number_of_processing_elements_type -> multi_process_elements_type__seq:process_element_positions_table__repeat [color="#404040"];
	colorant_order_tag__seq:tag_data_type -> colorant_order_tag__seq_tag_data_switch [style=bold];
	colorant_order_tag__seq_tag_data_switch:case0 -> colorant_order_type__seq [style=bold];
	colorant_order_tag__seq:tag_type_type -> colorant_order_tag__seq:tag_data_type [color="#404040"];
	chromaticity_type__seq:ciexy_coordinates_per_channel_type -> ciexy_coordinate_values__seq [style=bold];
	chromaticity_type__seq:number_of_device_channels_type -> chromaticity_type__seq:ciexy_coordinates_per_channel__repeat [color="#404040"];
	luminance_tag__seq:tag_data_type -> luminance_tag__seq_tag_data_switch [style=bold];
	luminance_tag__seq_tag_data_switch:case0 -> xyz_type__seq [style=bold];
	luminance_tag__seq:tag_type_type -> luminance_tag__seq:tag_data_type [color="#404040"];
	s_15_fixed_16_array_type__seq:values_type -> s_15_fixed_16_number__seq [style=bold];
	multi_localized_unicode_type__seq:records_type -> record__seq [style=bold];
	multi_localized_unicode_type__seq:number_of_records_type -> multi_localized_unicode_type__seq:records__repeat [color="#404040"];
	record__seq:string_offset_type -> record__inst__string_data:string_data_pos [color="#404040"];
	record__seq:string_length_type -> record__inst__string_data:string_data_size [color="#404040"];
	a_to_b_2_tag__seq:tag_data_type -> a_to_b_2_tag__seq_tag_data_switch [style=bold];
	a_to_b_2_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	a_to_b_2_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	a_to_b_2_tag__seq_tag_data_switch:case2 -> lut_a_to_b_type__seq [style=bold];
	a_to_b_2_tag__seq:tag_type_type -> a_to_b_2_tag__seq:tag_data_type [color="#404040"];
	a_to_b_1_tag__seq:tag_data_type -> a_to_b_1_tag__seq_tag_data_switch [style=bold];
	a_to_b_1_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	a_to_b_1_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	a_to_b_1_tag__seq_tag_data_switch:case2 -> lut_a_to_b_type__seq [style=bold];
	a_to_b_1_tag__seq:tag_type_type -> a_to_b_1_tag__seq:tag_data_type [color="#404040"];
	colorimetric_intent_image_state_tag__seq:tag_data_type -> colorimetric_intent_image_state_tag__seq_tag_data_switch [style=bold];
	colorimetric_intent_image_state_tag__seq_tag_data_switch:case0 -> signature_type__seq [style=bold];
	colorimetric_intent_image_state_tag__seq:tag_type_type -> colorimetric_intent_image_state_tag__seq:tag_data_type [color="#404040"];
	char_target_tag__seq:tag_data_type -> char_target_tag__seq_tag_data_switch [style=bold];
	char_target_tag__seq_tag_data_switch:case0 -> text_type__seq [style=bold];
	char_target_tag__seq:tag_type_type -> char_target_tag__seq:tag_data_type [color="#404040"];
	colorant_table_tag__seq:tag_data_type -> colorant_table_tag__seq_tag_data_switch [style=bold];
	colorant_table_tag__seq_tag_data_switch:case0 -> colorant_table_type__seq [style=bold];
	colorant_table_tag__seq:tag_type_type -> colorant_table_tag__seq:tag_data_type [color="#404040"];
	calibration_date_time_tag__seq:tag_data_type -> calibration_date_time_tag__seq_tag_data_switch [style=bold];
	calibration_date_time_tag__seq_tag_data_switch:case0 -> date_time_type__seq [style=bold];
	calibration_date_time_tag__seq:tag_type_type -> calibration_date_time_tag__seq:tag_data_type [color="#404040"];
	named_color_2_tag__seq:tag_data_type -> named_color_2_tag__seq_tag_data_switch [style=bold];
	named_color_2_tag__seq_tag_data_switch:case0 -> named_color_2_type__seq [style=bold];
	named_color_2_tag__seq:tag_type_type -> named_color_2_tag__seq:tag_data_type [color="#404040"];
	viewing_cond_desc_tag__seq:tag_data_type -> viewing_cond_desc_tag__seq_tag_data_switch [style=bold];
	viewing_cond_desc_tag__seq_tag_data_switch:case0 -> multi_localized_unicode_type__seq [style=bold];
	viewing_cond_desc_tag__seq:tag_type_type -> viewing_cond_desc_tag__seq:tag_data_type [color="#404040"];
	b_to_d_3_tag__seq:tag_data_type -> b_to_d_3_tag__seq_tag_data_switch [style=bold];
	b_to_d_3_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	b_to_d_3_tag__seq:tag_type_type -> b_to_d_3_tag__seq:tag_data_type [color="#404040"];
	profile_sequence_desc_type__seq:profile_descriptions_type -> profile_description__seq [style=bold];
	profile_sequence_desc_type__seq:number_of_description_structures_type -> profile_sequence_desc_type__seq:profile_descriptions__repeat [color="#404040"];
	profile_description__seq:device_manufacturer_type -> device_manufacturer__seq [style=bold];
	profile_description__seq:device_attributes_type -> device_attributes__seq [style=bold];
	profile_description__seq:device_technology_type -> technology_tag__seq [style=bold];
	profile_description__seq:description_of_device_manufacturer_type -> device_mfg_desc_tag__seq [style=bold];
	profile_description__seq:description_of_device_model_type -> device_model_desc_tag__seq [style=bold];
	profile_sequence_identifier_tag__seq:tag_data_type -> profile_sequence_identifier_tag__seq_tag_data_switch [style=bold];
	profile_sequence_identifier_tag__seq_tag_data_switch:case0 -> profile_sequence_identifier_type__seq [style=bold];
	profile_sequence_identifier_tag__seq:tag_type_type -> profile_sequence_identifier_tag__seq:tag_data_type [color="#404040"];
	b_to_d_1_tag__seq:tag_data_type -> b_to_d_1_tag__seq_tag_data_switch [style=bold];
	b_to_d_1_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	b_to_d_1_tag__seq:tag_type_type -> b_to_d_1_tag__seq:tag_data_type [color="#404040"];
	colorant_order_type__seq:count_of_colorants_type -> colorant_order_type__seq:numbers_of_colorants_in_order_of_printing__repeat [color="#404040"];
	d_to_b_2_tag__seq:tag_data_type -> d_to_b_2_tag__seq_tag_data_switch [style=bold];
	d_to_b_2_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	d_to_b_2_tag__seq:tag_type_type -> d_to_b_2_tag__seq:tag_data_type [color="#404040"];
	gray_trc_tag__seq:tag_data_type -> gray_trc_tag__seq_tag_data_switch [style=bold];
	gray_trc_tag__seq_tag_data_switch:case0 -> curve_type__seq [style=bold];
	gray_trc_tag__seq_tag_data_switch:case1 -> parametric_curve_type__seq [style=bold];
	gray_trc_tag__seq:tag_type_type -> gray_trc_tag__seq:tag_data_type [color="#404040"];
	viewing_conditions_type__seq:un_normalized_ciexyz_values_for_illuminant_type -> xyz_number__seq [style=bold];
	viewing_conditions_type__seq:un_normalized_ciexyz_values_for_surround_type -> xyz_number__seq [style=bold];
	viewing_conditions_type__seq:illuminant_type_type -> standard_illuminant_encoding__seq [style=bold];
	green_trc_tag__seq:tag_data_type -> green_trc_tag__seq_tag_data_switch [style=bold];
	green_trc_tag__seq_tag_data_switch:case0 -> curve_type__seq [style=bold];
	green_trc_tag__seq_tag_data_switch:case1 -> parametric_curve_type__seq [style=bold];
	green_trc_tag__seq:tag_type_type -> green_trc_tag__seq:tag_data_type [color="#404040"];
	gamut_tag__seq:tag_data_type -> gamut_tag__seq_tag_data_switch [style=bold];
	gamut_tag__seq_tag_data_switch:case0 -> lut_8_type__seq [style=bold];
	gamut_tag__seq_tag_data_switch:case1 -> lut_16_type__seq [style=bold];
	gamut_tag__seq_tag_data_switch:case2 -> lut_b_to_a_type__seq [style=bold];
	gamut_tag__seq:tag_type_type -> gamut_tag__seq:tag_data_type [color="#404040"];
	red_matrix_column_tag__seq:tag_data_type -> red_matrix_column_tag__seq_tag_data_switch [style=bold];
	red_matrix_column_tag__seq_tag_data_switch:case0 -> xyz_type__seq [style=bold];
	red_matrix_column_tag__seq:tag_type_type -> red_matrix_column_tag__seq:tag_data_type [color="#404040"];
	b_to_d_2_tag__seq:tag_data_type -> b_to_d_2_tag__seq_tag_data_switch [style=bold];
	b_to_d_2_tag__seq_tag_data_switch:case0 -> multi_process_elements_type__seq [style=bold];
	b_to_d_2_tag__seq:tag_type_type -> b_to_d_2_tag__seq:tag_data_type [color="#404040"];
}