<?xml version="1.0" encoding="UTF-8"?>
<tdt:epcTagDataTranslation version="2.0" date="2023-03-29T09: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="DSGTIN+" optionKey="dateType">
		<level type="BINARY" prefixMatch="11111011" requiredFormattingParameters="filter,dataToggle">
			<option optionKey="0" pattern="^11111011([01])([01]{3})0000([01]{16})" grammar="'11111011' dataToggle filter '0000' prodDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="prodDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="1" pattern="^11111011([01])([01]{3})0001([01]{16})" grammar="'11111011' dataToggle filter '0001' packDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="packDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="2" pattern="^11111011([01])([01]{3})0010([01]{16})" grammar="'11111011' dataToggle filter '0010' bestBeforeDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="bestBeforeDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="3" pattern="^11111011([01])([01]{3})0011([01]{16})" grammar="'11111011' dataToggle filter '0011' sellByDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="sellByDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="4" pattern="^11111011([01])([01]{3})0100([01]{16})" grammar="'11111011' dataToggle filter '0100' expDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="expDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="5" pattern="^11111011([01])([01]{3})0101([01]{16})" grammar="'11111011' dataToggle filter '0101' firstFreezeDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="firstFreezeDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
			<option optionKey="6" pattern="^11111011([01])([01]{3})0110([01]{16})" grammar="'11111011' dataToggle filter '0110' harvestDate encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="3" name="harvestDate" characterSet="[01]*"/>
				<encodedAI ai="01" name="gtin" seq="4"/>
				<encodedAI ai="21" name="serial" seq="5"/>
			</option>
		</level>
		<level type="BARE_IDENTIFIER" prefixMatch="gtin=">
			<option optionKey="0" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});prodDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';prodDate=' prodDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="prodDate" characterSet="[01]*"/>
			</option>
			<option optionKey="1" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});packDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';packDate=' packDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="packDate" characterSet="[01]*"/>
			</option>
			<option optionKey="2" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});bestBeforeDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';bestBeforeDate=' bestBeforeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="bestBeforeDate" characterSet="[01]*"/>
			</option>
			<option optionKey="3" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});sellByDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';sellByDate=' sellByDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="sellByDate" characterSet="[01]*"/>
			</option>
			<option optionKey="4" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});expDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';expDate=' expDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="expDate" characterSet="[01]*"/>
			</option>
			<option optionKey="5" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});firstFreezeDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';firstFreezeDate=' firstFreezeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="firstFreezeDate" characterSet="[01]*"/>
			</option>
			<option optionKey="6" pattern="^gtin=([0-9]{14});serial=([!%-?A-Z_a-z\x22]{1,20});harvestDate=([0-9]{6})$" grammar="'gtin=' gtin ';serial=' serial ';harvestDate=' harvestDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="harvestDate" characterSet="[01]*"/>
			</option>
		</level>
		<level type="ELEMENT_STRING" prefixMatch="(01)">
			<option optionKey="0" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(11\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(11)' prodDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="prodDate" characterSet="[01]*"/>
			</option>
			<option optionKey="1" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(13\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(13)' packDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="packDate" characterSet="[01]*"/>
			</option>
			<option optionKey="2" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(15\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(15)' bestBeforeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="bestBeforeDate" characterSet="[01]*"/>
			</option>
			<option optionKey="3" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(16\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(16)' sellByDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="sellByDate" characterSet="[01]*"/>
			</option>
			<option optionKey="4" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(17\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(17)' expDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="expDate" characterSet="[01]*"/>
			</option>
			<option optionKey="5" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(7006\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(7006)' firstFreezeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="firstFreezeDate" characterSet="[01]*"/>
			</option>
			<option optionKey="6" pattern="^\(01\)([0-9]{14})\(21\)([!%-?A-Z_a-z\x22]{1,20})\(7007\)([0-9]{6})\b" grammar="'(01)' gtin '(21)' serial '(7007)' firstFreezeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
				<field seq="3" name="firstFreezeDate" characterSet="[01]*"/>
			</option>
		</level>
		<level type="GS1_DIGITAL_LINK" prefixMatch="http" requiredFormattingParameters="uriStem">
			<option optionKey="0" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?11=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?11=' prodDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="prodDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="1" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?13=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?13=' packDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="packDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="2" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?15=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?15=' bestBeforeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="bestBeforeDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="3" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?16=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?16=' sellByDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="sellByDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="4" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?17=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?17=' expDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="expDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="5" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?7006=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?7006=' firstFreezeDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="firstFreezeDate" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="\/01\/([0-9]{14})\/21\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20})\?7007=([0-9]{6})\b" grammar="uriStem '/01/' gtin '/21/' serial '?7007=' harvestDate">
				<field seq="1" name="gtin" decimalMinimum="0" decimalMaximum="99999999999999" characterSet="[0-9]*" length="14" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
				<field seq="3" name="harvestDate" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="serial" characterSet="[!%-?A-Z_a-z\x22]*" function="URLDECODE(urlEscapedSerial)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*" function="URLENCODE(serial)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
