<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package HumanoidAnimation.Prototypes;

import org.web3d.x3d.jsail.Core.*;
import org.web3d.x3d.jsail.fields.*;
import org.web3d.x3d.jsail.Grouping.*;
import org.web3d.x3d.jsail.HAnim.*;
import org.web3d.x3d.jsail.Interpolation.*;
import org.web3d.x3d.jsail.Scripting.*;
import org.web3d.x3d.jsail.Time.*;

// Javadoc metadata annotations follow, see below for X3DJSAIL Java source code.
/**
 * &lt;p&gt; Prototypes for HAnimBehavior node, which collects OrientationInterpolators for aggregate animation of an HAnim humanoid model, and HAnimBodyBehaviorChooser, which selects one body and enables/disables multiple aggregated behaviors. &lt;/p&gt;
 &lt;p&gt; Related links:  source HAnimBehaviorPrototypes.java, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dResources.html" target="_blank"&gt;X3D Resources&lt;/a&gt;, &lt;a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html" target="_blank"&gt;X3D Scene Authoring Hints&lt;/a&gt;, and &lt;a href="https://www.web3d.org/x3d/content/X3dTooltips.html" target="_blank"&gt;X3D Tooltips&lt;/a&gt;. &lt;/p&gt;
	&lt;table style="color:black; border:0px solid; border-spacing:10px 0px;"&gt;
        &lt;caption&gt;Scene Meta Information&lt;/caption&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center; padding:10px 0px;"&gt;&lt;i&gt;meta tags&lt;/i&gt;&lt;/td&gt;
			&lt;td style="text-align:left;   padding:10px 0px;"&gt;HumanoidAnimation.Prototypes.HAnimBehaviorPrototypes&amp;nbsp; Document Metadata &lt;/td&gt;
		&lt;/tr&gt;

		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; title &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimBehaviorPrototypes.x3d"&gt;HAnimBehaviorPrototypes.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; description &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Prototypes for HAnimBehavior node, which collects OrientationInterpolators for aggregate animation of an HAnim humanoid model, and HAnimBodyBehaviorChooser, which selects one body and enables/disables multiple aggregated behaviors. &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; creator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; Don Brutzman, Jeff Weekley, MV4205 Advanced X3D Authoring class, and Keith Victor &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; created &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 2 May 2006 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; modified &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; 2 January 2025 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/Web3D2007BlendedBehaviorsChangeableBodies.pdf"&gt;Web3D2007BlendedBehaviorsChangeableBodies.pdf&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/files/specifications/19774/V1.0" target="_blank"&gt;https://www.web3d.org/files/specifications/19774/V1.0&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification_Revision1_to_Part1/Part01/components/hanim.html" target="_blank"&gt;https://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification_Revision1_to_Part1/Part01/components/hanim.html&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/InterchangableActorsViaDynamicRoutingPrototypes.x3d"&gt;InterchangableActorsViaDynamicRoutingPrototypes.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; reference &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/ApaydinThesis.pdf"&gt;ApaydinThesis.pdf&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; subject &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; X3D HAnim humanoid animation behaviors &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style="color:burntorange"&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; warning &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; under development. should joint translations be exposed? upgrade to HAnim v2.2 &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; identifier &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimBehaviorPrototypes.x3d" target="_blank"&gt;https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimBehaviorPrototypes.x3d&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; generator &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; X3D-Edit 4.0, &lt;a href="https://savage.nps.edu/X3D-Edit" target="_blank"&gt;https://savage.nps.edu/X3D-Edit&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:right; vertical-align: text-top;"&gt; &lt;i&gt; license &lt;/i&gt; &lt;/td&gt;
			&lt;td&gt; &lt;a href="https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/../license.html"&gt;../license.html&lt;/a&gt; &lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr style="background-color:silver; border-color:silver;"&gt;
			&lt;td style="text-align:center;" colspan="2"&gt;  &amp;nbsp; &lt;/td&gt;
		&lt;/tr&gt;
	&lt;/table&gt;

	&lt;p&gt;
		This program uses the
		&lt;a href="https://www.web3d.org/specifications/java/X3DJSAIL.html" target="_blank"&gt;X3D Java Scene Access Interface Library (X3DJSAIL)&lt;/a&gt;.
		It has been produced using the 
		&lt;a href="https://www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;X3dToJava.xslt&lt;/a&gt;
		stylesheet
	       (&lt;a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/stylesheets/X3dToJava.xslt" target="_blank"&gt;version control&lt;/a&gt;)
                which is used to create Java source code from an original &lt;code&gt;.x3d&lt;/code&gt; model.
	&lt;/p&gt;

	* @author Don Brutzman, Jeff Weekley, MV4205 Advanced X3D Authoring class, and Keith Victor
 */

public class HAnimBehaviorPrototypes
{
	/** Default constructor to create this object. */
	public HAnimBehaviorPrototypes ()
	{
	  initialize();
	}

	/** Create and initialize the X3D model for this object. */
	public final void initialize()
	{
            try { // catch-all
  x3dModel = new X3D().setProfile(X3D.PROFILE_IMMERSIVE).setVersion(X3D.VERSION_3_3)
  .setHead(new head()
    .addComponent(new component().setName("H-Anim").setLevel(1))
    .addMeta(new meta().setName(meta.NAME_TITLE      ).setContent("HAnimBehaviorPrototypes.x3d"))
    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("Prototypes for HAnimBehavior node, which collects OrientationInterpolators for aggregate animation of an HAnim humanoid model, and HAnimBodyBehaviorChooser, which selects one body and enables/disables multiple aggregated behaviors."))
    .addMeta(new meta().setName(meta.NAME_CREATOR    ).setContent("Don Brutzman, Jeff Weekley, MV4205 Advanced X3D Authoring class, and Keith Victor"))
    .addMeta(new meta().setName(meta.NAME_CREATED    ).setContent("2 May 2006"))
    .addMeta(new meta().setName(meta.NAME_MODIFIED   ).setContent("2 January 2025"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("Web3D2007BlendedBehaviorsChangeableBodies.pdf"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/files/specifications/19774/V1.0"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("https://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification_Revision1_to_Part1/Part01/components/hanim.html"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("InterchangableActorsViaDynamicRoutingPrototypes.x3d"))
    .addMeta(new meta().setName(meta.NAME_REFERENCE  ).setContent("ApaydinThesis.pdf"))
    .addMeta(new meta().setName(meta.NAME_SUBJECT    ).setContent("X3D HAnim humanoid animation behaviors"))
    .addMeta(new meta().setName(meta.NAME_WARNING    ).setContent("under development. should joint translations be exposed? upgrade to HAnim v2.2"))
    .addMeta(new meta().setName(meta.NAME_IDENTIFIER ).setContent("https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimBehaviorPrototypes.x3d"))
    .addMeta(new meta().setName(meta.NAME_GENERATOR  ).setContent("X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit"))
    .addMeta(new meta().setName(meta.NAME_LICENSE    ).setContent("../license.html")))
  .setScene(new Scene()
    .addChild(new WorldInfo().setTitle("HAnimBehaviorPrototypes.x3d"))
    .addChild(new ProtoDeclare("HAnimBehavior").setName("HAnimBehavior").setAppinfo("The HAnimBehavior node models a single humanoid behavior either for an entire body or simply parts of a body. It collects a TimeSensor clock with a single PositionInterpolator and multiple OrientationInterpolator nodes to provide a single humanoid behavior.").setDocumentation("https://www.web3d.org/files/specifications/19774/V1.0/")
      .setProtoInterface(new ProtoInterface()
        .addComments(" supported Level of Articulation (LOA) ")
        .addField(new field().setName("supportedLOA").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(-1).setAppinfo("Supported Level of Articulation (LOA) support needed by authored HAnimBehavior set of OrientationInterpolator values. Legal values 0 1 2 3."))
        .addComments(" shared common input for single TimeSensor animating all interpolators, since different Behaviors may have different cycleInterval durations ")
        .addComments(" TODO: add other X3D 3.0 TimeSensor fields (pause etc.) ")
        .addComments(" Not supported: animated translation of individual joints ")
        .addField(new field().setName("enabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(true).setAppinfo("is this behavior enabled?"))
        .addField(new field().setName("cycleInterval").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(1.0).setAppinfo("how long do these interpolators take to execute?"))
        .addField(new field().setName("loop").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(false).setAppinfo("whether or not this behavior loops (e.g. walking) or is single shot (e.g. shake hands)."))
        .addField(new field().setName("startTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0).setAppinfo("when time now &gt;= startTime isActive becomes true and TimeSensor becomes active"))
        .addField(new field().setName("stopTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0).setAppinfo("when stopTime becomes &lt;= time now isActive becomes false and TimeSensor becomes inactive"))
        .addField(new field().setName("pauseTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0).setAppinfo("when time now &gt;= pauseTime isPaused becomes true and TimeSensor becomes paused"))
        .addField(new field().setName("resumeTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0).setAppinfo("when resumeTime becomes &lt;= time now isPaused becomes false and TimeSensor becomes inactive"))
        .addField(new field().setName("cycleTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("cycleTime sends a time outputOnly at startTime and also at the beginning of each new cycle"))
        .addField(new field().setName("isActive").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("isActive true/false events are sent when TimeSensor starts/stops running"))
        .addField(new field().setName("isPaused").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("isPaused true/false events are sent when TimeSensor is paused/resumed"))
        .addField(new field().setName("elapsedTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("current elapsed time since TimeSensor activated/running cumulative in seconds and not counting any paused time"))
        .addField(new field().setName("time").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("continuously sends the absolute time (since January 1 1970)"))
        .addField(new field().setName("fraction_changed").setType(field.TYPE_SFFLOAT).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("fraction_changed continuously sends value in range [0 1] showing time progress in the current cycle."))
        .addComments(" pass in key/keyValue array pairs for single PositionInterpolator ")
        .addField(new field().setName("HumanoidRoot_translation_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("HumanoidRoot_translation_keyValue").setType(field.TYPE_MFVEC3F).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("HumanoidRoot_translation_changed").setType(field.TYPE_SFVEC3F).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addComments(" pass in key/keyValue array pairs and expose named output for each OrientationInterpolator, joint by joint ")
        .addField(new field().setName("HumanoidRoot_rotation_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("HumanoidRoot_rotation_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("HumanoidRoot_rotation_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c6_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c6_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c6_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("c7_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c7_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("c7_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("jaw_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("jaw_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("jaw_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_acromioclavicular_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_acromioclavicular_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_acromioclavicular_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ankle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ankle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ankle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_calf_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_calf_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_calf_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_clavicle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_clavicle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_clavicle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_elbow_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_elbow_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_elbow_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyeball_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyeball_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyeball_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyeball_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyeball_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyeball_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyebrow_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyebrow_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyebrow_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyebrow_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyebrow_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyebrow_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyelid_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyelid_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyelid_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_eyelid_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyelid_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_eyelid_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_forearm_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_forearm_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_forearm_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_forefoot_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_forefoot_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_forefoot_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_hand_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hand_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hand_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_hindfoot_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hindfoot_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hindfoot_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_hip_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hip_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_hip_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_index_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_index_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_knee_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_knee_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_knee_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_metatarsal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_metatarsal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_metatarsal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middistal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middistal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middistal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_middle_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_middle_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_midproximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_midproximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_midproximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_midtarsal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_midtarsal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_midtarsal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_pinky_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_pinky_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_ring_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_ring_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_scapula_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_scapula_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_scapula_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_shoulder_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_shoulder_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_shoulder_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_sternoclavicular_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_sternoclavicular_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_sternoclavicular_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_subtalar_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_subtalar_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_subtalar_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thigh_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thigh_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thigh_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_thumb_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_thumb_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_upperarm_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_upperarm_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_upperarm_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("l_wrist_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_wrist_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("l_wrist_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("pelvis_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("pelvis_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("pelvis_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_acromioclavicular_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_acromioclavicular_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_acromioclavicular_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ankle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ankle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ankle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_calf_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_calf_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_calf_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_clavicle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_clavicle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_clavicle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_elbow_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_elbow_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_elbow_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyeball_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyeball_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyeball_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyeball_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyeball_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyeball_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyebrow_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyebrow_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyebrow_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyebrow_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyebrow_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyebrow_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyelid_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyelid_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyelid_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_eyelid_joint_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyelid_joint_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_eyelid_joint_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_forearm_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_forearm_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_forearm_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_forefoot_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_forefoot_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_forefoot_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_hand_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hand_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hand_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_hindfoot_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hindfoot_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hindfoot_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_hip_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hip_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_hip_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_index_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_index_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_knee_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_knee_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_knee_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_metatarsal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_metatarsal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_metatarsal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middistal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middistal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middistal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_middle_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_middle_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_midproximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_midproximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_midproximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_midtarsal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_midtarsal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_midtarsal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_pinky_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_pinky_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring0_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring0_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring0_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring_middle_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_middle_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_middle_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_ring_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_ring_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_scapula_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_scapula_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_scapula_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_shoulder_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_shoulder_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_shoulder_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_sternoclavicular_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_sternoclavicular_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_sternoclavicular_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_subtalar_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_subtalar_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_subtalar_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thigh_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thigh_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thigh_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb_distal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_distal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_distal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb_metacarpal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_metacarpal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_metacarpal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_thumb_proximal_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_proximal_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_thumb_proximal_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_upperarm_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_upperarm_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_upperarm_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("r_wrist_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_wrist_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("r_wrist_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("sacroiliac_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("sacroiliac_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("sacroiliac_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("sacrum_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("sacrum_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("sacrum_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("skull_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("skull_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("skull_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("skullbase_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("skullbase_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("skullbase_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t10_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t10_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t10_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t11_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t11_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t11_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t12_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t12_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t12_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t6_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t6_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t6_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t7_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t7_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t7_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t8_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t8_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t8_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("t9_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t9_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("t9_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("temporomandibular_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("temporomandibular_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("temporomandibular_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc6_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc6_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc6_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vc7_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc7_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vc7_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vl1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vl2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vl3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vl4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vl5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vl5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt10_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt10_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt10_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt11_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt11_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt11_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt12_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt12_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt12_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt1_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt1_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt1_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt2_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt2_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt2_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt3_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt3_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt3_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt4_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt4_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt4_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt5_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt5_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt5_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt6_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt6_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt6_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt7_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt7_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt7_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt8_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt8_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt8_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY))
        .addField(new field().setName("vt9_key").setType(field.TYPE_MFFLOAT).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt9_keyValue").setType(field.TYPE_MFROTATION).setAccessType(field.ACCESSTYPE_INPUTOUTPUT)
          .addComments(" no default value "))
        .addField(new field().setName("vt9_changed").setType(field.TYPE_SFROTATION).setAccessType(field.ACCESSTYPE_OUTPUTONLY)))
      .setProtoBody(new ProtoBody()
        .addComments(" design alternative: move TimeSensor out of the prototype, instead expose set_fraction globally to all interpolators ")
        .addChild(new TimeSensor("BehaviorClock")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("enabled").setProtoField("enabled"))
            .addConnect(new connect().setNodeField("cycleInterval").setProtoField("cycleInterval"))
            .addConnect(new connect().setNodeField("loop").setProtoField("loop"))
            .addConnect(new connect().setNodeField("startTime").setProtoField("startTime"))
            .addConnect(new connect().setNodeField("stopTime").setProtoField("stopTime"))
            .addConnect(new connect().setNodeField("pauseTime").setProtoField("pauseTime"))
            .addConnect(new connect().setNodeField("resumeTime").setProtoField("resumeTime"))
            .addConnect(new connect().setNodeField("cycleTime").setProtoField("cycleTime"))
            .addConnect(new connect().setNodeField("isActive").setProtoField("isActive"))
            .addConnect(new connect().setNodeField("isPaused").setProtoField("isPaused"))
            .addConnect(new connect().setNodeField("elapsedTime").setProtoField("elapsedTime"))
            .addConnect(new connect().setNodeField("time").setProtoField("time"))
            .addConnect(new connect().setNodeField("fraction_changed").setProtoField("fraction_changed"))))
        .addComments(" note that other nodes following the first node in the ProtoBody are not rendered but remain active nevertheless ")
        .addChild(new Switch("SupportedLoaHolder1").setWhichChoice(-1)
          .setIS(new IS()
            .addConnect(new connect().setNodeField("whichChoice").setProtoField("supportedLOA"))))
        .addChild(new PositionInterpolator("HumanoidRootPI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("HumanoidRoot_translation_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("HumanoidRoot_translation_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("HumanoidRoot_translation_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("HumanoidRootPI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("HumanoidRootOI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("HumanoidRoot_rotation_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("HumanoidRoot_rotation_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("HumanoidRoot_rotation_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("HumanoidRootOI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c6_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c6_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c6_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c6_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c6_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("c7_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("c7_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("c7_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("c7_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("c7_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("jaw_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("jaw_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("jaw_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("jaw_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("jaw_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_acromioclavicular_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_acromioclavicular_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_acromioclavicular_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_acromioclavicular_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_acromioclavicular_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ankle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ankle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ankle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ankle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ankle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_calf_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_calf_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_calf_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_calf_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_calf_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_clavicle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_clavicle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_clavicle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_clavicle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_clavicle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_elbow_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_elbow_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_elbow_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_elbow_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_elbow_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyeball_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyeball_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyeball_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyeball_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyeball_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyeball_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyeball_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyeball_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyeball_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyeball_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyebrow_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyebrow_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyebrow_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyebrow_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyebrow_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyebrow_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyebrow_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyebrow_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyebrow_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyebrow_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyelid_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyelid_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyelid_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyelid_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyelid_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_eyelid_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_eyelid_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_eyelid_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_eyelid_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_eyelid_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_forearm_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_forearm_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_forearm_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_forearm_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_forearm_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_forefoot_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_forefoot_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_forefoot_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_forefoot_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_forefoot_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_hand_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_hand_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_hand_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_hand_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_hand_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_hindfoot_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_hindfoot_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_hindfoot_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_hindfoot_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_hindfoot_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_hip_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_hip_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_hip_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_hip_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_hip_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_index_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_index_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_index_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_index_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_index_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_knee_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_knee_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_knee_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_knee_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_knee_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_metatarsal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_metatarsal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_metatarsal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_metatarsal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_metatarsal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middistal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middistal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middistal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middistal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middistal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_middle_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_middle_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_middle_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_middle_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_middle_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_midproximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_midproximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_midproximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_midproximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_midproximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_midtarsal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_midtarsal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_midtarsal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_midtarsal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_midtarsal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_pinky_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_pinky_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_pinky_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_pinky_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_pinky_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_ring_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_ring_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_ring_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_ring_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_ring_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_scapula_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_scapula_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_scapula_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_scapula_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_scapula_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_shoulder_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_shoulder_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_shoulder_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_shoulder_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_shoulder_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_sternoclavicular_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_sternoclavicular_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_sternoclavicular_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_sternoclavicular_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_sternoclavicular_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_subtalar_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_subtalar_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_subtalar_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_subtalar_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_subtalar_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thigh_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thigh_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thigh_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thigh_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thigh_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_thumb_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_thumb_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_thumb_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_thumb_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_thumb_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_upperarm_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_upperarm_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_upperarm_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_upperarm_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_upperarm_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("l_wrist_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("l_wrist_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("l_wrist_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("l_wrist_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("l_wrist_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("pelvis_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("pelvis_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("pelvis_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("pelvis_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("pelvis_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_acromioclavicular_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_acromioclavicular_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_acromioclavicular_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_acromioclavicular_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_acromioclavicular_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ankle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ankle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ankle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ankle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ankle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_calf_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_calf_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_calf_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_calf_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_calf_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_clavicle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_clavicle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_clavicle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_clavicle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_clavicle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_elbow_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_elbow_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_elbow_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_elbow_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_elbow_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyeball_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyeball_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyeball_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyeball_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyeball_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyeball_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyeball_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyeball_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyeball_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyeball_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyebrow_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyebrow_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyebrow_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyebrow_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyebrow_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyebrow_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyebrow_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyebrow_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyebrow_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyebrow_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyelid_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyelid_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyelid_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyelid_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyelid_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_eyelid_joint_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_eyelid_joint_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_eyelid_joint_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_eyelid_joint_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_eyelid_joint_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_forearm_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_forearm_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_forearm_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_forearm_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_forearm_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_forefoot_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_forefoot_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_forefoot_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_forefoot_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_forefoot_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_hand_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_hand_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_hand_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_hand_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_hand_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_hindfoot_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_hindfoot_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_hindfoot_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_hindfoot_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_hindfoot_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_hip_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_hip_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_hip_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_hip_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_hip_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_index_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_index_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_index_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_index_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_index_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_knee_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_knee_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_knee_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_knee_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_knee_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_metatarsal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_metatarsal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_metatarsal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_metatarsal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_metatarsal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middistal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middistal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middistal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middistal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middistal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_middle_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_middle_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_middle_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_middle_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_middle_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_midproximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_midproximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_midproximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_midproximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_midproximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_midtarsal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_midtarsal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_midtarsal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_midtarsal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_midtarsal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_pinky_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_pinky_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_pinky_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_pinky_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_pinky_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring0_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring0_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring0_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring0_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring0_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring_middle_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring_middle_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring_middle_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring_middle_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring_middle_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_ring_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_ring_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_ring_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_ring_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_ring_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_scapula_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_scapula_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_scapula_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_scapula_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_scapula_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_shoulder_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_shoulder_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_shoulder_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_shoulder_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_shoulder_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_sternoclavicular_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_sternoclavicular_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_sternoclavicular_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_sternoclavicular_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_sternoclavicular_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_subtalar_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_subtalar_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_subtalar_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_subtalar_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_subtalar_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thigh_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thigh_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thigh_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thigh_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thigh_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb_distal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb_distal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb_distal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb_distal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb_distal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb_metacarpal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb_metacarpal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb_metacarpal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb_metacarpal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb_metacarpal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_thumb_proximal_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_thumb_proximal_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_thumb_proximal_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_thumb_proximal_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_thumb_proximal_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_upperarm_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_upperarm_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_upperarm_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_upperarm_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_upperarm_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("r_wrist_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("r_wrist_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("r_wrist_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("r_wrist_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("r_wrist_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("sacroiliac_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("sacroiliac_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("sacroiliac_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("sacroiliac_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("sacroiliac_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("sacrum_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("sacrum_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("sacrum_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("sacrum_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("sacrum_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("skull_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("skull_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("skull_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("skull_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("skull_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("skullbase_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("skullbase_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("skullbase_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("skullbase_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("skullbase_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t6_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t6_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t6_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t6_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t6_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t7_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t7_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t7_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t7_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t7_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t8_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t8_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t8_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t8_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t8_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t9_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t9_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t9_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t9_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t9_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t10_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t10_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t10_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t10_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t10_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t11_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t11_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t11_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t11_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t11_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("t12_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("t12_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("t12_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("t12_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("t12_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("temporomandibular_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("temporomandibular_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("temporomandibular_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("temporomandibular_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("temporomandibular_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc6_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc6_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc6_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc6_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc6_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vc7_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vc7_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vc7_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vc7_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vc7_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vl1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vl1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vl1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vl1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vl1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vl2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vl2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vl2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vl2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vl2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vl3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vl3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vl3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vl3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vl3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vl4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vl4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vl4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vl4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vl4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vl5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vl5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vl5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vl5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vl5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt1_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt1_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt1_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt1_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt1_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt2_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt2_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt2_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt2_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt2_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt3_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt3_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt3_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt3_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt3_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt4_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt4_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt4_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt4_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt4_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt5_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt5_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt5_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt5_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt5_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt6_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt6_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt6_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt6_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt6_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt7_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt7_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt7_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt7_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt7_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt8_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt8_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt8_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt8_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt8_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt9_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt9_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt9_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt9_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt9_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt10_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt10_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt10_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt10_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt10_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt11_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt11_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt11_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt11_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt11_OI").setToField("set_fraction"))
        .addChild(new OrientationInterpolator("vt12_OI")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("key").setProtoField("vt12_key"))
            .addConnect(new connect().setNodeField("keyValue").setProtoField("vt12_keyValue"))
            .addConnect(new connect().setNodeField("value_changed").setProtoField("vt12_changed"))))
        .addChild(new ROUTE().setFromNode("BehaviorClock").setFromField("fraction_changed").setToNode("vt12_OI").setToField("set_fraction"))))
    .addChild(new ProtoDeclare("HAnimBodyBehaviorChooser").setName("HAnimBodyBehaviorChooser").setAppinfo("The HAnimBodyBehaviorChooser node allows an author to select one of several HAnimHumanoid bodies and simultaneously apply multiple HAnimBehavior animations to the active body. Individual behaviors may be enabled or disabled at any time.")
      .setProtoInterface(new ProtoInterface()
        .addComments(" TODO: supported Level of Articulation (LOA) might be adapted to more efficiently setup/teardown pertinent ROUTEs ")
        .addField(new field().setName("supportedLOA").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(-1).setAppinfo("Level of Articulation (LOA) support needed by authored HAnimBehavior set of OrientationInterpolator values. Legal values 0 1 2 3."))
        .addField(new field().setName("HumanoidArray").setType(field.TYPE_MFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("[HAnimHumanoid] nodes only")
          .addComments(" default NULL "))
        .addComments(" accessType=\"inputOutput\" avoided to maintain backwards compatilibility with VRML97 scripting constraints ")
        .addField(new field().setName("whichBody").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(-1).setAppinfo("whichBody is selected default is initial member of HumanoidArray"))
        .addField(new field().setName("set_whichBody").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("whichBody is selected default is none"))
        .addField(new field().setName("whichBody_changed").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("whichBody is selected default is none"))
        .addField(new field().setName("hAnimBehaviorNodes").setType(field.TYPE_MFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("[HAnimBehavior] nodes only some or all of which may be enabled. Warning: do not animate a single joint with more than one interpolator at a given time.")
          .addComments(" default NULL "))
        .addField(new field().setName("enabledBehaviorsArray").setType(field.TYPE_MFBOOL).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("indicate which HAnimBehavior nodes are activated, empty indicates all enabled true")
          .addComments(" no default values "))
        .addField(new field().setName("enableBehavior").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("enable corresponding behavior identified by index number"))
        .addField(new field().setName("disableBehavior").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("disable corresponding behavior identified by index number"))
        .addComments(" shared common TimeSensor inputs for all BehaviorAnimation nodes, connected via ROUTEs ")
        .addField(new field().setName("startTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0))
        .addField(new field().setName("stopTime").setType(field.TYPE_SFTIME).setAccessType(field.ACCESSTYPE_INPUTOUTPUT).setValue(0))
        .addComments(" TODO: consider named accessors, e.g. enableBehaviorByName and disableBehaviorByName ")
        .addComments(" TODO: consider addBody, removeBody, addBehavior, removeBehavior ")
        .addComments(" TODO: consider startBehaviorByIndex, stopBehaviorByIndex, startBehaviorByName, stopBehaviorByName "))
      .setProtoBody(new ProtoBody()
        .addChild(new Switch("BodySwitch").setWhichChoice(-1)
          .setIS(new IS()
            .addConnect(new connect().setNodeField("whichChoice").setProtoField("whichBody"))
            .addConnect(new connect().setNodeField("children").setProtoField("HumanoidArray"))))
        .addComments(" note that other nodes following the first node in the ProtoBody are not rendered but remain active nevertheless ")
        .addChild(new Group("BehaviorArrayHolder")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("children").setProtoField("hAnimBehaviorNodes"))))
        .addChild(new TimeSensor("TimeSensorHolderStartStopTimes")
          .setIS(new IS()
            .addConnect(new connect().setNodeField("startTime").setProtoField("startTime"))
            .addConnect(new connect().setNodeField("stopTime").setProtoField("stopTime"))))
        .addChild(new Switch("SupportedLoaHolder2").setWhichChoice(-1)
          .setIS(new IS()
            .addConnect(new connect().setNodeField("whichChoice").setProtoField("supportedLOA"))))
        .addChild(new Script("BehaviorSelectionScript").setDirectOutput(true).setUrl(new String[] {"HAnimBehaviorPrototypesScript.js","https://www.web3d.org/x3d/content/examples/HumanoidAnimation/Prototypes/HAnimBehaviorPrototypesScript.js"})
          .addField(new field().setName("HumanoidArray").setType(field.TYPE_MFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("[HAnimHumanoid] nodes only"))
          .addField(new field().setName("whichBody").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("whichBody is selected default is none"))
          .addField(new field().setName("set_whichBody").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("whichBody is selected default is none"))
          .addField(new field().setName("whichBody_changed").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_OUTPUTONLY).setAppinfo("whichBody is selected default is none"))
          .addField(new field().setName("hAnimBehaviorNodes").setType(field.TYPE_MFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setAppinfo("[HAnimBehavior] nodes only")
            .addComments(" TODO: might consider accessType=\"inputOutput\" if VRML97 compatibility not needed "))
          .addField(new field().setName("enabledBehaviorsArray").setType(field.TYPE_MFBOOL).setAccessType(field.ACCESSTYPE_INITIALIZEONLY))
          .addField(new field().setName("enableBehavior").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("enable corresponding behavior"))
          .addField(new field().setName("disableBehavior").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INPUTONLY).setAppinfo("enable corresponding behavior"))
          .addField(new field().setName("timeSensorNode").setType(field.TYPE_SFNODE).setAccessType(field.ACCESSTYPE_INITIALIZEONLY)
            .addChild(new TimeSensor().setUSE("TimeSensorHolderStartStopTimes")))
          .addField(new field().setName("previousBodyIndex").setType(field.TYPE_SFINT32).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(-1).setAppinfo("remember prior body index to avoid unnecessary ROUTE teardown and creation"))
          .addField(new field().setName("traceEnabled").setType(field.TYPE_SFBOOL).setAccessType(field.ACCESSTYPE_INITIALIZEONLY).setValue(true))
          .setIS(new IS()
            .addConnect(new connect().setNodeField("HumanoidArray").setProtoField("HumanoidArray"))
            .addConnect(new connect().setNodeField("whichBody").setProtoField("whichBody"))
            .addConnect(new connect().setNodeField("set_whichBody").setProtoField("set_whichBody"))
            .addConnect(new connect().setNodeField("whichBody_changed").setProtoField("whichBody_changed"))
            .addConnect(new connect().setNodeField("hAnimBehaviorNodes").setProtoField("hAnimBehaviorNodes"))
            .addConnect(new connect().setNodeField("enabledBehaviorsArray").setProtoField("enabledBehaviorsArray"))
            .addConnect(new connect().setNodeField("enableBehavior").setProtoField("enableBehavior"))
            .addConnect(new connect().setNodeField("disableBehavior").setProtoField("disableBehavior"))))))
    .addComments(" TODO: Goal is to have 3 different ways to present a body: local creation, Inline with IMPORT/EXPORT, or external prototype. ")
    .addChild(new ProtoInstance("HAnimBehavior", "BehaviorTest1").setContainerField("children")
      .addComments(" only one PositionInterpolator key/keyValue definition for entire humanoid - optional ")
      .addFieldValue(new fieldValue().setName("HumanoidRoot_translation_key").setValue(new double[] {0.0,0.25,0.5,0.75,1.0}))
      .addFieldValue(new fieldValue().setName("HumanoidRoot_translation_keyValue").setValue(new MFVec3f(new MFVec3f(new double[] {0.0,0.0,0.0,0.0,0.0,10.0,0.0,0.0,20.0,0.0,0.0,30.0,0.0,0.0,40.0,0.0,0.0,50.0}))))
      .addComments(" must have paired overrides of each key/keyValue array being defined ")
      .addFieldValue(new fieldValue().setName("r_ankle_key").setValue(new double[] {0.0,0.5,1.0}))
      .addFieldValue(new fieldValue().setName("r_ankle_keyValue").setValue(new MFRotation(new MFRotation(new double[] {0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.2,0.0,1.0,0.0,0.4})))))
    .addChild(new ProtoInstance("HAnimBodyBehaviorChooser", "ChooserTest").setContainerField("children")
      .addFieldValue(new fieldValue().setName("HumanoidArray")
        .addChild(new HAnimHumanoid("hanim_DiamondManLOA-1").setName("DiamondManLOA-1").setVersion("1.0")))
      .addFieldValue(new fieldValue().setName("whichBody").setValue(0))
      .addFieldValue(new fieldValue().setName("hAnimBehaviorNodes")
        .addChild(new ProtoInstance("HAnimBehavior").setUSE("BehaviorTest1").setContainerField("children")))
      .addFieldValue(new fieldValue().setName("enabledBehaviorsArray").setValue(new boolean[] {true}))));
            }
            catch (Exception ex)
            {       
                System.err.println ("*** Further hints on X3DJSAIL errors and exceptions at");
                System.err.println ("*** https://www.web3d.org/specifications/java/X3DJSAIL.html");
                throw (ex);
            }
	}
	// end of initialize() method

	/** The initialized model object, created within initialize() method. */
	private X3D x3dModel;

	/** 
	 * Provide a 
	 * &lt;a href="https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim" target="_blank"&gt;shallow copy&lt;/a&gt;
	 * of the X3D model.
	 * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html"&gt;X3D&lt;/a&gt;
	 * @return HAnimBehaviorPrototypes model
	 */
	public X3D getX3dModel()
	{	  
		return x3dModel;
	}
	   
    /** 
     * Default main() method provided for test purposes, uses CommandLine to set global ConfigurationProperties for this object.
     * @param args array of input parameters, provided as arguments
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#handleArguments-java.lang.String:A-"&gt;X3D.handleArguments(args)&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Core/X3D.html#validationReport--"&gt;X3D.validationReport()&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html"&gt;CommandLine&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/CommandLine.html#USAGE"&gt;CommandLine.USAGE&lt;/a&gt;
     * @see &lt;a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/ConfigurationProperties.html"&gt;ConfigurationProperties&lt;/a&gt;
     */
    public static void main(String args[])
    {
        System.out.println("Build this X3D model, showing validation diagnostics...");
        X3D thisExampleX3dModel = new HAnimBehaviorPrototypes().getX3dModel();
//      System.out.println("X3D model construction complete.");
	
        // next handle command line arguments
        boolean hasArguments = (args != null) &amp;&amp; (args.length &gt; 0);
        boolean validate = true; // default
        boolean argumentsLoadNewModel = false;
        String  fileName = new String();

        if (args != null)
        {
                for (String arg : args)
                {
                        if (arg.toLowerCase().startsWith("-v") || arg.toLowerCase().contains("validate"))
                        {
                                validate = true; // making sure
                        }
                        if (arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3D) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_CLASSICVRML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_X3DB) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_VRML97) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_EXI) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_GZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_ZIP) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_HTML) ||
                                arg.toLowerCase().endsWith(X3D.FILE_EXTENSION_XHTML))
                        {
                                argumentsLoadNewModel = true;
                                fileName = arg;
                        }
                }
        }
        if      (argumentsLoadNewModel)
                System.out.println("WARNING: \"HumanoidAnimation.Prototypes.HAnimBehaviorPrototypes\" model invocation is attempting to load file \"" + fileName + "\" instead of simply validating itself... file loading ignored.");
        else if (hasArguments) // if no arguments provided, this method produces usage warning
                thisExampleX3dModel.handleArguments(args);
	
        if (validate)
        {
            //  System.out.println("--- TODO fix duplicated outputs ---"); // omit when duplicated outputs problem is solved/refactored
		String validationResults = thisExampleX3dModel.validationReport();
            //  System.out.println("-----------------------------------"); // omit when duplicated outputs problem is solved/refactored
                System.out.print("HumanoidAnimation.Prototypes.HAnimBehaviorPrototypes self-validation test confirmation: ");
                if (!validationResults.equals("success"))
                    System.out.println();
                System.out.println(validationResults.trim());

                // experimental: test X3DJSAIL output files
                // Prototypes/HAnimBehaviorPrototypes_JavaExport.* file validation is checked when building X3D Example Archives
                String filenameX3D  = "Prototypes/HAnimBehaviorPrototypes_JavaExport.x3d"; 
                String filenameX3DV = "Prototypes/HAnimBehaviorPrototypes_JavaExport.x3dv"; 
                String filenameJSON = "Prototypes/HAnimBehaviorPrototypes_JavaExport.json";
                thisExampleX3dModel.toFileX3D        (filenameX3D);
                thisExampleX3dModel.toFileClassicVRML(filenameX3DV);
// TODO         thisExampleX3dModel.toFileJSON       (filenameJSON);
        }
    }
}
</pre></body></html>