inline function
-
const var SlickSlider = Content.getComponent("SlickSlider"); const var BeautifulButton = Content.getComponent("BeautifulButton"); const var SliderPack1 = Content.getComponent("SliderPack1"); inline function getControlValues() { return { "SlickSlider": SlickSlider.getValue(), "BeautifulButton": BeautifulButton.getValue(), "SliderPack1": SliderPack1.getValue(), }; } Console.print(trace(getControlValues()));
If you Console.print the getControlValues() you'll get this:
Interface: { "SlickSlider": 11.0, "BeautifulButton": 0.0, "SliderPack1": { "normalise": Method, "detectPitch": Method, "indexOfPeak": Method, "toBase64": Method, "fromBase64": Method, "getMagnitude": Method, "getRMSLevel": Method, "getPeakRange": Method } }
So it's working for the SlickSlider and BeautifulButton but not for SliderPack1
I have not read all your code but maybe you want the .getSliderValueAt() or getDataAsBuffer() ?
-
Thank you Ulrik. I took out the slider pack - the problem is not the "get" but the "set" - the error message below appears and HISE crashes.
When calling up a preset, it cannot reload the values.
inline function getControlValues() { return { "SlickSlider": SlickSlider.getValue(), "BeautifulButton": BeautifulButton.getValue(), }; } Console.print(trace(getControlValues())); inline function setControlValues(data) { SlickSlider.setValue(data.SlickSlider); BeautifulButton.setValue(data.BeautifulButton); }
}
Interface:! Line 80, column 29: API call with undefined parameter 0 {SW50ZXJmYWNlfHwyNzI0fDgwfDI5}
PresetBrowser_01:! Line 80, column 29: API call with undefined parameter 0 {SW50ZXJmYWNlfHwyNzI0fDgwfDI5} -
@MikeB Try
data["SlickSlider"]
-
@d-healey
The same - complete crash of HISE!HiseSnippet 2986.3oc2Z0sbaiaEFx1LSjicRb1La6E6zgimNcjacUDkksj1Lai7uabi+QqkiaZSylPSBIgXJBFRJ63rSllGk9Xz6ZeD5ivdSuOuAsG.RJB9mLs1rc5VMS7DBbv47cN3fOb.HaaS0vNNTaTghGeoEFUXNoNWZ51ey9pDSztagJbOo11XGr6F1zKbv1urhBZiKsTcbv5nBEl9qYxUn3LH9uO9nMTMTM0vgMgPmPIZ38HCHtgs1t0SHFF6npiOlLPP5Zs1UiZtI0fNDvzzRUPVpZmo1CefJSrojPEtw15DWpcGWUWrCpvLaP0urSe5EldxeBwgbpAl8fBpCnHul2gZnyPLqUzl8IF5sC7cGDpfT6vHwzdQh6KsOQmLp8vHxc4cHGNBw3QgohBuoi.OEQ3UQ.do.ooDfzLdPZAoNZ1DK2vdX34VR6Z5hs6pBgcQn3IKZp12QZSJHgoa4Apmg2wFdXzHJsVkJKKuZkJK8vYm8AOPlIoM0vQ1kJeJV1Q8brtLwT1hmDLKL433JetpsbGCh1Yvezw1xekbfA5gc2jNvhZBOTZQAYVDze3f2.qNzkzcnwFCccolYpfXxwTBGkag6RLwNxpFFxZAHV0TWVCZ4THiwQtK01Gzxm5k5NqIjC4.4SX4Hozxe2rxvuPz406dD3wr.VnHLLwFdXKkcXhxA0l9voD0Lre+97GWLayRU7DkmwNlXaLACvQ71SGMwkZ7XBRB7DNazLRjQ3XTKYffQ8mSaenkKAZNGPvWx.jjlxNl3Zfygp3xkTQdcx3jNlxD9JxSBEbwr8xCOar34vyDirGdV1Q0COKLhlhc1jwOaLVa4Ihn87ZIaa50eJyjo8GKp0PCfdLbIQIwg.qua6KgSvR3yI3Krn1vZ4Kk6hc05SL6wW82k.yi7E1LVJ29X4mBKo8yV0I1XMfL9RtdIlF.ogb2glZr7iTggOW.6mAEHS7s+AbC7U9y6OFXZLfUVbfDNC6D3EIoCJsHwEOvYwkE0W4WSIlkV7OCzZ9C78gAg3fMEBjRZAyZKCStFCwIQO2p.tGIIaxN.LKU1wxf35gfGlpemvkMnp597FPfuDWQOma7WHnhvzjSXc4TxSaAd4CGmalAyzXcVRW4R9MFEtNwTVo7Ag3TSi03I3c3VMXjdhmWqNZoadc2vFSKkczzWHAjWBfK9sthy4gYrihbi7J9DcnNWVtW7Y2khoonT+bgJ0U0vAmsbZ8UM6g0KEShrYJBWtb0Q0HjS4btLajmMpGGRRFzDLqM1cnsYrIyHUO8kh0awlC8v1RKGcHwqW5KiWoUjgFFHuR5mDqn0UcUiD4Df2nPGSnmGwODYIhCsXCKtu7hfsyd+rumWDHTE74fRcFgRuh9XTT7cGfxAgrX1+0mLisWAHiMc.eiB9VGNW5.bXIJMzeYfuClxjYTVkjykrUMc35lEx8kSnwvcobhR9WLtwRtKCXshEEWqyn3EzMTarN6QmRI.5xxK9qK6MHXyHWaN2TTkErW2yeAqGVDsDORM5P.NKAsWTbiLqgN84BU1k1w0FB4kTVhq3hv+7iHBC.5AlBS3ow1bIb.I8Xl.WCmVfR72HuXJAfG7fHnjonmW4E7s6V24vSeMTFAaUdpvdLTkAqRRE7IvIuRL14.ioGQLyQanZJegMrGrO.4VKCPFpsseKPi5jH556+SFnJSb3cmYHJw9vbalzXLA80x6EXwOfBNoYoklEFEr5WNdWc6lZe9TVFLUmR2rqdvdbCrj4vAmhsC1nHPP373QOjuT1GxW7NHz7J3VPPp4tlDntArYV2LAxuJcDHfOpf+mK+5.ts+0A3wshHvo9mWRfsEwgc3kqrXKTVpviikqhEjhw7FWM9fhqlY7Ty8hfj1v4BBQieCJwUS4Vr7UTgUkVYsxQ+cPa3OqTdc3uasE7mug87iWm871rmOoMB8zc2hMbTgB9QHHpYgscIrIjBagOmng8t0jhRagcNykZgJL0nC5fJLqGzmO3NUTMwFbTemn23E5siv7+vt0khwgKH5t8E6sOlzqe30b05uz5zdAWl0rRJqUud8pJqhXkekRyrpoCZdNopUpTSowpMqqHzQUdOJMq2PY0pMWCR8D7nhQ8n8TO02i9beORN3FO3GqUvwPMEbL4uqUTGqEMtig1ukkpMXTAqGOrwbR1kkE0zntvrUGx6hbmenjSKojXBIYwnQD8fcE7fObRKOqOOeHx9RSb1mN.Lhp8kdK2h5ln+XKFU9t9mzJ35GuB2Ldj42EwaJlo2LmTXgjB9wqzDSwdVnevtkAeoS.6jXXBbDQXeqnKqw5m3e9aenGVOdVSAu5UwRh9qj3v76smDXNzAysKeBLb00bR0p1nV80ZtRiJ70K.KvWHoaiIy5sIElX53+ee2EXRD2ctrnB9LoDmtKKGFc+XNLJgC25o4aUi30eG5grmDYHtkDvATakZMZVMJAgXGmKdcyElIOjEKHE65uD73OrQDBvXdr7qRjIVKoGmVL0KK+1hY4OBgg8XUGA9wLeEh8fWVQ34cyhjCdHJ3+9SS.9l4C7hIg.mb0Uqt1ZUZFmztVUkFqznZsZUhwyuR05JqtZckpURgabYeBf4.ddpQG2gc6VGkO5xaJ4ciBhQf+jXDXuXQfO7MSZDvCiyHAFK4J5Drt4C9d7idGcOyIwO0tvMk7M3j4FIIPlUJ3EpH5CHz0sLh3kFnTsYyJJ0RjkA8To4pUZTckXLGw4UhvEbmbVOYVTeaEm56ai6BencxoAgXi3RHkZq.LWqrR0pIWBUspR85MpWKh6vo9aznYyl0pirBpcdWclCstsEtWOhJTrtBauEfWvEy66NRGLbPGWrkuuMPUv6Z0Z.QW2.2l5PX4Gg8TokCaLQVj9wGIlKL+0nxZASdfX.8au5.5StNAz50Z.Azz3jXAsUaVKFmjR8pUgAAag3uv3dgPW1G64NReCoGC0egP4Yym6NxERViZMgHzGe2DUipPDxyu9BA6Q4Wsm7tlA0YcUkpdiqwgedq3pkP+n0qGKHGWLFk7UVOunD72MbrwD4MUOcteS0Ji8MUKbD0OKGmu71Rdn3pObY15Xdoi3EMccUg.yV70+4+rxBJ4VRLMvwxjgh6xUPmyHY.CN0xUFN.s.0l+D7kN+PhHfyXgw5OwjdZbE7qRFMtquBfD2SoaPeavQzvuYHF1BcTy42ghrsygZtvhwiX2u9j4MEgi9AUKYfmrLraIssIq3yiI3w4Bi+9OtODNFPNFVWKzgu1jJ7uge+ftBjbihSvFTMh6kIQQ3FdQPR2y2.rzFOArzisam74x7mq+6gmMeS9Qx8j1Ca1yse133i+8n33LlcNgYmmQaeUOixWR5BRa1W0DpPqC1f+5gyQNZpJ5mIc3PWqgtehT2BR62dafM1NPgIxby4pv6vTz1l5YnlJ45Z.820N4hmjeVR2UZepN68zE8qjh8og42AqDJw8dXe9QlPoUWJFk9j8oSkWHtfTahqV+zw3TofQ1Wk0OBXbzt2a2sKjAEBvYj14Y+370kIZ9a6Ydf9m.DUru9Otw+b9yx+AVMQeM1DamrDhne7e+y79w+Yk6O9OucAN1V0zwh5DQwALqNhM9TG7N132bDa1Tr8Mop1o10GezNfSl5X5n5NzlmVr9.5Py.7+p+1u3e8n30NMS9pc5J9HDm4+49HD+Ivh8BEZm3iXEXEICrLvaadNryGzh2Gx5V3tpCMbCZMZt79TSpUepIQSLI3HrqMoWOrsH1S0gV20kselv0AdDrefpXR6ur0dPxlpMDmvSXrPI+whwMe8yk7fqLaAn7OcIom9+uIoOhBG41r29pPRHb.R9IV.tQn5Zuc1Yu5wBSw327dtB6YOxQS8JA0X52oB64B9cpDz4+Urw.UMa5KC9PcgInaxaA7aS9m0cQo8YOKO5cDJIUobEz.fg6kZZrP7uEHLSeLUmfwrxDLlZSvXVcBFyZSvXpOAiowXGCayk0G5RG3sjCZn81722ZgBdmKhmoi9Or9UkuC
-
@MikeB start with this:
inline function setControlValues(data) { Console.print(trace(data)); //SlickSlider.setValue(data.SlickSlider); //BeautifulButton.setValue(data.BeautifulButton); }
-
Doesn't help because the error is already in the console "API call with undefined parameter 0 " but why - although Console.print(trace(getControlValues()));
shows that values are available! -
@MikeB said in inline function:
Doesn't help because the error is already in the console "API call with undefined parameter 0 " but why - although Console.print(trace(getControlValues()));
shows that values are available!so what line number is being pointed at by the console?
-
Ok well - you havent defined a preset handler so this wont work:
inline function onPresetListControl(component, value) { local items = component.get("items").split("\n"); Console.print("ITEMS:" + trace(items)); local preset = PresetHandler.loadPresetFile(items[value]); Console.print("PRESET:" + preset); setControlValues(preset); };
-
@MikeB Your "data" return undefined when called in
setControlValues(data)
-
@ulrik said in inline function:
@MikeB Your "data" return undefined when called in
setControlValues(data)
yeah -- its called from the function I list above. where he's trying to pass in a "preset" but he never gets one...to pass in.
-
@Lindon -
so hes calling a function in another name space...
using this:
local preset = PresetHandler.loadPresetFile(items[value]);
which calls this:
inline function loadPresetFile(presetName) { Console.print("CAllING LoadPresetFile"); local presetFile = FileSystem.findFiles(getPresetFolder(), presetName + ".preset", true); //return presetFile[0].loadAsObject(); }
which never returns anything....and presetFile is empty anyway...
-
Background info - THIS is a snippet from Casey Kolb from last year.
It worked wonderfully.
Now it doesn't - without changing anything in the script.
Or rather, the "var" has been renamed to "local"!
Of course, your preset list is empty. The presets are not transferred with the snippet.
If you turn the knob in the interface and press the button and then press the button "save preset", a preset is saved. If you do this again, a second preset is saved. If you now switch back and forth between the first and second preset, HISE crashes completely.
HiseSnippet 3011.3oc2ZstbaabEFzRHiIsjskimz9iNcvnoSKUiJMAEkHY7jZpqwpVWXEkUbqqiMDvRxMBDKL.njky3o9EoyzGi9ulGg9Hj+z+62f1ytXAwhaTvLNYZJmIJducNemyd1u8rK1NNDcjqKwQpPwiuzFIUXN4tWZ4MXyAZXKoc2Rpvcj63fbQda3PtvE477ppRaboslqKxPpPgY9BZ+JTbVI1u28fMzL0rzQgUIIcBAqi1COD6EVam1OBaZtilA5X7PgdWu8t5DqMIljQ.llQtpjsl9YZ8QGnQ610jkJ7Qaaf8HNc8z7PtRElcChwkcGPtvxu+mfcwmZhnETk5BBxu5cHlFTDSqUZyAXSiNA1tqjTA4NgdhY78D2UderAdb8gdjayZPIbDh9iBWKJ7lIB7TEgWUA3kBjtl.jl0GRKH2U2Aa6E1BEO2PdWKOjSOMvsKBE+9Jcs+1sj2j.8vxqxPsyP63.EFOhxqUs5xJqVs5R2uTo6cOEZOcHltJdDkSQJtZmiLTvVJ1rffRvjiqmx4ZNJcMw5mA+w.4n74JAJnOxaSxPahETn7hB8YQP9gCdCj1HObuQlaLxyiXko.h0OpPXnbKTOrExUQyzTQO.wZVFJ5PMmBQLtJ8HNbPqbpenaIKHFxEhmPJQBoU9lRJvuPz425dXnXV.KrKTLQGdXMUbockApM4voLwJrcda7wES2zPE+txhXmfuMVGCvQ75SGMw60jwDDD324rQy3tLFGiqICDLt8bp6Cs8vP04.B7dFfjzD1wXOSTNDEqeIEjeiTNoiIzNeEwIgcbwrsxCOah34vyD8rGdV1d0COKzilhd1jxOaNQc42EQ84WS15zu8TlIS6O1D6Ql.8X3RhxhCAVe2g2C2fkvmiQWXSbf0xWpzC4oO.a0ms5uGFlGYKrorTdCPJOFVRyiVMvNHcfL9RlbwVl.ogRuQV5z3iTgAmKf9yj.jIb8e.SAeNed+g.SiIrxhAjvYX2.qHIcP4EwdngtKtrn7p70DrU4E+K.sFefuIzIDGroPfTVOXVaYXx0bDJI5YZEv83dRmrC.yRUbsMwd9H39oZ2ILYShlAm2.b7kYB5oLk+LAQDFlbBsI2x9RKvJu+jLyLXllnwh6oTlWYT35FSXkyGDhSMMQkmf2go0fQ5287p0wKcyq4FVYZgrim9BIf7C.7PuxSbNOLhcrmarUwlnCk4xJ8iO6tTLIEk5m0ox8zLcQY2O8AZV8QFki0irYJBWtb0d0HjS4btLajmMpmDRR5zDTqCxajiUrIyHYO8Yh4aQmC8w1RKGcHwyW5yhmoUjgF5HCneX+O.mtDSTEaGLrgfmCMKwTlyY4hklolX0uglmF0bKxUWnqTvlF6uo8thPKBt93FSjw7zDV+yFSq9lRoYTLbwy6ERo9bPatiMC+LHo7crsZfbKgkDz+ImYjtwCzGGxP1tNr8gbuzEHDSjmIeMEe9MkHinTTICLnKA6xjMc9i2OgJC2xyM5NIEiqrjaYQmWJJRbP2uPP1Ph1FzhtkS.zkUV72VwePvNadNLhtnBKXiym9LZKTOZYlmZ7IJbWBpun3th1ibGv5TEORWOX5peY0kXBtH7ebOhv.fVf.2DVZrcpBGPRKl1g2CiVfe8SUVLEGv8tWDTREzSq9L1dmq6d3oeMjSBkxHUXOAd2wKiRC7IvIKsN5gJiIGQLyPanXpbgCrgNGfLskAHCk11uB3jcS3c41+zApJXWVyY5hRroNSmIUFsibo7FgsDNf.FoU4kJAiBXFTh2Tudo1FmSyjJ5TZldOFNSZfksFM7TjSvtNAcDNbezaLPN6aLP7BMz8ydWniDqcsvPRHHqrtlCIdJ+zaWfiJnqdr6V3l76VvmzUBaHUXdYAZXIFrCuolFskxRD9zuLQrfbLR43h4cOP5w6tEDqAXp.Gd.jsQNdXp2nvVnyw5H+6+nn7VH2y7H1L7y2FWpPIe0OevsinYgLYZ+VQu6JoWMVueqS6KEuipKvFdCDac.B2eP3EV09u19z9AWKUIY00ZznQM0UknIRkR0z7hCpdN4ZUqVWs4psZnJzPMVKpsZzTc0ZsVCl2ErnhQsn8zNkaQeB2hTBt6B1ATELLoVBFlx2zNpg0lD2vj1usslCnTAsG2sQMR50dEU0R8fYqt3WG416jRNsjRTwcjimkunErqfE7seYaesOOaHJ7dic2mLDThlyk9w5QMSo+TaJO5t7yLEbQhWgYF2y76iXMEyzZlSNLkPA63E5hgXOIzNn2W.u2IfcRLLEFhHrugOruCG1HiS3mjlC8vLqyZJ3EuHVPzeGGGlemyz.yQtHldYSfgqtlStdsl0arVqUZVksdAXA9MvhChYWuQ850njgCBWxeyBD1xk+Oe8EHbDKetrXE9X4DGYKKaW5twrcoD1d6GmuEPh2ocnwRKIRVbCYfNn9J0a1pVTtBwFNW7NjKLad3MVPN1cZIXwuciHbgwrXkWjHnrdRKNMepe.+MEC3efDB1qSaL3mv7UH1C9BDgGhMK9NnPTv+cml.7sxG3EiGA54ZqVas0p1JN+c8ZpMWoYs50qFixekZMTWc0Fp0plBM4xbtf4DhpkxGy40k8ul.QOveVzCrWLOva+iSqGvGiyJCJK4h6DDv4C99Tk9mGOyIwOzlv0k4Jb5LijDHkjC9JIh1fjz6aFEwyRPsVqVUUqmHJCZoZqUq1r1JwXNhyqTXFQRnblWWVTeaEm56qhaBusSxoAAei3RH05q.LWqrRsZIWBUqlZiFMaTOh4v1EnYyVsZUugjcPNr6ZPMn0crQ86i0fjlUoay.7BdHVa2R9fQC65gr411PMAqqc6gXC3f3cHtXZ7QXKUa6RGSjEoPhoBl07uGY3JnxCDcne0U6Pez6iCsQ8lfCMMNIpSa0V0iwIo1nVMXPvVH7EF2ID5JbrmaO8GI+PHULIo7r4ysGaBISWstfG5cudpRWUvC4aW+BA8QX2WmxtVAobkZVqI+5uyKZ6rOyZLuQjO56L49i9pNwO5qvAz93bb5paJ6ihzOZEWbWgLlW9HVpJuuhPfOI9pt7eRQAgbCYpDXXY5PwsYBn6Y3LfAaA8U5N.o.IG+Hzktee7HfwXiPFOxhbZbA7qS5MtMW.PL8ojMHuJ3LRnWNBAabMt57aPQH6OT2CVBbD8ppmNqoHb1KHGESzzEgcC4ssno7cLFMISX1nmTwW+czzOiIj6Btig3igk7BMvklbAYPVzKrRpvakaUqRzeGzA9yJUVG96VaA+4IzxObcZ4sokOoSkOb+jxuAcBxjni8tLoAEtiUDip24a.fdiGAf9gNcRVtBqbi+.T15kz1+TZ4Vz1WYz2mx41nti7dHq9dCx1jd2+LpIcFUEmPg7SHc9QrrT9VEtf7lCzrfD+5hLYeJ4brHLUA8yjObjm8HuOPhaA486rMrciSf.SrzLmzL2hJnssLxPLUy0s7wSFHosj7ILca48IFzuoWzWTE8YjwaflYl3lqzmpjEjw1khR9C1yrJuPbA4NXO8AoiwqkBFo2w5O.Xbb5Ia2qGDAEBvYk24I+v7RzDU+M8UOr+FFXhouTPlx+DVYkujlp0WfrPNIyQJ5CE7ek2GJnctenf9aycrilkqMwMhfC15vUrxG6h1wA8xinylh0uIQyI0ld2C1ALxTGSWMuQNrvh0GRFYEf+W7O9k+6GDO4vYyWxgWwCVb1+m6AK9SfE6EJzIwCdEXEwCsMQaacNreLTi+idcKTOsQldA0FMVdehEwd.wBqKFDbDxyA2uOxQD6oZPq64Q2ZT3VFOB1OPSLn8W0dOHXSyA7SnozWnleewjlu94x9vUgt.T4mtjzy7+2jzGQfSxa0eeMHHDNeM6HY.2Hb7A+c1oeYwBWixu4WtJsrO4nkAqv+A9waTkVt.uQ0fF+QQGC0zcHOO3Q8BSPWmUCX2Vrm.dQ48okUTGm8ub0JUkFBLbOWWm5h+c.gY5io1TLlUlhwTeJFypSwXVaJFSioXLMm3Xnatr9HOxP+kbPEc1l8EcKTv+ferHco+KHjkgZH
-
@MikeB
Of course, your preset list is empty. The presets are not transferred with the snippet.-- yes so I loaded the snippet into a product with presets - to avoid this issue... so your problem is here:
which calls this: inline function loadPresetFile(presetName) { Console.print("CAllING LoadPresetFile"); local presetFile = FileSystem.findFiles(getPresetFolder(), presetName + ".preset", true); //return presetFile[0].loadAsObject(); }
-
@MikeB Please you use code tags for your snippets, it will make them a little easier to copy and take up less vertical room.
-
I have known this for 3 days - I am shown that the problem lies in this line!!!!!
It doesn't help if you point out every time that this is the problem.
The question I am asking here is not WHERE is the problem BUT how can I fix it!
-
Did you try returning a value from the function by uncommenting
//return presetFile[0].loadAsObject();
? -
-
@MikeB That error implies that presetFile is not what you think it is.
Use
if (presetFile.length > 0)
before trying to load it to make sure a preset file has actually been found. Also if you only want a single file and you know the name of the file why not use.getChildFile()
instead offindFiles
? -
It is supposed to be a simple preset browser with no frills.
There are no examples except this one and it doesn't work anymore and HISE hangs on it all the time in the latest version.
Now the professionals in HISE programming have looked at this and have not come up with a solution.
How is a novice programmer supposed to achieve anything here?
Everyone here says - very simple, build your own sequencer or your own preset browser if it doesn't work the way you want.
Actually, I just want my arpeggiator not to stop running when I change presets. That's all.
SOLUTION: own sequencer (there is no description whatsoever, let alone a snippet)
SOLUTION: own preset browser - there is this one snippet - which no longer works today.Translated with www.DeepL.com/Translator (free version)
-
@MikeB here:
HiseSnippet 3271.3oc2as0baabEFTRnSD8kX63IsOzoyNZ5zRUqvPPQIRFOol5Zrh0EVSYG2llXCArjbi.wh.rTxLYxz7So+E5a8sleB8mPdou6+AsmcA.whaTvrIoIkiMGu6d1y46bYOmCVB20kZf87ntJkV9zINXkRWWs2Da1vcFpSrUNXWkR2QsqK1Cy11kdoG1840zT1dhitmG1ToToE+.NckVdIEwmW8fs0szsMvQSon7TJw.eHYDgEMa2NOhXYsutI9TxHIpaz4.Cp8NTK5X.SKpVSwQ23b8A3i04jsfpRoe1dlDF0sGSmg8TJsz1TyI8FRuz1m9mR7HmYg4CzT5ALxe58oVlbDymUYmgDKytg5tmhRI0tQVhE8sD2U8HhIY57QVjaIV.EsCY6QoEhCuEiAOMY3USBdY.oEjfzR9P51p8LbINrnU334ZpGXyvt80AytLT7oUYgEti5NTfBaV0Q5mi22EFLcGU1rVs0PaTq1p2ub428cQbJcoVdHFEcFF4oeA1DQrQNhffxfywigtP2E0yhXbN7kI1E89nPAL.y1gNxgZCCprhDMq.7OZyai0GyH8Gas8XFiZmKCRPGmIBTtKtOwF6gzsrPFgHV21DY.ybFDw3g5ScC.M5L+P2x1PLjGDOgQwBoQeYYD7IBc9qdHAFlGvhHgiI91ilopGmTAn1I.NUn1QqGrVv9RHadnhOohH1YXaSPXHNRNe1nIIUyFSPPfOw4ilojLEGSmIGDLc8BJ6SbXDX5B.g.JCQRVL6TByBW.VInKMi7WjmS5TJm3qHNIhvUxWKO47YhmSNW1xdx44aUO47HKZFxYGd9YqYJKeRjkm+L4KS+0yvSl0WNTmwVP5wniDUj2Bb9ta.EdgGguffuzg5Bmkmf5iYFCI1CDm96S.+n3fMOKEaHF8D3HcPzpIwEa.IimH3Kw1BRZf5O11fGejILBxEv+XQgjIAx+Xg.d+.+9CgLMVvIKAPh7vdgZQ5zAUVgvvi7VYMY9U8ynD6Jq7mgzZAa7qhLBIAaFIPpXD50VCbtViwoQuPp.tmRI2YGBlUq54XQX9H39Yp2oTYKptYPdCvvWQvnOVH7OQhE..8nV3pNtDdH0kXjtKFwbmv8ZPgENWP5gx3RBaH34Hd7PThNTc78VAcufUk3JDWb4PxPCDPoNZ+CNbOD8rOCbvn2AYSYbFRvPxcZezG16jiWC4QQFC0sGfA6.WrIHHjwSEPTz8S4ZjWEeHHT5s7NQHqJS8U2eVNqbxuNSWFoOpRvjwM5dIXVkhAgjIXmovSk8TH0vc5SdQk5zDPEUcilLqCdSCBiRi5GFyvujIG4FctapkapVIBWi34ZnAIc1qlfSwKfIHpRecKOb9z4GsYVIAE4muK5P+UaUikhsf9x7Qd9ndVHIsQSRrtX1XW6DNyX8.9dxcMx8g9Xa00hukjc88dI6WL1ViLjgIQKmNGDyk2qaF9bQGkYopoRFXpyz4p6xYkhCeA3JFCEjlffrcWBOaieRNQZsv1PGyfxUtPoXfDn+USDEl4xg5LOdKpmisqVsJDOixTD9Zf.DbRl5GkLnSc1bppJshjeOokL9dRr5zxReU4Y.FQG4vijbAHJuoFP+Nv4FAQoZPagCi7+Yf0fW3FnwkNRT0VTG2ahGTPIUe5AmlChrxHlLdxw.5RFWxy.zSH.d3S.wRSF02fW7xwKmThoq6yCKVVNuEunqDu4da9PuJoP6ZnU9cU82Dzd.yUjmMNyB693i+D9JbyZEg4Z5ik4sJL+xxsV3L1anfnpLZOF3yFTQaUAiWF9afEQZCvJv4lTZZhx8QavWiSbH3gXnJ+UTrm+.ZXSoB7Btc+zLC3iMFaJBNBCYDlr0DAShCVve3Ge3g.dAtYNuuGZ5w8315pDucCaIz+rengFbRNA0ZjJ7bOzJgtlj9Dt830vGGxeIObB8cqjJ0k3eK7fECnLHoPnFEI6Ot1m.ZivqDnHwbpAjjiacFkEmlkKKsMsAkmQkeyEI3irkS.tH1T8RWnqwfloDRKGPFws8dITxzKUzWfBOefZpwKOSTpdtDxLsv3DFvkuRph8wTPIsqrZYXWP5STxk52Oy0BJ4XwYcFKyurL2YswJ1iGcF+LheSAgDpTZo3WKkZ9WKk7slY3+HhRDRsOvl.8Hhsy6tzTBdtR9UXEfJfTl3BrtYvEX4WVRgXpT5FpREpTDvN55.6zQIOV3WgRvhaqlntUR17pGn7jC1Eh0.LUJ.d.jcvtLB2ZTZW7EDCr+krsr5tXuyYTGA9C5xRoTYeweivqfS2FaIj9aF+BRUd4T49MtclHeQnWRLYCkWcHlLXXzsh14uz4rAg28YYUsMa1rYcsMT384lwz7G9Jb5qqVuVsFZs1ncSMoEpKVQqcyVZaTu8lfeWRiVNtFcn9YAZzaGnQnvKHSbKHRJlRaIEC8kchqXcnIULki53.EErYRROoYiqj76VMtnU5CdqdjuH1UDqj1sjQTwcTS9PXxZvARZv27Qc7k9MDaAEPMw6H5HPH5tS7i0iqlJ+wN77nGD7f4g2V8UnlIsL+9XZyx4pMWWMpicI83EFxgXOKRO3WJU.0ofcZLLGJhLrulOruS.rwlOM35ZBfdzC9jmK3EuHQPzekjDleq67.ywdXgbENvnSWWWsQ8VMZtY60aUSbdAxBzANbPs5wF2uesZZkkFTurnu8mCxnrEkBZnGq7QDCWL8QT2Ak4iqoEyjb87RW7VpodT67LJJ2MgQQIkQoySJ1IK4eQkHq.ejbVjqoB4IZrdiVsqGOIh7BWDVpnzhkVpHoStsZh6SURe+5sikhLg9hdQpX0Fo02rrn9mCto74fGnfgRf5S+wWlg2JB6g+5WQW8PdoAgAwA+2dVJv2tXfWNLExZWei5atYs1ISq2ntVq0aUuQiZIpDrd8lZarQSs50xH64ZcBMMxw2JEKk5an5e8Nx1f+jrM3vD1fu9OLu1.eTtjJHrzm5SkYtXv2OGp+8njqa76ZU3MTCD37oFoSfTVM72nSVGTTdca0HY6CZ0a2tlViTwYvJ0ZuQsV0WOQlij4UJsnbRnB1vWdo91MYpuOMoJ70cS6FjrMxGhzZrNj4Z80qWO8gn500Z1rUyFwTGQ4gVsZ2tcilJNgM2dfIWg1x0AOX.QG5lViW+AxLvvh0dS0iGOpGC6DnaizeobqriHllV3tTOBO9HZkZc736I1wTniUI05FuFs9JIxikMne5UaPezqiAsYiVfAMqrRbi1FsajHqjVy50gMAkPBNXbmHniBvdgsz+L0GB8nonTjxO2ZpJjtO1FRVnW8EyUerRVHe85WJIOp3dVQGXG1KVlsyl9cO3Fx5t3G4Og0H1qbvhE9UNPaluxARO41aUfG65lp9nH6m4JfcWAOtg5iEsp75xBo7IIO0U7GgThIWSkyAAVlOTbKAC5cNIGXHNPeklCfKPWyOBOw6+FKBnLNXr4iromkjA+lzViaEv.Hl9L51zWF9vS3OeLFJbMc5hqPwR1ehACNB7X9Owv7oMKCOTFzkhEd9hvtl5d17l9NkfmkJrT7GgwW9c0MNWvj6BliQjSgi7RKjfa2sC+1rTJ82T0p2pZ7OG2E9Z8paAeu6tvWOiO9gawGuGe7S6V8+ceTJtU3oXKpAgMIeqPmDVg9WrMnka+HPKena2ziqJF27Cgw1eNe86wG2lu95i+gbbgsB2Q8Pr8.1v7sAu5ejvFbNWFOkqiOi18GwiUJVxgaqtyPcanezdXKwkoWfbCYxnet5IiYNiYeGwtaqdT28fpftgLLUFiBl86M4LZOaybXSsBcqjA8njVWR+d8cK0inl7eh33ulg72sxfE3MLJWym+96YCMRNQlyem8tGVTHda0tDlwvrw3BYfQ9cB+8.Fm10zd86CQPQ.bI08e12Oudlxh+l9hGJ6RfBD7WeVgveawXzGw6.7Cv1X2zstE+sm8eVz2dVmB+1y5W88TWcaOGpWLFGVQySdxm3g22E+4Ol6MkmeGptalK8pGrOnjYtmd5rwthvhsFQGaGh+W72+U+qGjrm0kJVOqWwaw6R+n6s38m.G1KUpap2BbHqHYjiEdO6KfJ9vL9uI36h6qO1hENa7X4in1TmgTahgbPviwLWxfAXWYrmoBsEiwqkJ0O0ig5A5xAs+5NGBAa5tfcBOm1BshaKlk+5Wn5CWD+.H5mtIoW7+uSR+X5XFwdvQ5PPH7X+hmTDxMBOUiekc9uDZoE3427GWiO1O4nsoXv+F9DrnFebofE0BW7GDYLR2vk97v2zcvA8FhY.81V7+KhkUOhOFoE1tgpZsp0TFAY3dtgA2D+NPByr2S84XOqOG6owbrmMli8r4brmlywdZMy8vKtr0XFcj+QNXht6I9EnKUx+4QEQ5J+G.obBkgB
Theres a ton of debugging statements in there to show you how to find out what went wrong for your self - maybe try and follow this approach -
This fixes one and one only of your callbacks so it works - you will need to go through all the others working out what gets sent in and what comes out...