<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE supplementalData SYSTEM '../../common/dtd/ldmlSupplemental.dtd'>
<!--
	Copyright © 1991-2024 Unicode, Inc.
	For terms of use, see http://www.unicode.org/copyright.html
	SPDX-License-Identifier: Unicode-3.0
	CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
	GENERATED DATA — do not manually update!
		Generated by tool:	GenerateValidityXml
		Tool documented on:	http://cldr.unicode.org/development/updating-codes/update-validity-xml
 -->
<supplementalData>
	<version number="$Revision$"/>
	<idValidity>
		<id type='variant' idStatus='regular'>		<!-- 115 items -->
			1606nict 1694acad 1901 1959acad 1994 1996
			abl1943 akuapem alalc97 aluku anpezo ao1990 aranes arkaika asante auvern
			baku1926 balanka barla basiceng bauddha bciav bcizbl biscayan biske blasl bohoric boont bornholm
			cisaup colb1945 cornu creiss
			dajnko
			ekavsk emodeng
			fascia fodom fonipa fonkirsh fonnapa fonupa fonxsamp
			gallo gascon gherd grclass grital grmistr
			hepburn hognorsk hsistemo
			ijekavsk itihasa ivanchov
			jauer jyutping
			kkcor kociewie kscor
			lemosin lengadoc lipaw ltg1929 ltg2007 luna1918
			metelko monoton
			ndyuka nedis newfound nicard njiva nulik
			osojs oxendict
			pahawh2~4 pamaka peano pehoeji petr1708 pinyin polyton provenc puter
			rigik rozaj rumgr
			scotland scouse simple solba sotav spanglis surmiran sursilv sutsilv synnejyl
			tailo tarask tongyong tunumiit
			uccor ucrcor ulster unifon
			valbadia valencia vallader vecdruka vivaraup
			wadegile
			xsistemo
		</id>
		<id type='variant' idStatus='deprecated'>		<!-- 5 items -->
			arevela arevmda
			heploc
			laukika
			vaidika
		</id>
	</idValidity>
</supplementalData>
