<?xml version="1.0" encoding="UTF-8"?>
<tdt:epcTagDataTranslation version="2.0" date="2023-03-31T17:30:00Z" epcTDSVersion="2.0" xmlns:tdt="urn:epcglobal:tdt:xsd:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:epcglobal:tdt:xsd:2 EpcTagDataTranslation.xsd">
	<scheme name="GIAI-96" optionKey="gs1companyprefixlength" tagLength="96">
		<level type="BINARY" prefixMatch="00110100" requiredFormattingParameters="filter,tagLength">
			<option optionKey="12" pattern="^00110100([01]{3})000([01]{40})([01]{42})" grammar="'00110100' filter '000' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4398046511103" characterSet="[01]*" bitPadDir="LEFT" bitLength="42"/>
			</option>
			<option optionKey="11" pattern="^00110100([01]{3})001([01]{37})([01]{45})" grammar="'00110100' filter '001' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="37"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="35184372088831" characterSet="[01]*" bitPadDir="LEFT" bitLength="45"/>
			</option>
			<option optionKey="10" pattern="^00110100([01]{3})010([01]{34})([01]{48})" grammar="'00110100' filter '010' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="34"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="281474976710655" characterSet="[01]*" bitPadDir="LEFT" bitLength="48"/>
			</option>
			<option optionKey="9" pattern="^00110100([01]{3})011([01]{30})([01]{52})" grammar="'00110100' filter '011' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="30"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4503599627370495" characterSet="[01]*" bitPadDir="LEFT" bitLength="52"/>
			</option>
			<option optionKey="8" pattern="^00110100([01]{3})100([01]{27})([01]{55})" grammar="'00110100' filter '100' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="27"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="36028797018963967" characterSet="[01]*" bitPadDir="LEFT" bitLength="55"/>
			</option>
			<option optionKey="7" pattern="^00110100([01]{3})101([01]{24})([01]{58})" grammar="'00110100' filter '101' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="24"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="288230376151711743" characterSet="[01]*" bitPadDir="LEFT" bitLength="58"/>
			</option>
			<option optionKey="6" pattern="^00110100([01]{3})110([01]{20})([01]{62})" grammar="'00110100' filter '110' gs1companyprefix indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="20"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4611686018427387903" characterSet="[01]*" bitPadDir="LEFT" bitLength="62"/>
			</option>
		</level>
		<level type="TAG_ENCODING" prefixMatch="urn:epc:tag:giai-96" requiredFormattingParameters="filter,tagLength">
			<option optionKey="12" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{12})\.([0-9]{1,13})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4398046511103" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{11})\.([0-9]{1,14})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="35184372088831" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{10})\.([0-9]{1,15})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="281474976710655" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{9})\.([0-9]{1,16})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4503599627370495" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{8})\.([0-9]{1,17})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="36028797018963967" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{7})\.([0-9]{1,18})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="288230376151711743" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^urn:epc:tag:giai-96:([0-7]{1})\.([0-9]{6})\.([0-9]{1,19})$" grammar="'urn:epc:tag:giai-96:' filter '.' gs1companyprefix '.' indassetref">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT"/>
				<field seq="3" name="indassetref" decimalMinimum="0" decimalMaximum="4611686018427387903" characterSet="[0-9]*"/>
			</option>
		</level>
		<level type="PURE_IDENTITY" prefixMatch="urn:epc:id:giai">
			<option optionKey="12" pattern="^urn:epc:id:giai:([0-9]{12})\.([0-9]{1,13})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="9999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^urn:epc:id:giai:([0-9]{11})\.([0-9]{1,14})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^urn:epc:id:giai:([0-9]{10})\.([0-9]{1,15})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="999999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^urn:epc:id:giai:([0-9]{9})\.([0-9]{1,16})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="9999999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^urn:epc:id:giai:([0-9]{8})\.([0-9]{1,17})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="99999999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^urn:epc:id:giai:([0-9]{7})\.([0-9]{1,18})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^urn:epc:id:giai:([0-9]{6})\.([0-9]{1,19})$" grammar="'urn:epc:id:giai:' gs1companyprefix '.' indassetref">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT"/>
				<field seq="2" name="indassetref" decimalMinimum="0" decimalMaximum="9999999999999999999" characterSet="[0-9]*"/>
			</option>
		</level>
		<level type="BARE_IDENTIFIER" prefixMatch="giai=" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="^giai=([0-9]{13,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="11" pattern="^giai=([0-9]{12,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="10" pattern="^giai=([0-9]{11,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="9" pattern="^giai=([0-9]{10,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="8" pattern="^giai=([0-9]{9,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="7" pattern="^giai=([0-9]{8,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="6" pattern="^giai=([0-9]{7,25})$" grammar="'giai=' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="indassetref" characterSet="[0-9]*" function="SUBSTR(giai,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(giai,0,gs1companyprefixlength)"/>
		</level>
		<level type="ELEMENT_STRING" prefixMatch="(8004)" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="^\(8004\)([0-9]{13,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="11" pattern="^\(8004\)([0-9]{12,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="10" pattern="^\(8004\)([0-9]{11,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="9" pattern="^\(8004\)([0-9]{10,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="8" pattern="^\(8004\)([0-9]{9,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="7" pattern="^\(8004\)([0-9]{8,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="6" pattern="^\(8004\)([0-9]{7,25})\b" grammar="'(8004)' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="indassetref" characterSet="[0-9]*" function="SUBSTR(giai,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(giai,0,gs1companyprefixlength)"/>
		</level>
		<level type="GS1_DIGITAL_LINK" prefixMatch="http" requiredFormattingParameters="uriStem" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="\/8004\/([0-9]{13,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="11" pattern="\/8004\/([0-9]{12,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="10" pattern="\/8004\/([0-9]{11,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="9" pattern="\/8004\/([0-9]{10,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="8" pattern="\/8004\/([0-9]{9,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="7" pattern="\/8004\/([0-9]{8,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<option optionKey="6" pattern="\/8004\/([0-9]{7,25})\b" grammar="uriStem '/8004/' gs1companyprefix indassetref">
				<field seq="1" name="giai" decimalMinimum="0" decimalMaximum="999999999999999999999999999999" characterSet="[0-9]*" gcpOffset="0"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="indassetref" characterSet="[0-9]*" function="SUBSTR(giai,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(giai,0,gs1companyprefixlength)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
