return (ASS, ASSFInst, yutilsMissingMsg, createASSClass, Functional, LineCollection, Line, logger, SubInspector, Yutils) -> {:list, :math, :string, :table, :unicode, :util, :re } = Functional Transform = createASSClass "Transform", ASS.Tag.Base, {"tags", "startTime", "endTime", "accel"}, {ASS.Section.Tag, ASS.Time, ASS.Time, ASS.Number} msgs = { changeTagType: { invalidTransformSignature: "invalid transform signature '%s'." } getTagParams: { transformStartTimeGreaterEndTime: "transform start time must not be greater than the end time, got %d <= %d." } } Transform.new = (args) => @readProps args signature = @__tag.signature if args.raw r = {} switch signature when "accel" then r[1], r[4] = args.raw[2], args.raw[1] -- \t(,