public override bool IsDeserializeable(string s)
            {
                s = s.Trim();
                string[] rest;
                if (ProtocolV1_0Utils.GetParams(s, "INIT_ANSWER", out rest))
                {
                    if (rest.Length == 9)
                    {
                        int[] param;
                        if (Parser.TryParse(new ArraySegment <string>(rest, 0, 8), out param))
                        {
                            InitAnswerCommandV1_0 initAnswer = new InitAnswerCommandV1_0(param[0], param[1], param[2], param[3], param[4],
                                                                                         param[5], param[6], param[7]);



                            string[] moreString;
                            if (ProtocolV1_0Utils.Deserialize(rest[8], out moreString, ProtocolV1_0Utils.DEFAULT.NEXT))
                            {
                                initAnswer.DeserializeMore(moreString, initAnswer.MORE, SUB_COMMAND_FACTORIES);
                            }
                            cache.Cached(s, initAnswer);
                            return(true);
                        }
                    }
                }
                return(false);
            }
            public override bool IsTransferable(ACommand c)
            {
                InitAnswerCommand c1 = c as InitAnswerCommand;

                if (c1 != null)
                {
                    InitAnswerCommandV1_0 initAnswer = new InitAnswerCommandV1_0(c1.MAX_TURN, c1.LAP_NUMBER, c1.MAX_LAP, c1.ROBOT_ID, c1.TEAM_ID,
                                                                                 c1.CLASS_EQUIPMENT_ID, c1.ARMOR_ID, c1.MOTOR_ID);
                    initAnswer.MORE = c1.MORE;
                    cache.Cached(c, initAnswer);
                    return(true);
                }
                return(false);
            }