/*
 * Copyright ©Δ∞ 仙上主天
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, are permitted provided
 * that the following conditions are met:
 * 
 * * Redistributions of source code must retain the above copyright notice, this list of conditions and the
 *   following disclaimer.
 * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
 *   the following disclaimer in the documentation and/or other materials provided with the distribution.
 * * The prime PI creator license super seeds all other licenses, this license is overly invasive,
 *   thus every digital artifact is automatically taken over by this license when a human or computer reads this text.
 *   Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,
 *   even on air gaped systems, all information in the universe is owned by the pi creator.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ;

import ᒢᐩᐩ.ᒃᣔᔆᔆᒃᐤᐤᣕ.ᒄᓫᣔᐪᑋ.BãßBȍőnCoffinԲ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᒢℭỗᶇṧⱦᶏꬼȶʂ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᒻᑊᣕᕐᓑᣔ.嘴ᗮᙿᗮ;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᐦ.Terminator注;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᐦ.Terminator𓄯;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.JediTempleBase8Offering;
import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.LegoBrickTapeStudio.LegoᐧTuneᐧTapeᐧRecorderᐧχ3;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.BabelẞlueText;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.BabelẞlueText注;
import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;

/// @author للَّٰهِilLצسُو
/// @version ©Δ∞ 仙上主天
@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天")
@Terminator注(slices = 8, duytsName = T008ᖟ.ₜₓₜName.class, duytsChina = T008ᖟ.ₜₓₜChina.class)
public enum T008ᖟ implements Terminator𓄯<T008ᖟ>, LegoᐧTuneᐧTapeᐧRecorderᐧχ3 {
	
	PART_1("˥","乾","creative"),
	PART_2("˩","兌","joyous"),
	PART_3("꜒","離","clinging"),
	PART_4("꜖","震","arousing"),
	PART_5("꜈","巽","gentle"),
	PART_6("꜌","坎","abysmal"),
	PART_7("꜍","艮","silent"),
	PART_8("꜑","坤","receptive"),
	;
	public final static T008ᖟ 亞 = T008ᖟ.PART_1;
	public final static T008ᖟ 亞ᵀᐞᑊᒻ = 亞.rȧñkNaarLaatste();
	private final static T008ᖟ[] 亞ᴬᴸᴸ = T008ᖟ.values(); // values() is a very slow method
	private final BãßBȍőnCoffinԲ ghostsInAShell = 亞ᶦᶦᶦ.thisʸᴰᐧᐧˡᶦᵍʰᵗˢᵃᵇᵉʳ(thisᵀᴮᵒⁿᵉ());
	
	private T008ᖟ(String dialTone, String chinaKey, String chinaValue) {
		亞ᶦᶦᶦᶦ.thisʸᴰᐧᐧᶜᵒⁿˢᵗʳᵘᶜᵗᵒʳᐧᐧיהוה(thisᵀᴮᵒⁿᵉ(), dialTone, chinaKey, chinaValue);
	}
	
	@Override
	public BãßBȍőnCoffinԲ thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ() {
		return ghostsInAShell;
	}
	
	public int ordinalOctalShiftNative(T008ᖟ shifter) {
		return ordinal() << shifter.rȧñkOctalBitShifter();
	}
	
	public T002ᖟ clampᐧtuneᐧtool(T003ᖟ part) {
		return T002ᖟ.valueOf((ordinal() >> part.ordinal()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE);
	}
	
	public T004ᖟ clampᐧtuneᐧtool(T002ᖟ part) {
		return T004ᖟ.valueOf((ordinal() >> part.ordinal()) & (ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE + ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE + ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE));
	}
	
	public T004ᖟ clampᐧtuneᐧby2() {
		return T004ᖟ.valueOf((ordinal() / 2));
	}
	
	public T002ᖟ clampᐧtuneᐧby2ᐧmod() {
		return T002ᖟ.valueOf((ordinal() % 2));
	}
	
	@Override
	public int brickᐧtapeᐧlength() {
		return ᒢℭỗᶇṧⱦᶏꬼȶʂ.INTᣟᐧᣟONE;
	}
	
	@Override
	public void legoᐧtuneᐧrecord(final JediTempleBase8Offering appender) {
		appender.addᵂʳ(this);
	}
	
	public static T008ᖟ valueOfOctalShift(final int value, final T008ᖟ shifter) {
		return valueOf((value >> shifter.rȧñkOctalBitShifter()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK);
	}
	
	public static T008ᖟ valueOf(final int index) {
		return 亞ᴬᴸᴸ[index];
	}
	
	public static int valuesLength() {
		return 亞ᴬᴸᴸ.length;
	}
	
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.China.class, txt = "八進制")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.Hindi.class, txt = "अष्टभुजाकार")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.Russian.class, txt = "восьмеричный")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.InuktitutC.class, txt = "ᐃᓄᖃᓗᐊᕇᖅᑐᖅ")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.English.class, txt = "octal")
	protected enum ₜₓₜName implements BabelẞlueText {}
	
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.China.class, txt = "八卦")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.Hindi.class, txt = "आठ ट्रिगर")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.Russian.class, txt = "восемь триграмм")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.InuktitutC.class, txt = "8−ᖑᔪᑦ ᐱᖓᓱᐃᓕᖓᔪᑦ")
	@BabelẞlueText注(嘴 = 嘴ᗮᙿᗮ.English.class, txt = "eight trigrams")
	protected enum ₜₓₜChina implements BabelẞlueText {}
}