// Path: hole-punching/hp-client/src/main/java/se/sics/gvod/config/HpClientConfiguration.java
// public class HpClientConfiguration extends AbstractConfiguration<HpClientConfiguration> {
// 
//     /**
//      * Fields cannot be private. Package protected, ok.
//      */
//     int sessionExpirationTime;
//     int scanRetries;
//     boolean scanningEnabled;
//     int rto;
//     int rtoRetries;
//     double rtoScale;
// 
//     /**
//      * Default constructor comes first.
//      */
//     public HpClientConfiguration() {
//         this(
//                 VodConfig.HP_SESSION_EXPIRATION,
//                 VodConfig.HP_SCANNING_RETRIES,
//                 true,
//                 VodConfig.DEFAULT_RTO,
//                 VodConfig.DEFAULT_RTO_RETRIES,
//                 VodConfig.DEFAULT_RTO_SCALE
//                 );
//     }
// 
//     /**
//      * Full argument constructor comes second.
//      */
//     public HpClientConfiguration(int sessionExpirationTime,
//             int scanRetries, boolean scanningEnabled,
//             int rto,
//             int rtoRetries,
//             double rtoScale) {
//         this.scanRetries = scanRetries;
//         this.sessionExpirationTime = sessionExpirationTime;
//         this.scanningEnabled = scanningEnabled;
//         this.rto = rto;
//         this.rtoRetries = rtoRetries;
//         this.rtoScale = rtoScale;
//     }
// 
//     public static HpClientConfiguration build() {
//         return new HpClientConfiguration();
//     }
// 
//     public int getRtoRetries() {
//         return rtoRetries;
//     }
// 
//     public double getRtoScale() {
//         return rtoScale;
//     }
// 
//     public int getRto() {
//         return rto;
//     }
// 
//     public int getScanRetries() {
//         return scanRetries;
//     }
// 
//     public boolean isScanningEnabled() {
//         return scanningEnabled;
//     }
// 
//     public int getSessionExpirationTime() {
//         return sessionExpirationTime;
//     }
// 
//     public HpClientConfiguration setRto(int rto) {
//         this.rto = rto;
//         return this;
//     }
//     
//     public HpClientConfiguration setRtoRetries(int rtoRetries) {
//         this.rtoRetries = rtoRetries;
//         return this;
//     }
//     
//     public HpClientConfiguration setRtoScale(double rtoScale) {
//         this.rtoScale = rtoScale;
//         return this;
//     }
// 
//     public HpClientConfiguration setScanRetries(int scanRetries) {
//         this.scanRetries = scanRetries;
//         return this;
//     }
// 
//     public HpClientConfiguration setScanningEnabled(boolean scanningEnabled) {
//         this.scanningEnabled = scanningEnabled;
//         return this;
//     }
// 
//     public HpClientConfiguration setSessionExpirationTime(int sessionExpirationTime) {
//         this.sessionExpirationTime = sessionExpirationTime;
//         return this;
//     }
// }


import se.sics.gvod.config.CroupierConfiguration;
import se.sics.gvod.config.HpClientConfiguration;
import se.sics.gvod.config.NatConfiguration;
import se.sics.gvod.config.RendezvousServerConfiguration;
import se.sics.gvod.config.NatTraverserConfiguration;
import se.sics.gvod.config.ParentMakerConfiguration;
import se.sics.gvod.config.StunClientConfiguration;
import se.sics.gvod.config.StunServerConfiguration;
import se.sics.kompics.Init;

package se.sics.gvod.simulator.nattraverser;


public final class NatTraverserSimulatorInit extends Init {

    private final NatTraverserConfiguration natTraverserConfig;
    private final ParentMakerConfiguration parentMakerConfig;

// Path: hole-punching/hp-client/src/main/java/se/sics/gvod/config/HpClientConfiguration.java
// public class HpClientConfiguration extends AbstractConfiguration<HpClientConfiguration> {
// 
//     /**
//      * Fields cannot be private. Package protected, ok.
//      */
//     int sessionExpirationTime;
//     int scanRetries;
//     boolean scanningEnabled;
//     int rto;
//     int rtoRetries;
//     double rtoScale;
// 
//     /**
//      * Default constructor comes first.
//      */
//     public HpClientConfiguration() {
//         this(
//                 VodConfig.HP_SESSION_EXPIRATION,
//                 VodConfig.HP_SCANNING_RETRIES,
//                 true,
//                 VodConfig.DEFAULT_RTO,
//                 VodConfig.DEFAULT_RTO_RETRIES,
//                 VodConfig.DEFAULT_RTO_SCALE
//                 );
//     }
// 
//     /**
//      * Full argument constructor comes second.
//      */
//     public HpClientConfiguration(int sessionExpirationTime,
//             int scanRetries, boolean scanningEnabled,
//             int rto,
//             int rtoRetries,
//             double rtoScale) {
//         this.scanRetries = scanRetries;
//         this.sessionExpirationTime = sessionExpirationTime;
//         this.scanningEnabled = scanningEnabled;
//         this.rto = rto;
//         this.rtoRetries = rtoRetries;
//         this.rtoScale = rtoScale;
//     }
// 
//     public static HpClientConfiguration build() {
//         return new HpClientConfiguration();
//     }
// 
//     public int getRtoRetries() {
//         return rtoRetries;
//     }
// 
//     public double getRtoScale() {
//         return rtoScale;
//     }
// 
//     public int getRto() {
//         return rto;
//     }
// 
//     public int getScanRetries() {
//         return scanRetries;
//     }
// 
//     public boolean isScanningEnabled() {
//         return scanningEnabled;
//     }
// 
//     public int getSessionExpirationTime() {
//         return sessionExpirationTime;
//     }
// 
//     public HpClientConfiguration setRto(int rto) {
//         this.rto = rto;
//         return this;
//     }
//     
//     public HpClientConfiguration setRtoRetries(int rtoRetries) {
//         this.rtoRetries = rtoRetries;
//         return this;
//     }
//     
//     public HpClientConfiguration setRtoScale(double rtoScale) {
//         this.rtoScale = rtoScale;
//         return this;
//     }
// 
//     public HpClientConfiguration setScanRetries(int scanRetries) {
//         this.scanRetries = scanRetries;
//         return this;
//     }
// 
//     public HpClientConfiguration setScanningEnabled(boolean scanningEnabled) {
//         this.scanningEnabled = scanningEnabled;
//         return this;
//     }
// 
//     public HpClientConfiguration setSessionExpirationTime(int sessionExpirationTime) {
//         this.sessionExpirationTime = sessionExpirationTime;
//         return this;
//     }
// }


// Path: simulators/src/main/java/se/sics/gvod/simulator/nattraverser/NatTraverserSimulatorInit.java
import se.sics.gvod.config.CroupierConfiguration;
import se.sics.gvod.config.HpClientConfiguration;
import se.sics.gvod.config.NatConfiguration;
import se.sics.gvod.config.RendezvousServerConfiguration;
import se.sics.gvod.config.NatTraverserConfiguration;
import se.sics.gvod.config.ParentMakerConfiguration;
import se.sics.gvod.config.StunClientConfiguration;
import se.sics.gvod.config.StunServerConfiguration;
import se.sics.kompics.Init;

package se.sics.gvod.simulator.nattraverser;


public final class NatTraverserSimulatorInit extends Init {

    private final NatTraverserConfiguration natTraverserConfig;
    private final ParentMakerConfiguration parentMakerConfig;

    private final HpClientConfiguration hpClientConfig;
