- /* package whatever; // don't place package name! */ 
-   
- import java.util.*; 
- import java.lang.*; 
- import java.io.*; 
-   
- /* Name of the class has to be "Main" only if the class is public. */ 
- class Ideone 
- { 
-   
-     public static void-  main (String[]-  args ) {
 
-         List<PredicateInfo> predicateInfos = new ArrayList<>(); 
-         predicateInfos.add(new PredicateInfo("a", "NOT_INITIATED")); 
-         predicateInfos.add(new PredicateInfo("b", "IN_PROGRESS")); 
-         predicateInfos.add(new PredicateInfo("c", "UNVERIFIED")); 
-         predicateInfos.add(new PredicateInfo("d", "VERIFIED")); 
-         predicateInfos.add(new PredicateInfo("e", "NOT_INITIATED")); 
-         predicateInfos.add(new PredicateInfo("f", "UNVERIFIED")); 
-         predicateInfos.add(new PredicateInfo("g", "IN_PROGRESS")); 
-   
-         List<String> predicateStatuses = new ArrayList<>(); 
-         predicateStatuses.add("VERIFIED"); 
-         predicateStatuses.add("IN_PROGRESS"); 
-         predicateStatuses.add("UNVERIFIED"); 
-         predicateStatuses.add("NOT_INITIATED"); 
-   
-         predicateInfos. sort(Comparator- . <- PredicateInfo >- comparingInt (- predicateInfo  ->-  predicateStatuses. indexOf(- predicateInfo. getPredicateStatus()))
-                 .thenComparing(PredicateInfo::getPredicateName)); 
-   
-         System- . out- . println(- predicateInfos );
 
-     } 
-   
- 	 static class PredicateInfo { 
-         public-  PredicateInfo (String-  predicateName,  String-  predicateStatus ) {
 
-             this.predicateName = predicateName; 
-             this.predicateStatus = predicateStatus; 
-         } 
-   
-         public String-  getPredicateName () {
 
-             return predicateName; 
-         } 
-   
-         public String-  getPredicateStatus () {
 
-             return predicateStatus; 
-         } 
-         @Override 
-             return "(" + predicateName + " - " + predicateStatus + ")"; 
-         } 
-     } 
- } 
				LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIExpc3Q8UHJlZGljYXRlSW5mbz4gcHJlZGljYXRlSW5mb3MgPSBuZXcgQXJyYXlMaXN0PD4oKTsKICAgICAgICBwcmVkaWNhdGVJbmZvcy5hZGQobmV3IFByZWRpY2F0ZUluZm8oImEiLCAiTk9UX0lOSVRJQVRFRCIpKTsKICAgICAgICBwcmVkaWNhdGVJbmZvcy5hZGQobmV3IFByZWRpY2F0ZUluZm8oImIiLCAiSU5fUFJPR1JFU1MiKSk7CiAgICAgICAgcHJlZGljYXRlSW5mb3MuYWRkKG5ldyBQcmVkaWNhdGVJbmZvKCJjIiwgIlVOVkVSSUZJRUQiKSk7CiAgICAgICAgcHJlZGljYXRlSW5mb3MuYWRkKG5ldyBQcmVkaWNhdGVJbmZvKCJkIiwgIlZFUklGSUVEIikpOwogICAgICAgIHByZWRpY2F0ZUluZm9zLmFkZChuZXcgUHJlZGljYXRlSW5mbygiZSIsICJOT1RfSU5JVElBVEVEIikpOwogICAgICAgIHByZWRpY2F0ZUluZm9zLmFkZChuZXcgUHJlZGljYXRlSW5mbygiZiIsICJVTlZFUklGSUVEIikpOwogICAgICAgIHByZWRpY2F0ZUluZm9zLmFkZChuZXcgUHJlZGljYXRlSW5mbygiZyIsICJJTl9QUk9HUkVTUyIpKTsKCiAgICAgICAgTGlzdDxTdHJpbmc+IHByZWRpY2F0ZVN0YXR1c2VzID0gbmV3IEFycmF5TGlzdDw+KCk7CiAgICAgICAgcHJlZGljYXRlU3RhdHVzZXMuYWRkKCJWRVJJRklFRCIpOwogICAgICAgIHByZWRpY2F0ZVN0YXR1c2VzLmFkZCgiSU5fUFJPR1JFU1MiKTsKICAgICAgICBwcmVkaWNhdGVTdGF0dXNlcy5hZGQoIlVOVkVSSUZJRUQiKTsKICAgICAgICBwcmVkaWNhdGVTdGF0dXNlcy5hZGQoIk5PVF9JTklUSUFURUQiKTsKCiAgICAgICAgcHJlZGljYXRlSW5mb3Muc29ydChDb21wYXJhdG9yLjxQcmVkaWNhdGVJbmZvPmNvbXBhcmluZ0ludChwcmVkaWNhdGVJbmZvIC0+IHByZWRpY2F0ZVN0YXR1c2VzLmluZGV4T2YocHJlZGljYXRlSW5mby5nZXRQcmVkaWNhdGVTdGF0dXMoKSkpCiAgICAgICAgICAgICAgICAudGhlbkNvbXBhcmluZyhQcmVkaWNhdGVJbmZvOjpnZXRQcmVkaWNhdGVOYW1lKSk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihwcmVkaWNhdGVJbmZvcyk7CiAgICB9CgkKCSBzdGF0aWMgY2xhc3MgUHJlZGljYXRlSW5mbyB7CiAgICAgICAgU3RyaW5nIHByZWRpY2F0ZU5hbWU7CiAgICAgICAgU3RyaW5nIHByZWRpY2F0ZVN0YXR1czsKICAgICAgICBwdWJsaWMgUHJlZGljYXRlSW5mbyhTdHJpbmcgcHJlZGljYXRlTmFtZSwgU3RyaW5nIHByZWRpY2F0ZVN0YXR1cykgewogICAgICAgICAgICB0aGlzLnByZWRpY2F0ZU5hbWUgPSBwcmVkaWNhdGVOYW1lOwogICAgICAgICAgICB0aGlzLnByZWRpY2F0ZVN0YXR1cyA9IHByZWRpY2F0ZVN0YXR1czsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0UHJlZGljYXRlTmFtZSgpIHsKICAgICAgICAgICAgcmV0dXJuIHByZWRpY2F0ZU5hbWU7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgU3RyaW5nIGdldFByZWRpY2F0ZVN0YXR1cygpIHsKICAgICAgICAgICAgcmV0dXJuIHByZWRpY2F0ZVN0YXR1czsKICAgICAgICB9CiAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpIHsKICAgICAgICAgICAgcmV0dXJuICIoIiArIHByZWRpY2F0ZU5hbWUgKyAiIC0gIiArIHByZWRpY2F0ZVN0YXR1cyArICIpIjsKICAgICAgICB9CiAgICB9Cn0=