o nnh @sddlmZddlZddlmZmZdZdZdZdj edZ d j edZ d j edZ e d eje d eje d j e dejejBe d e ejejBe dj e dejejBejBdZdddZdS)) annotationsN)AnsibleParserError AnsibleErrorz \[ (?:[0-9]+:[0-9]+) # numeric begin:end (?::[0-9]+)? # numeric :step (optional) \] z \[ (?:[0-9a-f]+:[0-9a-f]+) # hexadecimal begin:end (?::[0-9]+)? # numeric :step (optional) \] z \[ (?: [a-z]:[a-z]| # one-char alphabetic range [0-9]+:[0-9]+ # ...or a numeric one ) (?::[0-9]+)? # numeric :step (optional) \] z~ (?: [0-9a-f]{{1,4}}| # 0..ffff {range} # or a numeric range ) )rangez (?: [01]?[0-9]{{1,2}}| # 0..199 2[0-4][0-9]| # 200..249 25[0-5]| # 250..255 {range} # or a numeric range ) z (?:[\w]|{range}) # Starts with an alphanumeric or a range (?:[\w_-]|{range})* # Then zero or more of the same or [_-] (?sR    W