class StripSessionIDs
extends BaseRule {

    private static final long serialVersionUID = 3L;

//    private static final String DESCRIPTION = "Strip known session IDs. " +
//        "Use this rule to remove all of a set of known session IDs." +
//        " For example, this rule will strip JSESSIONID and its value from" +
//        " 'http://archive.org/index.html?" +
//        "JSESSIONID=DDDSSE233232333355FFSXXXXDSDSDS'.  The resulting" +
//        " canonicalization returns 'http://archive.org/index.html'." +
//        " This rule strips JSESSIONID, ASPSESSIONID, PHPSESSID, and 'sid'" +
//        " session ids.";
    
    /**
     * Example: jsessionid=999A9EF028317A82AC83F0FDFE59385A.
     * Example: PHPSESSID=9682993c8daa2c5497996114facdc805.
     */
    private static final String BASE_PATTERN = 
        "(?i)^(.+)(?:(?:(?:jsessionid)|(?:phpsessid))=[0-9a-zA-Z]{32})(?:&(.*))?$";
    
    /**
     * Example: sid=9682993c8daa2c5497996114facdc805. 
     * 'sid=' can be tricky but all sid= followed by 32 byte string
     * so far seen have been session ids.  Sid is a 32 byte string
     * like the BASE_PATTERN only 'sid' is the tail of 'phpsessid'
     * so have to have it run after the phpsessid elimination.
     */
    private static final String SID_PATTERN =
        "(?i)^(.+)(?:sid=[0-9a-zA-Z]{32})(?:&(.*))?$";
    
    /**
     * Example:ASPSESSIONIDAQBSDSRT=EOHBLBDDPFCLHKPGGKLILNAM.
     */
    private static final String ASPSESSION_PATTERN =
        "(?i)^(.+)(?:ASPSESSIONID[a-zA-Z]{8}=[a-zA-Z]{24})(?:&(.*))?$";

    public StripSessionIDs() {
    }

    public String canonicalize(String url) {<FILL_FUNCTION_BODY>}
}

        url = doStripRegexMatch(url, BASE_PATTERN);
        url = doStripRegexMatch(url, SID_PATTERN);
        url = doStripRegexMatch(url, ASPSESSION_PATTERN);
        return url;
    
<methods>public void <init>() ,public boolean getEnabled() ,public org.archive.spring.KeyedProperties getKeyedProperties() ,public void setEnabled(boolean) <variables>protected org.archive.spring.KeyedProperties kp,private static final long serialVersionUID