         }
         plist[name] = items
         return plist
+    }
+    
+    required convenience init(coder: NSCoder) {
+        let name = coder.decodeObject(forKey: k.name) as! String
+        let list = coder.decodeObject(forKey: k.list) as! [PlayItem]
+        self.init(name: name, list: list)
+    }
+    
+    func encode(with coder: NSCoder) {
+        coder.encode(name, forKey: k.name)
+        coder.encode(list, forKey: k.list)
     }
 }
 

    override init() {
        super.init()

        list = Array <PlayItem> ()
        let temp = NSString(format:"%p",self) as String
        self.name = "play#" + String(temp.suffix(3))
        if let appDelegate = NSApp.delegate {
            (appDelegate as! AppDelegate).playdicts[name] = list
        }

        alpha = 0.6
        trans = 0
        super.init()
        
        let temp = NSString(format:"%p",self) as String
        name += String(temp.suffix(4))
    }
    init(name:String, link:URL, time:TimeInterval, rank:Int) {
        self.name = name
