protected override MutableObject Mutate(MutableObject mutable)
        {
            foreach (var entry in AnnotationText.GetEntries(mutable))
            {
                var annotationString = AnnotationText.GetValue(entry);

                var stringParts = annotationString.Split(' ');

                if (stringParts[0].ToLower().CompareTo("allocate") != 0)
                {
                    Debug.Log("The string " + annotationString + " isn't an allocate!");
                    AddressTarget.SetValue((uint)0, entry);
                    SizeTarget.SetValue(1, entry);
                    continue;
                }

                SizeTarget.SetValue(int.Parse(stringParts[1]), entry);
                try
                {
                    AddressTarget.SetValue(uint.Parse(stringParts[4].Split('x')[1], System.Globalization.NumberStyles.HexNumber),
                                           entry);
                }
                catch
                {
                    Debug.Log("What?");
                }
            }

            return(mutable);
        }
        protected override void OnProcessOutputSchema(MutableObject newSchema)
        {
            foreach (var entry in AnnotationText.GetEntries(newSchema))
            {
                AddressTarget.SetValue((uint)0, entry);
                SizeTarget.SetValue((int)1, entry);
            }

            Router.TransmitAllSchema(newSchema);
        }